13

Я пытался реализовать программу OCR с Python, которая считывает номера с определенным форматом XXX-XXX. Я использовал Google Cloud Vision API Text Recognition, но результаты были ненадежными. Из 30 высококонтрастных изображений с разрешением 1280 x 1024 bmp только небольшая часть привела к правильному выходу или, по крайней мере, включила правильный результат в результаты. Программа имеет тенденцию опускать некоторые цифры, выводить их на неанглийские языки или скрывать несколько специальных символов.Google Cloud Vision - Числа и цифры OCR

Цель состоит в том, чтобы, по крайней мере, выводить правильные цифры последовательно, не имеет значения, если результаты посыпаны другим нежелательным продуктом. Есть ли способ помочь программе распознавать числа лучше, например, ограничить результаты конкретным форматом или только номерами?

ответ

4

В настоящий момент невозможно добавить ограничения или предоставить определенный ожидаемый формат номера для запросов API Vision, как упомянуто here (руководителем проекта Cloud Vision API).

Вы также можете проверить все возможные параметры запроса (в API reference), ничего не указывая, чтобы указать формат номера. В настоящее время только варианты для:

  • latLongRect: указать расположение изображения
  • languageHints: с указанием ожидаемого языка text_detection (список поддерживаемых языков here)

Я предполагаю, что вы уже проверили мультипликатор ответы (с разными включенными областями изображений), чтобы увидеть, можете ли вы восстановить текст, используя расположение разных цифр?

Обратите внимание, что API Vision и text_detection не оптимизированы специально для ваших данных, если у вас будет много аннотированных данных, это также возможность фактически создать свою собственную модель с помощью Tensorflow. This blogpost объясняет системную настройку для обнаружения номерных знаков (с определенным номером формата). Весь код доступен по адресу Github, и проблема кажется очень связанной с вашей.

2

Я не могу сказать вам, почему это работает, возможно, это связано с тем, как язык читается, o vs 0, l vs 1 и т. Д. Но всякий раз, когда я использую OCR, и я специально ищу номера, я прочитали, чтобы установить язык обнаружения на «Корейский». Он работает исключительно хорошо для меня и сильно повлиял на точность.