Day 03 - Cognitive Service - 辨識- Face API - iT 邦幫忙
文章推薦指數: 80 %
臉部偵測偵測影像中的一或多張人臉,並取得影像臉部位置所在的臉部矩形及臉部 ... 要新增:人臉辨識API Key. 新增完專案後,首先先來安裝Nuget 套件:Microsoft.Azure.
2019iT邦幫忙鐵人賽
DAY
3
1
EverythingonAzure
AzureDataService相關服務基本操作手冊系列第
3篇
Day03-CognitiveService-辨識-Face API
2019鐵人賽
azuredataservices
cognitiveservice
face
MoneyYu
2018-10-1819:49:423509瀏覽
上一篇我們介紹了讓電腦看圖說故事,那這篇我們就要來介紹更需要具體細節的部分:FaceAPI。
CognitiveService針對臉部辨識的部分提供了以下的功能
臉部驗證
檢查兩張臉部是屬於同一個人的可能性。
API會傳回信心分數,顯示兩張臉部是屬於同一個人的可能性。
臉部偵測
偵測影像中的一或多張人臉,並取得影像臉部位置所在的臉部矩形及臉部屬性,該屬性內含以機器學習為基礎的臉部特徵預測。
可用的臉部屬性功能包括:年齡、表情、性別、姿勢、微笑及鬍子,以及影像中每張臉部的27個地標。
表情辨識
臉部API現在與表情辨識整合,並傳回影像中每個臉部之一組表情的信心分數,例如生氣、藐視、厭惡、恐懼、快樂、不表意見、憂傷及驚奇。
這些表情已知可跨文化普遍地與特定臉部表情溝通。
範例網站介紹
FaceAPI可以分成兩大部分,第一個是針對單一臉部做偵測,可以得知這些臉部的相關資訊,甚至是情緒的部分;另一個則是針對多個臉部,用來比對這多的臉部是否為相同人,簡單來說就是認臉。
我們先來看一下官網的範例,後面再來實際用程式動手做
偵測影像中的臉部
這邊就用是大家的老婆:新垣結衣,來做為範例一下;這是一張「逃避可恥但有用」的劇照,可以看出它辨識出新垣結衣是女生,年紀只有20歲!不虧是大家的老婆;甚至還有是否有戴眼鏡以表情等資訊。
辨識影像中的情感
在這個範例中就可以看到這是完全針對情緒的參數去做顯示,CognitiveService會給每個情緒都有一個分數,最高的分數通常就是結果;以這張來說,新垣結衣被判斷為目前表情情緒是中立。
影像中類似臉部的辨識與分組
這邊我特地找了「周杰倫」不同時期的照片來測試一下,左邊那張是近期的照片,右邊則是周杰倫超年輕時候的照片。
可以看到其實還是辨識的出來,只是信心程度沒有很高
沒有說信心程度很低就為不可能,有可能正解的信心程度為0.4,但是其他選項的信心程度只有0.1,所以最佳解仍為正解。
實際動手做
介紹完範例後,又到了動手做時間,廢話已經說很多,就直接進入Coding階段吧
在AzurePortal上建立APIKey與新增專案的部分已於上一篇講解過,所以這邊就不騙篇幅了
這次要新增:人臉辨識APIKey
新增完專案後,首先先來安裝Nuget套件:Microsoft.Azure.CognitiveServices.Vision.Face
此Nuget套件已經有實作 .NETStandard所以 .NETCore也可以使用
現在只有Preview版本,所以後面要指定版本號
dotnetaddpackageMicrosoft.Azure.CognitiveServices.Vision.Face-v2.2.0-preview
如果是使用PackageExplorer
Install-PackageMicrosoft.Azure.CognitiveServices.Vision.Face-Version2.2.0-preview
示範臉部偵測與表情辨識
我這邊程式就直接使用從Url方式來拿到圖片的方式,這邊照片就使用剛剛的範例照片
先把相關變數設定好,像是APIKey跟ImageUrl,我把apiKey放在appsettings.json裡
stringapiKey=configuration.GetSection("apiKey").Value;
stringimageUrl="https://cdn-images-1.medium.com/max/1200/0*WVev4lO0ZXp6tDed";
接下來我們就把FaceClient給New起來,並根據AzurePortal上之資訊設定Endpoint
FaceClientfaceClient=newFaceClient(
newApiKeyServiceClientCredentials(apiKey),
newSystem.Net.Http.DelegatingHandler[]{});
faceClient.Endpoint="https://southeastasia.api.cognitive.microsoft.com/";
因為這次安裝的SDK為Preview狀態,所以EndPoint不能這定成跟AzurePortal上顯示的一樣,要設為:https://[location].api.cognitive.microsoft.com/;參考:https://github.com/Azure/azure-sdk-for-net/issues/4534
設定完後,在把圖片送出去之前還有最後一步,就是設定你要取得那些資訊欄位,我在這邊就把所有的欄位加進來
privatestaticreadonlyFaceAttributeType[]faceAttributes=
{
FaceAttributeType.Age,FaceAttributeType.Gender,FaceAttributeType.Accessories,FaceAttributeType.Blur,
FaceAttributeType.Emotion,FaceAttributeType.Exposure,FaceAttributeType.FacialHair,
FaceAttributeType.Glasses,FaceAttributeType.Hair,FaceAttributeType.HeadPose,FaceAttributeType.Makeup,
FaceAttributeType.Noise,FaceAttributeType.Occlusion,FaceAttributeType.Smile
};
都設定完成後,我們就可以把圖片送出去做辨識啦
Console.WriteLine("Facesbeingdetected...");
IList
標記
{{result.label}}
{{result.account}}
關閉
延伸文章資訊
- 1azure人臉辨識api在PTT/Dcard完整相關資訊 - 健康急診室
臉部服務可讓您存取先進的演算法,以偵測和辨識影像中的人臉。 Azure Face API - 日本打工度假最佳解答-202102022021年2月2日· 臉部辨識| Microsoft Azur...
- 2臉部REST API 參考-Azure 認知服務
本文示範如何在Azure 認知服務套件中呼叫臉部(即服務)的REST API 端點。 臉部辨識服務提供的AI 演算法可偵測、辨識和分析影像中的人臉。 臉部辨識 ...
- 3什麼是Azure 臉部辨識服務?
- 4臉部辨識
人臉識別API · 偵測影像中人臉的分部位置. 使用人臉數目以及臉部矩形座標,來尋找、裁剪或模糊處理以保護隱私權。 · 偵測每張人臉的27 個特徵點,包括眼睛的位置. 使用精確的 ...
- 5以Azure Face API 實作臉部辨識. 前言 - Medium
臉部辨識也是近幾年非常紅的大數據議題之一, Microsoft 推出的Azure Face API 是一項認知服務,可提供演算法來偵測、辨識和分析影像中的人臉。