Распознавание шестнадцатеричных чисел в Google Vision

#c# #google-cloud-vision

# #c# #google-cloud-vision

Вопрос:

Распознавание шестнадцатеричных чисел Google Vision OCR распознает шестнадцатеричные числа с ошибками очень часто (точность составляет около 60%). Например, когда я пытаюсь распознать отсканированное изображение с помощью muber «78 30 3D 61», Google OCR распознает его с текстом типа «78 30 30 61». Для распознавания OCR я использовал живую демонстрацию и клиент .NET Api с тем же неверным результатом.

Вот мой код на C #:

 var image = await Google.Cloud.Vision.V1.Image.FromFileAsync("c:\path\to\file.png");
var imageContext = new ImageContext();
imageContext.LanguageHints.Add("en");
imageContext.LanguageHints.Add("iw");
var recognizedText = await imageAnnotatorClientBuilder.DetectDocumentTextAsync(image, imageContext);
 

Обработка изображения, которую я пробовал, безрезультатно:

Есть ли какая-либо возможность изучить Google vision или указать, что изображение содержит шестнадцатеричные числа (например, ImageContext, но для шестнадцатеричных чисел)?

Кроме того, я выложил на Google Диск пример изображения с ошибками распознавания, чтобы вы могли попробовать его и в живой демонстрации Google.

Ответ №1:

На предоставленном изображении единственные шестнадцатеричные цифры, которые я вижу, — это те, которые помечены как блок 6 в Cloud Vision API [1]. Шестнадцатеричная система использует 16 символов (0-9, A-F), что может привести к неправильной маркировке символов Af, когда они окружены цифровыми символами. Возможное объяснение неправильной маркировки Vision API заключается в том, что он, вероятно, использует сверточные нейронные сети и учитывает контекст. Как это происходит в этом случае, ‘D’ может быть распознан как ‘0’, потому что он окружен цифрами, а Vision API не ожидает, что это будет буква.

Vision API использует уже обученные модели, и их нельзя изменить. В случае, если вас интересует только шестнадцатеричное число, о котором я упоминал выше, я бы посоветовал вам обрезать изображение и поискать модель, специально предназначенную для распознавания шестнадцатеричных чисел.

AutoML [2] позволяет обучать пользовательские модели машинного обучения. Взгляните на раздел sight, чтобы ознакомиться с документацией AutoML Vision [3]. Используя этот сервис, вы сможете обучать конкретные модели, соответствующие вашим требованиям.

[1] — https://cloud.google.com/vision/docs/drag-and-drop

[2] — https://cloud.google.com/automl

[3] — https://cloud.google.com/vision/overview/docs#automl-vision