博舍

目前文字识别技术,主要应用在哪些场景 人脸识别技术对生活的影响有哪些方面

目前文字识别技术,主要应用在哪些场景

OCR,是指通过图像处理和模式识别技术对光学的字符进行识别。

目前OCR识别技术,主要划分为8项:

1.证件识别:主要识别证件信息,用于金融、银行、保险、汽车等领域(互联网),支持大陆二代身份证、台湾身份证、香港身份证、澳门身份证、护照、行驶证、驾驶证、港澳台通行证等20余种证件识别,支持Android/iOS、Windows/Linux32/64位主流操作系统,目前有证件采集仪、护照阅读器、门禁考勤机、人行通道闸机、人证一体扫描仪、移动端证件识别SDK等产品中应用该项技术;

2.银行卡识别:主要识别银行卡卡号,用于移动支付绑卡,提升APP用户体验(互联网)。支持国内各个银行的信用卡、储蓄卡,包括平面字体和凹凸字体银行卡、横版和竖版银行卡、标准和异形银行卡等识别,支持Android/iOS、Windows/Linux32/64位主流操作系统,目前有移动端银行卡识别SDK、云端银行卡识别API;

3.车牌识别:主要识别车牌号码、车牌颜色、车牌类型、车标、车身颜色等车辆特征信息,用于移动警务,占道停车,停车场管理,车险等领域(互联网)中,支持识别普通蓝牌、黄牌(双层)、军牌(双)、武警牌(双)、警牌、农用车牌、大使馆车牌等各种常见规格的汽车号牌,支持Android/iOS、Windows/Linux32/64位主流操作系统,目前有PC端车牌识别SDK、移动端车牌识别SDK、车牌识别抓拍相机、DSP嵌入式车牌识别、车型识别、车位检测等产品应用了该项技术;

4.名片识别:主要识别名片内容,用于移动展业、CRM客户管理系统等领域(互联网),支持横版、竖版名片识别,及其他板式的各种名片,还支持多语种名片识别,支持Android/iOS、Windows/Linux32/64位主流操作系统,目前有移动端名片识别、云端名片识别API;

5.营业执照识别:主要识别营业执照信息(统一社会信用代码、公司名称、二维码等),用于需要代替人工提取营业执照信息的领域(互联网),支持Android/iOS、Windows/Linux32/64位主流操作系统,目前有移动端营业执照识别SDK、文字识别SDK、扫描识别硬;

6.汽车VIN码识别:主要识别车架号(汽车VIN码),用于汽车管理、汽车服务、二手车交易、租车等领域(互联网),支持Android/iOS、Windows/Linux32/64位主流操作系统,目前有移动端汽车VIN码识别SDK;

7.票据类OCR识别:主要识别增值税发票等不同格式的票据内容,用于财务管理、汽车、银行、金融等领域(互联网),基于模板机制,针对不同的票据,定制不同的识别要素,支持Android/iOS、Windows/Linux32/64位主流操作系统,目前有表票识别扫描仪、表票识别SDK;

8.文档文字OCR识别:主要识别文档文字,用于图书馆,报社等针对图书、报纸、杂志等文本类,需要把这些纸质文档进行电子化的领域(互联网),需借助在扫描仪,目前有移动端的文档OCR识别、文档识别扫描仪,随着扫描仪分辨率的提升,OCR软件也在不断升级,扫描仪厂商现在已经把专业的OCR软件搭配自己生产的扫描仪出售。

人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:图像识别经历了哪几个阶段,主要应用在哪些领域?http://www.duozhishidai.com/article-6461-1.html全面屏时代,哪种生物识别是未来主流?http://www.duozhishidai.com/article-4179-1.html计算机视觉与图像处理、模式识别和机器学习,之间有什么关系?http://www.duozhishidai.com/article-4119-1.html

多智时代-人工智能和大数据学习入门网站|人工智能、大数据、物联网、云计算的学习交流网站

人脸识别十大关键技术

