文章目錄
- 一、Core Vision Kit簡介
- 場景介紹
- 約束與限制
- 二、通用文字識別
- 三、人臉檢測
一、Core Vision Kit簡介
Core Vision Kit(基礎視覺服務)是機器視覺相關的基礎能力,例如通用文字識別(即OCR,Optical Character Recognition,也稱為光學字符識別)、人臉檢測、人臉比對以及主體分割等能力。
您可以結合Vision Kit的UI控件能力(例如:活體檢測),提升應用的智能化、便捷化交互體驗。
場景介紹
Core Vision Kit可應用于各種場景,提升用戶體驗和應用效率。以下是一些典型的應用場景:
- 通用文字識別:可用于掃描和識別文檔、名片、票據等印刷品中的文字內容,方便用戶快速錄入和存儲信息。
- 人臉檢測:應用于相冊管理、照片美化等功能中,也可以用于自動檢測和定位照片中的人臉。
人臉比對:常用于人臉認證、考勤打卡、門禁系統等需要驗證用戶身份的場景。 - 主體分割:可以檢測出圖片中區別于背景的前景物體或區域(即“顯著主體”),并將其從背景中分離出來,適用于需要識別和提取圖像主要信息的場景,廣泛使用于前景目標檢測和前景主體分離的場景。
- 多目標識別:幫助開發者從圖片中識別常見的目標對象(動物、植物、建筑物、人、人臉、文本、表格等)并給出位置信息。通常用于端到端業務場景的前置檢測功能,根據檢測結果完成后續功能業務的入口提示,比如視覺搜索,文本檢測。
- 骨骼點檢測:人體骨骼關鍵點檢測,主要檢測人體的一些關鍵點,通過關鍵點描述人體骨骼信息。具體應用主要集中在智能視頻監控,病人監護系統,人機交互,虛擬現實,人體動畫,智能家居,智能安防,運動員輔助訓練等等。
約束與限制
AI能力 | 約束 |
---|---|
文字識別 | 支持的圖片格式:JPEG、JPG、PNG。/支持的語言:簡體中文、英文、日文、韓文、繁體中文。/文本長度:不超過10000字符。/支持文檔印刷體識別,在識別手寫字體方面能力有所欠缺。/輸入圖像具有合適成像的質量(建議720p以上),100px<高度<15210px,100px<寬<10000px,高寬比例建議10:1以下,接近手機屏幕高寬比例為宜。/文本與拍攝角度夾角在正負30度范圍內。 |
人臉檢測 | 輸入圖像具有合適的成像質量(建議720p以上),224px<高度<15210px,100px<寬度<10000px高寬比例建議10:1以下,接近手機屏幕高寬比例為宜。/不支持同一用戶啟用多個線程。 |
人臉比對 | 當前功能只支持1v1人臉比對。/輸入的兩張圖像都需要合適的成像質量(建議720p以上),224px<高度<15210px,100px<寬度<10000px,高寬比例建議10:1以下,接近手機屏幕高寬比例為宜。 |
主體分割 | 某個物體占比不小于原圖大小的千分之五才會被認定為“主體”,才會支持分割。/輸入圖像具有合適成像的質量(建議720p以上),20px<高度<9000px,20px<寬度<9000px,高寬比例建議3:1以下,接近手機屏幕高寬比例為宜。 |
多目標識別 | 輸入圖像具有合適成像的質量(建議720p以上),100px<高度<10000px,100px<寬<10000px,高寬比例建議5:1以下,接近手機屏幕高寬比例為宜。/圖片中的物體占比需要大于0.1%。 |
骨骼點檢測 | 輸入圖像具有合適成像的質量(建議720p以上),100px<高度<10000px,100px<寬度<10000px,高寬比例建議5:1以下,接近手機屏幕高寬比例為宜。 |
說明
Core Vision Kit的特性支持多用戶同時接入,但是不支持同一用戶并發調用同一個特性,如同一個特性被同一進程同一時間多次調用,則返回系統繁忙錯誤,不同進程調用同一特性,則同一時間只有一個進程業務在處理,其他進程進入隊列排隊。
二、通用文字識別
通用文字識別,是通過拍照、掃描等光學輸入方式,將各種票據、卡證、表格、報刊、書籍等印刷品文字轉化為圖像信息,再利用文字識別技術將圖像信息轉化為計算機等設備可以使用的字符信息的技術。
- 可以對文檔翻拍、街景翻拍等圖片進行文字檢測和識別,也可以集成于其他應用中,提供文字檢測、識別的功能,并根據識別結果提供翻譯、搜索等相關服務。
- 可以處理來自相機、圖庫等多種來源的圖像數據,提供一個自動檢測文本、識別圖像中文本位置以及文本內容功能的開放能力。
- 支持特定角度范圍內的文本傾斜、拍攝角度傾斜、復雜光照條件以及復雜文本背景等場景的文字識別。
約束與限制
該能力當前不支持模擬器。
開發步驟
- 在使用通用文字識別時,將實現文字識別的相關的類添加至工程。
import { textRecognition } from '@kit.CoreVisionKit';
- 簡單配置頁面的布局,并在Button組件添加點擊事件,拉起圖庫,選擇圖片。
Button('選擇圖片').type(ButtonType.Capsule).fontColor(Color.White).alignSelf(ItemAlign.Center).width('80%').margin(10).onClick(() => {// 拉起圖庫,獲取圖片資源this.selectImage();})
- 通過圖庫獲取圖片資源,將圖片轉換為PixelMap,并添加初始化和釋放方法。
async aboutToAppear(): Promise<void> {const initResult = await textRecognition.init();hilog.info(0x0000, 'OCRDemo', `OCR service initialization result:${initResult}`);
}async aboutToDisappear(): Promise<void> {await textRecognition.release();hilog.info(0x0000, 'OCRDemo', 'OCR service released successfully');
}private async selectImage() {let uri = await this.openPhoto();if (uri === undefined) {hilog.error(0x0000, 'OCRDemo', "Failed to get uri.");return;}this.loadImage(uri);
}private openPhoto(): Promise<string> {return new Promise<string>((resolve) => {let photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();photoPicker.select({MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,maxSelectNumber: 1}).then((res: photoAccessHelper.P