[Обработка изображений, Машинное обучение, Искусственный интеллект] Зачем нужна еще одна система распознавания баркода?

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
29-Янв-2021 19:31

В сегодняшней статье на Хабре мы расскажем про очередную задачу распознавания. Рассмотрим проблему распознавания штрихкодов, которая очень актуальна в связи с непрерывным развитием системы маркировки и системы оплаты товаров по QR-коду в 2021 году.
Штрихкод, или баркод, безусловно, является важным изобретением человечества, которое изменило течение нашей жизни. В одной из своих статей на Хабре мы уже рассказывали, как эволюционировал этот способ кодирования информации.Сегодня не будем углубляться в техническую часть, а рассмотрим существующие проблемы при внедрении технологии распознавания баркодов. Действительно, откуда могут возникнуть проблемы, если штрихкодирование – это такой особый способ кодирования данных, который как раз призван обеспечить быстрое и беспроблемное считывание данных машиной? Все алгоритмы декодирования баркодов «разжёваны» до самых мелочей. Задача декодирования баркодов отлично решается без использования каких-либо нейронных сетей и прочих «страшилок» нашего века. Кажется, что технология распознавания баркодов – это тот «космодром», с которого должны взлетать в счастливое будущее большое количество opensource-библиотек.Оказывается, дело обстоит не совсем так. Первый звоночек о «негодности» всего бесплатного для решения задачи распознавания баркодов мы получили в виде очередного запроса от давнего клиента – одного коммерческого банка (из топ-10), технологичности которого могут позавидовать многие. Коллеги продемонстрировали, что популярные бесплатные библиотеки категорически не справляются даже с QR-кодами. Про коды типа AZTEC даже говорить не приходится (этот вид баркодов, который встречается на платежках, визуально похож на QR-код, но при этом кардинально отличается от него по сложности декодирования).Мы немного погрузились в задачу и очень быстро поняли, что практически все библиотеки «сдали свои позиции» на полпути, еще не дойдя даже непосредственно до распознавания. Ведь наибольшую трудность в задаче представляют точная локализация и ориентация распознаваемого штрихкода. На первый взгляд кажется, что задача должна решиться «в два счета», так как у многих штрихкодов в структуре присутствуют специальные черно-белые квадратные «мишени» для локализации. Но мы-то с вами знаем, что задача цветовой константности, решение которой как раз и позволяет понять, какие объекты каким образом окрашены, совсем непроста. Да и мишени, кстати, не всегда черно-белые и даже не всегда квадратные (дизайнерские решения, эксплуатирующие разные цвета и форму, очень мешают задаче распознавания баркода).
Чтобы окончательно проникнуться сложностью задачи распознавания штрихкодов, представьте, какие артефакты возникают при движении камеры, фотографировании в темноте со вспышкой, пересъемке штрихкода с монитора, попытке распознать заламинированный штрихкод. А еще представьте, как выглядит штрихкод с огромным количеством данных внутри (можно даже не представлять, а просто взять квитанцию оплаты, например, за детский садик).
Кстати говоря, мы уже провели первый этап исследований задачи поиска штрихкода на изображении. Ознакомиться с нашими статьями в 2020 году по тематике можно здесь и здесь. Есть еще одна причина, почему мы не остались в стороне от решения проблемы распознавания штрихкодов. В нашей стране семимильными шагами развивается технология оплаты по QR-кодам (в подтверждение моих слов смотрите, например, материал на vc.ru здесьздесь и здесь). Будучи участниками Глобального договора ООН и ярыми приверженцами ответственного ИИ, мы просто не могли допустить, чтобы рынок не оценил всех преимуществ оплаты по QR из-за фактической неспособности имеющихся бесплатных библиотек распознавания. И не будем забывать про набирающую обороты «Систему маркировки и прослеживаемости товаров». Все это натолкнуло нас на создание модуля распознавания штрихкодов Smart Code Engine.Чтобы проверить эффективность получившегося решения, мы самостоятельно создали небольшой набор фотографий QR-кодов. Единственное требование – фотографировать баркоды необходимо так, как это делают обычные пользователи. Ниже приводим примеры изображений из нашего датасета.
Как видите, изображения далеки от идеальных. Мы сравнили качество работы Smart Code Engine с двумя популярными opensource-решениями: OpenCV 4.5.1 (библиотека компьютерного зрения с открытым исходным кодом, которую часто применяют при создании системы с ИИ) и Zxing (библиотека с открытым исходным кодом для распознавания баркодов). В таблице ниже представлены результаты:ПродуктSmart Code EngineOpenCV 4.5.1Zxing Качество распознавания99%56%81%Как трактовать эти числа? Достаточно просто:
  • OpenCV серьезно проигрывает Zxing по качеству декодирования;
  • Smart Code Engine обеспечивает в 19 раз меньше ошибок, чем Zxing (с OpenCV даже и смысла сравнивать нет).
Возникает вопрос: «А на чем ошибаются рассмотренные системы?» Проведем анализ ошибок только для Smart Code Engine и Zxing. Ниже представлено единственное изображение, на котором ошиблось Smart Code Engine.
Действительно, непростой случай для систем машинного зрения (блики, геометрические искажения, сложный фон). Что же, будем работать дальше и повышать качество распознавания. Кстати, ZXing тоже не справился с этим изображением.А вот несколько примеров, на чем ошибается ZXing. Тоже не самые простые случаи (серьезные проективные искажения, высокая плотность, сложный фон).
На сегодняшний день Smart Code Engine обеспечивает качественное распознавание одно- и двумерных штрих-кодов из различных счетов и квитанций, включая счета за коммунальные и государственные услуги, налоговых документов и счетов, а также билетов, чеков, счетов-фактур, ценников, плакатов и объявлений. Модуль чтения QR-кодов способен читать инвертированные коды, а также устойчив к любой ориентации. Текущая версия Smart Code Engine поддерживает распознавание QR Code, AZTEC, PDF 417, Data Matrix, codabar, CODE_39, CODE_93, CODE_128, EAN_8, EAN_13, ITF, UPC_A, UPC_E.Smart Code Engine уже внедрен в мобильные приложения Тинькофф Банка, Рокетбанка, СДМ-Банка, Банка «Санкт-Петербург». Мы уверены, это только начало.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_obrabotka_izobrazhenij (Обработка изображений), #_mashinnoe_obuchenie (Машинное обучение), #_iskusstvennyj_intellekt (Искусственный интеллект), #_smart_engines, #_smart_code_engine, #_shtrihkod (штрихкод), #_qr_kod (qr код), #_raspoznavanie (распознавание), #_raspoznavanie_shtrihkoda (распознавание штрих-кода), #_iskusstvennyj_intellekt (искусственный интеллект), #_mashinnoe_obuchenie (машинное обучение), #_obrabotka_izobrazhenij (обработка изображений), #_sdk, #_blog_kompanii_smart_engines (
Блог компании Smart Engines
)
, #_obrabotka_izobrazhenij (
Обработка изображений
)
, #_mashinnoe_obuchenie (
Машинное обучение
)
, #_iskusstvennyj_intellekt (
Искусственный интеллект
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 16-Май 17:38
Часовой пояс: UTC + 5