本发明涉及结构光领域,尤其涉及一种结构光模组的旋转aa方法、装置及可读存储介质。
背景技术:
随着苹果公司首次在手机上使用结构光技术,在智能终端上使用结构光模组来作人脸识别、3d感测等将会是主流的发展方向。结构光模组包括结构光投影器和结构光摄像头,所述结构光投影器用于向被摄物投射经过编码的结构光,所述结构光摄像头用于向被摄物拍摄获取结构光图像,后端的图像处理器再依据图像算法对结构光图像进行解码,得到被摄物的深度信息。
理论上,所述结构光投影器的发光轴和所述结构光摄像头的进光轴之间应该相平行,但是由于制作公差和设计误差等原因,所述结构光模组不可避免会存在倾斜问题,在对结构光模组的倾斜问题进行aa纠正之后,还发现存在旋转问题,即所述结构光投影器的发光轴和所述结构光摄像头的进光轴之间存在一个相对的旋转角度。
技术实现要素:
为了解决上述现有技术的不足,本发明提供一种结构光模组的旋转aa方法、装置及可读存储介质。该旋转aa方法可消除结构光模组中的结构光投影器和结构光摄像头之间的光轴相对旋转。
本发明所要解决的技术问题通过以下技术方案予以实现:
一种结构光模组的旋转aa方法,结构光模组包括结构光投影器和结构光摄像头,步骤包括:
步骤1:将所述结构光投影器向投影平面上投射结构光斑,将所述结构光摄像头向投影平面上拍摄获取结构光图像,其中,所述结构光投影器的发光面和所述结构光摄像头的感光面均平行于所述投影平面;
步骤2:在获取的结构光图像中,计算出结构光斑的至少一光斑边缘直线与结构光图像的图像边缘直线之间的夹角;
步骤3:固定所述结构光投影器或结构光摄像头,依据计算出的夹角调节所述结构光摄像头或结构光投影器,纠正所述结构光投影器的发光轴和所述结构光摄像头的进光轴之间的相对旋转。
进一步地,步骤2包括:
步骤2.1:计算出至少一光斑边缘直线;
步骤2.2:依据计算出的至少一光斑边缘直线,计算出至少一光斑边缘直线与图像边缘直线之间的夹角。
进一步地,步骤2.1包括:
步骤2.1.1:对结构光图像进行二值化,形成二值化图像;
步骤2.1.2:在二值化图像中,计算出二值化亮区域和二值化暗区域之间的至少一二值化边缘直线,作为光斑边缘直线。
进一步地,步骤2.1.1包括:
步骤2.1.1.1:在结构光斑上选取至少一取值区域;
步骤2.1.1.2:依据选取的所有取值区域,计算出亮度平均值;
步骤2.1.1.3:将计算出的亮度平均值作为阈值,对结构光图像进行二值化。
进一步地,在步骤2.1.2中,在计算二值化边缘直线之前,先对二值化亮区域进行图像膨胀,再对二值化亮区域的内部区域进行图像填充。
进一步地,在步骤2.1.2中,对二值化亮区域的内部区域进行图像填充前,先获取二值化亮区域的内部区域。
进一步地,获取二值化亮区域的内部区域的方法包括:
a.在二值化亮区域中,计算出分别从上下左右四侧离0级衍射点最远的二值化亮点;
b.以计算出的二值化亮点所在的横直线和/或纵直线作为边框,获取二值化亮区域的内部区域。
进一步地,在步骤2中,通过边缘检测算法和直线检测算法计算出至少一边缘直线。
一种结构光模组的旋转aa装置,包括处理器和与所述处理器电气连接的存储器,所述存储器内储存有供所述处理器执行的计算机程序,所述处理器执行该计算机程序时,进行上述的结构光模组的旋转aa方法中的步骤2。
一种可读存储介质,其储存有供处理器执行的计算机程序,该计算机程序被所述处理器执行时,进行上述的结构光模组的旋转aa方法中的步骤2。。
本发明具有如下有益效果:该旋转aa方法通过在结构光图像中,计算所述结构光斑的光斑边缘与图像边缘之间的夹角来检测所述结构光模组中的结构光投影器和结构光摄像头之间的光轴相对旋转角度,以消除所述结构光投影器的发光轴和所述结构光摄像头的进光轴之间的相对旋转。
附图说明
图1为本发明提供的结构光模组的旋转aa方法的步骤框图;
图2为本发明提供的结构光模组的旋转aa的检测平台的示意图;
图3为结构光摄像头拍摄获取的结构光图像的示意图;
图4为在结构光斑上选取至少一取值区域的示意图;
图5为结构光图像二值化后的二值化图像的示意图;
图6为图像膨胀后的二值化图像的示意图;
图7为图像填充后的二值化图像的示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细的说明。
实施例一
如图1所示,一种结构光模组的旋转aa方法,结构光模组包括结构光投影器101和结构光摄像头102,步骤包括:
步骤1:如图2所示,将所述结构光投影器101向投影平面103上投射结构光斑105,将所述结构光摄像头102向投影平面103上拍摄获取如图3所示的结构光图像104,其中,所述结构光投影器101的发光面和所述结构光摄像头102的感光面均平行于所述投影平面103;
在该步骤1中,获取的结构光图像104中应包含有所述结构光斑105的至少一光斑边缘,可以选用一颗大fov的结构光摄像头102来搭配所述结构光投影器101组成结构光模组,所述结构光摄像头102的fov大于所述结构光投影器101的fov,这样所述结构光图像104中就包含有所述结构光斑105相对的至少两光斑边缘。旋转aa装置用于连接至所述结构光摄像头102,在读取所述结构光图像104后通过内置的旋转aa算法来计算出所述结构光投影器101的发光轴和所述结构光摄像头102的进光轴之间的相对旋转角度。
所述投影平面103可以但不限于为投影幕布,所述旋转aa装置可以但不限于为个人电脑。
步骤2:在获取的结构光图像104中,计算出结构光斑105的至少一光斑边缘直线与结构光图像104的图像边缘直线之间的夹角;
在该步骤2中,若计算的光斑边缘直线与选取的图像边缘直线是同一侧或相对侧,则两者理论上应为平行关系、夹角为0°,若计算的光斑边缘直线与选取的图像边缘直线是相邻侧,则两者理论上应为垂直关系、夹角为90°。
该步骤2具体包括:
步骤2.1:计算出至少一光斑边缘直线;
在该步骤2.1中,通过边缘检测算法和直线检测算法计算出至少一光斑边缘直线,具体的,先采用边缘检测算法检测出所述结构光斑105的至少一光斑边缘,然后通过直线检测算法对检测出的光斑边缘进行直线检测,再在检测出的光斑边缘直线附近选取恒定像素距离的几个亮点进行拟合,计算出光斑边缘直线方程。所述边缘检测算法优选采用canny算子,所述直线检测算法优选采用hough变换。
该步骤2.1具体包括:
步骤2.1.1:对结构光图像104进行二值化,形成如图5所示的二值化图像104a;
在二值化处理中,可以将整张结构光图像104的亮度平均值作为阈值,将亮度值大于阈值的所有像素点的亮度值均设置为255,形成二值化亮点,亮度值小于阈值的所有像素点的亮度值均设置为0,形成二值化暗点。在二值化图像104a中,原本的结构光斑105所在的区域会形成二值化亮区域105a,且分布有大量二值化暗块,原本的结构光斑105外的区域会形成二值化暗区域105b。
为了减少二值化亮区域105a内的二值化暗块的数量,提高检测计算边缘直线的精度,优选地,该步骤2.1.1包括:
步骤2.1.1.1:如图4所示,在结构光斑105上选取至少一取值区域106;
在该步骤2.1.1.1中,取值区域106的选取可以由检测人员在所述旋转aa装置上进行操作选取,也可以在所述旋转aa装置上对同一款结构光模组的取值区域106的选取位置和选取尺寸进行预设,由所述旋转aa装置自动选取。
取值区域106可以部分包含所述结构光斑105外的区域,但不能仅包含所述结构光斑105外的区域,且取值区域106的选取位置越靠近所述结构光斑105的边缘越好。
步骤2.1.1.2:依据选取的所有取值区域106,计算出亮度平均值;
在该步骤2.1.1.2中,依据所有取值区域106内所有像素点的亮度值,计算出亮度平均值。
步骤2.1.1.3:将计算出的亮度平均值作为阈值,对结构光图像104进行二值化。
步骤2.1.2:在二值化图像104a中,计算出二值化亮区域105a和二值化暗区域105b之间的至少一二值化边缘直线,作为光斑边缘直线。
在该步骤2.1.2中,与光斑边缘直线相同,二值化边缘直线也是通过边缘检测算法和直线检测算法得到。
优选地,在该步骤2.1.2中,在计算二值化边缘直线之前,如图6所示,先对二值化亮区域105a进行图像膨胀,如图7所示,再对二值化亮区域105a的内部区域105a1进行图像填充。
图像膨胀可以使二值化亮区域105a和二值化暗区域105b之间的边界更加清晰明显,图像填充可以去掉二值化亮区域105a内的大部分二值化暗块,提高对二值化边缘直线进行检测计算的精度,填充颜色可以为白色。
在该步骤2.1.2中,对二值化亮区域105a的内部区域105a1进行图像填充前,先获取二值化亮区域105a的内部区域105a1。
具体的,获取二值化亮区域105a的内部区域105a1的方法包括:
a.在二值化亮区域105a中,计算出分别从上下左右四侧离0级衍射点最远的二值化亮点;
所述0级衍射点对应于所述结构光投影器101的光心0级衍射光栅,表现为所述结构光斑105中亮度值最大的像素点,可以但不限于在二值化之前,先在所述结构光图像104中通过比较亮度值或图像二值化来寻找确定,此为现有算法不详细介绍。
所需的二值化亮点可以通过坐标法计算获得,具体的,如图7所示,在二值化图像104a上建立直角坐标系xy,比较每个二值化亮点的坐标值,分别计算出x值与0级衍射点的x值之间的差值最大和最小的两个二值化亮点,以及y值与0级衍射点的y值之间的差值最大和最小的两个二值化亮点,就可以得到从上下左右四侧离0级衍射点最远的二值化亮点。由于同一二值化亮点既可以是单侧离0级衍射点最远,也可以是相邻两侧均离0级衍射点最远,因此最终得到的二值化亮点的数量为2-4个。
b.以计算出的二值化亮点所在的横直线和/或纵直线作为边框,获取二值化亮区域105a的内部区域105a1。
将从左侧离0级衍射点最远的二值化亮点所在的纵直线作为左边框,将从右侧离0级衍射点最远的二值化亮点所在的纵直线作为右边框,从上侧离0级衍射点最远的二值化亮点所在的横直线作为上边框,从下侧离0级衍射点最远的二值化亮点所在的横直线作为下边框,获取所述内部区域105a1。
步骤2.2:依据计算出的至少一光斑边缘直线,计算出至少一光斑边缘直线与图像边缘直线之间的夹角。
在该步骤2.2中的光斑边缘直线用二值化边缘直线代替。
步骤3:固定所述结构光投影器101或结构光摄像头102,依据计算出的夹角调节所述结构光摄像头102或结构光投影器101,纠正所述结构光投影器101的发光轴和所述结构光摄像头102的进光轴之间的相对旋转。
在该步骤3中,以所述结构光投影器101的中心发光轴作为旋转轴,旋转所述结构光投影器101,或者,以所述结构光摄像头102的中心进光轴作为旋转轴,旋转所述结构光摄像头102。
该旋转aa方法通过在结构光图像104中,计算所述结构光斑105的光斑边缘与图像边缘之间的夹角来检测所述结构光模组中的结构光投影器101和结构光摄像头102之间的光轴相对旋转角度,以消除所述结构光投影器101的发光轴和所述结构光摄像头102的进光轴之间的相对旋转。
实施例二
一种结构光模组的旋转aa装置,包括处理器和与所述处理器电气连接的存储器,所述存储器内储存有供所述处理器执行的计算机程序,其特征在于,所述处理器执行该计算机程序时,进行实施例一中所述的结构光模组的旋转aa方法中的步骤2。
实施例三
一种可读存储介质,其储存有供处理器执行的计算机程序,该计算机程序被所述处理器执行时,进行实施例一中所述的结构光模组的旋转aa方法中的步骤2。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制,但凡采用等同替换或等效变换的形式所获得的技术方案,均应落在本发明的保护范围之内。