1

我正在使用 React Native 和 Google Vision api 制作对象检测应用程序。当我发送水平图像时,我的应用程序运行良好。但是如果我发送高分辨率垂直图像,api会发现像该图像是水平的对象。如果我发送低分辨率垂直图像,api也可以正常工作。

在此处输入图像描述

第一张图片的分辨率是6936x9248(实际上它在三星图库中显示为9248x6936,我不知道为什么),第二张图片的分辨率是750x1000(它在图库中也是750x1000)。

这里是视觉对两个图像的响应。

对于第一张图片: [{"mid":"/j/5qg9b8","name":"Packaged goods","score":0.5010282,"boundingPoly":{"normalizedVertices":[{"x":0.23222321,"y":0.45171654},{"x":0.7493964,"y":0.45171654},{"x":0.7493964,"y":0.5577906},{"x":0.23222321,"y":0.5577906}]}}]

对于第二张图片:[{"mid":"/j/5qg9b8","name":"Packaged goods","score":0.6785547,"boundingPoly":{"normalizedVertices":[{"x":0.43387607,"y":0.23372115},{"x":0.5493168,"y":0.23372115},{"x":0.5493168,"y":0.75314826},{"x":0.43387607,"y":0.75314826}]}},{"mid":"/m/01g317","name":"Person","score":0.53238875,"boundingPoly":{"normalizedVertices":[{"x":0.16410054,"y":0.65503424},{"x":0.6280196,"y":0.65503424},{"x":0.6280196,"y":0.9973958},{"x":0.16410054,"y":0.9973958}]}}]

如您所见,结果是不同的。至少光剑的位置必须相同。我不知道为什么,存在图像方向问题。

这是我发送到 Vision api 的请求:

await fetch(config.googleCloud.api + config.googleCloud.apiKey, {
            method: 'POST',
            body: JSON.stringify({
                "requests": [
                    {
                        "image": {
                            "content": base64 of the image,
                        },
                        features: [
                            { type: "OBJECT_LOCALIZATION", maxResults: 15 },
                        ],
                    }
                ]
            })
        });

问题是我的要求吗?

4

0 回答 0