Компания «МСТ Компани» завершила проект по распознанию пиксельных (или QR) кодов на потоковом видео
Следи за успехами России в Телеграм @sdelanounas_ruРезидент технопарка высоких технологий Свердловской области — МСТ Компани продолжает расширять сферу приложения своих компетенций, на этот раз освоено очередное направление — распознавание пиксельных (или QR) кодов на потоковом видео.
Максим Борноволоков, основатель компании, рассказал о старте работы: «Перед нами поставили следующую задачу: реализовать приложение распознавания пиксельных (или QR) кодов в потоковом видео. Основные ограничения — жесткий лимит на обработку одного кадра — не более 20 миллисекунд и точность распознавания в X %. Ещё один условием, но не таким жестким, была работа на Linux системе, что является для нас вполне обыденной задачей».
Разработчикам в качестве вводных данных было предоставлено несколько видео фрагментов, на которых можно было производить тестирование нашего приложения, однако из-за NDA показать здесь данные кадры не представляется возможным. Частично, что смогли рассказать разработчики, данные представляют собой черно-белое видео частотой 50 кадров в секунду, где пиксельный (или QR) код движется в направлении справа налево.
В МСТ Компани поделились подробностями выполнения поставленных задач: «Для работы с видео мы сразу взяли OpenCV и в качестве первого варианта решили проверить реализацию пустого цикла обработки на Python. После первого запуска мы поняли, что реализация данной идеи не принесет требуемого результата, и мы потратим слишком много времени на оптимизацию кода. Стоит отметить, что на обработку в среднем тратилось порядка 300 миллисекунд, и это при отсутствующем коде обработки!»
Затем разработчики «решили применить тяжелую артиллерию в виде C++. Реализацию программы разбили на три этапа: базовая реализация, этап оптимизация кода и финальная версия».
На этапе базовой реализации был написан почти аналогичный код программы на Python, но при этом добавлено распознавание QR кода на базе всё того же OpenCV. В среднем кадр обрабатывался за 15 миллисекунд, но были большие выбросы до 81 миллисекунды, что не вписывалось в заданные рамки задачи.
Основные претензии были к коду распознавания пиксельных (или QR) кодов. Применяя различные подходы, разработчики сталкивались с тем, что, Класс QRCodeDetector, из библиотеки OpenCV, не очень хорошо справлялся с распознаванием и не очень стабильно себя вёл по времени вычисления.
Поэтому был совершен плавный переход к этапу оптимизации кода. В МСТ Компани решили отказаться от QRCodeDetector и использовать стороннюю библиотеку quirc. Решение оказалось верным, и был сразу получен хороший прирост в скорости обработки — в среднем на кадр требовалось от 10 до 11 миллисекунд, да и точность распознавания стала гораздо выше.
По сути разработчики уже выполнили задачу, поставленную заказчиком, но решили пойти немного дальше и стали повышать достигнутую точность распознавания. Максим Борноволоков: «Самый простой метод с помощью которого мы ещё немного увеличили точность распознавания пиксельных (или QR) кодов — использование адаптивной бинаризации с помощью метрики mean».
В итоге, финальная версия приложения претерпела ещё несколько изменений. Среди самых значимых можно выделить — поддержку распознавания EAN кодов и адаптацию приложения для работы в виде linux демона.
Завершение работы над проектом резюмировал Максим Борноволоков: «В конечном итоге проект был завершен точно в срок. Клиент получил эффективный инструмент для распознавания пиксельных (или QR) кодов, который по точности превосходит первоначальные требования. Использование созданного нами программного обеспечения позволило клиенту в значительной степени оптимизировать производственный процесс, и снизить затраты».
Обладая большим опытом в реализации нестандартных и сложных проектов, Команда МСТ готова разработать даже самые требовательные программные решения для оптимизации процессов на предприятии.
МСТ Компани профессионально занимается разработкой и внедрением IT решений и сервисов для малого, среднего и крупного бизнеса уже на протяжении более 9 лет. Среди клиентов компании Почта России, DHL, DPD, несколько десятков банков, включая СКБ и Точка-банк, авиакомпании AzurAir, ИжАвиа, RedWings, ж/д и автотранспортные организации, промышленные предприятия, к примеру, АО «КМЗ».
Кстати, а вы знали, что на «Сделано у нас» статьи публикуют посетители, такие же как и вы? И никакой премодерации, согласований и разрешений! Любой может добавить новость. А лучшие попадут в телеграмм @sdelanounas_ru. Подробнее о том как работает наш сайт здесь👈