呼叫偵測API - 臉部- Azure Cognitive Services | Microsoft Docs

文章推薦指數: 80 %
投票人數:10人

IList faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: true, detectionModel: DetectionModel. 跳到主要內容 已不再支援此瀏覽器。

請升級至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則會將影像的原始位元組資料流當作輸入。

IListfaces=awaitfaceClient.Face.DetectWithUrlAsync(url:imageUrl,returnFaceId:true,detectionModel:DetectionModel.Detection03); 您可以在傳回的DetectedFace物件中查詢其唯一識別碼和提供臉部像素座標的矩形。

如此即可辨別與原始影像臉部相對應的臉部識別碼。

foreach(varfaceinfaces) { stringid=face.FaceId.ToString(); FaceRectanglerect=face.FaceRectangle; } 如需如何剖析臉部位置和維度的資訊,請參閱FaceRectangle。

這個矩形通常會包含眼睛、眉毛、鼻子和嘴巴。

額頭、耳朵和下巴則不一定包含在內。

若要使用臉部矩形裁剪完整的頭部或取得中景半身像,則應往每個方向展開矩形。

決定如何處理資料 本指南著重於偵測呼叫的詳細資料,例如可以傳遞的引數,以及可如何處理傳回的資料。

建議只查詢所需的功能。

每項作業都需要更多時間才能完成。

取得臉部特徵點 臉部特徵點是一組容易在臉上找到的點,例如瞳孔或鼻尖。

若要取得臉部特徵點資料,請將detectionModel參數設定為DetectionModel.Detection01,將returnFaceLandmarks參數設定為true。

//NoteDetectionModel.Detection02cannotbeusedwithreturnFaceLandmarks. IListfaces2=awaitfaceClient.Face.DetectWithUrlAsync(url:imageUrl,returnFaceId:true,returnFaceLandmarks:true,detectionModel:DetectionModel.Detection01); 取得臉部屬性 除了臉部矩形和特徵點外,臉部偵測API還會分析數個臉部的概念屬性。

如需完整清單,請參閱臉部屬性概念一節。

若要分析臉部屬性,請將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) 本文內容



請為這篇文章評分?