Задача извлечения данных из изображений способом - это метод обучения искусственного интеллекта чтению. Главный этап этого задания - научить алгоритм видеть текст, который мы обычно называем этапом распознавания текста, а следующий этап - его обработка и преобразование в табличную форму для дальнейшего использования для анализа.

Извлечение текста из изображения считается простым процессом, но организация данных в виде таблиц - сложная часть.

Исполнительное агентство Европейской комиссии поручило компании Emproto создать платформу, которая извлекала бы важную информацию, такую ​​как ингредиенты и питание, из упаковки пищевых продуктов. Целью этого упражнения было проанализировать коэффициент полезного действия упакованных пищевых продуктов, доступных в Европейском Союзе.

Как мы выполнили всю задачу?

Обзор процесса:

Полевые работники агентства ходили в супермаркеты и снимали изображения с имеющихся пищевых упаковок. Затем изображения будут загружены на платформу. Платформа должна была обработать изображения и извлечь данные. Извлеченные данные необходимо организовать в табличном формате. Эти данные будут проверены и утверждены администратором.

Извлечение текста:

Мы начнем с наиболее общедоступного метода распознавания текста, известного как оптическое распознавание символов OCR. Оптическое распознавание символов позволяет конвертировать различные типы документов и изображений в редактируемый и доступный для поиска тип данных. Мы использовали Vision API (OCR). Google Cloud Vision API предлагает мощные предварительно обученные модели машинного обучения с помощью REST и RPC API. Присваивайте изображениям ярлыки и быстро классифицируйте их по миллионам предопределенных категорий. Обнаруживайте объекты и лица, читайте печатный и рукописный текст и создавайте ценные метаданные в своем каталоге изображений.

Организация текста:

Как упоминалось ранее, нам также необходимо преобразовать текст в табличную форму для дальнейшего анализа. Мы использовали функцию getBoundingBoxes (), которая дает объект Rect, соответствующий положению текста, затем мы получили координаты границ каждого текстового блока, после этого мы выполнили некоторые математические и матричные операции, чтобы превратить его в формат таблицы.

Одна из основных проблем, с которыми мы столкнулись при создании решения, заключалась в выборе правильного инструмента. Мы рассмотрели два таких инструмента: Tesseract OCR vs Vision API.

Наконец, мы продвинулись вперед с Vision API по следующим причинам:

Tesseract OCR дает нам только извлеченный текст. В Vision API есть классы, которые позволяют получить доступ к внутренним функциям.

В случае нескольких языков Tesseract требует обученных данных для каждого языка, тогда как в Vision API распознаватель метода = vision.getCloudTextRecognizer (options); позволяет нам распознавать как латинские, так и нелатинские языки.

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

· Нам не нужно обучать Vision API для получения лучших результатов, он уже хорошо обучен и находится на облачном сервере, он продолжает обучение, используя переданное вами изображение, поэтому он будет давать более точные изображения, когда вы попробуете больше изображений.

Пример. Вот образец изображения того, что мы достигли. Это необработанное изображение, снятое камерой, а извлеченные данные вы можете увидеть на втором изображении.

Вывод:

Точность полученных результатов дает нам несколько интересных возможностей в будущем. Мы можем полностью автоматизировать рабочий процесс, избавляя от необходимости утверждения вручную. Мы также можем использовать его для создания краудсорсингового механизма рекомендаций по питанию, который может направлять нас в наших диетических привычках.

Другой вариант использования, связанный с обработкой изображений:

Обнаружение объекта:

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

Обнаружение объектов - это общий термин для описания задач компьютерного зрения по идентификации объектов на цифровых фотографиях. Процесс включает определение наличия объектов с помощью ограничивающей рамки и типов классов обнаруженных объектов на изображении. Таким образом, входом здесь является фотография, изображение с одним или несколькими объектами. Выходные данные включают ограничивающие прямоугольники, определяемые точкой, шириной и высотой, а также метку для каждого прямоугольника.