等待 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();

        }
    }

结果:

希望对您有所帮助。