Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[Cognitive Service之Face Api][11]人臉識別的AI服務 - Identify 找出圖片的臉是誰

[Cognitive Service之Face Api][11]人臉識別的AI服務 -  Identify 找出圖片的臉是誰.jpg
背景圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([10]人臉識別的AI服務 - Verify 驗證臉是不是屬於某個Person)介紹了PersonGroup train出來的Model的其中一個用途,也就是用來確認某個臉和某個person是否為同一人。

這一篇來看看另外一個用途:identify,也就是直接從臉找到是誰。

如何使用Identify

和其他方法一樣,先要瞭解api所有的參數才有辦法去嘗試使用,首先去看看官方的api文件:Identify

Url的部分

完整的url是:https://[location].api.cognitive.microsoft.com/face/v1.0/identify

這邊要注意的是當初建立的face api服務的地址在哪裏。以我的例子是eastasia,因此我的完整url是:

https://eastasia.api.cognitive.microsoft.com/face/v1.0/verify

Header
兩個參數要傳入:
  1. Content-Type:傳入的格式是application/json,由於格式只有一種,因此這個是一個選填欄位。
  2. Ocp-Apim-Subscription-Key:輸入取得的face api key
Body
總共有以下幾個參數:
  1. faceIds:這是一個string Array列出要被識別出屬於那個person的face id 清單
  2. personGroupId:定義faceIds裡面要從那個PersonGroup找person
  3. largePersonGroupId:這個和上面的personGroupId屬於二擇一,取決於當初建立的Model是哪個
  4. maxNumOfCandidatesReturned:在識別的時候,會依照信心度給出所有可能符合的person,這個可以控制總共要返回多少個可能符合的person。數值是1~100,預設是10
  5. confidenceThreshold :這個是當信心度多少以上才要屬於可能符合的person。數值是0~1之間

瞭解了怎麽呼叫的方式之後,接下來就是要實際看看如何呼叫Identify。

測試Identify功能

從上面瞭解了如何使用之後,接下來要透過用postman來實際試試看:

  1. 先透過Detect取得圖片裡面的Face Id
  2. 透過Identify辨認這個Face Id是誰

先透過Detect取得圖片裡面的Face Id

首先透過detect圖片來取得要被測試的Face Id,這邊將使用圖片: https://raw.githubusercontent.com/Microsoft/Cognitive-Face-Windows/master/Data/identification1.jpg

執行完可以看到得到的Face Id是:8b749bb9-6c2c-4538-8c58-23dd8cb8bc14


用Detect取得的圖片face id

透過Identify辨認這個Face Id是誰

有了Face id之後就可以嘗試和建立出來的Model去找,這個臉和那個人是同一個。

使用上面瞭解到Identify所需要的參數,組成request的body:

{
	"faceIds":["8b749bb9-6c2c-4538-8c58-23dd8cb8bc14"],
	"personGroupId":"1"
}

最後得到的結果如下圖:


執行完Identify得到的結果

[
    {
        "faceId": "8b749bb9-6c2c-4538-8c58-23dd8cb8bc14",
	"candidates": [
            {
                "personId": "c2e08f72-1ff2-45c4-861e-b31d5f18e0a3",
                "confidence": 0.76658
            }
        ]
    }
]

可以看到每一個傳入Facei Id都會列出多個可能的人(candidates),每一個可能的人都有一個Model判斷出來的信心度(或者準確度),以這邊例子為0.77

有了這個資訊之後就能夠做不同類型的程式,例如可以做一個個人的人物識別管理工具。像我對人臉非常不敏感,除非講過幾次話,不然有時候我都認不出來誰是誰。這個時候如果每次都有記錄下來,當人來的時候 直接用這個找出最有可能,人際關係就不會尷尬啦。

結語

Face Api剩下的服務裡面還有兩個,

  1. Grouping - 把一堆臉似相似臉的分在一組
  2. Find Similar - 找到和某個臉相似的臉

這兩個服務在這邊就不再做API詳細介紹了,基本上依照之前介紹服務的方式看一下API基本上就有使用概念了。

在下一篇([12]人臉識別的AI服務 - 用Face API Explorer看看Identify的應用),將在看Face Explorer工具的其他功能,并且可以以此作爲把Face Api整合到你的Application的一些idea激蕩。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus