发明内容
本发明的主要目的在于提供一种环视***自动标定方法,旨在解决现有环视***标定中用户手动找角点导致整个标定过程较为繁琐的技术问题。
为实现上述目的,本发明提供一种环视***自动标定方法,所述方法包括:
获取摄像头抓取到的带标定板的初始图像,对初始图像进行预处理后得到二值化图像,分割出标定板大致位置,再对该二值化图像进行连通域检测,确定该二值化图像中的连通域,根据预设规则将该连通域分割成标记块;
获取所述各标记块的轮廓点集和中心,获取各轮廓点集中距离对应标记块中心最远的第一角点;
获取各轮廓点集中距离第一角点最远的第二角点;
确定第一角点和第二角点连线的垂线,确定各轮廓点集中各轮廓点在该垂线上的投影垂足,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点;基于所述第一角点、第二角点、第三角点和第四角点完成环视***自动标定。
所述对该二值化图像进行连通域检测,确定该二值化图像中的连通域,根据预设规则将该连通域分割成标记块的步骤包括:
分割出二值化图像中标定板所处位置;
对该二值化图像上标定板所处位置进行连通域检测,确定该二值化图像上标定板所处位置的连通域;
根据所述连通域的面积大小,将该连通域分割成标记块。
所述基于第一角点、第二角点、第三角点和第四角点完成环视***自动标定的步骤包括:
对由第一角点、第二角点、第三角点和第四角点组成的角点集中的各角点分别执行下述精定位操作:
获取角点预设邻域内的分轮廓点集,以角点对应界线为界将所述分轮廓点集划分为第一点集和第二点集;
将第一点集和第二点集分别进行直线拟合,获得第一直线和第二直线,获取第一直线和第二直线的交点,该交点为精定位角点;
获取所述角点集中各角点的精定位角点,基于所述精定位角点完成环视***自动标定;
所述角点对应界线为:第一角点和第二角点对应界线为第一角点和第二角点的连线;第三角点和第四角点对应界线为第三角点和第四角点的连线。
所述基于所述精定位角点完成环视***自动标定的步骤包括:
从所有所述精定位角点中选择第一预设个数角点,根据所述第一预设个数角点,获得候选参数;
获取当前成功求解的候选参数组数和当前求解次数,判断是否存在当前成功求解的候选参数组数等于预设组数或者当前求解次数达到预设次数;
若存在当前成功求解的候选参数组数等于预设组数或者当前求解次数达到预设次数,则计算所述各组候选参数的误差,获取所述各组候选参数中误差最小的候选参数,该误差最小的候选参数为目标参数,基于该目标参数完成环视***自动标定;
若当前成功求解的候选参数组数不等于预设组数且当前求解次数未达到预设次数,则执行所述从所有所述精定位角点中选择第一预设个数角点的步骤。
所述从所有所述精定位角点中选择第一预设个数角点,根据所述第一预设个数角点,获得候选参数的步骤包括:
从所有所述精定位角点中选择第一预设个数角点,修改所述第一预设个数角点中第二预设个数角点的坐标值;
根据所述修改后的第一预设个数角点的坐标值,获得候选参数。
所述基于该目标参数完成环视***自动标定的步骤包括:
根据所述目标参数生成图像拼接映射表,根据所述图像拼接映射表将初始图像变换成全景拼接图。
为实现上述发明目的,本发明还提出一种汽车,所述汽车包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的环视***自动标定程序,所述环视***自动标定程序被所述处理器执行时实现如上述环视***自动标定方法所述的步骤。
为实现上述发明目的,本发明还提出一种标定装置,所述标定装置包括:
图片获取模块,用于获取摄像头抓取到的带标定板的初始图像;
图像预处理模块,用于对初始图像进行预处理后得到二值化图像;
检测模块,用于对所述二值化图像进行连通域检测,确定所述初始图像中的连通域;
角点获取模块,用于获取所述各标记块的轮廓点集和中心,获取各轮廓点集中距离对应标记块中心最远的第一角点;获取各轮廓点集中距离第一角点最远的第二角点;获取各轮廓点集中在该垂线上的投影垂足点,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点。
为实现上述发明目的,本发明还提出一种存储介质,所述存储介质上存储有环视***自动标定程序,所述环视***自动标定程序被处理器执行时实现如上述环视***自动标定方法所述的步骤。
本发明实施例提出的一种环视***自动标定方法,通过获取摄像头抓取到的带标定板的初始图像,对初始图像进行预处理后得到二值化图像,对该二值化图像进行连通域检测,确定该二值化图像中的连通域,根据预设规则将该连通域分割成标记块,以图3所示的棋盘布为例,得到的标记块为棋盘布中的黑色块,角点记为黑色块轮廓上的某一点;获取所述各标记块的轮廓点集和中心,获取各轮廓点集中距离对应标记块中心最远的第一角点,虽然由于图像模糊、畸变,标记块不一定是正方形,但大体上是四边形,不管该四边形如何畸变,四边形上的角点总有一个是距离中心最远的,因而这一步骤可确定一个角点的大致位置;获取各轮廓点集中距离第一角点最远的第二角点,一个角点的对角距离该角点距离最远,因而标记块的轮廓点中距第一角点最远的点为第二角点;确定第一角点和第二角点连线的垂线,确定各轮廓点集中各轮廓点在该垂线上的投影垂足,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点,在正方形中,两对角线垂直,根据这一原理可确定这一步骤可得到第三角点和第四角点。基于所述第一角点、第二角点、第三角点和第四角点完成环视***自动标定。车载***可执行自动找点程序的上述步骤以自动找出图像上的一些角点,简化了标定过程,无需用户仔细找角点,给用户带来极大的便利,大大提升了用户体验。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
如图1所示,图1是实现本发明实施例方案的汽车的结构示意图。
如图1所示,该汽车可以包括:处理器1001(例如CPU),存储器1002,输入输出接口1003,通信总线1004、模数转换器1005。其中,通信总线1004用于实现这些组件之间的连接通信。输入输出接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard)、触摸屏、摄像头(包括AR/VR设备),可选输入输出接口1003还可以包括标准的有线接口、无线接口。存储器1002可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1002可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的汽车结构并不构成对汽车的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1002中可以存储环视***自动标定程序。
在图1所示的汽车中,处理器1001可以用于调用存储器1002中存储的环视***自动标定程序,并执行以下操作:
获取摄像头抓取到的带标定板的初始图像,对初始图像进行预处理后得到二值化图像,分割出标定板大致位置,再对该二值化图像进行连通域检测,确定该二值化图像中的连通域,根据预设规则将该连通域分割成标记块;
获取所述各标记块的轮廓点集和中心,获取各轮廓点集中距离对应标记块中心最远的第一角点;
获取各轮廓点集中距离第一角点最远的第二角点;
确定第一角点和第二角点连线的垂线,确定各轮廓点集中各轮廓点在该垂线上的投影垂足,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点;基于所述第一角点、第二角点、第三角点和第四角点完成环视***自动标定。
所述对该二值化图像进行连通域检测,确定该二值化图像中的连通域,根据预设规则将该连通域分割成标记块的步骤包括:
分割出二值化图像中标定板所处位置;
对该二值化图像上标定板所处位置进行连通域检测,确定该二值化图像上标定板所处位置的连通域;
根据所述连通域的面积大小,将该连通域分割成标记块。
所述基于第一角点、第二角点、第三角点和第四角点完成环视***自动标定的步骤包括:
对由第一角点、第二角点、第三角点和第四角点组成的角点集中的各角点分别执行下述精定位操作:
获取角点预设邻域内的分轮廓点集,以角点对应界线为界将所述分轮廓点集划分为第一点集和第二点集;
将第一点集和第二点集分别进行直线拟合,获得第一直线和第二直线,获取第一直线和第二直线的交点,该交点为精定位角点;
获取所述角点集中各角点的精定位角点,基于所述精定位角点完成环视***自动标定;
所述角点对应界线为:第一角点和第二角点对应界线为第一角点和第二角点的连线;第三角点和第四角点对应界线为第三角点和第四角点的连线。
所述基于所述精定位角点完成环视***自动标定的步骤包括:
从所有所述精定位角点中选择第一预设个数角点,根据所述第一预设个数角点,获得候选参数;
获取当前成功求解的候选参数组数和当前求解次数,判断是否存在当前成功求解的候选参数组数等于预设组数或者当前求解次数达到预设次数;
若存在当前成功求解的候选参数组数等于预设组数或者当前求解次数达到预设次数,则计算所述各组候选参数的误差,获取所述各组候选参数中误差最小的候选参数,该误差最小的候选参数为目标参数,基于该目标参数完成环视***自动标定;
若当前成功求解的候选参数组数不等于预设组数且当前求解次数未达到预设次数,则执行所述从所有所述精定位角点中选择第一预设个数角点的步骤。
所述从所有所述精定位角点中选择第一预设个数角点,根据所述第一预设个数角点,获得候选参数的步骤包括:
从所有所述精定位角点中选择第一预设个数角点,修改所述第一预设个数角点中第二预设个数角点的坐标值;
根据所述修改后的第一预设个数角点的坐标值,获得候选参数。
所述基于该目标参数完成环视***自动标定的步骤包括:
根据所述目标参数生成图像拼接映射表,根据所述图像拼接映射表将初始图像变换成全景拼接图。
本发明还提出一种标定装置,所述标定装置包括:
图片获取模块,用于获取摄像头抓取到的带标定板的初始图像;
图像预处理模块,用于对初始图像进行预处理后得到二值化图像,分割出标定板大致位置;
检测模块,用于对所述二值化图像进行连通域检测,确定所述二值化图像中的连通域;
角点获取模块,用于获取所述各标记块的轮廓点集和中心,获取各轮廓点集中距离对应标记块中心最远的第一角点;获取各轮廓点集中距离第一角点最远的第二角点;获取各轮廓点集中在该垂线上的投影垂足点,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点。
本发明还提出一种标定装置,所述标定装置包括:
图片获取模块,用于获取摄像头抓取到的带标定板的初始图像;
图像预处理模块,用于对初始图像进行预处理后得到二值化图像;
检测模块,用于对所述二值化图像进行连通域检测,确定所述初始图像中的连通域;
角点获取模块,用于获取所述各标记块的轮廓点集和中心,获取各轮廓点集中距离对应标记块中心最远的第一角点;获取各轮廓点集中距离第一角点最远的第二角点;获取各轮廓点集中在该垂线上的投影垂足点,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点。
参照图2,在本发明环视***自动标定方法第一实施例中,所述环视***自动标定方法包括:
步骤S10,获取摄像头抓取到的带标定板的初始图像,对初始图像进行预处理后得到二值化图像,对该二值化图像进行连通域检测,确定该二值化图像中的连通域,根据预设规则将该连通域分割成标记块;
摄像头指车载环视***配置的鱼眼摄像头(下文称摄像头),在对摄像头进行标定前,各摄像头需要拍摄至少一幅初始图像,初始图像指未经任何处理的源畸变图像。
对摄像头进行标定必须有标定板,通过拍摄带有固定间距图案阵列平板、经过标定算法的计算,可以得出摄像头的几何模型,从而得到高精度的测量和重建结果。而带有固定间距图案阵列的平板就是标定板。标定板需合理摆放在车辆周围,若标定板有一个,则一般该标定板足够大,对摄像头进行标定时,会将车辆开到标定板上方,若标定板有多个,则将标定板放在车辆前后左右四个方向,且标定板中心位于摄像头下方。不管是一个还是多个标定板,用于标定的初始图像中必须有标定板。如图3所示的实施方式中,标定板为多个,标定板放置于车辆前后左右四个方向,标定板可以为棋盘布,或者为类似棋盘布的、具有若干个黑白相间的标定格或者标定板上图案与底色具有较大色差的标定板(所述标定格或者图案为矩形)色差较大可减少反光带来的影响,因而可准确定位标记块在坐标系中的绝对坐标,提高标定成功率。标定板的材料,可以是布、塑胶薄膜、木板等,本发明对此不予限定。本发明实施例对标定板上图案的具体个数不予限定。
对初始图像进行预处理,所述预处理包括但不限于二值化,此外,所述预处理还可包括图像灰度化和像素拉伸。图像灰度化指将彩色图像转化成为灰度图像的过程,像素拉伸是最基本的图像处理方法,主要用来改善图像显示的对比度,便于后面的二值化处理,将前景和背景分离开,二值化即将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。因上文提及的三个预处理均为图像处理领域的常规现有技术,此处不多赘述。
因为要进行二值化,而角点一定在标定板上,为减少标定板以外物品的干扰,标定环境的颜色越浅越好,最好接近白色,也可以人为消除比较大的干扰,譬如将白色布料/塑料铺在黑色汽车以及其他黑色/深色物体上(除了标定板以外的物体)。此外,在一种实施方式中,在进行连通域检测前,可以在初始图像上分割出标定板所处位置,具体而言,对初始图像进行灰度值0-255的拉伸,然后进行阈值分割,进而获得标定板的位置,之后可在初始图像中标定板的位置进行连通域检测,确定该二值化图像中标定板上的连通域,可避免标定板以外的区域干扰标定算法,进一步提升标定成功率。同时,因为标记块主要是黑色块,黑色块的实际尺寸固定,在图像上的大小处于一定范围内,太小或太大的都不是,并且数目一定,结合所述标记块的面积特点,根据确定好的连通域面积,将该连通域分割成标记块,因为角点的检测或者计算,是以标记块为单位的,通过将连通域分割成标记块,以便后续找点过程顺利进行。
通过连通域检测,识别标定板中的连通域。连通域是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域,如图3所示的具有黑白相间标定格的标定板,其中待检测的连通域为图中所有黑色块。
以图3所示的实施方式为例:
图3所示的标定板为棋盘布,棋盘布有两种,前后棋盘布上中间印有18个黑色小块,两边印有两个黑色大块;左右棋盘布上只印有18个黑色小块。对标定板区域进行连通域检测,可以将图3所示的初始图像标定板位置分割出左右两个大块和中间18个小块(记为标记块)。标定所需角点即位于标记块边缘上,根据标记块进行一定运算获得。针对分割后的各个块,执行下述检测角点的步骤(步骤S11)。因连通域检测为本领域技术人员常用方法,故不赘述。
步骤S11,获取所述各标记块的轮廓点集和中心,获取各轮廓点集中距离对应标记块中心最远的第一角点;
在确定标记块后,通过标记块轮廓上的点与标记块中心的距离关系确定角点位置。所述标记块有多个,应该对各标记块分别执行所述获取所述各标记块的轮廓点集和中心的操作,分别确定各标记块的角点。
计算获得所述各标记块的轮廓点集和标记块的中心坐标,获取所述各标记块的轮廓点集的各点坐标,以标记块为单位,针对各标记块分别计算:标记块的轮廓点集中的所有轮廓点到该标记块中心最远的点,即第一角点,这里的对应标记块中心即与所述轮廓点集属于同一个标记块的中心。
步骤S12,获取各轮廓点集中距离第一角点最远的第二角点;
计算各轮廓点到第一个角点的距离,将所得最大距离轮廓点存储为第二角点。应该注意的是,步骤S11、步骤S12、步骤S13均分别针对各标记块执行的步骤,各标记块均可依步骤S11、步骤S12、步骤S13获得各自的第一角点、第二角点、第三角点和第四角点,以步骤S12为例,步骤S12中的各轮廓点集即各标记块的轮廓点集合,因为每个轮廓点集均对应一个标记块,而每一个标记块都有各自的第一角点,所以,步骤S12的含义是:各轮廓点集中距离同属于一个标记块的第一角点最远的点为第二角点。本实施中,并非只有一个第二角点,一个标记块有一个第二角点,有多个标记块,因而有多个第二角点,同理,本实施例中的第一角点、第三角点和第四角点均为多个。
步骤S13,确定第一角点和第二角点连线的垂线,确定各轮廓点集中各轮廓点在该垂线上的投影垂足,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点;基于所述第一角点、第二角点、第三角点和第四角点完成环视***自动标定。
连接第一角点A和第二角点B,画出与连线AB垂直的直线(AB)+,计算各轮廓点在(AB)+上的投影垂足点,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点。
在本实施例中,通过获取摄像头抓取到的带标定板的初始图像,对初始图像进行预处理后得到二值化图像,对该二值化图像进行连通域检测,确定该二值化图像中的连通域,根据预设规则将该连通域分割成标记块,以图3所示的棋盘布为例,得到的标记块为棋盘布中的黑色块,角点记为黑色块轮廓上的某一点;获取所述各标记块的轮廓点集和中心,获取各轮廓点集中距离对应标记块中心最远的第一角点,虽然由于图像模糊、畸变,标记块不一定是正方形,但大体上是四边形,不管该四边形如何畸变,四边形上的角点总有一个是距离中心最远的,因而这一步骤可确定一个角点的大致位置;获取各轮廓点集中距离第一角点最远的第二角点,一个角点的对角距离该角点距离最远,因而标记块的轮廓点中距第一角点最远的点为第二角点;确定第一角点和第二角点连线的垂线,确定各轮廓点集中各轮廓点在该垂线上的投影垂足,分别找出这些投影垂足点中位于标记块中心两侧的距离中心最远的两个垂足点,这两个垂足点所对应的轮廓点即为第三角点和第四角点,在正方形中,两对角线垂直,根据这一原理可确定这一步骤可得到第三角点和第四角点。基于所述第一角点、第二角点、第三角点和第四角点完成环视***自动标定。车载***可执行自动找点程序的上述步骤以自动找出图像上的一些角点,简化了标定过程,无需用户仔细找角点,给用户带来极大的便利,大大提升了用户体验。
进一步地,基于第一实施例,如图4,在本发明环视***自动标定方法第二实施例中,所述步骤S13中基于所述第一角点、第二角点、第三角点和第四角点完成环视***自动标定包括:
对由第一角点、第二角点、第三角点和第四角点组成的角点集中的各角点分别执行下述精定位操作:
步骤S20,获取角点预设邻域内的分轮廓点集,以角点对应界线为界将所述分轮廓点集划分为第一点集和第二点集;
步骤S21,将第一点集和第二点集分别进行直线拟合,获得第一直线和第二直线,获取第一直线和第二直线的交点,该交点为精定位角点;
步骤S22,获取所述角点集中各角点的精定位角点,基于所述精定位角点完成环视***自动标定;
步骤S23,所述角点对应界线为:第一角点和第二角点对应界线为第一角点和第二角点的连线;第三角点和第四角点对应界线为第三角点和第四角点的连线。
经过第一实施例的上述步骤得到第一角点、第二角点、第三角点、第四角点后,由于图像畸变,所得角点很粗糙,不精确,找出的角点可能是标记块的局部最优点,即在真正角点附近,因此需要精定位。通过进一步精定位,可提升角点的精确度,以精定位得到的角点进行后续的标定操作可提升标定的准确性。
可将所述精定位概括为:收集每个角点一定邻域内的连通域轮廓点集,将所述连通域轮廓点集以直线AB(第一角点与第二角点连线)或者CD(第三角点与第四角点连线)划分分为左右两边;分别对左右两边的点应用最小二乘法进行直线拟合,所得直线交点即为最终所求角点(对所有角点进行精定位)。
具体而言,如图5,点A、B、C、D为上述四个角点,以角点A为例,其中AB为角点A对应界线。
获取角点A预设邻域内的分轮廓点集,预设邻域可以为预设个数像素范围内,如10个像素,15个像素。以角点A对应界线为界将所述分轮廓点集划分为第一点集和第二点集,将第一点集和第二点集分别进行直线拟合,获得第一直线和第二直线,获取第一直线和第二直线的交点a,该交点为精定位角点。
精定位角点为最终用于求取标定所需的目标参数的目标角点。
本实施例通过对第一实施例初步获得的角点进行精定位操作,消除粗定位时陷入局部最优的问题,利用求直线交点可以得到全局最优,提高角点检测精度;其中,因为粗定位角点距精定位角点较近,通过将粗定位角点预设邻域内的轮廓点集根据界线划分为第一点集和第二点集,对第一点集和第二点集分别进行直线拟合生成第一直线和第二直线,粗定位角点预设邻域内的轮廓点集尽量多的在第一直线和第二直线上,因为标定板上标记块的角点在矩形角的顶点上,所以,第一直线和第二直线的交点即精定位角点极可能为角点实际位置所在,因而精定位角点相比粗定位角点更为精确,使得后续标定参数的求解更精确,使得标定更精确。
进一步地,基于第二实施例,在本发明环视***自动标定方法第三实施例中,所述步骤S22中基于所述精定位角点完成环视***自动标定包括:
步骤S30,从所有所述精定位角点中选择第一预设个数角点,根据所述第一预设个数角点,获得候选参数;
图像畸变校正需要求解的参数个数有一定下限,因此第一预设个数要大于所述图像畸变校正所需的参数个数下限。
在一种实施方式中,步骤S30包括:
步骤S34,从所有所述精定位角点中选择第一预设个数角点,修改所述第一预设个数角点中第二预设个数角点的坐标值;
根据所述修改后的第一预设个数角点的坐标值,获得候选参数。
在对标定板中各标记块执行如第二实施例所述步骤后,获得自动检测到的精定位角点。由于自动寻点的精度问题和摄像头制造工艺误差问题会影响摄像头内外参的求解,甚至导致求解失败,所以本实施例中加入随机过程,以保证求解成功。
第二预设个数可以为第一预设个数的一半,也可以为随机数,显然,第二预设个数应当小于第一预设个数。因为这是一个随机过程,所以修改角点坐标值应该在很小的范围内变化。
步骤S31,获取当前成功求解的候选参数组数和当前求解次数,判断是否存在当前成功求解的候选参数组数等于预设组数或者当前求解次数达到预设次数;
步骤S32,若存在当前成功求解的候选参数组数等于预设组数或者当前求解次数达到预设次数,则计算所述各组候选参数的误差,获取所述各组候选参数中误差最小的候选参数,该误差最小的候选参数为目标参数,基于该目标参数完成环视***自动标定;
步骤S33,若当前成功求解的候选参数组数不等于预设组数且当前求解次数未达到预设次数,则执行所述从所有所述精定位角点中选择第一预设个数角点的步骤。
在执行完第二实施例所述步骤后,获得自动检测到的角点,将所有检测到的角点生成对应的世界坐标系。
根据第一预设个数角点的图像坐标与世界坐标,建立畸变校正模型,求解出摄像头的内外参数。
重复步骤S30或步骤S34,进行迭代寻优方法。停止重复有两个触发因素,一是获得的解的组数为预设组,即,二是迭代次数达到最大迭代次数,即求解次数。
可在每一次步骤S31之后,统计当前成功求解的候选参数组数和迭代次数,判断是否已获得预设组候选参数或者达到最大迭代次数,若获得了预设组候选参数或者达到最大迭代次数,则跳出步骤S30或步骤S34所述的重复步骤,执行所述计算所述各组候选参数的误差的步骤;若没有获得预设组摄像头参数且当前迭代次数未达到预设次数则继续重复步骤S30或步骤S34。
其中,各组参数误差的计算,可根据各组参数,计算出角点的图像坐标,角点的图像坐标与世界坐标的差值即为各组参数的误差。
具体地,假设有n个角点,其在世界坐标系中的坐标(理想世界坐标)为(X1,Y1),(X2,Y2),...,(Xn,Yn),在鱼眼图像坐标系中的坐标为(x1,y1),(x2,y2),...,(xn,yn)。假设鱼眼图像畸变校正模型设为f(x)(每一组解可以确定一个模型),由该模型和角点的鱼眼图像坐标,可以计算出这些角点在世界坐标系中的坐标,即:
(Xi',Yi')=f(xi,yi)(i=1,2,...,n)
根据计算得到的实际世界坐标和理想世界坐标做对比,求出误差error,即:
每一组解可以得到一个误差error,比较这些解的误差,找到其中误差最小的那组解,即为所求最优解。
以图6所示的标定板为例,其中,三角形位置为自动检测到的角点位置,获得的角点有20个,图像畸变校正至少需要求解14个参数。加入随机过程的求解过程如下:
1)从20个角点中随机选择16个角点,并对这16个角点随机修改其中8个角点的坐标值,坐标值修改量为-2至2内的随机数;
2)应用这16个角点求解模型参数,得到一组解;
3)重复步骤1)、2),直到成功求解得到50组解或者达到最大迭代值,迭代求解过程结束;
4)从成功求解得到的50组解或者已成功求解的几组解(已达到最大迭代次数,但是未成功求解50组)中计算每一组解的误差,取其中误差最小的一组解,即为最终解,即为目标参数。
本实施例通过将随机过程加入摄像头参数的求解,进而防止因自动寻点的精度问题或摄像头制造工艺误差问题对摄像头内外参的求解的不利影响,防止摄像头内外参数求解失败,保证求解成功。
步骤S32中所述基于该目标参数完成环视***自动标定的步骤包括:
步骤S35,根据所述目标参数生成图像拼接映射表,根据所述图像拼接映射表将初始图像变换成全景拼接图。
获得目标参数后,根据其中的配准点生成拼接参数;根据畸变校正模型与目标参数,对鱼眼图像进行畸变校正,并将坐标存储到映射表中;在图像重叠区域,使用渐变融合对图像进行处理,并将融合系数储在映射表中;输出图像拼接映射表,根据该图像拼接映射表将初始图像变换成全景拼接图。
本实施例中,只要用户启动车辆的标定功能,车载标定装置自动执行上述实施例所述的标定步骤,生成摄像头用于标定的目标参数,再根据所述目标参数生成图像拼接映射表,根据所述图像拼接映射表将初始图像变换成全景拼接图,将全景拼接图展示在用户面前,顺利完成标定任务。整个过程不需要人工干预找点,给客户带来极大的便利。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有环视***自动标定程序,所述环视***自动标定程序被处理器执行时实现如上述实施例所述步骤,所述步骤已在上文详述,故不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该环视***自动标定软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(即行车***)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。