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
台灣 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