О проекте
Наш сервис - это финтех-продукт, который позволяет пользователям оплачивать покупки, просто сканируя QR-код на кассе. Однако текущий модуль сканирования работает нестабильно, мы ищем разработчика для jeho полной переработки.
Проблемы текущей версии
- Низкий процент распознавания именно банковских QR-кодов
- Ошибки при наличии в кадре нескольких QR-кодов (мульти-QR)
- Сбои при бликах, низком или неравномерном освещении, сильных наклонах и поворотах
- Некачественная работа на устройствах со старыми камерами
Цель задачи
Разработать надежный, масштабируемый и расширяемый модуль для распознавания QR-кодов. Решение предназначено для использования как в вебе, так и в мобильных приложениях (iOS/Android).
Типы QR-кодов, которые нужно поддерживать
Банковские QR
- Стандарт EMVCo
- Национальные платежные стандарты (включая форматы, принятые в РФ и СНГ)
- QR со сложной внутренней структурой (TLV)
Мульти-QR
- Обработка нескольких кодов в одной сцене
- Интеллектуальный выбор целевого кода (по размеру, положению в кадре или контексту)
Комбинированные QR
- QR с встроенным логотипом банка посередине
- QR внутри декоративной рамки или региона на терминале
- QR, частично перекрытые другими графическими элементами
Технические требования
Трансформации и окружение
- Уверенное распознавание при наклоне (перспективные искажения)
- Считывание при частичном перекрытии символов тенью или объектами
- Робастность к бликам, отражениям и глянцу (часто встречается на пластике терминалов)
- Работа при низкой освещенности или контровом свете
Качество изображения
- Компенсация размытия (движение камеры)
- Подавление визуального шума
- Валидное детектирование низкоконтрастных или крупнозернистых QR
Как мы видим обработку результатов
- Библиотека должна корректно перечислять все обнаруженные QR в кадре
- Автоматически выбирать приоритетный QR для равчетов (релевантный к реквизитам магазина/трасзации)
Готовы рассмотреть как готовую кастомную библиотеку, так и сильное улучшение существующих опен-сорс решений с индивидуальными доработками (дешифраторами для добавления валидации по определению - целей и банков).