Как стать автором
Обновить

Комментарии 11

Tesseract не может прочитать 27.02.1994? Там даже нет искажений. Зачем здесь вообще модели?

Там ведь в самом конце об этом говорится

У Tesseract с распознаванием чисел всё не так хорошо и просто, как с текстами. Даже на простых шрифтах рекомендуемые твики и black-/whitelist далеко не всегда срабатывают.

Что ж, посмотрим:

import pytesseract
pytesseract.pytesseract.tesseract_cmd = 'D:\\Tesseract-OCR\\tesseract.exe'
result = pytesseract.image_to_string(image, lang='eng', \
           config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')
print(result)

На выходе:
'27021994'

Картинку даже не пришлось resize.
Здравствуйте! Постараюсь разъяснить, почему мы решили не использовать Tesseract для нашего кейса.
Причины следующие:

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

2)Следующий важный аргумент — нам необходимо было деплоить модели и всю логику на мобилки. Размер Tesseract в районе 28 мегабайт. Ввиду таких ограничений нам нужно было уложиться в размер меньше мегабайта, а желательно и еще меньшего порядка, чтобы попутно увеличить скорость работы алгоритма, так как решение было сделано с расчетом, в том числе, и на мобильные устройства старых годов выпуска, которые не всегда имеют вшитые GPU.

3) На нашем тестовом сете пробовали прогонять как Tesseract, так и наши обученные модели. Результат, к примеру, на модели предсказывающей цифры, следующий: Tesseract(куда ниже 70% accuracy) vs Our_Model(в районе 94%). Еще раз повторюсь, что тестовый сет был зачастую искаженный, чтобы учесть больше разных кейсов.

Спасибо за Ваш интерес и вопросы.
1.Данные ваши вряд ли возможно посмотреть, так понимаю, ввиду их персонального характера?
2.Как вам удалось собрать модель с весами меньше мегабайта?
1. Да, Вы правы-данные чувствительны
2. За счет различных оптимизаций. Например, квантования, стрижки весов, подбора архитектуры на базе MobileNets, отказа от использования рекуррентных сетей
Строчка «Мы использовали второй вариант» повторяется два раза, а так, спасибо за статью!
Спасибо-поправили!

Классный проект, интересно было почитать вашу историю успеха!

Очень интересно, много ли времени заняло создание решения и сколько человек было в команде? Если, конечно, можете рассказать :)

Добрый день ! Не сразу заметил уведомления(улетели в спам в почте). Спасибо за Ваш отзыв и за то, что уделили время на прочтение статьи! Как таковых точных рамок по уделенному времени на проект сложно просчитать ввиду того, что его итеративно развивали(в том числе это продолжается и сейчас), улучшая при этом подходы, которые были ранее имплементированы в компонентах проекта. Помимо этого, если всплывают какие-то ошибки в распознавании, есть необходимость в тех.поддержке. По поводу команды- работало также несколько человек(до недавнего времени над проектом в части CV занимались от 2 до 4 человек(периодически отвлекаясь и на другие проекты) , в основном ML инженеры.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий