azure - Azure 中的人脸检测
问题描述
我正在尝试使用 Microsoft Azure 认知服务人脸检测。我做错了什么。我正在尝试使用 C# SDK 进行人脸检测。我收到以下错误。我什至不知道如何调试它或错误消息告诉我什么。它几乎就像我设置的东西没有通过,但我只是在猜测。
Microsoft.Azure.CognitiveServices.Vision.Face.Models.APIErrorException
HResult=0x80131500
Message=Operation returned an invalid status code 'BadRequest'
Source=Microsoft.Azure.CognitiveServices.Vision.Face
StackTrace:
at Microsoft.Azure.CognitiveServices.Vision.Face.FaceOperations.<DetectWithUrlWithHttpMessagesAsync>d__9.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at Microsoft.Azure.CognitiveServices.Vision.Face.FaceOperationsExtensions.<DetectWithUrlAsync>d__4.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at BWD.ASPNET.Core.Services.FaceDetection.<DoWork>d__5.MoveNext() in
我进行此调用的代码是:
string faceEndpoint = "https://eastus.api.cognitive.microsoft.com";
FaceAttributeType[] faceAttributes =
{ FaceAttributeType.Age, FaceAttributeType.Gender, FaceAttributeType.Hair,
FaceAttributeType.Smile, FaceAttributeType.Gender, FaceAttributeType.Emotion, FaceAttributeType.FacialHair,
FaceAttributeType.Accessories };
FaceClient faceClient = new FaceClient( new ApiKeyServiceClientCredentials(connString), new System.Net.Http.DelegatingHandler[] { });
faceClient.Endpoint = faceEndpoint;
var ctx = new BWDContext();
var pics = await (from p in ctx.Picture where p.DateOfFacial == null select p).ToListAsync();
foreach(var pic in pics)
{
if(Uri.IsWellFormedUriString(pic.PicFileUrl, UriKind.Absolute))
{
IList<DetectedFace> faceList =
await faceClient.Face.DetectWithUrlAsync(pic.PicFileUrl, true, true, faceAttributes); // error occurs here
.....on and on .......
我还尝试使用 fiddler 进行休息通话,这确实有效。在提琴手通话中,我只是在此网址上发帖:https://eastus.api.cognitive.microsoft.com/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false&returnFaceAttributes=age,gender,headPose,smile,面部毛发,眼镜,情感,头发,化妆,遮挡,配件,模糊,曝光,噪音
我的标题是:
User-Agent: Fiddler
Ocp-Apim-Subscription-Key: ....subscription key......
Content-Type: application/json
Host: eastus.api.cognitive.microsoft.com
Content-Length: 107
我的帖子正文是:{'url':' https://bwdpictures.blob.core.windows.net/bwdpictures/d916acdd-ab9f-429e-8b75-6d5f9206a9b4.jpg '}
我从提琴手的其余电话中得到了结果。
我确定问题出在我的代码上,但我不知道问题是什么。如果您有一些建议,我将不胜感激。
TIA,沃利
解决方案
答对了。问题是我在面部属性中有两次性别属性。我只是注意到了。当我拿出第二个时,问题就解决了。对不起这个帖子。
推荐阅读
- c# - 如何在设置值时递归地迭代所有子属性
- rounded-corners - 如何在 .axml 上修整矩形按钮的角(Visual Studios 2019,Xamarin Forms)
- python - 如何在 Altair Visual 中的 Y 轴和条形图之间添加更多空间
- c++ - 跨文件使用枚举而不在标题中定义它们
- r - Extracting rows matching conditions based on previous rows - r
- json - 预计解码数组
而是找到了一本字典。” - javascript - 嵌套时如何修改CSS值?
- java - 如何使用 Java 解析 XML 响应中的属性
- javascript - 如何将返回传递的数据传递回组件以在 html 中显示
- python - 生产中的多标签二进制化器