前言
現如今,人際交往成為生活中必不可少的一部分,之間互相傳遞名片,記錄聯系資訊,是必要的一步,名片承擔著對方的各種資訊,姓名、公司、地址等等,一般情況下,我們會比對著錄入名片上的各種資訊,一個個地敲擊手機鍵盤,如果有了名片識別,就可以扭轉這種現象,輕松完成名片識別,錄入名片資訊,
名片識別技術介紹
名片識別采用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 (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST);
開發重點步驟
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://www.uj5u.com/qita/172426.html
標籤:其他
下一篇:影片|深入淺析