人脸识别十大关键技术

转载:https://zhuanlan.zhihu.com/p/61348453

1、人脸检测(FaceDetection)

“人脸检测(FaceDetection)”的作用就是要检测出图像中人脸所在位置。人脸检测算法的原理简单来说是一个“扫描”加“判定”的过程。即首先在整个图像范围内扫描,再逐个判定候选区域是否是人脸的过程。因此人脸检测算法的计算速度会跟图像尺寸大小以及图像内容相关。在实际算法时,我们可以通过设置“输入图像尺寸”、或“最小脸尺寸限制”、“人脸数量上限”的方式来加速算法。

2、人脸配准(FaceAlignment)

“人脸配准(FaceAlignment)”所实现的目的是定位出人脸上五官关键点坐标。当前效果的较好的一些人脸配准技术基本通过深度学习框架实现。这些方法都是基于人脸检测的坐标框,按某种事先设定规则将人脸区域抠取出来,缩放到固定尺寸,然后进行关键点位置的计算。另外,相对于人脸检测,或者是后面将提到的人脸特征提取的过程,人脸配准算法的计算耗时都要少很多。

3、人脸属性识别(FaceAttribute)

“人脸属性识别(FaceAttribute)”是识别出人脸的性别、年龄、姿态、表情等属性值的一项技术。这在有些相机APP中有所应用,可以自动识别摄像头视野中人物的性别、年龄等特征并标注出来。

人脸的属性识别包括性别识别、年龄估计、表情识别、姿态识别、发型识别等等方面。一般来说每种属性的识别算法过程是独立的,但是有一些新型的基于深度学习实现的算法可以实现同时输出年龄、性别、姿态、表情等属性识别结果。

4、人脸提特征(FaceFeatureExtraction)

“人脸提特征(FaceFeatureExtraction)”是将一张人脸图像转化为可以表征人脸特点的特征,具体表现形式为一串固定长度的数值。

人脸提特征过程的输入是“一张人脸图”和“人脸五官关键点坐标”,输出是人脸相应的一个数值串(特征)。人脸提特征算法实现的过程为:首先将五官关键点坐标进行旋转、缩放等等操作来实现人脸对齐,然后在提取特征并计算出数值串。

5、人脸比对(FaceCompare)

“人脸比对(FaceCompare)”算法实现的目的是衡量两个人脸之间相似度。

人脸比对算法的输入是两个人脸特征人脸特征由前面的人脸提特征算法获得,输出是两个特征之间的相似度。

6、人脸验证(FaceVerification)

“人脸验证(FaceVerification)”是判定两个人脸图是否为同一人的算法。

它的输入是两个人脸特征,通过人脸比对获得两个人脸特征的相似度,通过与预设的阈值比较来验证这两个人脸特征是否属于同一人。

7、人脸识别(FaceRecognition)

“人脸识别(FaceRecognition)”是识别出输入人脸图对应身份的算法。

它的输入为一个人脸特征,通过和注册在库中N个身份对应的特征进行逐个比对,找出“一个”与输入特征相似度最高的特征。将这个最高相似度值和预设的阈值相比较,如果大于阈值,则返回该特征对应的身份,否则返回“不在库中”。

8、人脸检索(FaceRetrieval)

“人脸检索”是查找和输入人脸相似的人脸序列的算法。

人脸检索通过将输入的人脸和一个集合中的说有人脸进行比对,根据比对后的相似度对集合中的人脸进行排序。根据相似度从高到低排序的人脸序列即使人脸检索的结果。

9、人脸聚类(FaceCluster)

“人脸聚类(FaceCluster)”是将一个集合内的人脸根据身份进行分组的算法。

在没有进行人工身份标注前,只知道分到一个组的人脸是属于同一个身份,但不知道确切身份。

10、人脸活体(FaceLiveness)

“人脸活体(FaceLiveness)”是判断人脸图像是来自真人还是来自攻击假体(照片、视频等)的方法。

在我们生活环境中,人脸认证系统中主要容易受到这种手段欺骗:

(1)用偷拍的照片假冒真实人;

(2)在公开场合录的视频或网上公开的视频片段;

(3)用计算机辅助软件设计的三维模型欺骗;

(4)用蜡或塑料等材质构造的三维雕像欺骗。

现在所以人脸活体检测技术的研究显得异常重要。对于照片欺骗,主要是根据分辨率、三位三维信息、眼动等来进行区分;对于视频欺骗,根据三维信息、光线等来区分。

人脸识别算法原理

1、基于几何特征的方法

人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些部件的形状、大小和结构上的各种差异才使得世界上每个人脸千差万别,因此对这些部件的形状和结构关系的几何描述,可以做为人脸识别的重要特征。几何特征最早是用于人脸侧面轮廓的描述与识别,首先根据侧面轮廓曲线确定若干显著点,并由这些显著点导出一组用于识别的特征度量如距离、角度等。

2、局部特征分析方法

局部特征分析方法一种基于特征表示的面像识别技术,源于类似搭建积木的局部统计的原理。LFA基于所有的面像(包括各种复杂的式样)都可以从由很多不能再简化的结构单元子集综合而成。这些单元使用复杂的统计技术而形成,它们代表了整个面像,通常跨越多个像素(在局部区域内)并代表了普遍的面部形状,但并不是通常意义上的面部特征。实际上,面部结构单元比面像的部位要多得多。然而,要综合形成一张精确逼真的面像,只需要整个可用集合中很少的单元子集(12~40特征单元)。要确定身份不仅仅取决于特性单元,还决定于它们的几何结构(比如它们的相关位置)。通过这种方式,LFA将个人的特性对应成一种复杂的数字表达方式,可以进行对比和识别。

“面纹”编码方式是根据脸部的本质特征和形状来工作的,它可以抵抗光线、皮肤色调、面部毛发、发型、眼镜、表情和姿态的变化,具有强大的可靠性,以从百万人中精确地辨认出一个人。

3、特征脸方法(Eigenface或PCA)

从统计的观点,寻找人脸图像分布的基本元素,即人脸图像样本集协方差矩阵的特征向量,以此近似地表征人脸图像。这些特征向量称为特征脸(Eigenface)。该方法是先确定眼虹膜、鼻翼、嘴角等面像五官轮廓的大小、位置、距离等属性,然后再计算出它们的几何特征量,而这些特征量形成一描述该面像的特征向量。其技术的核心实际为“局部人体特征分析”和“图形/神经识别算法。

4、基于弹性模型的方法

弹性图匹配技术是一种基于几何特征和对灰度分布信息进行小波纹理分析相结合的识别算法,较好的利用了人脸的结构和灰度分布信息,而且还具有自动精确定位面部特征点的功能,因而具有良好的识别效果,适应性强识别率较高,该技术在FERET测试中若干指标名列前茅,其缺点是时间复杂度高,速度较慢,实现复杂。

5、神经网络方法(NeuralNetworks)

神经网络方法在人脸识别上的应用比起前述几类方法来有一定的优势,因为对人脸识别的许多规律或规则进行显性的描述是相当困难的,而神经网络方法则可以通过学习的过程获得对这些规律和规则的隐性表达,它的适应性更强,一般也比较容易实现。因此人工神经网络识别速度快,但识别率低。而神经网络方法通常需要将人脸作为一个一维向量输入,因此输入节点庞大,其识别重要的一个目标就是降维处理。

6、其他方法

除了以上几种方法,人脸识别还有其它若干思路和方法,包括一下一些:

(1)隐马尔可夫模型方法(HiddenMarkovModel)

(2)Gabor小波变换+图形匹配

(3)人脸等密度线分析匹配方法

人脸识别技术难点

1、光照问题

光照问题是机器视觉重的老问题,在人脸识别中的表现尤为明显。由于人脸的3D结构,光照投射出的阴影,会加强或减弱原有的人脸特征。尤其是在夜晚,由于光线不足造成的面部阴影会导致识别率的急剧下降,使得系统难以满足实用要求。

2、表情姿态问题

与光照问题类似,表请和姿态问题也是目前人脸识别研究中需要解决的一个技术难点。面部幅度较大的哭、笑、愤怒等表情变化同样影像着面部识别的准确率。姿态问题涉及头部在三维垂直坐标系中绕三个轴的旋转造成的面部变化,其中垂直于图像平面的两个方向的深度旋转会造成面部信息的部分缺失,使得表情姿态问题成为人脸识别的一个技术难题。

3、遮挡问题

对于非配合情况下的人脸图像采集,遮挡问题是一个非常严重的问题。特别是在监控环境下,往往彼监控对象都会带着眼镜,帽子等饰物,使得被采集出来的人脸图像有可能不完整,从而影响了后面的特征提取与识别,甚至会导致人脸检测算法的失效。

4、年龄变化

随着年龄的变化,面部外观也在变化,特别是对于青少年,这种变化更加的明显。对于不同的年龄段,人脸识别算法的识别率也不同。一个人从少年变成青年,变成老年,他的容貌可能会发生比较大的变化,从而导致识别率的下降。对于不同的年龄段,人脸识别算法的识别率也不同。

5、人脸相似性

不同个体之间的区别不大,所有的人脸的结构都相似,甚至人脸器官的结构外形都很相似。这样的特点对于利用人脸进行定位是有利的,但是对于利用人脸区分人类个体是不利的。

6、图像质量

人脸图像的来源可能多种多样,由于采集设备的不同,得到的人脸图像质量也不一样,特别是对于那些低分辨率、噪声大、质量差的人脸图像(如手机摄像头拍摄的人脸图片、远程监控拍摄的图片等)如何进行有效地人脸识别是个需要关注的问题。同样的,对于高分辨图像对人脸识别算法的影响也需要进一步的研究。

简述人脸识别技术

简介

人脸识别技术是一种生物识别技术,可以用来确认用户身份。人脸识别技术相比于传统的身份识别技术有很大的优势,主要体现在方便性上。传统的身份认证方式诸如:密码、PIN码、射频卡片、口令、指纹等,需要用户记住复杂密码或者携带身份认证钥匙。而密码、卡片均存在丢失泄露的风险,相比于人脸识别,交互性于安全性都不够高。人脸识别可以使用摄像头远距离非接触识别,相比于指纹免去了将手指按在识别区域的操作,可由摄像头自动识别。

目前人脸识别技术已经广泛应用于安全、监控、一般身份识别、考勤、走失儿童搜救等领域,对于提升身份认证的效率起到了重要的作用。而且目前还有更深入的人脸识别的研究正在进行,包括性别识别、年龄估计、心情估计等,更高水平和更高准确率的人脸识别技术对于城市安全和非接触式身份认证有巨大的作用。人脸识别问题宏观上分为两类:人脸验证和人脸识别。人脸验证通常是做1对1的对比,判断两张图片中是否为同一人。人脸识别通常是1对多的对比,判断照片中的人是否为数据库中的某一位。

人脸识别受到多种因素影响,主要分为基础因素、内在因素和外在因素。基础因素是人脸本身就相似,人的五官、轮廓大致相同;内在因素是人的内部属性,如年龄变化、精神状态、化妆等;外部因素是成像质量的问题,比如相片的清晰程度、有无眼镜、口罩等遮挡。对于人类来说,认出一个人是很容易的事情,对于计算机而言,图片是由多维数字矩阵表示的,识别任务难度大。

最早的人脸识别是半自动人脸识别,由人工标注人脸特征点,计算机根据特征点相对位置进行人脸匹配。

