Обнаружение текста на семи сегментном дисплее через Tesseract OCR

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

Основная проблема, с которой я столкнулся сейчас, - это текстовые изображения со светодиодным/ЖК-фоном, которые не распознаются Tesseract, и из-за этого набор тренировок не генерируется.

Может ли кто-нибудь направлять меня в правильном направлении, как использовать Tesseract с Seven Segment Display (LCD/LED background), или есть ли другая альтернатива, которую я могу использовать вместо Tesseract.

LED background image 1LED background image 2Meter 1 with solid sheet backgroundenter image description hereenter image description here

Ответы

Ответ 1

Это похоже на задачу предварительной обработки изображения. Tesseract действительно предпочел бы, чтобы его изображения были белыми по черному тексту в растровом формате. Если вы дадите ему то, что не так, он сделает все возможное, чтобы преобразовать его в этот формат. Это не очень понятно, как это сделать. Используя некоторый инструмент манипуляции с изображениями (мне кажется, как imagemagick), вам нужно сделать изображения более удовлетворенными tesseract. Легким первым проходом может быть гауссовское размытие с малым радиусом, порог с довольно низким значением (вы пытаетесь сохранить только черный цвет, поэтому 15% кажется правильным), а затем инвертируйте изображение.

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

Ответ 2

https://github.com/upupnaway/digital-display-character-rec/blob/master/digital_display_ocr.py

Было ли это использование openCV и tesseract, а также обучаемых данных "letgodigital"

-ступенчатые функции включают обнаружение границ и извлечение отображения с использованием самого большого контура. Затем пороговое изображение использует otsu или бинаризацию и передает его через функцию ptyesseracts image_to_string.

Ответ 3

Взгляните на этот проект:

https://github.com/arturaugusto/display_ocr

Здесь вы можете загрузить подготовленные данные для 7-сегментного шрифта и python script с некоторыми возможностями предварительного процесса.