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
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus