Alan Tsai 的學習筆記


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

[Cognitive Service之Face Api][06]人臉識別的AI服務 - 使用Verify確認兩張圖片的人臉是否為同一人

[Cognitive Service之Face Api][06]人臉識別的AI服務 - 使用Verify確認兩張圖片的人臉是否為同一人.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([05]人臉識別的AI服務 - 使用Python框出圖像裡面人臉的部分)看完了如何在Python裡面呼叫Face Api裡面的Detect服務,并且把圖片裡面的人臉部分用紅色框起來,然後把年紀用藍色列在了頭像下面,基本上識別相關的服務就介紹到這邊。 剩下的應用就是看想象力了。

能夠識別圖片裡面的人臉只是服務的一部分,另外一個常用情景是,能不能識別人臉是不是屬於同一個人?這種類型的應用非常的多,例如環安裡面當是同一個人門要開啓就可以使用到這個服務。

這篇來看看如何使用Verify這個服務,看看如何呼叫,并且回傳的内容是什麽。

如何使用Verify

要使用之前肯定要先瞭解怎麽呼叫以及使用。因此首先去看看官方的api文件:Verify

Url的部分

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

這邊要注意的是當初建立的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. 傳入兩個參數:faceId1faceId2 - 來看兩個是不是同一個人
  2. 判斷某個臉(faceId)是否和某個Person(personId)一樣 - 這個我們後面會提到,目前先有個印象就好

有了使用的概念之後,接下來就是用Postman測試看看。

使用Postman測試Verify

從上面的API reference瞭解會發現,整個的使用需要透過faceId,這個值我們可以透過在呼叫Detect的時候取得。因此,整個操作起來會先從Detect開始。

因此,整個的測試流程如下:

  1. 用Detect呼叫圖片1取得Face ID
  2. 用Detect呼叫圖片2取得Face ID
  3. 兩張圖片人物做比對
  4. 用Detect呼叫圖片3取得Face Id
  5. 把圖片2和圖片3的人物做比對

用Detect呼叫圖片1取得Face ID

圖片1的測試網址如下: https://raw.githubusercontent.com/Microsoft/Cognitive-Face-Windows/master/Data/PersonGroup/Family3-Lady/Family3-Lady1.jpg

圖片1内容

使用Postman搭配Detect能夠取得Face ID:

Postman_2018-09-19_07-07-41.png
圖片1呼叫Detect

用Detect呼叫圖片2取得Face ID

圖片2的測試網址如下: https://raw.githubusercontent.com/Microsoft/Cognitive-Face-Windows/master/Data/PersonGroup/Family2-Lady/Family2-Lady1.jpg

圖片2内容

使用Postman搭配Detect能夠取得Face ID:

Postman_2018-09-19_07-11-27.png
圖片2呼叫Detect

兩張圖片人物做比對

有了兩張圖片的FaceId之後,就可以用verify的方法做比對:

Postman_2018-09-18_18-42-56.png
比對圖片1和圖片2的結果

可以看到圖片1和圖片2本身不是同一個人,在比對的時候相似度只有0.25左右。

用Detect呼叫圖片3取得Face Id

這個時候用和圖片2的同一個人不同的相片來做比較。

圖片3的測試網址如下:https://raw.githubusercontent.com/Microsoft/Cognitive-Face-Windows/master/Data/PersonGroup/Family2-Lady/Family2-Lady2.jpg

圖片3内容

呼叫完了Detect取得FaceId:


取得圖片3的FaceId

把圖片2和圖片3的人物做比對

有了圖片3的faceId之後,可以用來和圖片2的faceId做比較:

Postman_2018-09-18_18-43-41.png
呼叫verify驗證是否同一個人

可以看到,系統認爲圖片2和圖片3的人物是同一個人,信心度能夠到達0.90。

結語

這篇介紹了Face Api裡面的Verify服務。透過Verify,可以比對兩張圖片裡面人物的faceId看看兩個是不是同一個人。

由於要取得faceId,因此是先從圖片透過Detect取得了faceId之後,才會用這個faceId做比較。

透過verify也看到了一個新的概念叫做personId,這個在後面的部分會再有更加深入的介紹。

瞭解了API的呼叫方式之後,下一篇([Cognitive Service之Face Api][07]人臉識別的AI服務 - C#整合Verify驗證兩張圖片的人是否同個人)將來看看如何整合到程式裡面。


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