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

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

В текущей реализации какой процент верного распознования получается?
Занимаюсь очень похожей задачей, но популярные сетки (YoloV3 и т.п.) не дают хорошего результата, если использовать регионы на фото в чистом виде. Пытаюсь улучшить показатели распознавания предварительной обработкой, перед тем как скормить сетке. Есть масса нюансов, когда объекты могут пересекаться, а то и сливаться с фоном и нужно очень точно определять градиент перехода объекта к объекту. Как у вас такие случаи распознаются?
Yolo у нас тоже так себе распознает (хотя V3 еще не пробовали). Но что касается сложных кейсов, то такое хорошо решается расширением датасета.
Я так понимаю, у вас классическая задача по сегментации? Или вы делается пост обработки еще для каких-то других вещей?
Да, сегментация. Ну у меня не пост обработка, а пре. С целью преобразовать входной набор перед распознанием и обучением, дабы облегчить жизнь сети. А то нейронке совсем плохо в части ошибок при работе с реальными данными. Не знаю, может это тупик. С другой стороны автопилот Теслы работает тоже не с чистыми данными, а с предварительно преобразованными.
Но на 10к примерах нейронной сети проще их запомнить, чем генерализовать алгоритм, поэтому нужна аугментация.

Тоже так думали. Но на практике логика немного другая оказывается. Делали распознавание ценников однажды (описание текстовое +цена). У нас по тексту было где-то 6-7 тысяч неплохо размеченных ценников (где ~95% были правильные). В итоге нейронка давала где-то 80% точность (сейчас числа условные, точно не помню, давно было).
При этом датасет был достаточно разнообразный по разным магазинам, камерам и типам продуктов.
Нам было понятно, что если точность датасета вывести под 100%, то где-то треть ошибок уйдёт. Но это надо было заново перепроверить весь датасет.

И тут заказчик решил запустить нашу нейронку обучиться не по маленькому хорошему датасету, а по всему продуктовому, где было где-то тысяч 300 изображений. Который нефига не сбалансированный, и имел точность разметки ниже 90%

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

Так что не советую недооценивать объём больших данных. Не даром же все современные нейронки используемые в медицине обучаются по очень большым объёмам плохо размеченных данных (а потом тюнингуются под задачку).
Интересный опыт, спасибо! А у вас был свой OCR, или вы использовали свою нейронку поверх гуглового для умного парсинга?
Изначально заказчик использовал Google, мы целиком свою переделали.
Пока обучали по маленькой базе — ошибок стало где-то на 30-40% меньше чем у Google, когда переобучили по большой — сильно лучше.

Но у нас достаточно много разных OCR сеток под разные проекты. Из 3-4 выбирали.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории