等待 faceClient.Face.DetectWithStreamAsync 返回 null
await faceClient.Face.DetectWithStreamAsync returning null
我正在尝试 运行 Microsoft 的 'Create a WPF app to display face data in an image' (https://docs.microsoft.com/en-us/azure/cognitive-services/face/tutorials/faceapiincsharptutorial) 但是我尝试使用图像检测人脸的所有内容都会 return 一个 Null 错误(否找到面孔)。
我已经从 github 下载了 Windows 教程项目文件,并尝试了这里的简化版本:https://carldesouza.com/building-an-azure-cognitive-services-face-app-part-1-face-recognition/,每个都有相同的错误。我已经成功地创建了一些 ASP.Net Web 应用程序,可以检测人脸以及使用相同的 API 键和端点创建人员组来检测特定的人。
该程序似乎无法在这段代码处检测到人脸:
IList<DetectedFace> faceList =
await faceClient.Face.DetectWithStreamAsync(
imageFileStream, true, false, null);
[AsyncStateMachine(typeof(<DetectWithStreamAsync>d__6))]
public static Task<IList<DetectedFace>> DetectWithStreamAsync(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, IList<FaceAttributeType> returnFaceAttributes = null, CancellationToken cancellationToken = default);
我从调试中得到的唯一错误是这段代码总是 return null,因此没有检测到任何面孔。
试试下面的代码:
static void Main(string[] args)
{
string persionPicPath = @"<image path>";
string endpoint = @"https://<your face service name>.cognitiveservices.azure.com/";
string subscriptionKey = "<your subscription key>";
IFaceClient faceClient = new FaceClient(
new ApiKeyServiceClientCredentials(subscriptionKey),
new System.Net.Http.DelegatingHandler[] { });
faceClient.Endpoint = endpoint;
using (Stream s = File.OpenRead(persionPicPath))
{
var facesResults = faceClient.Face.DetectWithStreamAsync(s, true, false, null).GetAwaiter().GetResult();
foreach (var faces in facesResults)
{
Console.WriteLine(faces.FaceId);
}
Console.ReadKey();
}
}
结果:
希望对您有所帮助。
我正在尝试 运行 Microsoft 的 'Create a WPF app to display face data in an image' (https://docs.microsoft.com/en-us/azure/cognitive-services/face/tutorials/faceapiincsharptutorial) 但是我尝试使用图像检测人脸的所有内容都会 return 一个 Null 错误(否找到面孔)。
我已经从 github 下载了 Windows 教程项目文件,并尝试了这里的简化版本:https://carldesouza.com/building-an-azure-cognitive-services-face-app-part-1-face-recognition/,每个都有相同的错误。我已经成功地创建了一些 ASP.Net Web 应用程序,可以检测人脸以及使用相同的 API 键和端点创建人员组来检测特定的人。
该程序似乎无法在这段代码处检测到人脸:
IList<DetectedFace> faceList =
await faceClient.Face.DetectWithStreamAsync(
imageFileStream, true, false, null);
[AsyncStateMachine(typeof(<DetectWithStreamAsync>d__6))]
public static Task<IList<DetectedFace>> DetectWithStreamAsync(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, IList<FaceAttributeType> returnFaceAttributes = null, CancellationToken cancellationToken = default);
我从调试中得到的唯一错误是这段代码总是 return null,因此没有检测到任何面孔。
试试下面的代码:
static void Main(string[] args)
{
string persionPicPath = @"<image path>";
string endpoint = @"https://<your face service name>.cognitiveservices.azure.com/";
string subscriptionKey = "<your subscription key>";
IFaceClient faceClient = new FaceClient(
new ApiKeyServiceClientCredentials(subscriptionKey),
new System.Net.Http.DelegatingHandler[] { });
faceClient.Endpoint = endpoint;
using (Stream s = File.OpenRead(persionPicPath))
{
var facesResults = faceClient.Face.DetectWithStreamAsync(s, true, false, null).GetAwaiter().GetResult();
foreach (var faces in facesResults)
{
Console.WriteLine(faces.FaceId);
}
Console.ReadKey();
}
}
结果:
希望对您有所帮助。