我目前正在使用计算机视觉API来获取图像尺寸,并检测颜色和成人内容。
API 返回包含宽度、高度和格式的正确元数据,但颜色或成人内容的所有值都作为默认值返回(零/空/假/"无"(。
如果有任何区别,我将在美国西部调用该服务,该服务被列为已启用这些功能。此外,我指定我希望在请求中使用这些功能,这就是我收到这两个功能的对象的原因。
如何相应地填充此信息?
我刚刚对今天的必应图像使用的示例请求。我正在使用包含AnalyzeImageAsync
方法的 nuget 的Microsoft.Azure.CognitiveServices.Vision.ComputerVision
包。
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"
}
}
严格来说,JPEG 图像没有正确编码。 具体来说,缺少EOI
(图像结尾(标记。 图像应以FF D9
结尾,而您的图像仅以FF
结尾。 这就是图像分类器返回默认值而不是 true 值的原因。
虽然可以证明 (a( 返回响应具有欺骗性,或者 (b( API 应该返回 400 错误请求,但尝试了解图像如何被字节截断可能更有益。