呼叫偵測API - 臉部- Azure Cognitive Services | Microsoft Docs
文章推薦指數: 80 %
IList
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
其他資訊
目錄
結束焦點模式
閱讀英文
儲存
目錄
閱讀英文
儲存
Twitter
LinkedIn
Facebook
電子郵件
WeChat
目錄
呼叫偵測API
發行項
04/27/2022
17位參與者
此頁面有所助益嗎?
Yes
No
還有其他意見反應嗎?
系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。
隱私權原則。
送出
謝謝。
本文內容
本指南會示範如何使用臉部偵測API,在指定的影像中擷取年齡、表情或頭部姿勢等屬性。
您將了解各種設定此API行為的方式,以符合您的需求。
本指南中的程式碼片段是使用Azure認知服務的臉部用戶端程式庫,以C#撰寫。
相同的功能可透過RESTAPI取得。
安裝程式
本指南假設您已使用臉部訂閱金鑰和端點URL建構了名為faceClient的FaceClient物件。
如需如何設定這項功能的指示,請遵循其中一種快速入門。
將資料提交給服務
若要尋找臉部並取得其在影像中的位置,請呼叫DetectWithUrlAsync或DetectWithStreamAsync方法。
DetectWithUrlAsync會將URL字串當作輸入,而DetectWithStreamAsync則會將影像的原始位元組資料流當作輸入。
IList
如此即可辨別與原始影像臉部相對應的臉部識別碼。
foreach(varfaceinfaces)
{
stringid=face.FaceId.ToString();
FaceRectanglerect=face.FaceRectangle;
}
如需如何剖析臉部位置和維度的資訊,請參閱FaceRectangle。
這個矩形通常會包含眼睛、眉毛、鼻子和嘴巴。
額頭、耳朵和下巴則不一定包含在內。
若要使用臉部矩形裁剪完整的頭部或取得中景半身像,則應往每個方向展開矩形。
決定如何處理資料
本指南著重於偵測呼叫的詳細資料,例如可以傳遞的引數,以及可如何處理傳回的資料。
建議只查詢所需的功能。
每項作業都需要更多時間才能完成。
取得臉部特徵點
臉部特徵點是一組容易在臉上找到的點,例如瞳孔或鼻尖。
若要取得臉部特徵點資料,請將detectionModel參數設定為DetectionModel.Detection01,將returnFaceLandmarks參數設定為true。
//NoteDetectionModel.Detection02cannotbeusedwithreturnFaceLandmarks.
IList
如需完整清單,請參閱臉部屬性概念一節。
若要分析臉部屬性,請將detectionModel參數設定為DetectionModel.Detection01,將returnFaceAttributes參數設定為FaceAttributeTypeEnum值清單。
varrequiredFaceAttributes=newFaceAttributeType?[]{
FaceAttributeType.Age,
FaceAttributeType.Gender,
FaceAttributeType.Smile,
FaceAttributeType.FacialHair,
FaceAttributeType.HeadPose,
FaceAttributeType.Glasses,
FaceAttributeType.Emotion,
FaceAttributeType.QualityForRecognition
};
//NoteDetectionModel.Detection02cannotbeusedwithreturnFaceAttributes.
varfaces3=awaitfaceClient.Face.DetectWithUrlAsync(url:imageUrl,returnFaceId:true,returnFaceAttributes:requiredFaceAttributes,detectionModel:DetectionModel.Detection01,recognitionModel:RecognitionModel.Recognition04);
取得服務的結果
臉部特徵點結果
下列程式碼示範如何擷取鼻子和瞳孔的位置:
foreach(varfaceinfaces2)
{
varlandmarks=face.FaceLandmarks;
doublenoseX=landmarks.NoseTip.X;
doublenoseY=landmarks.NoseTip.Y;
doubleleftPupilX=landmarks.PupilLeft.X;
doubleleftPupilY=landmarks.PupilLeft.Y;
doublerightPupilX=landmarks.PupilRight.X;
doublerightPupilY=landmarks.PupilRight.Y;
您也可以使用臉部特徵點資料,精確計算臉部的朝向。
例如,您可以將臉部的旋轉定義為從嘴巴中心點到雙眼中心點的向量。
下列程式碼會計算這個向量:
varupperLipBottom=landmarks.UpperLipBottom;
varunderLipTop=landmarks.UnderLipTop;
varcenterOfMouth=newPoint(
(upperLipBottom.X+underLipTop.X)/2,
(upperLipBottom.Y+underLipTop.Y)/2);
vareyeLeftInner=landmarks.EyeLeftInner;
vareyeRightInner=landmarks.EyeRightInner;
varcenterOfTwoEyes=newPoint(
(eyeLeftInner.X+eyeRightInner.X)/2,
(eyeLeftInner.Y+eyeRightInner.Y)/2);
VectorfaceDirection=newVector(
centerOfTwoEyes.X-centerOfMouth.X,
centerOfTwoEyes.Y-centerOfMouth.Y);
}
知道臉部的方向後,您即可旋轉矩形臉部框以更正確地校正。
若要裁剪影像中的臉部,您可以用程式設計方式旋轉影像,讓臉部一律以直立的方式出現。
臉部屬性結果
下列程式碼會示範如何擷取您在原始呼叫中要求的臉部屬性資料。
foreach(varfaceinfaces3)
{
varattributes=face.FaceAttributes;
varage=attributes.Age;
vargender=attributes.Gender;
varsmile=attributes.Smile;
varfacialHair=attributes.FacialHair;
varheadPose=attributes.HeadPose;
varglasses=attributes.Glasses;
varemotion=attributes.Emotion;
varqualityForRecognition=attributes.QualityForRecognition;
}
若要深入了解每個屬性,請參閱臉部偵測和屬性概念指南。
下一步
在本指南中,您已了解如何使用臉部偵測和分析的各種功能。
接下來,將這些功能整合到應用程式,新增使用者的臉部資料。
教學課程:將使用者新增至臉部辨識服務
相關文章
參考文件(REST)
參考文件(.NETSDK)
本文內容
延伸文章資訊
- 1臉部辨識
"By enhancing our service with the Face API, we have a competitive advantage in markets that dema...
- 2呼叫偵測API - 臉部- Azure Cognitive Services | Microsoft Docs
IList<DetectedFace> faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId:...
- 3臉部REST API 參考-Azure 認知服務
Face - Detect With Stream - REST API (Azure Cognitive Services - Face). 偵測影像中的人臉、退回臉部矩形,以及選擇性地使用f...
- 4快速入門:使用臉部用戶端程式庫- Azure Cognitive ... - Microsoft Docs
您需要來自所建立資源的金鑰和端點,以將應用程式連線至Face API。 您稍後會在快速入門中將金鑰和端點貼到下列程式碼中。 您可以使用免費定價層( F0 ) 來試用服務, ...
- 5什麼是Azure 臉部辨識服務?
Azure 臉部辨識服務會提供AI 演算法,您可以用來偵測、辨識和分析影像中的人臉。 ... 偵測API 可偵測影像中的人臉,並傳回其位置的矩形座標。