一种双目左右图对齐校正进行活体检测的方法技术

技术编号:39311948 阅读:10 留言:0更新日期:2023-11-12 15:57
本发明专利技术提供一种双目左右图对齐校正进行活体检测的方法,包括:S1采集棋盘格图;S2完成单目标定;S3对左右图片矫正去除畸变;S4透视变换将左右图对齐;S5进行人脸框裁剪。通过采集十张左右棋盘格图,完成一个摄像头的单目标定,计算出内参矩阵、畸变矩阵,左右两个摄像头使用一套内参、畸变矩阵,去除原始图片上的畸变信息,通过透视变换,实现左右图在行方向上的对齐。的对齐。的对齐。

【技术实现步骤摘要】
一种双目左右图对齐校正进行活体检测的方法


[0001]本专利技术涉及图像处理
,特别涉及一种双目左右图对齐校正进行活体检测的方法。

技术介绍

[0002]随着科技的发展,现有技术在人脸活体识别系统中,由于市面大多数双目摄像头都会采用不同的模组,以及两个摄像头自身存在的差异,不可避免会在成像参数和组装精度上有所不同。因此需要进行双目左右图对齐,来矫正消除摄像头成像后所存在的畸变。
[0003]现有的双目对齐方法是分别对每个摄像头进行单目标定,获取每个摄像头的内参、畸变矩阵,通过双目标定,获得重投影矩阵及旋转平移矩阵,然后消除畸变,使左右图在行方向上对齐,实现双目左右图对齐。
[0004]然而,目前常规的双目对齐方法都是通过双目标定实现的,这种方法需要拍摄20多张不同角度的棋盘格图,需要完成每个摄像头的单目标定,并最后对他们进行矫正去除畸变。这个过程中标定繁琐,对拍摄的棋盘格图很严谨,影响标定后的结果。
[0005]另外,现有技术中的常用术语如下:
[0006]标定板:带有固定间距图案阵列的平板就是标定板。通过相机拍摄带有固定间距图案阵列平板、经过标定算法的计算,可以得出相机的几何模型,从而得到高精度的测量和重建结果。
[0007]单目标定:求得每个标定板对应的单应矩阵,再联合优化所有标定板数据得到相机内参矩阵,再得到每个标定板对应的外参。
[0008]内参矩阵:是将3D相机坐标变换到2D齐次图像坐标,由相机自身来决定的,不会因为外界环境而改变,与相机的焦距f有关。<br/>[0009]畸变参数:镜头不规整,以及安装时镜头和感光片不完全平行造成的。图像矫正:通过内参矩阵、畸变参数,使原始图像去除畸变的过程,使图片变得规整。
[0010]透视变换:透视变换(Perspective Transformation)是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。
[0011]OPENCV:是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

技术实现思路

[0012]为了解决上述现有技术中的问题,本申请的目的在于:通过采集十张左右棋盘格图,完成一个摄像头的单目标定,计算出内参矩阵、畸变矩阵,左右两个摄像头使用一套内参、畸变矩阵,去除原始图片上的畸变信息,通过透视变换,实现左右图在行方向上的对齐。
[0013]具体地,本专利技术提供一种双目左右图对齐校正进行活体检测的方法,所述方法包括以下步骤:
[0014]S1.采集棋盘格图:
[0015]通过摄像头采集不同角度的棋盘格图,采集四张以上棋盘格图,完成一个摄像头的单目标定,棋盘格在图像中成像必须完整,经过测试,距离镜头的距离为1米以内,对摄像头曝光度的曝光阈值设置为0.3,0.3以下即小于等于0.3为正常曝光度;
[0016]S2.完成单目标定:
[0017]对左摄像头或右摄像头采取的棋盘格图提取角点信息、确定角点位置是否满足标定的要求,所述标定的要求为必须能检测到棋盘格中所有角点,不能有缺失,否则不能正常提取角点信息,为了得到精确的角点信息,进行亚像素角点精确化,即使用opencv中find4QuadCornerSubpix()亚像素角点检测来确定角点信息,确定角点信息后,对其中一个摄像头进行标定,获得相机的内参矩阵及畸变参数,对标定结果进行评价,使用所述的相机的内参矩阵及畸变参数,对空间的三维点进行重投影计算,得到新的投影坐标,计算投影坐标和亚像素角点坐标之间的偏差,偏差越小,标定结果越好;
[0018]S3.对左右图片矫正去除畸变:
[0019]在矫正去除畸变的过程中,左右摄像头使用同一套摄像头参数;
[0020]S4.透视变换将左右图对齐:
[0021]透视变化优化在行方向上的高度差值,使左右图在行方向上对齐,减小求解视差时带来的误差;
[0022]S5.进行人脸框裁剪:
[0023]通过人脸检测框中心点坐标,设置左右宽度差值的权重,将左右人脸裁剪图来替代原图的信息,降低图像的分辨率,使计算出的人脸面部视差效果更明显。
[0024]所述步骤S1中,采集十张棋盘格图,标定结果会更准确;所述曝光阈值0.3以上曝光严重,成像的棋盘格图不能过曝也不能过暗,在挑选棋盘格图片时,只要人眼能正常区分棋盘格的黑白方格即可,否则不能找到棋盘格角点,无法进行标定。
[0025]所述步骤S2中,所述的相机的内参矩阵由这些参数构成:f/dx、f/dy、u0、v0;其中,f:焦距,单位毫米;dx:像素x方向宽度,单位毫米;1/dx:x方向1毫米内有多少个像素;f/dx:使用像素来描述x轴方向焦距的长度;f/dy:使用像素来描述y轴方向焦距的长度;u0,v0代表图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数;畸变参数是:k1、k2、k3径向畸变,p1、p2是切向畸变系数;径向畸变发生在相机坐标系转像物理坐标系的过程中,切向畸变:产生的原因是透镜不完全平行于图像。
[0026]所述步骤S2的单目标定的实现包括:
[0027]1)提取角点,采用findChessboardCorners();设
[0028]int cvFindChessboardCorners(const void*image,
[0029]CvSize pattern_size,
[0030]CvPoint2D32f*corners,
[0031]int*corner_count=NULL,
[0032]int flags=CV_CALIB_CB_ADAPTIVE_THRESH);
[0033]该函数试图确定输入图像是否是棋盘模式,并确定角点的位置;如果所有角点都
被检测到且它们都被以一定顺序排布,函数返回非零值,否则在函数不能发现所有角点或者记录它们地情况下,函数返回0;
[0034]2)亚像素精确化,采用find4QuadCornerSubpix();设CV_EXPORTS bool find4QuadCornerSubpix(InputArray img,
[0035]InputOutputArray corners,
[0036]Size region_size);
[0037]为了提高标定精度,需要在初步提取的角点信息上进一步提取亚像素信息,降低相机标定偏差,该函数是专门用来获取棋盘图上内角点的精确位置;
[0038]6)内角点可视化,采用drawChessboardCo本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种双目左右图对齐校正进行活体检测的方法,其特征在于,所述方法包括以下步骤:S1.采集棋盘格图:通过摄像头采集不同角度的棋盘格图,采集四张以上棋盘格图,完成一个摄像头的单目标定,棋盘格在图像中成像必须完整,经过测试,距离镜头的距离为1米以内,对摄像头曝光度的曝光阈值设置为0.3,0.3以下即小于等于0.3为正常曝光度;S2.完成单目标定:对左摄像头或右摄像头采取的棋盘格图提取角点信息、确定角点位置是否满足标定的要求,所述标定的要求为必须能检测到棋盘格中所有角点,不能有缺失,否则不能正常提取角点信息,为了得到精确的角点信息,进行亚像素角点精确化,即使用opencv中find4QuadCornerSubpix()亚像素角点检测来确定角点信息,确定角点信息后,对其中一个摄像头进行标定,获得相机的内参矩阵及畸变参数,对标定结果进行评价,使用所述的相机的内参矩阵及畸变参数,对空间的三维点进行重投影计算,得到新的投影坐标,计算投影坐标和亚像素角点坐标之间的偏差,偏差越小,标定结果越好;S3.对左右图片矫正去除畸变:在矫正去除畸变的过程中,左右摄像头使用同一套摄像头参数;S4.透视变换将左右图对齐:透视变化优化在行方向上的高度差值,使左右图在行方向上对齐,减小求解视差时带来的误差;S5.进行人脸框裁剪:通过人脸检测框中心点坐标,设置左右宽度差值的权重,将左右人脸裁剪图来替代原图的信息,降低图像的分辨率,使计算出的人脸面部视差效果更明显。2.根据权利要求1所述的一种双目左右图对齐校正进行活体检测的方法,其特征在于,所述步骤S1中,采集十张棋盘格图,标定结果会更准确;所述曝光阈值0.3以上曝光严重,成像的棋盘格图不能过曝也不能过暗,在挑选棋盘格图片时,只要人眼能正常区分棋盘格的黑白方格即可,否则不能找到棋盘格角点,无法进行标定。3.根据权利要求1所述的一种双目左右图对齐校正进行活体检测的方法,其特征在于,所述步骤S2中,所述的相机的内参矩阵由这些参数构成:f/dx、f/dy、u0、v0;其中,f:焦距,单位毫米;dx:像素x方向宽度,单位毫米;1/dx:x方向1毫米内有多少个像素;f/dx:使用像素来描述x轴方向焦距的长度;f/dy:使用像素来描述y轴方向焦距的长度;u0,v0代表图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数;畸变参数是:k1、k2、k3径向畸变,p1、p2是切向畸变系数;径向畸变发生在相机坐标系转像物理坐标系的过程中,切向畸变:产生的原因是透镜不完全平行于图像。4.根据权利要求1所述的一种双目左右图对齐校正进行活体检测的方法,其特征在于,所述步骤S2的单目标定的实现包括:1)提取角点,采用findChessboardCorners();设int cvFindChessboardCorners(const void*image,CvSize pattern_size,CvPoint2D32f*corners,
int*corner_count=NULL,int flags=CV_CALIB_CB_ADAPTIVE_THRESH);该函数试图确定输入图像是否是棋盘模式,并确定角点的位置;如果所有角点都被检测到且它们都被以一定顺序排布,函数返回非零值,否则在函数不能发现所有角点或者记录它们地情况下,函数返回0;2)亚像素精确化,采用find4QuadCornerSubpix();设CV_EXPORTS bool find4QuadCornerSubpix(InputArray img,InputOutputArray corners,Size region_size);为了提高标定精度,需要在初步提取的角点信息上进一步提取亚像素信息,降低相机标定偏差,该函数是专门用来获取棋盘图上内角点的精确位置;3)内角点可视化,采用drawChessboardCorners()函数;设CV_EXPORTS_W void drawChessboardCorners(InputOutputArray image,Size patternSize,InputArray corners,bool patternWasFound);该函数将发现到的所有角点绘制到所提供的图像上;4)相机标定,采用calibrateCamera()函数;设CV_EXPORTS_W double cal ibrateCamera(InputArrayOfArrays objectPoints,InputArrayOfArrays imagePoints,Size imageSize,CV_OUT InputOutputArray cameraMatrix,CV_OUT InputOutputArray distCoeffs,OutputArrayOfArrays rvecs,OutputArrayOfArrays tvecs,int flags=0,TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS,30,DBL_EPSILON));该函数进行标定,计算相机内参和畸变系数,在使用该函数进行标定运算之前,需要对棋盘上每一个内角...

【专利技术属性】
技术研发人员:李广旭
申请(专利权)人:北京君正集成电路股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1