爲了實現人臉識別,需要實現以下幾個步驟

仔細看了看文檔,琢磨了一下。爲了實現人臉識別,需要實現以下幾個步驟:

1、創建一個Person Group。人需要通過組來進行管理組織。每個組最多有1000個人,免費的每個訂閱最多1000人,S0訂閱的每個組10000人,每個訂閱上限1M組、100M人。

2、創建一個Person。人是Face的擁有着。每個人最多有248張臉的圖片。和人關聯的臉是持久化的persistedFace,而使用detect等api讀取的是非持久的Face。

3、爲Person提供幾張不同的Face。除了Face,還有FaceList對象,但更多用於分辨類似的臉。我估計要進行人臉識別,用Face對象就可以。

4、對提供的幾張Face進行訓練。人工智能需要對輸入進行訓練,利用認知服務進行分析並得到結果。理論上提供訓練的數據越多,結果越準確。

5、提供一張用於比對的Face。上傳一張圖片,讓人工智能判斷是不是同一個人。

開始之前我要首先熟悉一下示例代碼。前文提供的示例代碼和Face API的示例代碼使用了不同的模塊。示例代碼引入了requests這個庫,使用它可以更靈活的完成有關HTTP的各類方法特別是傳遞數據。所以:
    pip install requests

 因爲有兩種不同的數據headers提交方式json和octet-steam,所以分開寫了兩個不同的headers頭部定義。爲了便於使用,把訂閱的Key和訪問的基礎鏈接分別使用變量進行提供。

正式開幹~首先是創建Person Group。和別的對象不同,PersonGroup的名字和ID都是字符串,只接受小寫英文字符和‘-’、‘_’,不多於64個字符。
    其他對象的ID都是類似GUID的形式。通常在創建對象的時候由服務返回。由於Person Group是首先創建的,所以其ID由用戶指定也很合乎情理。創建Person Group之後,就可以在組裏面創建人了。

image

每一部我都是用了print來輸出獲得的json數據。由於添加Face需要提供Person ID,所以在這裏我從json裏面取出了personId的數據。
    Python裏面處理json可以用dump、dumps、load、loads不同的方法。loads能夠把獲得的json數據轉成dict或者list,這在我踩過list的坑之後纔想明白。一旦json中的數據分層了,轉化出來的就是list了,這時就需要逐層處理數據。.
    有了personId,就可以爲特定的人添加Face了。官方示例代碼給的是通過json傳遞一個圖片的url。有很多人在下面問,怎麼使用本地的照片呢?其實利用文件,然後使用octet-steam發送給Azure就可以了。經過一番對requests.request()參數的猜測和對文件的嘗試,果然就能夠把圖片傳上去了。persistedFaceId其實後面沒有直接使用,爲了學習我還是把它提取出來了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章