Alan Tsai 的學習筆記


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

[Cognitive Service之Face Api][07]人臉識別的AI服務 - C#整合Verify驗證兩張圖片的人是否同個人

[Cognitive Service之Face Api][07]人臉識別的AI服務 - C#整合Verify驗證兩張圖片的人是否同個人.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([06]人臉識別的AI服務 - 使用Verify確認兩張圖片的人臉是否為同一人)介紹了如何使用verify這個功能來驗證兩個人臉(faceId)是否為同一人。

這篇將來看看再C#裡面如何呼叫verify這個方法。

程式碼調整

這邊將延續之前在介紹detect的時候所建立出來的sample 專案繼續往下調整。

目前的程式碼會:

  1. 透過detect瞭解圖片裡面的人臉
  2. 把人臉Id、開心程度、年齡以及性別印在console上面

延續目前的程式碼繼續往下:

  1. 增加新的一組detect用來取得另外一張圖片的信息
  2. 呼叫verify把第一張和第二張的圖片人臉做比對
  3. 把結果印到console

增加新的一組detect用來取得另外一張圖片的信息

雖然説複製貼上很邪惡,但是在這個sample就別計較太多啦。

從原始的detect複製一份出來,這邊也保留了把detect内容輸出到console。

var imageUrl2 = "https://raw.githubusercontent.com/Microsoft/" +
	"Cognitive-Face-Windows/master/Data/" +
	"PersonGroup/Family2-Lady/Family2-Lady2.jpg";

var faces2 = await client.DetectAsync(imageUrl2, returnFaceAttributes: faceAttr);

Console.WriteLine($"這張圖片2有以下幾個人臉被識別出來:");

foreach (var item in faces2)
{
	Console.WriteLine($"\t 人物:{item.FaceId} " +
		$"\t 開心程度:{item.FaceAttributes.Emotion.Happiness} " +
		$"\t 年齡:{item.FaceAttributes.Age} " +
		$"\t 性別:{item.FaceAttributes.Gender}");
}

呼叫verify把第一張和第二張的圖片人臉做比對

detect取得了兩張圖片的face id之後,接下來就是要把這兩個face id做比較:

var verifyResult = await client.VerifyAsync(faces.First().FaceId, faces2.First().FaceId);

把結果印到console

最後把比對的結果印在console上面:

Console.WriteLine($"2張圖片的第一個人臉識別結果為:{Environment.NewLine} " +
	$"\n 是否同一人:{verifyResult.IsIdentical} {Environment.NewLine} " +
	$"\n 信心指數:{verifyResult.Confidence}");

實際執行出來,可以看到:

  1. 顯示是否為同一人
  2. 并且這個的信心度有多高

cmd_2018-09-21_17-08-09.png
最後執行的結果

結語

這篇介紹的是如何透過sdk的方式呼叫verify的這個功能來驗證兩張人臉是不是同一個人。

在撰寫的過程會發現,sdk包的很好,只要瞭解了底層的REST Api呼叫方式,使用起來不會有什麽太大問題。因此,暫時不會用python撰寫呼叫verify(至少這個階段不會)

在上篇介紹verify的時候有提到,還有另外一種比對方式,透過face id(人臉)和person id(某個人)做比對看看是不是同一個人,這個時候問題就來了,person(人)是一個什麽概念呢?

在下一篇([07]人臉識別的AI服務 - C#整合Verify驗證兩張圖片的人是否同個人),將介紹在face api裡面person是什麽概念,并且要建立一個person需要經過那些步奏,這個概念將在介紹verify的另外一個應用以及後面的identify將會使用到。


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