【发布时间】:2019-10-28 12:03:53
【问题描述】:
我正在实现面部识别功能。我可以上传一个人和一张图片,但是当我尝试发送图片进行比较时,DetectAsync 方法失败并且没有错误消息。我不确定问题出在方法上(我已在其他项目中成功实现)还是我通过 javascript 或其他方式发送网络摄像头/图像的方式。
我正在使用 javascript 在网络摄像头上检测人脸并拍照。图片被发送到转换为流并发送到 DetectAsync(stream)。它在一个 try-catch 块中,但我没有收到异常,它只是返回到它似乎被冻结的 UI,我无法重新加载页面或导航到另一个页面。在 Quickwatch 窗口中,我键入 faceServiceClient.DetectAsync(stream) 然后强制执行,我得到以下信息:
- 异常:空
- 编号:643
- 状态:等待激活
- 结果:null(尚未计算)
其他一些,但这些似乎是最相关的
我希望获得一组 FaceID (GUIDS)。图像中的每张脸。或错误消息。获得 GUIDS 后,我可以尝试在我的 personGroup 中找到匹配的面孔。如果我找到匹配项,我会将用户名返回到我的 UI。我已经让它在 MVC 应用程序中工作。这是一个 ASP.NET 应用程序。
代码:
public async Task<string> DoFacialRecognition(string image)
{
string response = "";
FaceServiceClient faceServiceClient = new FaceServiceClient(subscriptionKey);
try
{
var imageToSend = ConvertBase64ToImage(image.Substring(22));
Stream stream = ConvertToStream(imageToSend, ImageFormat.Png);
var faces = await faceServiceClient.DetectAsync(stream, true, false);
var faceIds = faces.Select(face => face.FaceId).ToArray();
}
....
}
【问题讨论】: