Я пытаюсь DOCUMENT_TEXT_DETECTION для распознавания текста со сканированными изображениями.
Изображения в формате JPEG, и разрешение также достаточно хорошее, как указано здесь
Ниже приведенМетод Java, который я использую для извлечения объекта полного ответа.
private static void extractText(String imagePath) throws IOException {
int MAX_RESULTS = 10000;
// Instantiates a client
try (ImageAnnotatorClient vision = ImageAnnotatorClient.create()) {
// The path to the image file to annotate
String fileName = imagePath;
// Reads the image file into memory
Path path = Paths.get(fileName);
byte[] data = Files.readAllBytes(path);
ByteString imgBytes = ByteString.copyFrom(data);
// Builds the image annotation request
List<AnnotateImageRequest> requests = new ArrayList<>();
Image img = Image.newBuilder().setContent(imgBytes).build();
Feature feat = Feature.newBuilder().setType(Type.DOCUMENT_TEXT_DETECTION).setMaxResults(MAX_RESULTS)
.build();
AnnotateImageRequest request = AnnotateImageRequest.newBuilder().addFeatures(feat).setImage(img).build();
requests.add(request);
System.out.println("Request Generated for : " + fileName);
// Performs label detection on the image file
BatchAnnotateImagesResponse response = vision.batchAnnotateImages(requests);
List<AnnotateImageResponse> responses = response.getResponsesList();
System.out.println("Recived Response : " + responses.size());
System.out.println("Full Response of : " + fileName + " \n\n" + new Gson().toJson(responses));
} catch (Exception e) {
e.printStackTrace();
}
}
Он работает, как и ожидалось, с парой изображений, которые я пробовал изначально.
Я получаю сообщение об ошибке ниже для 4 изображенийЯ пытался.
Я уже пытался загрузить изображения в Try It портал Google Vision. Там тоже не работает.
[
{
"bitField0_": 0,
"faceAnnotations_": [],
"landmarkAnnotations_": [],
"logoAnnotations_": [],
"labelAnnotations_": [],
"localizedObjectAnnotations_": [],
"textAnnotations_": [],
"error_": {
"bitField0_": 0,
"code_": 3,
"message_": "Bad image data.",
"details_": [],
"memoizedIsInitialized": -1,
"unknownFields": {
"fields": {},
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 0
},
"memoizedIsInitialized": -1,
"unknownFields": {
"fields": {},
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 0
}
]
Я использую зависимость ниже maven для доступа к Vision API
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-vision</artifactId>
<version>1.96.0</version>
</dependency>