在1965-1990年间的人脸识别研究主要基于人脸几何结构特征和模版匹配的方法,利用几何特征提取人眼、口、鼻等重要特征点的位置,以及眼睛等重要器官的几何直观形状作为分类特征,并据此计算特征点之间相互位置和距离,用来衡量两幅人脸图像的相似程度。

1991-1997年,基于整体的方法较多,包括主成分分析(PCA)方法、线性鉴别分析(LDA)方法等。这些方法通过寻找一组投影向量,将人脸降维,再将低维特征送入类似SVM等机器学习分类器中进行人脸分类。

1998年至2013年间,很多借助深度相机、结构光、红外相机等设备辅助人脸识别的方法出现,使得人脸识别的精度大大提高。同时还有早期的基于特征的分类方法,在人脸不同位置提取局部特征,得到的结果往往比整体方法更加具有鲁棒性。类似的有从图像块中提取HOG、LBP、SIFI、SURF特征,将各模块局部特征的向量串联,作为人脸的表示。亦有综合方法,先使用基于特征的方法获得局部特征,再使用子空间法(比如PCA、LDA)获得低维特征,将基于整体与基于局部特征的方法。这类方法中,GaussianFace在LFW上获得了最好的精度98.52%,几乎匹敌很多后来出现的深度学习方法。

2006年后,深度学习开始得到研究人员重视,在国际期刊发表的数目越来越多。而后深度学习广泛应用于各种目标检测领域,2015年,Google团队的FaceNet在LFW数据集上得平均准确率达到了99.63%,基于深度学习的人脸识别的准确率已经高于人类本身,深度学习在人脸识别领域基本占据了统治地位。

人脸识别常见流程

绝大多数人脸识别都包含如下几个流程:人脸检测(FaceDetection)、人脸对齐(FaceAlignment)、人脸表示(FaceRepresentation)和人脸匹配(FaceMatching)。如下图所示:

人脸检测FaceDetection

从输入的图像中检测到人脸区域,并返回人脸包围框的坐标。

人脸对齐(人脸配准)FaceAlignment

从人脸区域中检测到人脸特征点,并以特征点为依据对人脸进行归一化操作,使人脸区域的尺度和角度一致,方便特征提取与人脸匹配。人脸对齐的最终目的是在已知的人脸方框中定位人脸的精准形状,主要分为两大类:基于优化的方法和基于回归的方法。这里基于回归树的人脸对齐算法是VahidKazemi和JosephineSullivan于CVPR2014年发表的人脸特征点识别方法,是一种基于回归树的人脸对齐方法,这种方法通过建立一个级联残差回归树(GBDT)来使人脸从当前形状一点点回归到真实形状。

人脸表示FaceRepresentation

从归一化的人脸区域中进行特征提取,得到特征向量,比如有的深度神经网络方法使用128个特征表示人脸,最理想的情况是不同的人的照片提取出的特征向量不一样,而同一人的不同照片中可以提取出相似的特征向量。

人脸匹配FaceMataching

将两幅图片计算出的特征向量进行对比,获得两幅照片的相似得分。根据相似得分,得分高的可判断为同一人,得分低的判断为不同人。

人脸表示的基本思路

深度学习识别人脸的主要思路是不同的人脸由不同的特征组成。从简单的说,特征可有眼皮、鼻子、眼睛、肤色、发色,如表格所示。则5个特征可以形容25种人脸,即(特征1,特征2,特征3,特征4,特征5)可表示一种人脸,如(1,0,0,1,0)可表示一位双眼皮、低鼻梁、黑眼球、黄肤色、黑发色的人。

序号特征011眼皮单眼皮双眼皮2鼻子低鼻梁高鼻梁3瞳色黑色棕色4肤色黄色白色5发色黑色金黄色

对于表格的物种特征每个特征有两种表现来说,一共可以表示的32种外貌用来做人脸识别是不够的,因此可以增加特征的数量,比如用更多的特征表示人脸,增加特征6脸型、特征7嘴唇等;同时可以增加某一特征的具体表现数量,如特征3,用0表示黑色、0.1表示黑色带点蓝色、0.2表示黄色、0.25表示棕色等等。因此当实际应用中特征数量达到1024或更高的数量级,特征值取连续的小数。扩充后,一张人脸可能表示为(0.3,2,1.5,1.75,……),基本可以表示无数张人脸。

