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

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

Жалко, что не получилось перейти. Тоже подумывал об этом пару лет как, обрадовался уже, что осталось только повторить, но нет. NFC делал с использованием github.com/devnied/EMV-NFC-Paycard-Enrollment, но там много зависит от самих карт — некоторые не возвращают часть полей, которые можно вытащить оптическим распознаванием.
Я когда изучал как сделать распознавание EMV карт с помощью NCF, также к этой библиотеке пришёл, но как верно подмечено, она не абсолютно на всех картах гарантирует работу. Как я понял, нужно понимать с какими картами будет работать ваше приложение, на них тестить и уже в зависимости от этого принимать решение использовать библиотеку или нет.

К слову в том же репозитории, где лежит сэмпл к статье, есть отдельная ветка с рабочим прототипом распознавания EMV карт с помощью этой библиотеки.

Могу ошибаться, но разве нет уже обученных моделей для on-device части? Судя по всему сильно влияет качество модели, а каждый раз на каждом устройстве заново учить само по себе звучит не очень. Всё таки вектор замены звучит слишком вкусно, а вот исход печальный конечно.

Да, всё верно, для on-device распознавания используются уже обученные модели и в данном случае мы не обучали свои модели, а использовали те, что предоставляет нам ML Kit (и Google и Huawei). Мы специально прописывали в манифесте meta-data tag, чтобы эти модели скачивались при установке приложения (без тэга они бы скачивались при первом использовании ML Kit распознавания).

Вы пробовали поиграть с форматом, размером и масштабированием картинок для ML Kit? Ну и картинки не вживую брать с камеры, а из тестового набора?

В моих экспериментах ML Kit очень неплохо распознает цифры, но он чувствителен к фону и возможно к масштабу, и рекомендуют брать картинки в низком разрешении. Простое растягивание картинки по горизонтали процентов на 20 и наложение ч/б фильтра у меня улучшало результат. Ну и еще кадр можно обрезать по размеру строки с цифрами на карте.

Я пробовал менять разрешение фреймов превью, которые с камеры идут, но не помогло. Может быть стоило ещё что-то попробовать(растягивание, наложение ч/б фильтра, как вы предлагаете), но у нас была безотказно работающая альтернатива в виде card.io и мы решили, что дальше тратить время на ML Kit не стоит. Всё таки и у Google и у Huawei это заявлено как TextRecognition и он общего назначения, а здесь задача специфичная и цифры немного странно выглядят и фон почти всегда картинка. Если бы требовалось всё-таки сделать распознавание номера через камеру и уйти от card.io я бы смотрел уже в сторону специфичных моделей именно для распознавания номеров карт, как выше Александр предложил.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий