通过以上的差异分析,我们可以看到文本类服务既存在场景、服务集成上的差异,也存在某些关联,比如文本识别和通用卡证识别服务实际上用了相同的通用模型,下面小编从技术上来对以上的差异做一些分析和解释。前面通过编译依赖分析已经介绍过,文本类服务通常需要集成基础SDK和模型包,有的服务则需要集成插件用于生成校准框,那么模型包又是个什么东西呢?对机器学习有一定了解的小伙伴可能比较清楚,机器学习通常分为收集训练样本、特征抽取、数据建模、预测等几部分,模型实际上就是机器学习中通过训练样本、特征抽取等动作学习到的一个“映射函数”。在华为HMS ML Kit机器学习服务中,仅仅有这个映射函数还不行,还需要有个东西可以执行它,我们可以称之为推理框架,此外还有一些算法需要对图像进行前后处理,比如把图像帧转换为对应的特征向量。为了便于理解,我们统称以上所有内容为模型文件。为了使这些模型文件可以运行在手机上,还需要对这些模型文件进行优化处理,比如优化在手机终端上的运行速度,以及减小模型文件的大小等等。
差异和关联分析 有了以上基础概念介绍,再来看下文本类服各服务间的差异和关联,为了方便理解,小编画了张图,如下所示:
文本识别
使用的是通用文本数据集进行的训练,只要是文本都可以识别,他的优点是适用范围广,灵活度高,只要是文字内容,均可以识别。
通用卡证识别
和文本识别采用的数据集是相同的,因此模型文件也并无差别,只是增加了通用卡证插件,主要的作用是确保用户将卡证对准相机正中位置,另外对反光、模糊图像进行识别和过滤,不满足要求提示用户重新调整,这样就可以提高卡证的识别准确率。
身份证&银行卡识别
身份证、银行卡识别服务,采用了身份证、银行卡的专有数据训练集,我们都知道诸如银行卡上的文字跟普通的印刷体问题有很大差别,而且存在凸起现象,如果使用通用模型的话,则很难达到非常高的准确率,采用银行卡、身份证专有数据集进行训练,可以让身份证、银行卡识别准确率更高,此外还针对身份证、银行卡做了针对性的识别前处理,比如可以实时动态检测图像质量和倾斜角度,可以生成对准框用于限制卡证的位置摆放,如果模糊、反光和未对准校准框则提示用户重新对准。
通过以上分析,总结如下:
维度 总结说明场景 1、文本识别适用范围更广泛,适合任何需要识别文字文本的场景2、身份证&银行卡识别适用于专门的身份证银行卡识别场景,可以提供超高的识别准确率3、通用卡证可以适用于所有卡证类的识别场景,并且能够提供相对较高的识别准确率。
服务集成 1、文本类各服务识别内容后返回的结构化数据不同,银行卡、身份证返回的是经过处理后的结构化数据(如卡号、有效期),可供开发者直接获取使用,通用文本和通用卡证则是返回识别到的所有内容,需要开发者通过一定后处理代码做有效信息提取。2、银行卡、身份证相对通用卡证和文本识别集成开发更加简单 3、文本类各服务需要集成不同的SDK和模型文件
技术差异 1、文本识别和通用卡证识别,使用的是通用模型文件,是通过通用文本数据集进行训练生成的 2、银行卡、身份证使用的是专有模型文件,是通过专有的银行卡、身份证数据集训练生成的
怎么样,看完这篇文章后,有什么感想,快来发表你的观点吧!
DemoGithub地址:https://github.com/HMS-MLKit/HUAWEI-HMS-MLKit-Sample
往期链接:Android | 带你零代码实现安卓扫码功能
内容来源:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201209905778120045&fid=18
原作者:AI_talking