Чтение текста с изображения с помощью одной строки кода Python

глубокое обучение

Работа с изображениями — непростая задача. Вам, как человеку, легко посмотреть на что-то и сразу понять, на что вы смотрите. Но компьютеры так не работают.

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

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

В сегодняшнем посте я хочу продемонстрировать это. Хотя некоторые библиотеки будут установлены, это не займет много времени. Это библиотеки, которые вам нужны:

  • OpenCV
  • PyTesseract

OpenCV

Прямо сейчас эта библиотека будет использоваться только для загрузки изображений, и вам действительно не нужно много знать о ней заранее (хотя это может помочь, вы поймете почему).

Согласно официальной документации:

OpenCV (Библиотека компьютерного зрения с открытым исходным кодом) — это библиотека программного обеспечения для компьютерного зрения и машинного обучения с открытым исходным кодом. Цель OpenCV — предоставить общую инфраструктуру для приложений компьютерного зрения и ускорить использование машинного восприятия в коммерческих продуктах. OpenCV — это продукт с лицензией bsd, OpenCV позволяет предприятиям легко использовать и изменять код.

Короче говоря, вы можете использовать OpenCV для выполнения любых задач.преобразование изображений, довольно простая библиотека.

Если вы его не установили, в терминале будет просто строка:

pip install opencv-python

Вот и все. До этого все было просто, но скоро все изменится.

PyTesseract

Что это за библиотека?Согласно Википедии:

Tesseract — это механизм оптического распознавания символов для различных операционных систем. Это бесплатное программное обеспечение, выпущенное под лицензией Apache License версии 2.0 и спонсируемое Google с 2006 года.

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

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

Теперь немного сложно установить на дно. Если вы работаете в Linux, все сводится к несколькимsudo-apt getЗаказ:

sudo apt-get update
sudo apt-get install tesseract-ocr
sudo apt-get install libtesseract-dev

Я на Windows, так что процесс немного утомительный.

Сначала откройте этот URL-адрес: https://github.com/UB-Mannheim/tesseract/wiki, чтобы загрузить 32-разрядный или 64-разрядный установщик:

Сама установка так же проста, как несколько кликов Далее. Да, вам также нужно сделатьпип установить:

pip install pytesseract

Далее нам нужно сообщить Python, где установлен Tesseract. На машине с Linux мне не нужно этого делать, но это необходимо в Windows. По умолчанию устанавливаетсяProgram Files.

Если вы все сделали правильно, выполнение этого кода не должно привести к ошибкам:

получить текст

Начнем с легкого. Я нашел несколько бесплатных изображений с текстом, первое из них:

Это должно быть просто, возможно, Tesseract прочитает эти синие «объекты» как круглые скобки. Давай посмотрим что происходит:

Мое предположение было правильным. Однако это не проблема, вы можете легко решить эти проблемы с помощью некоторых приемов Python.

Следующий может быть сложнее:

Надеюсь, он не обнаружит букву «В» на монете:

Кажется, это работает хорошо.

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

прежде чем ты уйдешь

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

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

использованная литература

  1. https://opencv.org/about/
  2. https://en.wikipedia.org/wiki/Tesseract_(software)

Сводная станция блога о технологиях искусственного интеллекта Panchuang: http://docs.panchuang.net/PyTorch, официальная учебная станция на китайском языке: http://pytorch.panchuang.net/OpenCV, официальный китайский документ: http://woshicver.com/