microsoft-cognitive - Azure 计算机视觉 API 返回默认值
问题描述
我目前正在使用计算机视觉 API 来获取图像尺寸以及检测颜色和成人内容。
API 返回包含宽度、高度和格式的正确元数据,但颜色或成人内容的所有值都作为默认值返回(零/空/假/“无”)。
如果有任何区别,我将调用美国西部的服务,该服务被列为启用了这些功能。另外,我在请求中指定我想要这些功能,这就是我收到这两个功能的对象的原因。
如何让这些信息相应地填充?
我刚刚用于今天的 Bing 图像的示例请求。我正在使用Microsoft.Azure.CognitiveServices.Vision.ComputerVision
来自 nuget 的包,其中包含该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"
}
}
解决方案
严格来说,JPEG 图像没有正确编码。特别是EOI
(图像结束)标记丢失。图像应以 结尾FF D9
,而您的图像仅以 结尾FF
。这就是图像分类器返回默认值而不是真实值的原因。
虽然可能会出现 (a) 返回响应具有欺骗性,或者 (b) API 应该返回 400 Bad Request 的情况,但尝试了解图像如何被截断一个字节可能更有益.
推荐阅读
- javascript - 无法在三个js中查看对象
- botkit - 使用 Botkit CMS 和 Botkit Web 设置错误
- html - 将鼠标悬停在图像上时更改文本,文本与图像位于不同的位置
- mysql - Mysql - 在块中插入数百万行
- angular - 获取动态控件Angular 6的选定值
- java - 是元素显示 android appium 自动化 java
- android - java.lang.RuntimeException:无法加载脚本。确保您正在运行 Metro 服务器(运行“react-native start”)或您的捆绑包
- javascript - async/await 的奇怪行为
- javascript - 关于 [a, b] = [b ,a] 时解构的 javascript 问题
- authentication - 如何控制 ASP.NET Core Cookie 身份验证的声明、票证和属性的序列化?