[Разработка под Android, Машинное обучение] Как с помощью возможности распознавания текста HUAWEI ML Kit реализовать функцию автоматического ввода номеров

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
18-Сен-2020 14:31

## Общая информация
В предыдущей статье мы рассказали о том, как с помощью возможности распознавания текста HUAWEI ML Kit создать функцию привязки банковских карт. Пользователям достаточно загрузить фотографию своей карты, и приложение автоматически распознает всю важную информацию. Это значительно облегчает ввод данных банковской карты. Но можно ли сделать то же самое со счетами и скидочными купонами? Конечно, можно! В этой статье мы покажем вам, как с помощью возможности распознавания текста HUAWEI ML Kit создать функцию автоматического ввода номеров счетов и скидочных кодов.
## Назначение
Функция распознавания текста может применяться в самых разных ситуациях. Например, если вы сканируете счет ниже, укажите, что номер услуги начинается с «NO.DE SERVICIO», а также введите ограничение длины до 12 символов. Тогда вы быстро получите номер счета «123456789123» с помощью функции распознавания текста.

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

Полезно, правда? Вы также можете самостоятельно настраивать данные, которые сможет распознавать ваше приложение.
## Интеграция функции распознавания текста
Итак, давайте узнаем, как обрабатывать номера счетов и скидочные коды.
### 1. Подготовка
Подробную информацию о необходимых подготовительных шагах вы можете найти на платформе [HUAWEI Developer](https://developer.huawei.com/consumer/en/doc/develo...s/ml-process-4).
Ниже мы кратко рассмотрим только ключевые моменты.
#### 1.1 Настройте адрес репозитория Maven в файле на уровне проекта build.gradle
```javascript
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 добавьте следующие настройки к заголовку файла:
```javascript
apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'
```
#### 1.3 Настройте зависимости SDK в файле на уровне приложения build.gradle
```javascript
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 для автоматического обновления модели машинного обучения
```javascript

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

```
#### 1.5 Отправьте заявку на право использования камеры
```javascript
<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 Создайте анализатор
```java
MLTextAnalyzer analyzer = new MLTextAnalyzer.Factory(context).setLanguage(type).create();
```
#### 2.2 Настройте обработку результатов распознавания для привязки анализатора
```java
analyzer.setTransactor(new OcrDetectorProcessor());
```
#### 2.3 Вызовите синхронный API
С помощью встроенного **LensEngine **SDK создайте объект, зарегистрируйте анализатор и инициализируйте параметры камеры.
```java
lensEngine = new LensEngine.Creator(context, analyzer)
.setLensType(LensEngine.BACK_LENS)
.applyDisplayDimension(width, height)
.applyFps(30.0f)
.enableAutomaticFocus(true)
.create();
```
#### 2.4 Вызовите метод run для запуска камеры и считывания данных камеры при распознавании
```java
try {
lensEngine.run(holder);
} catch (IOException e) {
// Exception handling logic.
Log.e(«TAG», «e=» + e.getMessage());
}
```
#### 2.5 Обработайте результаты распознавания, как показано ниже
```java
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 Остановите анализатор и освободите ресурсы распознавания после завершения распознавания
```java
if (analyzer != null) {
try {
analyzer.stop();
} catch (IOException e) {
// Exception handling.
}
}
if (lensEngine != null) {
lensEngine.release();
}
```
##Демо
Вот и все! Помните, что при необходимости вы можете расширить возможности функции. А теперь давайте посмотрим, как отсканировать транспортные чеки.

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

## Исходный код Github
Github:[https://github.com/HMS-Core/hms-ml-demo/tree/master...ext-Recognition)
Для получения подробной информации перейдите на наш официальный веб-сайт:[HUAWEI ML Kit — О сервисе](https://developer.huawei.com/consumer/en/hms/huawei-mlkit).
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_razrabotka_pod_android (Разработка под Android), #_mashinnoe_obuchenie (Машинное обучение), #_machine_learning, #_diy, #_development_for_android, #_razrabotka_pod_android (
Разработка под Android
)
, #_mashinnoe_obuchenie (
Машинное обучение
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 28-Сен 11:11
Часовой пояс: UTC + 5