Сейчас сложно представить будни современного человека без штрихкодов, они стали настолько неотъемлемой частью нашей жизни, что используются повсеместно. Мы встречаем их на товарах в магазинах, на необходимых медикаментах в больницах и не придаем им особого значения до тех пор, пока они не перестанут считываться. К сожалению, штрихкоды часто повреждаются по различным причинам, таким как ежедневный износ, брызги жидкости или загрязнения, что затрудняет их распознавание. Это может привести к ошибкам в учёте большинства важных объектов.
В настоящее время одними из самых популярных технологий, применяемых для идентификации товаров, являются различные виды маркировок и штрих‑кодов — как одномерных, так и двумерных, а также технология прямой маркировки деталей (DPM) и RFID‑метки.
Традиционные методы восстановления сильно повреждённых штрихкодов имеют свои ограничения. С появления QR-кодов важным направлением исследований стало их надежное сканирование и декодирование в различных средах. Существующие исследования в этой области в основном сосредоточены на повышении надежности QR-кодов через различные методы: коррекцию ошибок чтения, шумоподавление и улучшение изображений. Даже такая популярная технология глубокого обучения как GANscan, который применяется для захвата QR-кодов на быстро движущихся сканирующих устройствах — не решает проблему восстановления поврежденных QR-кодов.
Именно поэтому многие отечественные и зарубежные исследователи сейчас активно изучают возможность применения нейронных сетей для решения этой проблемы.
Исследование в этой области также ведётся и в нашем университете, на кафедре «Интеллектуальные системы в управлении и автоматизации», на которой успешно реализуются проекты по применению технологий машинного зрения в разных сферах жизни. Изучением особенностей использования нейронных сетей для распознавания поврежденных штриховых кодов занимаются магистр Максим Четыркин и старший преподаватель Данил Безумнов.
В рамках исследования был проведен анализ технологий компьютерного зрения, которые используются для распознавания испорченных штрихкодов, такие как Dynamsoft Barcode Reader и Socket Mobile C860, были также рассмотрены процессы разработки и тестирования подобных систем. Исследователи сформулировали функциональные требования к разрабатываемой системе и определили этапы, необходимые для их реализации.
«Технологии распознавания поврежденных маркировок применяются для их идентификации, отслеживания и верификации. Принцип работы системы по распознаванию поврежденных маркировок выглядит следующим образом: пользователь сканирует изображение с маркировкой при помощи специальной камеры, после чего нейронная сеть отмечает на видеопотоке расположение маркировки. Если программа не может распознать поврежденную маркировку, то нейросеть, основанная на алгоритмах нейронного восстановления изображения, восстановит информацию с маркировки», — рассказал Данил Безумнов.
В ходе исследования отмечено, что на распознавание штрих-кода могут негативно влиять низкое разрешение изображения (недостаточная плотность пикселей), неправильное расположение, перекрытие штрих-кода другими предметами, качество материала, цвет и отражающая способность упаковки, на которую нанесен штрих-код.
Как отмечает Максим Четыркин, точность распознавания штрих-кодов во многом зависит от качества изображения. Для достижения приемлемой точности рекомендуется минимальное разрешение изображения не менее 200 точек на дюйм (DPI). Высокое разрешение обеспечивает большее количество точек на дюйм и, следовательно, более четкое изображение. Это особенно важно для обеспечения необходимой плотности пикселей, особенно в случае мелких полос и промежутков в штрих-коде. Одномерные штрих-коды обычно требуют не менее трех пикселей на самую маленькую полосу или промежуток, в то время как для двухмерных требуется около пяти пикселей.
Для создания программного обеспечения, способного распознавать поврежденные штриховые коды с помощью нейросетей, исследователи предлагают следующую последовательность действий:
1. Сбор данных:
Необходимо собрать обширный набор данных, включающий как поврежденные, так и чёткие штриховые коды. Важно провести их аугментацию и очистку для обеспечения эффективного обучения модели.
2. Разработка архитектуры:
Модель должна включать генеративно-состязательные сети (GAN) и архитектуру U-Net, специально адаптированные для восстановления поврежденных штриховых кодов. На этом этапе важно определить оптимальные гиперпараметры, которые обеспечат наилучшее обучение модели.
3. Обучение:
Модель обучается на подготовленных данных с использованием выбранных гиперпараметров. Предварительно, важно оценить её производительность на валидационных данных и, при необходимости, внести коррективы для повышения эффективности.
4. Тестирование:
Модель проверяется на отложенном тестовом наборе данных для оценки её способности восстанавливать поврежденные штриховые коды. Анализируются метрики качества восстановления, что позволяет оценить обобщающую способность модели.
Наши исследователи продолжают работать над улучшением всех этапов разработки системы, уделяя особое внимание адаптации моделей к различным условиям и сценариям использования. Внедрение нейронных сетей для восстановления поврежденных штриховых кодов остается актуальным и перспективным направлением исследований в области машинного зрения, обеспечивая стабильность и надежность систем идентификации продукции в различных сферах промышленности и торговли.
Комментарии (5)
Duxlab
19.11.2024 18:44Имхо, штрихкод настолько прост, что использование какого-либо ИИ нецелесообразно вовсе.
Ну может какой-то слегка усиленный микронейронкой алгоритм/фильтр.
Однако если данных в принципе нет — это угадайка.
А если они таки есть — их можно восстановить фильтром при хорошей камере. Главное — установить ориентацию штрихов поточнее, чтобы можно было понять принадлежность каждой оставшейся крапинки.kenomimi
19.11.2024 18:44ИИ нужна не столько в распознавании, сколько в определении координат ШК, и его наличия в целом на картинке. Тот же ZXing не распознает ШК хорошо, пока не вырежешь его из документа - на баночках и прочем товаре сканирует отлично, но как документ, особенно с таблицами и мелкими картинками, так ой всё. Весь мозг сломали над сей задачей, и мелкая нейросетка в итоге дала в разы лучший результат по скорости определения, чем всякие алгоритмические методы.
Чтение и восстановление поврежденнных нейросеткой - идея неплохая, но в узких применениях, она не будет универсальной. Например, на товарах - мы точно знаем, какой у нас ШК, какие его данные по маске и по статистике - угадайка при должном обучении нейросети будет весьма точной.
Kitsok
А у этой технологии есть практическое, экономически оправданное применение?
MountainGoat
Конечно нет, ИИ само себя не вкрутит. У QR гибко настраивается количество информации для восстановления, а значит можно сделать их читаемыми из очень плохого состояния без всяких этих вот.