双目视觉传感器标定方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 09:35:27
技术领域
本申请涉及机器视觉技术领域,特别是涉及一种双目视觉传感器标定方法、装置、计算机设备和存储介质。
背景技术
双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用双目视觉传感器从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。双目立体视觉测量方法具有效率高、精度合适、系统结构简单、成本低等优点,非常适合于制造现场的在线、非接触产品检测和质量控制。
为了获得精准的双目立体视觉测量结果,通常需要对双目视觉传感器之间的位置关系进行校准和标定。传统基于平面标靶的双目标定方法,需要在双目视觉传感器的视野内布置众多的标定板,工作量较大,标定效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高标定效率的双目视觉传感器标定方法、装置、计算机设备和存储介质。
一种双目视觉传感器标定方法,所述方法包括:
获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像;
确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点;
根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对;
根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵;
分解位置映射矩阵,得到双目视觉传感器的外参数,双目视觉传感器的标定结果包括外参数。
在其中一个实施例中,获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组包括:
在待标定的双目视觉传感器处于不同的传感器分布参数时,调整预设的十字激光器的位置,获取由双目视觉传感器分别拍摄得到的各十字激光线图像组。
在其中一个实施例中,确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点包括:
对左侧十字激光线图像和右侧十字激光线图像分别进行滤波处理,得到左侧去噪图像和右侧去噪图像;
对左侧去噪图像和右侧去噪图像中的十字激光线进行激光直线拟合,并根据直线拟合结果分别确定左侧图像交叉点和右侧图像交叉点。
在其中一个实施例中,双目视觉传感器的内参数包括内部参数矩阵;位置映射矩阵包括单应性矩阵;根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵包括:
确定各特征点匹配对中特征点之间的传感器坐标映射函数;
根据特征点的图像坐标和内部参数矩阵,确定特征点对应的传感器坐标,传感器坐标为特征点在对应传感器坐标系下的坐标;
根据传感器坐标映射函数和传感器坐标,得到左侧十字激光线图像和右侧十字激光线图像之间的单应性矩阵。
在其中一个实施例中,在根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵之前,还包括:
对双目视觉传感器进行内参标定处理,得到双目视觉传感器的内参数。
在其中一个实施例中,分解位置映射矩阵,得到双目视觉传感器的外参数包括:
通过奇异值分解算法分解单应性矩阵,得到矩阵分解结果;
对矩阵分解结果的位置关系进行逻辑筛选,并根据逻辑筛选结果得到双目视觉传感器的外参数。
在其中一个实施例中,双目视觉传感器的内参数还包括径向畸变因素;在分解位置映射矩阵,得到双目视觉传感器的外参数之后,还包括:
通过内部参数矩阵、径向畸变因素、双目视觉传感器的传感器分布参数和各特征点匹配对的图像坐标,确定外参数的代价函数;
根据代价函数对外参数进行调整,得到优化后的外参数,并将优化后的外参数作为双目视觉传感器的标定结果。
一种双目视觉传感器标定装置,所述装置包括:
图像组获取模块,用于获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像;
交叉点确定模块,用于确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点;
匹配对确定模块,用于根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对;
映射矩阵确定模块,用于根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵;
标定结果获取模块,用于分解位置映射矩阵,得到双目视觉传感器的外参数,双目视觉传感器的标定结果包括外参数。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像;
确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点;
根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对;
根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵;
分解位置映射矩阵,得到双目视觉传感器的外参数,双目视觉传感器的标定结果包括外参数。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像;
确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点;
根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对;
根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵;
分解位置映射矩阵,得到双目视觉传感器的外参数,双目视觉传感器的标定结果包括外参数。
上述双目视觉传感器标定方法、装置、计算机设备和存储介质,基于在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,确定对应的特征点匹配对,并跟特征点匹配对确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵,分解该位置映射矩阵,得到双目视觉传感器的外参数,实现对双目视觉传感器的标定。通过不同拍摄条件下拍摄得到的各十字激光线图像组可以快速准确地确定对应的特征点匹配对,再基于该特征点匹配对确定位置映射矩阵并进一步得到外参数,实现了对双目视觉传感器的快速标定,提高了标定效率。
附图说明
图1为一个实施例中双目视觉传感器标定方法的应用环境图;
图2为一个实施例中双目视觉传感器标定方法的流程示意图;
图3为一个实施例中确定位置映射矩阵的流程示意图;
图4为一个实施例中对单应性矩阵进行SVD分解处理的分解结果示意图;
图5为另一个实施例中双目视觉传感器标定方法的流程示意图;
图6为一个实施例中双目视觉传感器标定装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的双目视觉传感器标定方法,可以应用于如图1所示的应用环境中。其中,待标定的双目视觉传感器由左侧相机A和右侧相机B组成,C为十字激光器,由十字激光器发射十字激光线至一平面,由双目视觉传感器的左侧相机A和右侧相机B对平面上的十字激光线进行拍摄,通过调整不同的拍摄条件,并将拍摄得到的各十字激光线图像组发送至终端(图未示)或服务器(图未示)进行标定处理。终端或服务器接收到包括左侧十字激光线图像和右侧十字激光线图像的各十字激光线图像组,确定对应的特征点匹配对,并根据特征点匹配对确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵,分解该位置映射矩阵,得到双目视觉传感器的外参数,如图1所示的旋转矩阵R和平移向量t,从而实现对双目视觉传感器的标定。
其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种双目视觉传感器标定方法,包括以下步骤:
步骤S201:获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像。
双目视觉传感器由左侧视觉传感器和右侧视觉传感器组成,视觉传感器可以为相机,用于从左右不同的位置获取被测物体的两幅图像,以通过计算图像对应点间的位置偏差,来获取物体三维几何信息,从而实现双目立体视觉。标定则为确定双目视觉传感器中左侧视觉传感器和右侧视觉传感器几何模型,即相机参数的过程。一般地,对于双目视觉传感器,需要标定的为左侧视觉传感器拍摄图像和右侧视觉传感器拍摄图像之间的外参数,具体可以包括旋转矩阵和平移向量。
其中,由待标定的双目视觉传感器在不同的拍摄条件下,对预设的十字激光器发射的十字激光线进行拍摄,并将拍摄得到的图像发送至终端或服务器,得到十字激光线图像组。具体地,可以由预设的十字激光器发射十字激光线至一面白色平面上(比如绘画墙、广告牌或白色平整的墙等),由待标定的双目视觉传感器对白色平面上的十字激光线进行拍摄。对于不同拍摄条件,可以通过调整双目视觉传感器中左侧视觉传感器和右侧视觉传感器之间的位置和角度,或调整十字激光器的位置以模拟实现不同的拍摄条件。其中,对于不同的拍摄条件,由双目视觉传感器对十字激光线进行拍摄,得到由左侧十字激光线图像和右侧十字激光线图像组成的十字激光线图像组,左侧十字激光线图像由左侧视觉传感器拍摄得到,右侧十字激光线图像由右侧视觉传感器拍摄得到。
步骤S203:确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点。
得到分别包括左侧十字激光线图像和右侧十字激光线图像的各十字激光线图像组后,确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点。其中,左侧图像交叉点和右侧图像交叉点为十字激光线的十字交叉点。具体可以对左侧十字激光线图像和右侧十字激光线图像进行图像处理,如滤波去噪、直线拟合等,分别确定左侧图像交叉点和右侧图像交叉点。
步骤S205:根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对。
本实施例中,将十字激光线的十字交叉点作为标定时的特征点,并根据该特征点构建特征点匹配对,以便根据特征点匹配对进行双目视觉传感器标定。具体地,将处于同一拍摄条件下得到的左侧图像交叉点和右侧图像交叉点组合作为十字激光线图像组对应的特征点匹配对。
步骤S207:根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵。
得到各特征点匹配对后,结合双目视觉传感器的内参数,如内部参数矩阵,分别确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵,位置映射矩阵反映了在针孔相机模型假设下,双目视觉传感器中左右视图的相对位置关系,具体实现时,位置映射矩阵可以为3x3单应性矩阵,当一个平面对象被双目视觉传感器的左右相机同时拍摄到时,即可计算推导获得该单应性矩阵。
步骤S209:分解位置映射矩阵,得到双目视觉传感器的外参数,双目视觉传感器的标定结果包括外参数。
得到位置映射矩阵后,分解该位置映射矩阵,得到双目视觉传感器的外参数,外参数可以作为双目视觉传感器的标定结果,如旋转矩阵和平移向量。具体地,在位置映射矩阵为3x3单应性矩阵时,可以基于SVD(Singular Value Decomposition,奇异值分解)算法对单应性矩阵进行分解,得到满足条件的旋转矩阵和平移向量,如得到左侧视觉传感器和右侧视觉传感器位于奇异值分解基线同一侧且二者的平移变换向量互为相反数的正确解,即正确的旋转矩阵和平移向量。通过在平面上投影十字激光线,提取投影十字激光线交叉点的方式获得特征点匹配对,效率快且不容易产生误匹配,鲁棒性更强。采用双目视觉传感器对十字激光线进行多次拍摄,获取在同一平面的大量特征点匹配对,利用这些匹配点对计算获得左侧视觉传感器到右侧视觉传感器图像平面的单应性映射矩阵,通过分解该矩阵可以获得双目视觉传感器的外参数,从而实现了对双目视觉传感器的现场快速标定。
上述双目视觉传感器标定方法中,基于在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,确定对应的特征点匹配对,并跟特征点匹配对确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵,分解该位置映射矩阵,得到双目视觉传感器的外参数,实现对双目视觉传感器的标定。通过不同拍摄条件下拍摄得到的各十字激光线图像组可以快速准确地确定对应的特征点匹配对,再基于该特征点匹配对确定位置映射矩阵并进一步得到外参数,实现了对双目视觉传感器的快速标定,提高了标定效率。
在其中一个实施例中,获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组包括:在待标定的双目视觉传感器处于不同的传感器分布参数时,调整预设的十字激光器的位置,获取由双目视觉传感器分别拍摄得到的各十字激光线图像组。
本实施例中,通过调整双目视觉传感器的传感器分布参数和预设的十字激光器的位置,构建不同的拍摄条件,以获取各种十字激光线图像组。其中,传感器分布参数可以包括双目视觉传感器的位置和角度。具体地,在待标定的双目视觉传感器处于不同的传感器分布参数时,调整预设的十字激光器的位置,由十字激光器在不同的位置发射出十字激光线,并由双目视觉传感器进行拍摄,得到各十字激光线图像组。
在具体实现时,可以先采用预设的十字激光器向一平面投影十字激光线,由双目视觉传感器的左侧视觉传感器和右侧视觉传感器对平面上的十字激光线进行拍摄,再缓慢移动十字激光器并不断同步触发双目视觉传器进行拍摄,如可以进行N
在其中一个实施例中,确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点包括:对左侧十字激光线图像和右侧十字激光线图像分别进行滤波处理,得到左侧去噪图像和右侧去噪图像;对左侧去噪图像和右侧去噪图像中的十字激光线进行激光直线拟合,并根据直线拟合结果分别确定左侧图像交叉点和右侧图像交叉点。
本实施例中,对左侧十字激光线图像和右侧十字激光线图像分别进行图像处理,确定左侧十字激光线图像和右侧十字激光线图像中十字激光线的十字交叉点。具体地,对左侧十字激光线图像和右侧十字激光线图像分别进行滤波处理,如采用中值滤波算法进行滤波处理,去除图像噪声,得到左侧去噪图像和右侧去噪图像。再对左侧去噪图像和右侧去噪图像中的十字激光线进行激光直线拟合,如使用霍夫变换(Hough Transform)或RANSAC算法(RANdom SAmple Consensus,随机抽样一致性)或最小二乘法对十字激光线进行激光直线拟合,并根据直线拟合结果分别确定左侧图像交叉点和右侧图像交叉点。在具体实现时,对左侧十字激光线图像和右侧十字激光线图像分别进行图像处理,可以确定在左侧十字激光线图像的图像坐标系下左侧图像交叉点的图像坐标,以及右侧十字激光线图像的图像坐标系下,右侧图像交叉点的图像坐标。对于相同拍摄条件下的左侧图像交叉点和右侧图像交叉点可以组成一特征点匹配对。
在其中一个实施例中,如图3所示,确定位置映射矩阵的步骤,即根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵包括:
步骤S301:确定各特征点匹配对中特征点之间的传感器坐标映射函数。
本实施例中,双目视觉传感器的内参数包括内部参数矩阵,位置映射矩阵包括单应性矩阵,确定位置映射矩阵时,确定各特征点匹配对中特征点之间的传感器坐标映射函数,传感器坐标映射函数具体可以为传感器坐标系之间的映射函数,其中传感器坐标系为基于视觉传感器构建的坐标系。例如,对于由左右相机构成的双目视觉传感器,则可以分别以左右相机构建左右相机坐标系,即为传感器坐标系。
具体实现时,如双目视觉传感器由左右相机组成,假设空间某个平面的一点P,在左相机坐标系坐标为Q
Q
其中,R为左相机到右相机的旋转矩阵,t为左相机到右相机的平移向量。
假设该平面在左相机坐标系中的法向量为n,根据点面距离公式,平面与坐标系原点的距离为d=n
将式(2)代入式(1),可得
公式(3)反映了各特征点匹配对中特征点之间的传感器坐标映射关系,即传感器坐标系之间的映射关系。
步骤S303:根据特征点的图像坐标和内部参数矩阵,确定特征点对应的传感器坐标,传感器坐标为特征点在对应传感器坐标系下的坐标。
特征点的图像坐标即为特征点在各自所属视觉传感器拍摄图像的图像坐标系下的坐标,例如,对于双目视觉传感器,可以基于左右相机拍摄的图像,对应构建左右图像坐标系,特征点的图像坐标即为该特征点在对应图像坐标系下的坐标。根据特征点的图像坐标和内部参数矩阵,确定特征点对应的传感器坐标,传感器坐标为特征点在对应传感器坐标系下的坐标。其中,传感器坐标系为基于视觉传感器构建得到的坐标系。
具体的,如双目视觉传感器由左右相机组成,内部参数矩阵包括左相机内参K
通过公式(4)可以根据特征点的图像坐标和内部参数矩阵确定特征点对应的传感器坐标。
步骤S305:根据传感器坐标映射函数和传感器坐标,得到左侧十字激光线图像和右侧十字激光线图像之间的单应性矩阵。
结合得到的传感器坐标映射函数和传感器坐标,得到左侧十字激光线图像和右侧十字激光线图像之间的单应性矩阵。
具体地,如上例,双目视觉传感器由左右相机组成时,将式(4)代入(3),得到
令
q
其中,单应性矩阵H未知量为5个,通过5对特征点匹配对构成10组方程即可求解获得H矩阵(3x3)结果。
在其中一个实施例中,在根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵之前,还包括:对双目视觉传感器进行内参标定处理,得到双目视觉传感器的内参数。
在根据特征点的图像坐标确定特征点对应的传感器坐标时,需要双目视觉传感器的内部参数矩阵。本实施例中,在确定位置映射矩阵之前,还包括确定双目视觉传感器的内参数的步骤。
具体地,对双目视觉传感器进行内参标定处理,如采用张正友的平面标靶标定方法对双目视觉传感器中的左侧视觉传感器和右侧视觉传感器分别进行标定,得到双目视觉传感器的内参数,内参数可以包括内部参数矩阵K
在其中一个实施例中,分解位置映射矩阵,得到双目视觉传感器的外参数包括:通过奇异值分解算法分解单应性矩阵,得到矩阵分解结果;对矩阵分解结果的位置关系进行逻辑筛选,并根据逻辑筛选结果得到双目视觉传感器的外参数。
本实施例中,通过奇异值分解算法分解单应性矩阵,得到矩阵分解结果,并对矩阵分解结果的位置关系进行逻辑筛选,再根据逻辑筛选结果得到双目视觉传感器的外参数。
具体实现时,如图4所示,对单应性矩阵H进行SVD分解处理后,可以得到4组R,t/d,n,分别对应不同的相对位置关系。考虑到左右相机需要在基线的同一侧,上述第(1)或(2)组为可能解,且二者的平移变换向量t/d互为相反数,根据左相机必定在右相机之左,则t/d的第一个元素小于0,即可判断排除剩余错误解,从而得到准确的双目视觉传感器的外参数,即旋转矩阵R和平移向量t。
在其中一个实施例中,双目视觉传感器的内参数还包括径向畸变因素;在分解位置映射矩阵,得到双目视觉传感器的外参数之后,还包括:通过内部参数矩阵、径向畸变因素、双目视觉传感器的传感器分布参数和各特征点匹配对的图像坐标,确定外参数的代价函数;根据代价函数对外参数进行调整,得到优化后的外参数,并将优化后的外参数作为双目视觉传感器的标定结果。
本实施例中,在得到双目视觉传感器的外参数之后,还可以对外参数进行非线性优化,以提高双目视觉传感器标定结果的准确性。具体地,双目视觉传感器的内参数还包括径向畸变因素,通过内部参数矩阵、径向畸变因素、双目视觉传感器的传感器分布参数和各特征点匹配对的图像坐标,确定外参数的代价函数,并根据代价函数对得到的外参数进行优化调整。其中,代价函数可以根据各十字激光线图像组对应的特征点匹配对的累积投影误差确定。
具体应用时,上例,双目视觉传感器由左右相机组成时,代价函数可以通过公式(7)表达,
其中,p为双目视觉传感器的移动位置序号,N
G=g(K
其中,K
优化过程中内参K
在一个实施例中,如图5所示,提供了一种双目视觉传感器标定方法,包括:
步骤S501:在待标定的双目视觉传感器处于不同的传感器分布参数时,调整预设的十字激光器的位置,获取由双目视觉传感器分别拍摄得到的各十字激光线图像组;
步骤S502:对左侧十字激光线图像和右侧十字激光线图像分别进行滤波处理,得到左侧去噪图像和右侧去噪图像;
步骤S503:对左侧去噪图像和右侧去噪图像中的十字激光线进行激光直线拟合,并根据直线拟合结果分别确定左侧图像交叉点和右侧图像交叉点;
步骤S504:根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对。
本实施例中,将预设的十字激光器投影到一平面,通过调整双目视觉传感器的传感器分布参数,以及十字激光器的位置,构建多个不同的拍摄条件,由双目视觉传感器对平面的十字激光线进行拍摄,得到的各十字激光线图像组。十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像。采用中值滤波算法对左侧十字激光线图像和右侧十字激光线图像分别进行滤波处理,去除图像噪声,得到左侧去噪图像和右侧去噪图像。再通过霍夫变换或RANSAC算法或最小二乘法对左侧去噪图像和右侧去噪图像中的十字激光线进行激光直线拟合,并根据直线拟合结果分别确定左侧图像交叉点和右侧图像交叉点。对于相同拍摄条件下的左侧图像交叉点和右侧图像交叉点可以组成一特征点匹配对。
步骤S505:对双目视觉传感器进行内参标定处理,得到双目视觉传感器的内参数。
采用张正友的平面标靶标定方法对双目视觉传感器中的左侧视觉传感器和右侧视觉传感器分别进行标定,得到双目视觉传感器的内参数,内参数包括内部参数矩阵K
步骤S506:根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵;
步骤S507:通过奇异值分解算法分解单应性矩阵,得到矩阵分解结果;
步骤S508:对矩阵分解结果的位置关系进行逻辑筛选,并根据逻辑筛选结果得到双目视觉传感器的外参数。
本实施例中,确定位置映射矩阵包括:确定各特征点匹配对中特征点之间的传感器坐标映射函数;根据特征点的图像坐标和内部参数矩阵,确定特征点对应的传感器坐标,传感器坐标为特征点在对应传感器坐标系下的坐标;根据传感器坐标映射函数和传感器坐标,得到左侧十字激光线图像和右侧十字激光线图像之间的单应性矩阵。再通过奇异值分解算法分解单应性矩阵,得到矩阵分解结果,并对矩阵分解结果的位置关系进行逻辑筛选,再根据逻辑筛选结果得到双目视觉传感器的外参数。
步骤S509:通过内部参数矩阵、径向畸变因素、双目视觉传感器的传感器分布参数和各特征点匹配对的图像坐标,确定外参数的代价函数;
步骤S510:根据代价函数对外参数进行调整,得到优化后的外参数,并将优化后的外参数作为双目视觉传感器的标定结果。
在得到双目视觉传感器的外参数之后,对外参数进行非线性优化,以提高双目视觉传感器标定结果的准确性。其中,代价函数可以根据各十字激光线图像组对应的特征点匹配对的累积投影误差确定。
应该理解的是,虽然图2-3、5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3、5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种双目视觉传感器标定装置,包括:图像组获取模块601、交叉点确定模块603、匹配对确定模块605、映射矩阵确定模块607和标定结果获取模块609,其中:
图像组获取模块601,用于获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像;
交叉点确定模块603,用于确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点;
匹配对确定模块605,用于根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对;
映射矩阵确定模块607,用于根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵;
标定结果获取模块609,用于分解位置映射矩阵,得到双目视觉传感器的外参数,双目视觉传感器的标定结果包括外参数。
在其中一个实施例中,图像组获取模块601包括图像组获取单元,用于在待标定的双目视觉传感器处于不同的传感器分布参数时,调整预设的十字激光器的位置,获取由双目视觉传感器分别拍摄得到的各十字激光线图像组。
在其中一个实施例中,交叉点确定模块603包括滤波去噪单元和交叉点确定单元;其中,滤波去噪单元,用于对左侧十字激光线图像和右侧十字激光线图像分别进行滤波处理,得到左侧去噪图像和右侧去噪图像;交叉点确定单元,用于对左侧去噪图像和右侧去噪图像中的十字激光线进行激光直线拟合,并根据直线拟合结果分别确定左侧图像交叉点和右侧图像交叉点。
在其中一个实施例中,双目视觉传感器的内参数包括内部参数矩阵;位置映射矩阵包括单应性矩阵;映射矩阵确定模块607包括映射函数单元、传感器坐标单元和矩阵确定单元;其中,映射函数单元,用于确定各特征点匹配对中特征点之间的传感器坐标映射函数;传感器坐标单元,用于根据特征点的图像坐标和内部参数矩阵,确定特征点对应的传感器坐标,传感器坐标为特征点在对应传感器坐标系下的坐标;矩阵确定单元,用于根据传感器坐标映射函数和传感器坐标,得到左侧十字激光线图像和右侧十字激光线图像之间的单应性矩阵。
在其中一个实施例中,还包括内参确定模块,用于对双目视觉传感器进行内参标定处理,得到双目视觉传感器的内参数。
在其中一个实施例中,标定结果获取模块609包括矩阵分解单元和结果筛选单元;其中,矩阵分解单元,用于通过奇异值分解算法分解单应性矩阵,得到矩阵分解结果;结果筛选单元,用于对矩阵分解结果的位置关系进行逻辑筛选,并根据逻辑筛选结果得到双目视觉传感器的外参数。
在其中一个实施例中,双目视觉传感器的内参数还包括径向畸变因素;还包括代价函数模块和结果优化模块;其中,代价函数模块,用于通过内部参数矩阵、径向畸变因素、双目视觉传感器的传感器分布参数和各特征点匹配对的图像坐标,确定外参数的代价函数;结果优化模块,用于根据代价函数对外参数进行调整,得到优化后的外参数,并将优化后的外参数作为双目视觉传感器的标定结果。
关于双目视觉传感器标定装置的具体限定可以参见上文中对于双目视觉传感器标定方法的限定,在此不再赘述。上述双目视觉传感器标定装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器或终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种双目视觉传感器标定方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像;
确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点;
根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对;
根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵;
分解位置映射矩阵,得到双目视觉传感器的外参数,双目视觉传感器的标定结果包括外参数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在待标定的双目视觉传感器处于不同的传感器分布参数时,调整预设的十字激光器的位置,获取由双目视觉传感器分别拍摄得到的各十字激光线图像组。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对左侧十字激光线图像和右侧十字激光线图像分别进行滤波处理,得到左侧去噪图像和右侧去噪图像;对左侧去噪图像和右侧去噪图像中的十字激光线进行激光直线拟合,并根据直线拟合结果分别确定左侧图像交叉点和右侧图像交叉点。
在一个实施例中,双目视觉传感器的内参数包括内部参数矩阵;位置映射矩阵包括单应性矩阵;处理器执行计算机程序时还实现以下步骤:确定各特征点匹配对中特征点之间的传感器坐标映射函数;根据特征点的图像坐标和内部参数矩阵,确定特征点对应的传感器坐标,传感器坐标为特征点在对应传感器坐标系下的坐标;根据传感器坐标映射函数和传感器坐标,得到左侧十字激光线图像和右侧十字激光线图像之间的单应性矩阵。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对双目视觉传感器进行内参标定处理,得到双目视觉传感器的内参数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过奇异值分解算法分解单应性矩阵,得到矩阵分解结果;对矩阵分解结果的位置关系进行逻辑筛选,并根据逻辑筛选结果得到双目视觉传感器的外参数。
在一个实施例中,双目视觉传感器的内参数还包括径向畸变因素;处理器执行计算机程序时还实现以下步骤:通过内部参数矩阵、径向畸变因素、双目视觉传感器的传感器分布参数和各特征点匹配对的图像坐标,确定外参数的代价函数;根据代价函数对外参数进行调整,得到优化后的外参数,并将优化后的外参数作为双目视觉传感器的标定结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取在不同拍摄条件下,由待标定的双目视觉传感器分别拍摄得到的各十字激光线图像组,十字激光线图像组包括左侧十字激光线图像和右侧十字激光线图像;
确定左侧十字激光线图像中十字激光线的左侧图像交叉点,确定右侧十字激光线图像中十字激光线的右侧图像交叉点;
根据左侧图像交叉点和右侧图像交叉点得到十字激光线图像组对应的特征点匹配对;
根据各特征点匹配对和双目视觉传感器的内参数,确定左侧十字激光线图像和右侧十字激光线图像之间的位置映射矩阵;
分解位置映射矩阵,得到双目视觉传感器的外参数,双目视觉传感器的标定结果包括外参数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在待标定的双目视觉传感器处于不同的传感器分布参数时,调整预设的十字激光器的位置,获取由双目视觉传感器分别拍摄得到的各十字激光线图像组。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对左侧十字激光线图像和右侧十字激光线图像分别进行滤波处理,得到左侧去噪图像和右侧去噪图像;对左侧去噪图像和右侧去噪图像中的十字激光线进行激光直线拟合,并根据直线拟合结果分别确定左侧图像交叉点和右侧图像交叉点。
在一个实施例中,双目视觉传感器的内参数包括内部参数矩阵;位置映射矩阵包括单应性矩阵;计算机程序被处理器执行时还实现以下步骤:确定各特征点匹配对中特征点之间的传感器坐标映射函数;根据特征点的图像坐标和内部参数矩阵,确定特征点对应的传感器坐标,传感器坐标为特征点在对应传感器坐标系下的坐标;根据传感器坐标映射函数和传感器坐标,得到左侧十字激光线图像和右侧十字激光线图像之间的单应性矩阵。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对双目视觉传感器进行内参标定处理,得到双目视觉传感器的内参数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过奇异值分解算法分解单应性矩阵,得到矩阵分解结果;对矩阵分解结果的位置关系进行逻辑筛选,并根据逻辑筛选结果得到双目视觉传感器的外参数。
在一个实施例中,双目视觉传感器的内参数还包括径向畸变因素;计算机程序被处理器执行时还实现以下步骤:通过内部参数矩阵、径向畸变因素、双目视觉传感器的传感器分布参数和各特征点匹配对的图像坐标,确定外参数的代价函数;根据代价函数对外参数进行调整,得到优化后的外参数,并将优化后的外参数作为双目视觉传感器的标定结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 双目视觉传感器标定方法、装置、计算机设备和存储介质
- 单端式电涡流微位移传感器标定装置、方法、计算机设备和存储介质