1

「複数のPNGを1つの大きなPNGファイルに結合する方法」のコードをstackoverflowから使用して、画像の後に画像を追加し、最終画像をGoogleのクラウドビジョンAPIに送信しました。

165 枚の画像を追加して最終的な画像を送信すると、顔が正しく検出されます。

しかし、170 枚の画像を追加して最終的な画像をクラウド ビジョン API に送信すると、顔は検出されません。

注: ファイル サイズは 4 MB の制限をはるかに下回っています。添付ファイルを参照してください

情報のリクエスト

結果Face165

結果Face170

Google の CLOUD VISION API を使用しています

public List<FaceAnnotation> detectFaces(Path path, int maxResults) throws IOException {
    byte[] data = Files.readAllBytes(path);

    AnnotateImageRequest request = new AnnotateImageRequest()
            .setImage(new Image().encodeContent(data))
            .setFeatures(ImmutableList.of(new Feature().setType("FACE_DETECTION").setMaxResults(maxResults)));
    Vision.Images.Annotate annotate = vision.images()
            .annotate(new BatchAnnotateImagesRequest().setRequests(ImmutableList.of(request)));
    // Due to a bug: requests to Vision API containing large images fail
    // when GZipped.
    annotate.setDisableGZipContent(true);

    BatchAnnotateImagesResponse batchResponse = annotate.execute();
    assert batchResponse.getResponses().size() == 1;
    AnnotateImageResponse response = batchResponse.getResponses().get(0);
    if (response.getFaceAnnotations() == null) {
        throw new IOException(response.getError() != null ? response.getError().getMessage()
                : "Unknown error getting image annotations");
    }
    System.out.println(response.toPrettyString());
    return response.getFaceAnnotations();
}

提供されるエラーは次のとおりです。ここで、行 263 は「throw new IOException」です。

Exception in thread "main" java.io.IOException: image-annotator::error(12): Image processing error!
at conf.FaceDetectApp.detectFaces(FaceDetectApp.java:263)
at conf.FaceDetectApp.main(FaceDetectApp.java:161)
4

0 に答える 0