Подтвердить что ты не робот

Google Cloud Vision - номера и цифры OCR

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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