文章目录
- 一、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