在实际中,这些特征并非由人工设置的,而是由深度神经网络在训练过程中学习而来的,储存在了深度神经网络中的各节点的参数中,一个深度神经网络模型即为网络的结构和各节点的参数组成。

如图所示是一个128维度特征提取网络,三张山下智久的照片经过神经网络提取后的特征在128维空间中非常接近,而石原里美的照片经过神经网络处理结果就与山下智久的结果相距较远。即同一人的不同照片提取的特征在特征空间里距离相近,而不同人脸的照片在特征空间中距离较远。

工程实现样例

参照上述思路,我实现了一个简易的人脸识别程序,地址在face_identification,效果如下图所示。本工程基本照搬了dlib.net/dnn_face_recognition_ex.cpp,仅有些小小的改变,dlib的方法中使用了ResNet34用作人脸识别网络,该残差网络的详细内容参照何凯明等人的工作DeepResidualNetworkat2015。

设计思路界面:本软件使用Qt作为界面软件设计,为了快速编码,使用了QtExample中的Camera样例工程,将人脸识别内嵌在其中。重写了画布,可以按照想要的时间间隔调用人脸识别代码。多线程:根据相机分辨率的不同,一次人脸识别流程耗时在0.2-0.4s不等,如果使用单线程开发,会导致识别人脸的时候相机画面卡住。因此使用了Qt的多线程支持,将人脸识别流程放在了其他线程,UI线程与人脸识别线程中采用Qt的信号与槽机制通信。人脸检测:使用dlib中的frontal_face_detector正面人脸检测器,检测画面中的人脸区域。人脸Landmark标记:使用dlib的shape_predictor_5_face_landmarks.dat五个特征点检测模型,检测眼睛鼻子嘴角共五个特征点,用于调整图像尺寸、人脸角度,归一化为150x150分辨率,供特征提取网络使用。特征提取:使用ResNet34网络稍作调整,网络输入150x150图像,输出128个特征值。识别-建立数据库:利用csv文件存贮已知人物身份列表(包括一张身份图片),先将作为原始数据的图像经过特征提取,生成尺寸为[图像数量,128]的矩阵。利用FLANN为该数据建立索引数。识别-查找数据库:相机识别到的人脸经过特征提取后得到的128个特征向量在FLANN索引中寻找最近点,并计算与最近点之间的距离,如果距离在阈值范围内,则判定为同一用户。环境依赖

工程实际使用了Qt和一些主要依赖库,但为了工程管理方便,我直接在工程的libs.pri中设置了对于外部库的引用,主要使用了如下外部库。

Dlib19.17opencv3.4flann1.9.1

也就是说,如果你需要在我的代码基础上进行修改,则需要首先配置好这些库,然后修改libs.pri文件中对于这些库的链接地址,然后才可以顺利编译成功。

更多

如果对于该程序设计还有更多的疑问,欢迎前往该工程的Issues板块提问,我会尽快解答疑问。

Referenceface_identificationDlib19.17opencv3.4.5Qt5.12Mingw730x64qtcsv1.5.0FLANN1.9.1KazemiV,SullivanJ.OneMillisecondFaceAlignmentwithanEnsembleofRegressionTrees[C]//2014IEEEConferenceonComputerVisionandPatternRecognition(CVPR).IEEEComputerSociety,2014.SchroffF,KalenichenkoD,PhilbinJ.FaceNet:AUnifiedEmbeddingforFaceRecognitionandClustering[J].2015.HeK,ZhangX,RenS,etal.Deepresiduallearningforimagerecognition[C]//ProceedingsoftheIEEEconferenceoncomputervisionandpatternrecognition.2016:770-778.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