CN112365586A - 3d人脸建模与立体判断方法及嵌入式平台的双目3d人脸建模与立体判断方法 - Google Patents
3d人脸建模与立体判断方法及嵌入式平台的双目3d人脸建模与立体判断方法 Download PDFInfo
- Publication number
- CN112365586A CN112365586A CN202011334611.1A CN202011334611A CN112365586A CN 112365586 A CN112365586 A CN 112365586A CN 202011334611 A CN202011334611 A CN 202011334611A CN 112365586 A CN112365586 A CN 112365586A
- Authority
- CN
- China
- Prior art keywords
- face
- binocular
- parallax
- stereo
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
- G06T7/85—Stereo camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种3D人脸建模与立体判断方法及嵌入式平台的双目3D人脸建模与立体判断方法,涉及计算机视觉及智能安防终端的技术领域,通过设计新型的双目3D人脸建模与立体匹配深度学***台上,能够以接近实时的速度运行,用户体验无感;本发明的3D人脸建模精度接近于结构光或者TOF设备,但是***格更低。本发明可用于智慧安防门禁闸机、自动考勤机和3D人脸门锁等领域,从而产生巨大的经济利益。
Description
技术领域
本发明涉及计算机视觉的技术领域,特别涉及一种3D人脸建模与立体判断方法及嵌入式平台的双目3D人脸建模与立体判断方法。
背景技术
人脸识别技术广泛应用于安防领域,包括监控抓拍、智慧门禁和智慧门锁等。随着计算机视觉技术的快速发展和互联网时代巨量的数据积累,人脸识别技术取得了明显的进步。
人脸识别技术能在很多地方能给生活带来便利,但并非绝对安全,需要预防非正常活体人脸的攻击,尤其是对于无人值守的门禁、支付等领域,所以进行严格的人脸活体检测是非常重要的。目前,市面上大量使用单目静默活体或者配合式活体进行真假人的判断,属于2D人脸活体判断。但是,单目静默活体方案仅仅能学习到人脸纹理和边缘背景信息,配合式活体则需要验证人员配合导致体验感不好,单目的这两种方法都无法建模人脸深度方向的信息。因此,高清纸张的人脸极有可能因为人脸活体信息不够充分而攻击人脸识别设备成功。经过上面的分析可知,2D人脸活体缺少深度信息判断,安全性还不够好,所以在无人值守门禁区域使用3D人脸活体技术是非常有必要的。下面介绍几种典型的利用人脸深度信息判断活体的方法:
(1)单目拍两张图像伪3D人脸信息判断活体:德国生物特征识别公司BioID发表了专利《Method for discriminating between a real face and a two-dimensionalimage of the face in a biometric detection process用于鉴别生物特征检测过程中真实面孔和面部二维图像的方法》,该专利的主要思路是通过单目摄像头隔一定时间抓拍两幅有移动的人脸,然后通过两幅人脸关键点的位置变化判断当前人脸是具有真人立体还是纸张平面。该专利说明,具有移动抓拍两张真人人脸与具有移动抓拍两张纸张平面人脸的关键特征点位置关系是有区分的,正是利用这种实际立体物体与实际平面物体通过相机投影成像后的位置形变差别区分人脸是否具有立体信息。该专利的优点是:通过一个单目镜头拍摄两次就可以判断人脸是否具有立体信息;该专利的缺点是:仅仅通过立体物体与平面物体经过成像***的二维特征点形变关系判断是否具有立体,并没有真正将人脸立体建模,属于伪3D信息的判断。
(2)结构光或TOF(Time of flight)设备深度成像技术:该方案是通过结构光或者TOF设备直接对拍摄的物体深度成像,因此,可以在深度图上将人脸区域选取出来然后做对应的立体判断。该方案的优点是:立体判断采用的是真实的人脸深度图,人脸深度图成像精度高;该方案缺点是:结构光或TOF设备成本上比传统的镜头价格高。
(3)双目镜头立体建模技术:该方案通过双目成像原理,左目镜头和右目镜头成像同一物体存在一定的视差,根据镜头小孔成像原理的三角关系可以将视差转化为距离信息,从而构建空间的深度图。双目应用于人脸识别时可以构建出人脸的深度图,通过人脸深度图判断人脸是否有立体信息。该方案的优点是:双目模组已经大规模成熟批量生产,价格低;该方案缺点,如果通过传统图像BM(Block Matching)或SGM(Semi-global Matching)方法进行视差匹配,人脸弱纹理区域容易匹配失败空洞明显,精度不高,如果使用端到端的深度学***台上运行速度很慢。
以上的技术各有优缺点,基于安全性的考量要求人脸立体建模的精度要高,考虑到用户的体验感嵌入式平台识别速度要快,考虑到产品生产的整体成本,选择模组性价比要高。因此,本发明提供一种嵌入式平台的双目3D人脸建模与立体判断方法,可改善现有技术的不足。
发明内容
本发明的目的之一在于提供一种安全性好,用户体验好且成本低的双目3D人脸立体判断方法。
为了达成上述目的,本发明的解决方案是:
一种双目3D人脸建模与立体判断方法,其包括以下步骤:
步骤(1)、输入左右视图数据构造cost volume:设置视差预测的网络输入尺寸,在输入网络之前将已经获取的左视图的ROI图像left_face_img和右视图的ROI图像right_face_img,归一化到与网络输入尺寸上,其中ROI为感兴趣区域,即将cost volume操作前移到原始数据层,在输入空间构造2*D*网络输入尺寸的张量,其中D是实际能匹配的最大视差数,D的值为2n(n≥4);
步骤(2)、CNN1视差特征提取:CNN1网络结构包括两个部分,前面部分是下采样8倍提取高维语义信息,后面部分是上采样8倍通过高层语义信息与底层纹理信息融合,CNN1视差特征提取学习过程是使用Softmax WithLoss交叉熵损失学习,由于步骤(1)将costvolume操作前移到原始数据层,所以只有一段CNN1网络结构就可以解码输出一个D*网络输入尺寸的视差特征;
步骤(3)、argmax视差解析:argmax操作就是将D*网络输入尺寸张量的视差值解析出来,argmax操作是指找D*网络输入尺寸一个位置点在D通道上值最大的索引,这个位置点最大值所在的通道索引就是网络预测的视差值,经过argmax后视差预测张量形状变为网络输入尺寸向量;
步骤(4)建模人脸3D图:网络视差预测结果是基于网络输入尺寸图像的视差,原始分辨率的真实视差需要乘以一个比例scale_x=(ROI.x2-ROI.x1)/网络输入尺寸的宽度,ROI.x2为感兴趣区域的X轴最大值,ROI.x1为感兴趣区域的X轴最小值,即原始分辨率的视差Dtruth=Dpredict*scale_x,Dpredict是预测的视差值,Dtruth是真实的视差值,3D人脸建模最终输出的深度Depth=B*F/(Dtruth),B是双目摄像头之间的基线距离,F是双目镜头基线校正之后的共面像素焦距,Depth是人脸的深度距离;
步骤(5)、CNN2预测人脸3D立体:根据3D人脸图,设计CNN2深度学习分类网络,直接对网络输入尺寸上的3D人脸图进行特征提取然后通过全连接层进行分类是否具有立体信息。
进一步,所述步骤(2)的CNN1和步骤(5)的CNN2都是经过设备实际数据训练过后保存下的模型参数,训练数据是实际双目设备采集的真实左右视图,训练标签包含两部分:一部分是经过与左视图人脸对齐的准确视差图,另一部分是输入的左右人脸视图是否具有深度信息的分类标签,网络训练结构使用的是caffe,训练方式是CNN1与CNN2一体化训练,学习视差预测和立体判断的损失函数都是选择交叉熵损失。
本发明的另一目的在于提供一种综合考虑产品的安全性、用户体验及成本的嵌入式平台的双目3D人脸建模与立体判断方法,其人脸立体建模精度高、嵌入式平台识别速度快且选择模组性价比高。
为了达成上述目的,本发明的解决方案是:
一种嵌入式平台的双目3D人脸建模与立体判断方法,包括以下步骤:
步骤一、标定双目摄像头的内参和外参;
步骤二、定位双目左右视图人脸的位置;
步骤三、选择双目视图感兴趣的匹配区域,并且进行畸变校正与基线对齐;感兴趣区域的处理方式是:步骤二定位的人脸位置是在校正之前的视图上的位置,左视图人脸位置为ori_left_face,右视图人脸位置为ori_right_face,人脸框的位置信息包含(x1,y1,x2,y2),视差立体匹配需要的是对矫正后图像进行匹配,需要将原始视图的ori_left_face和ori_right_face通过步骤一标定的双目摄像头参数将原始视图的点映射到基线对齐的图像空间中,左右视图人脸框变为correct_left_face和correct_right_face,再通过以下公式的操作选取两个矫正后人脸的并集作为感兴趣区域ROI:
ROI.x1=min(correct_left_face.x1,correct_right_face.x1);
ROI.y1=min(correct_left_face.y1,correct_right_face.y1);
ROI.x2=max(correct_left_face.x2,correct_right_face.x2);
ROI.y2=max(correct_left_face.y2,correct_right_face.y2);
选取完矫正后人脸位置感兴趣区域ROI后,随即对双目镜头的左视图和右视图的ROI根据基线校正矩阵进行基线对齐,获得左视图的ROI图像left_face_img和右视图的ROI图像right_face_img,左右视图上世界坐标的同一点分别在基线对齐后图像上同一水平线上;
步骤四、对感兴趣区域进行基于深度学习方法的双目3D人脸建模与人脸立体判断,包括以下步骤:
步骤(1)输入左右视图数据构造cost volume:设置视差预测的网络输入尺寸,在输入网络之前需要将步骤三获得的left_face_img和right_face_img归一化到网络输入尺寸上,在输入空间构造2*D*网络输入尺寸的张量,其中D是实际能匹配的最大视差数,D的值为2n(n≥4);
步骤(2)CNN1视差特征提取:CNN1网络结构包括两个部分,前面部分是下采样8倍提取高维语义信息,后面部分是上采样8倍通过高层语义信息与底层纹理信息融合,CNN1视差特征提取学习过程是使用SoftmaxWithLoss交叉熵损失学习,由于步骤(1)将costvolume操作前移到原始数据层,所以只有一段CNN1网络结构就可以解码输出一个D*网络输入尺寸的视差特征;
步骤(3)argmax视差解析:argmax操作就是对D*网络输入尺寸张量的视差值解析出来,由于CNN1视差特征提取学习过程是使用SoftmaxWithLoss交叉熵损失学习,argmax操作是指找D*网络输入尺寸一个位置点在D通道上值最大的索引,这个位置点最大值所在的通道索引就是网络预测的视差值,经过argmax后视差预测张量形状变为网络输入尺寸向量;
步骤(4)建模人脸3D图:网络视差预测结果是基于网络输入尺寸图像的视差,对于原始分辨率的真实视差还需要乘以一个比例scale_x=(ROI.x2-ROI.x1)/网络输入尺寸的宽度,即原始分辨率的视差Dtruth=Dpredict*scale_x,Dpredict是预测的视差值,Dtruth是真实的视差值,3D人脸建模最终输出的深度Depth=B*F/(Dtruth),B是双目摄像头之间的基线距离,F是双目镜头基线校正之后的共面像素焦距,Depth是人脸的深度距离;
步骤(5)CNN2预测人脸3D立体:根据3D人脸图,设计CNN2深度学习分类网络,直接对网络输入尺寸的3D人脸图进行特征提取然后通过全连接层进行分类是否具有立体信息;
步骤五、将步骤四的双目3D人脸建模与人脸立体判断的深度学***台上移植步骤包括:
步骤(1)、将SFD人脸检测模型量化移植到嵌入式平台上,用于检测原始左右视图的人脸,即在嵌入式平台上实现步骤二;步骤(2)、利用opencv图像处理库根据步骤(1)检测到的人脸和双目摄像头标定参数,计算校正之后的人脸感兴趣图像,并且归一化尺寸到网络输入尺寸,即在嵌入式平台上实现步骤三;
步骤(3)、3D人脸建模CNN1的移植,整理步骤四的训练数据量化CNN1模型,并且编码到嵌入式平台上的npu实现,对于视差解析argmax操作和3D深度建模编码到arm处理器上实现,输出3D人脸信息;
步骤(4)、立体判断CNN2的移植,整理步骤四训练数据量化CNN2模型,并且编码到嵌入式平台的npu实现,输出立体判断结果。
进一步,步骤一的标定过程是:将标定板摆放距离双目镜头合适的位置上,保证整个标定板都在双目左右视图的范围内并且使标定板的像素面积大于图像像素面积的1/4以上,采集标定板上、下、左、右、旋转10组以上的图片对即标定对,然后将采集的标定对进行双目相机的内外参标定并且保存下参数数据。
进一步,步骤二是使用精简版经典的SFD检测算法检测人脸,使用SFD算法对双目左右视图分别定位人脸位置,人脸是人脸立体建模中的感兴趣区域。
进一步,步骤四的步骤(4)中,CNN1和CNN2都是经过设备实际数据训练过后保存下的模型参数,训练数据是实际双目设备采集的真实左右视图,训练标签包含两部分:一部分是经过与左视图人脸对齐的准确视差图,另一部分是输入的左右人脸视图是否具有深度信息的分类标签,网络训练结构使用的是caffe,训练方式是CNN1与CNN2一体化训练,学习视差预测和立体判断的损失函数都是选择交叉熵损失。
进一步,所述嵌入式平台为海思3516平台。
采用上述结构后,本发明通过设计新型的双目3D人脸建模与立体匹配深度学***台上,能够以接近实时的速度运行,用户体验无感;精度上,在各种光线下具有很高的双目3D人脸立体建模精度与泛化能力很好的人脸立体判断算法;(2)速度上,该算法能够在嵌入式平台上接近实时的速度运行。本发明的3D人脸建模精度接近于结构光或者TOF设备,但是***格更低。综上,本发明的3D是一种人脸建模精度较高,在海思嵌入式硬件平台上运行速度快,并且低成本的3D活体判断方案,可用于智慧安防门禁闸机、自动考勤机和3D人脸门锁等领域,从而产生巨大的经济利益。
附图说明
图1为本发明的流程图。
图2为本发明对感兴趣区域进行双目3D人脸建模与人脸立体判断算法的示意图。
图3为本发明双目真人人脸3D建模效果图。
图4为本发明双目纸张人脸3D建模效果图。
具体实施方式
为了进一步解释本发明的技术方案,下面通过具体实施例来对本发明进行详细阐述。
如图1所示,本发明为一种嵌入式平台的双目3D人脸建模与立体判断方法,包括以下步骤:
步骤一、双目摄像头内参和外参的标定。本发明使用opencv张正友标定方法进行标定,标定工具使用的是12*9方块尺寸为30mm的棋盘格标定板。标定过程是:标定板摆放距离双目镜头合适的位置上,保证整个标定板都在双目左右视图的范围内并且使标定板的像素面积大于图像像素面积的1/4以上,采集标定板上、下、左、右、旋转10组以上的图片对即标定对(在一个合适位置上拍摄标定板正对、斜向上、斜向下、向左和向右的5对图片,移动标定板到另一个合适的距离按照以上方式再拍摄5对图片,即得所采集的标定对),然后将采集的标定对进行双目相机的内外参标定并且保存下参数数据。
步骤二、双目左右视图人脸位置定位。本实施例使用精简版经典的SFD(SingleShot Scale-Invariant Face Detector)检测算法检测人脸。使用SFD算法对双目左右视图分别定位人脸位置,人脸是人脸立体建模中的感兴趣区域。
步骤三、选择双目视图感兴趣的匹配区域,并且进行畸变校正与基线对齐。双目镜头由于安装工艺存在误差,不同镜头的光轴方向和光心位置是不固定的,左右视图视差匹配的结果是不正确,因此需要对双目镜头的左右视图进行畸变校正与基线对齐。拿左右摆放的双目镜头为例,畸变校正与基线对齐后,世界坐标上同一个物体点会在成像左右视图的同一水平线上,有了这个约束,视差只需要在同一水平线上面搜索即可。这就可以缩小视差搜索的范围,视差匹配过程的计算量也会减少。本发明重点是对人脸的3D重建与立体判断,所以本算法仅仅对定位的人脸感兴趣区域进行畸变校正和基线对齐,这样不需要校正无关人脸区域的图像,可避免大量的计算资源浪费。以下详细讲述本发明对感兴趣区域的处理方式:步骤二定位的人脸位置是在校正之前的视图上的位置,假设左视图人脸位置为ori_left_face,右视图人脸位置为ori_right_face,人脸框的位置信息包含(x1,y1,x2,y2)。视差立体匹配需要的是矫正后图像进行匹配,本发明需要将原始视图的ori_left_face和ori_right_face通过步骤一标定的双目摄像头参数使用opencv的undistortPoint函数将原始视图的点映射到基线对齐的图像空间中,左右视图人脸框变为correct_left_face和correct_right_face。为保证完整的人脸都能够立体建模,需要通过以下公式的操作选取两个矫正后人脸的并集作为感兴趣区域ROI。
ROI.x1=min(correct_left_face.x1,correct_right_face.x1);
ROI.y1=min(correct_left_face.y1,correct_right_face.y1);
ROI.x2=max(correct_left_face.x2,correct_right_face.x2);
ROI.y2=max(correct_left_face.y2,correct_right_face.y2);
选取完矫正后人脸位置感兴趣区域ROI后,随即对双目镜头的左视图和右视图的ROI根据基线校正矩阵进行基线对齐,获得左视图的ROI图像left_face_img和右视图的ROI图像right_face_img,左右视图上世界坐标的同一点分别在基线对齐后图像上同一水平线上。
步骤四、对感兴趣区域进行基于深度学习方法的双目3D人脸建模与人脸立体判断,该步骤为本发明的关键步骤,工作流程如图2,包括以下步骤:
(1)输入左右视图数据构造cost volume:本发明视差预测的网络输入尺寸设置为256*256,在输入网络之前需要将步骤三获得的left_face_img和right_face_img归一化到256的尺寸上。深度学习视差匹配有一个重要的概念叫cost volume,可称为匹配代价,匹配代价最小的视差就是当前点的视差预测值。常规的深度学习视差匹配方法PSMNet(PSMNet:《Pyramid Stereo Matching Network》)会将cost volume操作放在输入图片经过特征提取CNN(卷积神经网络)下采样的特征图后,而本发明直接对原始图片数据进行cost volume操作,在输入空间构造2*D*256*256的张量,其中D是实际能匹配的最大视差数,D可以设置为16、32、64和128等值。
步骤(2)CNN1视差特征提取:PSMNet网络预测分两部分,第一段CNN网络是高维特征提取,中间操作是使用高维特征构造cost volume,第二段CNN是解码视差预测结果,因此PSMNet预测视差需要两段CNN网络。本发明CNN1网络结构包括两个部分,前面部分是下采样8倍提取高维语义信息,后面部分是上采样8倍通过高层语义信息与底层纹理信息融合,由于本发明将cost volume操作前移到原始数据层,所以只有一段CNN1网络结构就可以解码输出一个D*256*256的视差特征。
步骤(3)argmax视差解析:argmax操作就是对D*256*256张量的视差值解析出来,由于CNN1视差特征提取学习过程是使用SoftmaxWithLoss交叉熵损失学习,argmax操作是指找D*256*256一个位置点在D通道上值最大的索引,这个位置点最大值所在的通道索引就是网络预测的视差值,经过argmax后视差预测张量形状变为256*256向量,如图3和图4是分别双目真人脸视图视差预测结果和双目纸张人脸视图视差预测结果,图3和图4的预测视差图比opencv传统视差匹配算法BM(Block Matching)或者SGBM(semi-global blockmatching)的预测视差图更加的准确稠密。
(4)建模人脸3D图:网络视差预测结果是基于256*256尺寸图像的视差,对于原始分辨率的真实视差还需要乘以一个比例scale_x=(ROI.x2-ROI.x1)/256.0,即原始分辨率的视差Dtruth=Dpredict*scale_x,Dpredict是预测的视差值,Dtruth是真实的视差值,3D人脸建模最终输出的深度Depth=B*F/(Dtruth),B是双目摄像头之间的基线距离,F是双目镜头基线校正之后的共面像素焦距,Depth是人脸的深度距离。
(5)CNN2预测人脸3D立体:根据3D人脸图,设计CNN2深度学习分类网络,直接对256*256的3D人脸图进行特征提取然后通过全连接层进行分类是否具有立体信息。CNN1和CNN2都是经过我们设备实际数据训练过后保存下的模型参数,训练数据是实际双目设备采集的真实左右视图,训练标签包含两部分:一部分是经过与左视图人脸对齐的准确视差图,另一部分是输入的左右人脸视图是否具有深度信息的分类标签,网络训练结构使用的是caffe,训练方式是CNN1与CNN2一体化训练,学习视差预测和立体判断的损失函数都是选择交叉熵损失。
步骤五、将新型的双目3D人脸建模与人脸立体判断的深度学***台上。前面四个步骤介绍的是本发明完整的双目3D人脸建模与立体判断算法设计流程,算法的研发最终为了应用落地产出实际的社会价值。本实施例产品落地选择的是海思3516嵌入式硬件平台。移植步骤包括:
步骤(1)、将SFD人脸检测模型量化移植到海思3516平台上,用于检测原始左右视图的人脸;
步骤(2)、利用opencv图像处理库根据步骤(1)检测到的人脸和双目摄像头标定参数,计算校正之后的人脸感兴趣图像,并且归一化尺寸到256*256;
步骤(3)、3D人脸建模CNN1的移植,整理步骤四训练数据量化CNN1模型,并且编码到海思3516上npu(嵌入式神经网络处理器)实现,对于视差解析argmax操作和3D深度建模编码到海思arm处理器上实现,输出3D人脸信息;
步骤(4)、立体判断CNN2的移植,整理步骤四训练数据量化CNN2模型,并且编码到海思3516上npu(嵌入式神经网络处理器)实现,输出立体判断结果。以下为具体的优化过程,原始PSMNet第一段提取特征网络,计算量为27.8G FLOPs(float point operation,浮点数运算,用于评估一个CNN网络的计算复杂度),第二段根据提取好的特征构造costvolume进行解析视差计算量为54.99G FLOPs;本发明通过步骤四中缩小网络输入尺寸、将cost volume操作前移到数据层将PSMNet两段网络转变为一段网络从而减少计算量以及利用上模型剪枝和蒸馏方法设计CNN1和CNN2网络结构,最终本发明的CNN1和CNN2网络总计算量为2.27G FLOPS是PSMNet计算量的2.7%。在caffe(卷积神经网络框架)训练时,双目3D人脸建模视差匹配的CNN1网络与立体判断的CNN2网络是一体化训练的,由于海思NNIE不支持视差解析的argmax操作,所以算法移植海思过程中CNN1和CNN2需要分开量化移植,argmax操作设计在CPU上面进行处理。最终,移植的效果是,在高精度模型量化情况下整个算法运行时间100ms,在低精度模型量化情况下整个算法运行时间60ms,在嵌入式硬件平台上接近实时的速度,而根据PSMNet论文介绍PSMNet在训练服务器Titan X预测视差时间为410ms。该实施方案可以用于门禁闸机、自动考勤机和人脸门锁等场景的前端设备人脸活体检测。
本发明通过设计新型的双目3D人脸建模与立体匹配深度学***台上,能够以接近实时的速度运行,用户体验无感;本发明的3D人脸建模精度接近于结构光或者TOF设备,但是***格更低。综上,本发明的3D是一种人脸建模精度较高,在海思嵌入式硬件平台上运行速度快,并且低成本的3D活体判断方案,可用于智慧安防门禁闸机、自动考勤机和3D人脸门锁等领域,从而产生巨大的经济利益。
上述实施例和图式并非限定本发明的产品形态和式样,任何所属技术领域的普通技术人员对其所做的适当变化或修饰,皆应视为不脱离本发明的专利范畴。
Claims (7)
1.一种双目3D人脸建模与立体判断方法,其特征在于,包括以下步骤:
步骤(1)、输入左右视图数据构造cost volume:设置视差预测的网络输入尺寸,在输入网络之前将已经获取的左视图的ROI图像left_face_img和右视图的ROI图像right_face_img,归一化到与网络输入尺寸上,其中ROI为感兴趣区域,即将cost volume操作前移到原始数据层,在输入空间构造2*D*网络输入尺寸的张量,其中D是实际能匹配的最大视差数,D的值为2n(n≥4);
步骤(2)、CNN1视差特征提取:CNN1网络结构包括两个部分,前面部分是下采样8倍提取高维语义信息,后面部分是上采样8倍通过高层语义信息与底层纹理信息融合,CNN1视差特征提取学习过程是使用SoftmaxWithLoss交叉熵损失学习,由于步骤(1)将cost volume操作前移到原始数据层,所以只有一段CNN1网络结构就可以解码输出一个D*网络输入尺寸的视差特征;
步骤(3)、argmax视差解析:argmax操作就是将D*网络输入尺寸张量的视差值解析出来,argmax操作是指找D*网络输入尺寸一个位置点在D通道上值最大的索引,这个位置点最大值所在的通道索引就是网络预测的视差值,经过argmax后视差预测张量形状变为网络输入尺寸向量;
步骤(4)建模人脸3D图:网络视差预测结果是基于网络输入尺寸图像的视差,原始分辨率的真实视差需要乘以一个比例scale_x=(ROI.x2-ROI.x1)/网络输入尺寸的宽度,ROI.x2为感兴趣区域的X轴最大值,ROI.x1为感兴趣区域的X轴最小值,即原始分辨率的视差Dtruth=Dpredict*scale_x,Dpredict是预测的视差值,Dtruth是真实的视差值,3D人脸建模最终输出的深度Depth=B*F/(Dtruth),B是双目摄像头之间的基线距离,F是双目镜头基线校正之后的共面像素焦距,Depth是人脸的深度距离;
步骤(5)、CNN2预测人脸3D立体:根据3D人脸图,设计CNN2深度学习分类网络,直接对网络输入尺寸上的3D人脸图进行特征提取然后通过全连接层进行分类是否具有立体信息。
2.如权利要求1所述的一种3D人脸建模与立体判断方法,其特征在于:所述步骤(2)的CNN1和步骤(5)的CNN2都是经过设备实际数据训练过后保存下的模型参数,训练数据是实际双目设备采集的真实左右视图,训练标签包含两部分:一部分是经过与左视图人脸对齐的准确视差图,另一部分是输入的左右人脸视图是否具有深度信息的分类标签,网络训练结构使用的是caffe,训练方式是CNN1与CNN2一体化训练,学习视差预测和立体判断的损失函数都是选择交叉熵损失。
3.一种嵌入式平台的双目3D人脸建模与立体判断方法,其特征在于,包括以下步骤:
步骤一、标定双目摄像头的内参和外参;
步骤二、定位双目左右视图人脸的位置;
步骤三、选择双目视图感兴趣的匹配区域,并且进行畸变校正与基线对齐;感兴趣区域的处理方式是:步骤二定位的人脸位置是在校正之前的视图上的位置,左视图人脸位置为ori_left_face,右视图人脸位置为ori_right_face,人脸框的位置信息包含(x1,y1,x2,y2),视差立体匹配需要的是对矫正后图像进行匹配,需要将原始视图的ori_left_face和ori_right_face通过步骤一标定的双目摄像头参数将原始视图的点映射到基线对齐的图像空间中,左右视图人脸框变为correct_left_face和correct_right_face,再通过以下公式的操作选取两个矫正后人脸的并集作为感兴趣区域ROI:
ROI.x1=min(correct_left_face.x1,correct_right_face.x1);
ROI.y1=min(correct_left_face.y1,correct_right_face.y1);
ROI.x2=max(correct_left_face.x2,correct_right_face.x2);
ROI.y2=max(correct_left_face.y2,correct_right_face.y2);
选取完矫正后人脸位置感兴趣区域ROI后,随即对双目镜头的左视图和右视图的ROI根据基线校正矩阵进行基线对齐,获得左视图的ROI图像left_face_img和右视图的ROI图像right_face_img,左右视图上世界坐标的同一点分别在基线对齐后图像上同一水平线上;
步骤四、对感兴趣区域进行基于深度学习方法的双目3D人脸建模与人脸立体判断,包括以下步骤:
步骤(1)输入左右视图数据构造cost volume:设置视差预测的网络输入尺寸,在输入网络之前需要将步骤三获得的left_face_img和right_face_img归一化到网络输入尺寸上,在输入空间构造2*D*网络输入尺寸的张量,其中D是实际能匹配的最大视差数,D的值为2n(n≥4);
步骤(2)CNN1视差特征提取:CNN1网络结构包括两个部分,前面部分是下采样8倍提取高维语义信息,后面部分是上采样8倍通过高层语义信息与底层纹理信息融合,CNN1视差特征提取学习过程是使用SoftmaxWithLoss交叉熵损失学习,由于步骤(1)将cost volume操作前移到原始数据层,所以只有一段CNN1网络结构就可以解码输出一个D*网络输入尺寸的视差特征;
步骤(3)argmax视差解析:argmax操作就是对网络输入尺寸张量的视差值解析出来,由于CNN1视差特征提取学习过程是使用SoftmaxWithLoss交叉熵损失学习,argmax操作是指找D*网络输入尺寸一个位置点在D通道上值最大的索引,这个位置点最大值所在的通道索引就是网络预测的视差值,经过argmax后视差预测张量形状变为网络输入尺寸向量;
步骤(4)建模人脸3D图:网络视差预测结果是基于网络输入尺寸图像的视差,对于原始分辨率的真实视差还需要乘以一个比例scale_x=(ROI.x2-ROI.x1)/网络输入尺寸的宽度,即原始分辨率的视差Dtruth=Dpredict*scale_x,Dpredict是预测的视差值,Dtruth是真实的视差值,3D人脸建模最终输出的深度Depth=B*F/(Dtruth),B是双目摄像头之间的基线距离,F是双目镜头基线校正之后的共面像素焦距,Depth是人脸的深度距离;
步骤(5)CNN2预测人脸3D立体:根据3D人脸图,设计CNN2深度学习分类网络,直接对网络输入尺寸的3D人脸图进行特征提取然后通过全连接层进行分类是否具有立体信息;
步骤五、将步骤四的双目3D人脸建模与人脸立体判断的深度学***台上,移植步骤包括:
步骤(1)、将SFD人脸检测模型量化移植到嵌入式平台上,用于检测原始左右视图的人脸,即在嵌入式平台上实现步骤二;步骤(2)、利用opencv图像处理库根据步骤(1)检测到的人脸和双目摄像头标定参数,计算校正之后的人脸感兴趣图像,并且归一化尺寸到网络输入尺寸,即在嵌入式平台上实现步骤三;
步骤(3)、3D人脸建模CNN1的移植,整理步骤四的训练数据量化CNN1模型,并且编码到嵌入式平台上的npu实现,对于视差解析argmax操作和3D深度建模编码到arm处理器上实现,输出3D人脸信息;
步骤(4)、立体判断CNN2的移植,整理步骤四训练数据量化CNN2模型,并且编码到嵌入式平台的npu实现,输出立体判断结果。
4.如权利要求3所述的嵌入式平台的双目3D人脸建模与立体判断方法,其特征在于:步骤一的标定过程是:将标定板摆放距离双目镜头合适的位置上,保证整个标定板都在双目左右视图的范围内并且使标定板的像素面积大于图像像素面积的1/4以上,采集标定板上、下、左、右、旋转10组以上的图片对即标定对,然后将采集的标定对进行双目相机的内外参标定并且保存下参数数据。
5.如权利要求3所述的嵌入式平台的双目3D人脸建模与立体判断方法,其特征在于:步骤二是使用精简版经典的SFD检测算法检测人脸,使用SFD算法对双目左右视图分别定位人脸位置,人脸是人脸立体建模中的感兴趣区域。
6.如权利要求3所述的嵌入式平台的双目3D人脸建模与立体判断方法,其特征在于:步骤四的步骤(4)中,CNN1和CNN2都是经过设备实际数据训练过后保存下的模型参数,训练数据是实际双目设备采集的真实左右视图,训练标签包含两部分:一部分是经过与左视图人脸对齐的准确视差图,另一部分是输入的左右人脸视图是否具有深度信息的分类标签,网络训练结构使用的是caffe,训练方式是CNN1与CNN2一体化训练,学习视差预测和立体判断的损失函数都是选择交叉熵损失。
7.如权利要求3所述的嵌入式平台的双目3D人脸建模与立体判断方法,其特征在于:所述嵌入式平台为海思3516平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011334611.1A CN112365586B (zh) | 2020-11-25 | 2020-11-25 | 3d人脸建模与立体判断方法及嵌入式平台的双目3d人脸建模与立体判断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011334611.1A CN112365586B (zh) | 2020-11-25 | 2020-11-25 | 3d人脸建模与立体判断方法及嵌入式平台的双目3d人脸建模与立体判断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112365586A true CN112365586A (zh) | 2021-02-12 |
CN112365586B CN112365586B (zh) | 2023-07-18 |
Family
ID=74534230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011334611.1A Active CN112365586B (zh) | 2020-11-25 | 2020-11-25 | 3d人脸建模与立体判断方法及嵌入式平台的双目3d人脸建模与立体判断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112365586B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112991422A (zh) * | 2021-04-27 | 2021-06-18 | 杭州云智声智能科技有限公司 | 一种基于空洞空间金字塔池化的立体匹配方法及*** |
CN113344999A (zh) * | 2021-06-28 | 2021-09-03 | 北京市商汤科技开发有限公司 | 深度检测方法及装置、电子设备和存储介质 |
CN113762267A (zh) * | 2021-09-02 | 2021-12-07 | 北京易航远智科技有限公司 | 一种基于语义关联的多尺度双目立体匹配方法及装置 |
CN116934728A (zh) * | 2023-07-31 | 2023-10-24 | 江苏济远医疗科技有限公司 | 一种基于嵌入式ai处理器的宫腔镜图像目标检测加速方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102474644A (zh) * | 2010-06-07 | 2012-05-23 | 索尼公司 | 立体图像显示***、视差转换装置、视差转换方法以及程序 |
CN107403168A (zh) * | 2017-08-07 | 2017-11-28 | 青岛有锁智能科技有限公司 | 一种面部识别*** |
CN110287964A (zh) * | 2019-06-13 | 2019-09-27 | 浙江大华技术股份有限公司 | 一种立体匹配方法及装置 |
WO2019192290A1 (zh) * | 2018-04-04 | 2019-10-10 | 腾讯科技(深圳)有限公司 | 一种深度信息确定的方法及相关装置 |
CN111402129A (zh) * | 2020-02-21 | 2020-07-10 | 西安交通大学 | 一种基于联合上采样卷积神经网络的双目立体匹配方法 |
-
2020
- 2020-11-25 CN CN202011334611.1A patent/CN112365586B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102474644A (zh) * | 2010-06-07 | 2012-05-23 | 索尼公司 | 立体图像显示***、视差转换装置、视差转换方法以及程序 |
CN107403168A (zh) * | 2017-08-07 | 2017-11-28 | 青岛有锁智能科技有限公司 | 一种面部识别*** |
WO2019192290A1 (zh) * | 2018-04-04 | 2019-10-10 | 腾讯科技(深圳)有限公司 | 一种深度信息确定的方法及相关装置 |
CN110287964A (zh) * | 2019-06-13 | 2019-09-27 | 浙江大华技术股份有限公司 | 一种立体匹配方法及装置 |
CN111402129A (zh) * | 2020-02-21 | 2020-07-10 | 西安交通大学 | 一种基于联合上采样卷积神经网络的双目立体匹配方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112991422A (zh) * | 2021-04-27 | 2021-06-18 | 杭州云智声智能科技有限公司 | 一种基于空洞空间金字塔池化的立体匹配方法及*** |
CN113344999A (zh) * | 2021-06-28 | 2021-09-03 | 北京市商汤科技开发有限公司 | 深度检测方法及装置、电子设备和存储介质 |
CN113762267A (zh) * | 2021-09-02 | 2021-12-07 | 北京易航远智科技有限公司 | 一种基于语义关联的多尺度双目立体匹配方法及装置 |
CN113762267B (zh) * | 2021-09-02 | 2024-03-12 | 北京易航远智科技有限公司 | 一种基于语义关联的多尺度双目立体匹配方法及装置 |
CN116934728A (zh) * | 2023-07-31 | 2023-10-24 | 江苏济远医疗科技有限公司 | 一种基于嵌入式ai处理器的宫腔镜图像目标检测加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112365586B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112365586B (zh) | 3d人脸建模与立体判断方法及嵌入式平台的双目3d人脸建模与立体判断方法 | |
CN110175576B (zh) | 一种结合激光点云数据的行驶车辆视觉检测方法 | |
CN104867135B (zh) | 一种基于指导图像引导的高精度立体匹配方法 | |
CN111241989A (zh) | 图像识别方法及装置、电子设备 | |
CN110189294B (zh) | 基于深度可信度分析的rgb-d图像显著性检测方法 | |
CN111480183B (zh) | 用于产生透视效果的光场图像渲染方法和*** | |
CN104517095B (zh) | 一种基于深度图像的人头分割方法 | |
CN107481279A (zh) | 一种单目视频深度图计算方法 | |
CN110827312B (zh) | 一种基于协同视觉注意力神经网络的学习方法 | |
CN113052066B (zh) | 三维目标检测中基于多视图和图像分割的多模态融合方法 | |
CN105913013A (zh) | 双目视觉人脸识别算法 | |
CN112200056B (zh) | 人脸活体检测方法、装置、电子设备及存储介质 | |
CN108470178B (zh) | 一种结合深度可信度评价因子的深度图显著性检测方法 | |
CN110472634A (zh) | 基于多尺度深度特征差值融合网络的变化检测方法 | |
CN111046856A (zh) | 基于动静态特征提取并行位姿跟踪与地图创建的方法 | |
CN114972177A (zh) | 道路病害识别管理方法、装置及智能终端 | |
CN114648669A (zh) | 一种域自适应双目视差计算的动车组故障检测方法及*** | |
Hirner et al. | FC-DCNN: A densely connected neural network for stereo estimation | |
CN114842340A (zh) | 一种机器人双目立体视觉障碍物感知方法与*** | |
Li et al. | Face detection based on depth information using HOG-LBP | |
Han et al. | Light-field depth estimation using RNN and CRF | |
CN116883981A (zh) | 一种车牌定位识别方法、***、计算机设备及存储介质 | |
Zhang et al. | The target tracking method based on camshift algorithm combined with sift | |
CN112069997B (zh) | 一种基于DenseHR-Net的无人机自主着陆目标提取方法及装置 | |
CN114608522A (zh) | 一种基于视觉的障碍物识别与测距方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |