Некоторые из устаревших цифровых или аналоговых измерителей, используемых в полевых условиях, слишком сложно или дорого заменить. Например, старые счетчики воды / газа. Постоянное обнаружение давления важно для предотвращения обострения событий. Мы искали неинтервенционистские решения и решили поэкспериментировать с методами CV + ML. Для начала взяли в руки показания цифровых счетчиков. Это сообщение в блоге является частью серии экспериментов, о которых мы расскажем в следующих публикациях.

В наш набор инструментов входят: Raspberry Pi, PiCam и Movidius NCS.

Рассмотренные подходы

  1. Tesseract OCR
  2. Внимание OCR
  3. MNIST

Есть несколько вариантов решения этой проблемы. Их можно разделить на две большие категории: Оптическое распознавание символов и Глубокое обучение. Многие библиотеки в последнее время начали использовать модель на основе глубокого обучения как часть общего подхода к распознаванию текста. Мы оцениваем два подхода OCR и один подход глубокого обучения.

Результаты оценки

Tesseract OCR

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

Затем мы попытались создать изображение машинно-напечатанного текста, снятого камерой телефона. Это произвело такой мусор, что мы знали, что должны предварительно обработать изображение. Итак, мы сделали это. Результат был намного лучше, но кое-что все же упустил. Благодаря лучшей предварительной обработке нам удалось добиться 100% точности.

Накопив опыт, мы дали ему 7-сегментные светодиодные изображения отдельных цифр, и это было практически безнадежно. Мы могли бы изменить алгоритмы чтения светодиодов, но это отдельный проект.

Ниже приведены результаты некоторых изображений:

Attention OCR

Это давало нам ошибки, с которыми мы были слишком ленивы. Неправильно видеть ошибку в качестве первого вывода!

MNIST

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

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

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

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

Специально обученный MNIST (небольшой набор данных)

Затем мы переобучили модель с набором данных из 1152 изображений (цифры от 0 до 9). Набор данных был очень маленьким и состоял из ужасно предвзятых данных.

Даже после этого небольшого шага обучения мы могли видеть, как модель улучшается!

Результаты оценки

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