Как с помощью возможности распознавания текста HUAWEI ML Kit реализовать функцию автоматического ввода номеров

    Общая информация


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


    Назначение


    Функция распознавания текста может применяться в самых разных ситуациях. Например, если вы сканируете счет ниже, укажите, что номер услуги начинается с «NO.DE SERVICIO», а также введите ограничение длины до 12 символов. Тогда вы быстро получите номер счета «123456789123» с помощью функции распознавания текста.


    image

    Аналогично, если вы сканируете скидочный купон ниже, настройте начало кода «FAVE-», ограничьте длину до 4 символов, чтобы получить код скидки «8329» и затем завершить платеж.


    image

    Полезно, правда? Вы также можете самостоятельно настраивать данные, которые сможет распознавать ваше приложение.


    Интеграция функции распознавания текста


    Итак, давайте узнаем, как обрабатывать номера счетов и скидочные коды.


    1. Подготовка


    Подробную информацию о необходимых подготовительных шагах вы можете найти на платформе HUAWEI Developer. Ниже мы кратко рассмотрим только ключевые моменты.


    1.1 Настройте адрес репозитория Maven в файле на уровне проекта build.gradle


    buildscript {
        repositories {
         ...
            maven {url 'https://developer.huawei.com/repo/'}
        }
    }
     dependencies {
       ...
            classpath 'com.huawei.agconnect:agcp:1.3.1.300'
        }
    allprojects {
        repositories {
         ...
            maven {url 'https://developer.huawei.com/repo/'}
        }
    }

    1.2 Добавьте настройки к заголовку файла


    После интеграции SDK добавьте следующие настройки к заголовку файла:


    apply plugin: 'com.android.application'
    apply plugin: 'com.huawei.agconnect'

    1.3 Настройте зависимости SDK в файле на уровне приложения build.gradle


    dependencies {
        // Import the base SDK.
        implementation 'com.huawei.hms:ml-computer-vision-ocr:2.0.1.300'
        // Import the Latin character recognition model package.
        implementation 'com.huawei.hms:ml-computer-vision-ocr-latin-model:2.0.1.300'
        // Import the Japanese and Korean character recognition model package.
        implementation 'com.huawei.hms:ml-computer-vision-ocr-jk-model:2.0.1.300'
        // Import the Chinese and English character recognition model package.
        implementation 'com.huawei.hms:ml-computer-vision-ocr-cn-model:2.0.1.300'
    }

    1.4 Добавьте эти выражения в файл AndroidManifest.xml для автоматического обновления модели машинного обучения


    <manifest>
        ...
        <meta-data
            android:name="com.huawei.hms.ml.DEPENDENCY"
            android:value="ocr" />
         ...
    </manifest>   

    1.5 Отправьте заявку на право использования камеры


    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    2. Разработка кода


    2.1 Создайте анализатор


    MLTextAnalyzer analyzer = new MLTextAnalyzer.Factory(context).setLanguage(type).create();

    2.2 Настройте обработку результатов распознавания для привязки анализатора


    analyzer.setTransactor(new OcrDetectorProcessor());

    2.3 Вызовите синхронный API


    С помощью встроенного LensEngine SDK создайте объект, зарегистрируйте анализатор и инициализируйте параметры камеры.


    lensEngine = new LensEngine.Creator(context, analyzer)
      .setLensType(LensEngine.BACK_LENS)
      .applyDisplayDimension(width, height)
      .applyFps(30.0f)
      .enableAutomaticFocus(true)
      .create(); 

    2.4 Вызовите метод run для запуска камеры и считывания данных камеры при распознавании


    try {
        lensEngine.run(holder);
    } catch (IOException e) {
        // Exception handling logic.
        Log.e("TAG", "e=" + e.getMessage());
    }

    2.5 Обработайте результаты распознавания, как показано ниже


    public class OcrDetectorProcessor implements MLAnalyzer.MLTransactor<MLText.Block> {
        @Override
        public void transactResult(MLAnalyzer.Result<MLText.Block> results) {
             SparseArray<MLText.Block> items = results.getAnalyseList();
             // Process the recognition result as required. Only the detection results are processed.
            // Other detection-related APIs provided by ML Kit cannot be called.
            …
        }
        @Override
        public void destroy() {
            // Callback method used to release resources when the detection ends.
        }
    }

    2.6 Остановите анализатор и освободите ресурсы распознавания после завершения распознавания


    if (analyzer != null) {
        try {
            analyzer.stop();
        } catch (IOException e) {
            // Exception handling.
        }
    }
    if (lensEngine != null) {
        lensEngine.release();
    }

    Демо


    Вот и все! Помните, что при необходимости вы можете расширить возможности функции. А теперь давайте посмотрим, как отсканировать транспортные чеки.


    image

    А также как отсканировать скидочный код, чтобы быстро получить скидку онлайн и совершить платеж.


    image

    Исходный код Github


    Github
    → Для получения подробной информации перейдите на наш официальный веб-сайт: HUAWEI ML Kit — О сервисе.

    Средняя зарплата в IT

    110 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 8 657 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

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

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое