gpt4 book ai didi

android - Face API 属性 Emotion 给出 Null 对象错误

转载 作者:行者123 更新时间:2023-12-03 01:40:41 25 4
gpt4 key购买 nike

我正在使用 Microsoft Face API 来检测面部属性,例如年龄、性别和情绪。以下代码对我有用:faces[position].faceAttributes.age 我能够获得估计年龄。 (faces[]Face 类型的数组)

但是,当我尝试获取脸部快乐的概率时,我遇到了以下错误:

Attempt to read from field 'double com.microsoft.projectoxford.face.contract.Emotion.happiness' on a null object reference.

这就是我获取此人快乐概率的方法:
面孔[位置].faceAttributes.emotion.happiness

同样,当我尝试:faces[position].faceAttributes.emotion时,它返回null

我知道 faces[position].faceAttributes 不是 null 因为它适用于年龄和性别等其他属性,但我无法弄清楚为什么它不是为情感而工作。有谁知道为什么会发生这种情况以及我可以做些什么来让它发挥作用?

<小时/>

更新:

对于那些遇到同样问题的人,在处理人脸的 AsnycTask 中,您必须包含您希望检测的属性,否则当您稍后引用。最初,我有 FaceServiceClient.FaceAttributeType.Smile,这就是为什么它在尝试确定情绪时给我一个错误。以下代码位于 doInBackground 方法中:

FaceServiceClient.FaceAttributeType[] faceAttr = new FaceServiceClient.FaceAttributeType[]{
FaceServiceClient.FaceAttributeType.HeadPose,
FaceServiceClient.FaceAttributeType.Age,
FaceServiceClient.FaceAttributeType.Gender,
FaceServiceClient.FaceAttributeType.Emotion,
FaceServiceClient.FaceAttributeType.FacialHair
};

最佳答案

您在请求期间似乎没有要求 emotion 属性。所有这些面部属性都是可选的,因此返回的对象将仅包含您要求的面部属性。例如以下请求:

POST https://westeurope.api.cognitive.microsoft.com/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false&returnFaceAttributes=age,gender HTTP/1.1
Host: westeurope.api.cognitive.microsoft.com
Content-Type: application/json
Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••

{
"url": "https://pbs.twimg.com/profile_images/907936570342338560/qHCX1E2B_400x400.jpg"
}

我将得到以下回复,其中 JSON 在解析时会发送一个带有 null 的对象来表达情感

[{
"faceId": "e97a0554-99a9-44f7-9de9-614ef6d8843b",
"faceRectangle": {
"top": 117,
"left": 106,
"width": 219,
"height": 219
},
"faceAttributes": {
"gender": "male",
"age": 32.0
}
}]

如果我在请求的 returnFaceAttributes 中添加 emotion:

[{
"faceId": "da7c416f-3eb4-4132-8b3e-e317daf58c7d",
"faceRectangle": {
"top": 117,
"left": 106,
"width": 219,
"height": 219
},
"faceAttributes": {
"gender": "male",
"age": 32.0,
"emotion": {
"anger": 0.0,
"contempt": 0.0,
"disgust": 0.0,
"fear": 0.0,
"happiness": 1.0,
"neutral": 0.0,
"sadness": 0.0,
"surprise": 0.0
}
}
}]

我不知道你如何使用API​​(直接调用或使用包),但你绝对应该看看这些参数,它们在你的级别可用。如果不是,请直接使用 API(文档: https://westeurope.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/ )

关于android - Face API 属性 Emotion 给出 Null 对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53938721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com