我目前正在使用计算机视觉API来获取图像尺寸以及检测颜色和图像尺寸。成人内容。
API返回包含宽度,高度和格式的正确元数据,但Color或Adult Content的所有值都返回默认值(零/ null / false /“None”)。
如果它有任何区别,我正在美国西部调用该服务,该服务被列为已启用这些功能。另外,我在请求中指定我想要这些功能,这就是我收到这两个功能的对象的原因。
如何相应地填充此信息?
示例请求我刚刚使用今天的Bing图像。我正在使用nuget中的Microsoft.Azure.CognitiveServices.Vision.ComputerVision
包,其中包含AnalyzeImageAsync
方法。
POST https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze?
visualFeatures=Adult%2CColor HTTP/1.1
Ocp-Apim-Subscription-Key: <REMOVED>
User-Agent: FxVersion/4.6.26515.07 Microsoft.Azure.CognitiveServices.Vision.ComputerVision.ComputerVisionAPI/1.1.0.0
x-ms-request-root-id: 5e7823bb-4cac1f594af57fcf
x-ms-request-id: |5e7823bb-4cac1f594af57fcf.2.
Request-Id: |5e7823bb-4cac1f594af57fcf.2.
Content-Type: application/json; charset=utf-8
Content-Length: 129
Host: westus.api.cognitive.microsoft.com
{
"url": "https://outerpulsemedia.blob.core.windows.net/uploads/images/0be893af-9edc-416a-a779-929d2e2d1428-1529100079.jpg"
}
响应:
{
"adult": {
"isAdultContent": false,
"adultScore": 0.0,
"isRacyContent": false,
"racyScore": 0.0
},
"color": {
"dominantColorForeground": "None",
"dominantColorBackground": "None",
"dominantColors": [],
"accentColor": "000000",
"isBwImg": false
},
"requestId": "5b57186d-9976-4af7-97fd-e06b33fb0ecb",
"metadata": {
"height": 1200,
"width": 1920,
"format": "Jpeg"
}
}
答案 0 :(得分:2)
严格来说,JPEG图像没有正确编码。特别是缺少EOI
(图像结束)标记。图片应以FF D9
结尾,而您的图片仅以FF
结尾。这就是图像分类器返回默认值而不是真值的原因。
虽然可以判断(a)返回响应是欺骗性的,或者(b)API应该返回400 Bad Request,但是尝试理解图像如何被截断可能更有利于你一个字节。