首页 > 解决方案 > 使用 AEM 进行 GCP 标签检测返回 400 响应

问题描述

我正在尝试对 aem 资产使用 Google 云视觉标签检测。我正在通过以下方式将资产转换为输入流:

AssetManagerassetMgr = resolver.adaptTo(AssetManager.class);
资产 myAsset = assetMgr.getAsset(payload);

再现 myRen = myAsset.getRendition(payload + Constants.originalRendition); InputStream 是 = myRen.getStream();

获得流媒体后,我以这种方式点击服务

但我得到以下回复:

{ "code" : 400, "errors" : [ { "domain" : "global", "message" : "请求必须指定图像和特征。", "reason" : "badRequest" } ], "message" : "请求必须指定图像和特征。", "status" : "INVALID_ARGUMENT" }

以同样的方式为谷歌人脸检测创建 InputStream 工作正常。

标签: javagoogle-cloud-platformaemgoogle-cloud-vision

解决方案


IOUtils.toByteArray()您似乎正在使用该方法将图像转换为字节流。由于用于检测标签的代码与检测人脸的代码非常相似,除了将图像转换为字节流的部分,并且您说可以很好地检测人脸,我会尝试使用该类转换图像ByteString. 此类在此处用于检测标签的文档中的代码示例中使用。


推荐阅读