首頁 > 軟體

詳解Python呼叫華為API實現影象標籤

2022-04-12 19:01:01

1.華為雲API介紹

1.1 華為雲影象標籤

可識別上千種通用物體以及數百種場景標籤,一個影象可包含多個標籤內容,語意內容非常豐富。更智慧、準確的理解影象內容,讓智慧相簿管理、照片檢索和分類、基於場景內容或者物體的廣告推薦等功能更加準確。

1.2 應用場景

1.場景分析

影象標籤功能可準確識別視訊、影象內容,提高檢索效率和精度,從而使得個性化推薦、內容檢索和分發更為有效。

2.智慧相簿

基於影象識別的標籤可達近萬種,智慧相簿可以自定義分類,比如“植物”、“美食”、“工作”等類別。方便使用者管理相簿,帶來良好體驗。

3.目標檢測

在建築施工現場,基於客製化化的影象識別目標檢測系統,可實時監測現場人員是否佩戴安全帽,以降低安全風險。

4. 影象搜尋

基於影象標籤的影象搜尋技術,不管使用者輸入關鍵字,還是輸入一張影象,都可以快速搜尋到想要的影象。

1.3 呼叫華為雲API實現影象標籤

1.進入影象標籤功能申請介面

首先使用賬號登入華為雲(也可另行註冊)

(1)存取華為雲官網huaweicloud.com,搜尋“影象標籤”

(2)點選“申請開通”(按照提示依次完成即可)

2.獲取影象標籤AK/SK

請確保賬號登入華為雲

存取華為雲賬號中我的憑證---------->再點選存取金鑰獲取AK/SK(按照提示下載對應的cv包)

3. 偵錯影象標籤介面

(1)點選連結存取API 3.0 Explorer 線上介面偵錯頁面apiexplorer.developer.huaweicloud.com

並在搜尋方塊輸入影象識別功能進入偵錯埠

4.API 3.0 Explorer 線上介面偵錯圖

(2)如下圖所示(可檢視具體的偵錯要求)

2.實驗過程

2.1實驗程式碼

######準備工作:在cmd中進入你所使用的python所在環境,通過pip的方式安裝華為雲的Python SDK
pip install huaweicloudsdkimage
pip install huaweicloudsdkcore
pip install base64
#########實驗程式碼:執行前面步驟生成的程式碼
# coding: utf-8
####  匯入指定的封包  
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkimage.v2.region.image_region import ImageRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkimage.v2 import *
import base64

#### base64編碼格式
def image_to_base64(self):
    with open(self, 'rb') as f:
        base64_data = base64.b64encode(f.read())      #  將影象轉換為 base64資料格式
        return base64_data


if __name__ == "__main__":

    ak = "yourself_ak_from_cv"  #### 輸入獲得的access key
    sk = "yourself_sk_from_cv"     ###輸入獲得的secret key
    credentials = BasicCredentials(ak, sk) 

    client = ImageClient.new_builder() 
        .with_credentials(credentials) 
        .with_region(ImageRegion.value_of("cn-north-4")) 
        .build()
####  channel =  cn-north-4   自己專案所在的大區
    try:
        request = RunImageTaggingRequest()
        request.body = ImageTaggingReq(
            limit=5,    ##  限制輸出多少種類
            threshold=60,   ### 設定  confidence置信度  低於60的種類不輸出
            language="zh",    ##  設定成中文顯示
            image= image_to_base64('D:/data/train/動物/5.png')  ##  呼叫之前定義的 base64 編碼 並且輸入自己的圖片路徑
        )
        response = client.run_image_tagging(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

2.2執行結果

{"result": {"tags": [{"confidence": "98.94", "type": "動物", "tag": "豬", "i18n_tag": {"zh": "豬", "en": "Pig"}, "i18n_type": {"zh": "動物", "en": "Animal"}, "instances": [{"bounding_box": {"height": 333.29959458571216, "top_left_x": 4.955303632296049, "top_left_y": 5.086499214172363, "width": 395.2104104849008}, "confidence": "93.81"}]}, 
{"confidence": "85.00", "type": "人工場景", "tag": "農場", "i18n_tag": {"zh": "農場", "en": "Farm"}, "i18n_type": {"zh": "人工場景", "en": "Manual scenario"}, "instances": []},
 {"confidence": "66.37", "type": "食物", "tag": "火腿", "i18n_tag": {"zh": "火腿", "en": "Ham"}, "i18n_type": {"zh": "食物", "en": "Food"}, "instances": []}]}}

2.3 問題註釋

(1) 置信度輸入範圍必須在 0~100 超過此範圍則報錯

(2) 輸入影象路徑時一定要呼叫之前定義好的base64編碼函數

以上就是詳解Python呼叫華為API實現影象標籤的詳細內容,更多關於Python影象標籤的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com