名片識別,史上最簡單的集成攻略來啦!附有SDK包


前言

現如今,人際交往成為生活中必不可少的一部分,之間互相傳遞名片,記錄聯系信息,是必要的一步,名片承擔着對方的各種信息,姓名、公司、地址等等,一般情況下,我們會比對着錄入名片上的各種信息,一個個地敲擊手機鍵盤。如果有了名片識別,就可以扭轉這種現象,輕松完成名片識別,錄入名片信息。

名片識別技術介紹

名片識別采用OCR技術,將名片上的文字轉化識別為可進行編輯處理的相應文字,並可對識別后的名片信息進行分類管理。它支持通過拍照識別、二維碼識別、導入識別方式對名片信息進行采集,用戶只需將名片放在手機拍攝的預覽框內,便可自動完成對名片識別的一系列操作,非常方便。

在這里插入圖片描述

在這里插入圖片描述

開發前准備步驟

在開始API開發工作之前,您需要完成必要的開發准備工作,同時請確保您的工程中已經配置HMS Core SDK的Maven倉地址,並且完成了本服務的SDK集成。

android studio 安裝

很簡單,下載安裝即可。具體下載鏈接:

Android studio 官網下載鏈接:https://developer.android.com/studio
Android studio安裝流程參考鏈接:https://www.cnblogs.com/xiadewang/p/7820377.html

在項目級gradle里添加華為maven倉

打開AndroidStudio項目級build.gradle文件

在這里插入圖片描述

maven地址

在buildscript->repositories里面配置HMS SDK的maven倉地址

buildscript {
    repositories {
        maven { url 'https://developer.huawei.com/repo/' }
         
    }
}

在allprojects ->repositories里面配置HMS SDK的maven倉地址

allprojects {
    repositories {
        maven { url 'https://developer.huawei.com/repo/' }
         
    }
}

引入SDK

dependencies {
    // Text recognition SDK.
    implementation 'com.huawei.hms:ml-computer-vision-ocr:2.0.1.300'
    // Text recognition model.
    implementation 'com.huawei.hms:ml-computer-vision-ocr-cn-model:2.0.1.300'
    implementation 'com.huawei.hms:ml-computer-vision-ocr-jk-model:2.0.1.300'
    implementation 'com.huawei.hms:ml-computer-vision-ocr-latin-model:2.0.1.300'
}
  
}

清單文件

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

權限

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

動態權限申請

if (!(ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)) {
    requestCameraPermission();
}

開發重點步驟

1. 創建文本分析器MLTextAnalyzer用於識別圖片中的文字,使用自定義參數MLLocalTextSetting配置端側文本分析器。

MLLocalTextSetting setting = new MLLocalTextSetting.Factory()
        .setOCRMode(MLLocalTextSetting.OCR_DETECT_MODE)
        .setLanguage("zh")
        .create();
MLTextAnalyzer analyzer = MLAnalyzerFactory.getInstance()
        .getLocalTextAnalyzer(setting);

2. 通過android.graphics.Bitmap創建MLFrame,支持的圖片格式包括:jpg/jpeg/png/bmp,建議輸入圖片長寬比范圍:1:2到2:1。

MLFrame frame = MLFrame.fromBitmap(bitmap);

3. 將生成的MLFrame對象傳遞給“asyncAnalyseFrame”方法進行文字識別。

Task<MLText> task = analyzer.asyncAnalyseFrame(frame);
task.addOnSuccessListener(new OnSuccessListener<MLText>() {
    @Override
    public void onSuccess(MLText text) {
        // Recognition success.
         
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(Exception e) {
        // Recognition failure.
         
    }
});

4. 識別完成,停止分析器,釋放識別資源。

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

Demo效果

為了便於開發者更好的理解此場景,我們也做了一個demo app,展示名片識別的功能效果

在這里插入圖片描述

如果你對實現方式感興趣,可以在Github上下載源碼:https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides-V5/text-recognition-0000001050040053-V5#ZH-CN_TOPIC_0000001050750207__section16220018134717


原文鏈接:
https://developer.huawei.com/consumer/cn/forum/topic/0204399685438720133?fid=18
作者:timer


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM