具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
在下面具体的描述中,为了深入理解以下所描述的实施例,提供了很多具体细节。然而,本领域的技术人员应该认识到,其中一个或几个具体细节可以省略,或者可以用其他的方法,器件或材料来代替。在有些情况下,有些操作没有图示也没有详细描述。
请参考图1,图1示出了一种实施例中图像处理设备的结构示意图,图像处理设备包括摄像装置10、分配参数模块30、适应值计算模块40和终止判断模块50。
摄像装置10用于对预定模板进行摄像获取模板图像,摄像装置10可以是摄像机、摄像头或其它可拍摄图像的装置。当需要定标时,在摄像装置10可拍摄到的区域内放置预先定制的模板,控制摄像装置10像通常拍照一样拍摄。预先定制的模板可以是黑白格相间的平面体,具有指定的外围尺寸和方格数量。预先定制的模板也可以是黑白条相间的平面体。为用于后面的对比,在图像处理设备中的存储装置中已经预先存储了该定制模板的理想世界图像,理想世界图像就是按照理想化的小孔成像原理拍摄到的图像。
分配参数模块30用于利用收敛算法分配一个参数系列,一个参数系列可以包括一组摄像机参数,也可以包括多组摄像机参数,每组摄像机参数都包括摄像机外部参数和摄像机内部参数。摄像机外部参数是指摄像机相对世界坐标系的三维位置和方向,比如位置高度、旋转角度、平移方向和大小等。摄像机内部参数是指摄像机内部几何和光学特性,比如焦距、比例因子和镜头畸变等。当进行第一次适应值计算时,分配参数模块30进行初始化,随机或均匀产生一参数系列用于适应值的计算。
适应值计算模块40用于比较模板图像与预定模板的理想世界图像的差异,从而得到适应值。摄像装置10自然拍摄的模板图像不同于模板的理想世界图像,两者之间存在一定的对应关系,而该对应关系由摄像机参数决定,该摄像机参数就是用于将摄像装置10自然拍摄的图像转换成由图像坐标表示的世界图像的定标参数。本实施例中,适应值为模板图像与模板的理想世界图像之间的差异。
终止判断模块50用于判断适应值计算结果是否满足设定的终止条件,当适应值计算结果满足终止条件时将与该适应值相关联的一组摄像机参数作为定标参数;当没有满足终止条件时继续执行分配参数步骤,重新产生一个参数系列。
请参考图2,在一种实施例中,所述适应值计算模块40包括图像坐标计算单元41和像素差异值计算单元42。图像坐标计算单元41用于根据预先建立的模板图像的世界坐标和图像坐标之间的转换关系以及分配的摄像机参数,计算模板图像的图像坐标。
上述实施例中,将拍摄的模板的普通图像通过预先建立的图像坐标与世界坐标的对应关系模型转换成模板的世界图像,使模板图像在摄像机参数确定的情况下可建立确定的世界图像,不断优化摄像机参数也使模板的世界图像得到不断优化,从而将摄像机定标问题转化为摄像机参数优化问题,逐步寻找最优解,从而完成摄像机定标。在摄像机参数优化过程中,不要求摄像装置在特定的位置和从特定的角度来采集模板的图像,摄像装置可如拍摄普通图像一样来拍摄预定模板的图像,因此降低了对定标环境的要求。在摄像机参数优化过程中,摄像装置只需要采集一次图像即可,不需要从不同的位置和方向多次采集图像,因此也不需要对多个图像进行处理,因此缩短了定标的时间。
在一种实施例中,所述图像坐标计算单元41用于建立图像坐标与世界坐标的对应关系,包括外部参数计算单元411和内部参数计算单元413,外部参数计算单元411用于根据外部参数建立世界坐标与摄像机坐标的对应关系,即根据预先建立的模板图像的世界坐标和摄像机坐标之间的转换关系以及摄像机外部参数计算模板图像的摄像机坐标。内部参数计算单元413用于根据内部参数建立所述矫正后的摄像机坐标与图像坐标的对应关系,即根据预先建立的模板图像的摄像机坐标和图像坐标之间的转换关系以及摄像机内部参数计算模板图像的图像坐标。本领域技术人员应该认识到,还可以通过其它方法计算模板图像的图像坐标。
在另一实施例中,图像坐标计算单元41还包括畸变矫正单元412和插值单元414,畸变矫正单元413用于根据内部参数中的畸变参数矫正所述摄像机坐标;插值单元414用于将所述坐标关系中的小数转化为整数形式。
像素差异值计算单元42用于计算模板图像与理想世界图像之间相同图像坐标的像素差异值的总和,从而得到与各组摄像机参数相关联的适应值。
请参考图3,在一种实施例中,分配参数模块30所用的收敛算法可以是粒子群智能算法,分配参数模块30利用粒子群智能算法为每次的迭代计算分配一个参数系列。在一具体实施例中,分配参数模块30包括初始化单元31、适应值评价单元32、密度计算单元33和粒子进化单元34。初始化单元31用于在进行第一次迭代计算时初始化算法参数,将解空间按照粒子数分割从而生成初始解。将每组摄像机参数作为一个粒子的坐标,即每组摄像机参数决定一个粒子。适应值评价单元32用于评价粒子所处位置的适应值的优劣,根据适应值查找出本次迭代计算的最优粒子和最差粒子,所述最优粒子为与适应值中最小适应值相关联的一组摄像机参数确定的粒子,所述最差粒子为与适应值中最大适应值相关联的一组摄像机参数确定的粒子。密度计算单元33用于计算用于本次迭代计算适应值步骤中的粒子群体的密度。粒子进化单元34用于根据粒子群体密度确定用于下次计算适应值步骤中的参数系列,当粒子群体密度判断为低时,使粒子朝着最优粒子运动从而确定用于下次计算适应值步骤中的参数系列;当粒子群体密度判断为高时,使粒子背向最坏粒子运动从而确定用于下次计算适应值步骤中的参数系列。
在如图4所示的另一实施例中,与上述实施例不同的是图像处理设备还包括图像前处理模块20,图像前处理模块20用于对摄像装置10拍摄的模板图像进行去噪处理,使图像更清晰。在一种实施例中,图像前处理模块20包括灰度直方图单元21、分割阈值单元22和二值化单元23。图像前处理模块20处理后的图像输出给适应值计算模块40用于计算各组摄像机参数的适应值。灰度直方图单元21根据图像统计生成灰度直方图;分割阀值单元22将灰度直方图分为高灰度类与低灰度类,并根据两类之间距离最大的原则确定分割阀值;二值化单元23依据所述分割阀值将图像进行二值化转化。
上述实施例中,分配参数模块、适应值计算模块和终止判断模块可以是各自独立的处理器,也可以是根据自身功能分成若干分立的处理器,也可以是两个或三个模块集成在一个处理器中,处理器通过执行计算机可执行指令实现各模块的功能。
请参考图5,在一种实施例中,基于上述图像处理设备的一种摄像机自动定标方法流程图包括以下步骤:
步骤S11:对预定模板进行拍摄获取模板图像,如图6所示,在一种实施例中,获取的模板图像为黑白相间的图像。
步骤S12:对采集的模板图像进行去噪处理。
具体的,首先统计图像的像素直方图,假定阀值将直方图划分为高像素与低像素两类,根据两个类间方差值最大的原则确定分割阀值,对图像进行二值化处理,降低图像噪声影响。
其中,分割阀值计算方法为:对某张图像,记t为前景与背景的分割阈值,前景点数占图像比例为w0,平均像素为u0;背景点数占图像比例为w1,平均像素为u1。图像的总平均像素为:u=w0*u0+w1*u1。从最小像素值到最大像素值遍历t,当t使得值g=w0*(u0-u)2+w1*(u1-u)2最大时t即为分割的最佳阈值。二值化单元依据分割阀值t对图像进行二值化处理,最终处理后的图像如图7所示。
步骤S13:利用收敛算法分配一个参数系列,每个参数系列包括一组或多组摄像机参数,每组摄像机参数包括摄像机外部参数和摄像机内部参数。收敛算法可以是粒子智能算法、遗传算法、蚂蚁算法或鱼群算法。当采用粒子智能算法为迭代计算分配参数系列时,一组摄像机参数对应一个粒子;当采用遗传算法为迭代计算分配参数系列时,一组摄像机参数对应一个染色体;当采用鱼群算法为迭代计算分配参数系列时,一组摄像机参数对应一条鱼;当采用蚂蚁算法为迭代计算分配参数系列时,一组摄像机参数对应一个蚂蚁。当第一次进行迭代计算时,收敛算法进行初始化,使粒子/染色体/蚂蚁随机分布或均匀分布,从而为第一次的迭代计算分组一个参数系列,该参数系列可以只包括一个粒子/染色体/蚂蚁,即只包括一组摄像机参数,也可以包括多个粒子/染色体/蚂蚁,即包括多组摄像机参数,例如50个粒子/染色体/蚂蚁。在以后的迭代计算中,收敛算法根据一定的规则产生新的参数系列。
步骤S14:根据预先建立的模板图像的世界坐标和图像坐标之间的转换关系模型以及分配的摄像机参数,计算模板图像的图像坐标。
在一种实施例中,模板图像的世界坐标和图像坐标之间的转换关系模型可通过以下方式建立:
假设摄像机参数已知的情况下,建立模板图像坐标与世界坐标之间的对应关系。具体包括步骤:
第一步,先根据摄像机外部参数确立摄像机坐标与世界坐标的关系。其计算公式为:
其中t3×1为平移向量,R3×3为旋转矩阵,(XcYcZc)T为摄像机坐标,(XwYwZw)T为世界坐标。
第二步,再根据径向畸变参数和切向畸变参数,对摄像机坐标进行修正。
其计算公式为:
...................(2)
式中,
和
是由小孔模型计算出来的图像点坐标的理想值,(x,y)为实际图像点的坐标;m
2=x
2+y
2,k1、k2为径向畸变系数,p1、p2为切向畸变系数。
第三步,根据摄像机内部参数建立摄像机坐标与图像坐标的关系;其计算公式为:
其中,(u,v)表示图像坐标系中的坐标,原点位于(u0,v0)像素点上,k×l表示一个像素点的大小(其单位为:毫米),f为摄像机焦距,θ为摄像机坐标系的偏斜度。
第四步,为了提高了摄像机定标精度,利用双线性插值处理对模板图像坐标进行整数化处理,最终确定模板图像坐标和世界坐标的关系。利用双线性插值将模板图像坐标整数化,其计算公式为:
f(x,y)=ax+by+cxy+d...................(4)
根据坐标位置最邻近的若干个坐标点的像素值,再通过加权平均计算得出。
因此在步骤S14中,首先利用分配的摄像机外部参数,在模板图像的世界坐标已知的情况下,利用公式(1)可计算出模板图像的摄像机坐标。然后利用分配的摄像机内部参数,在模板图像的摄像机坐标已知的情况下,利用公式(3)可计算出模板图像的图像坐标,形成由图像坐标确定的模板的世界图像。
步骤S15:计算模板图像与理想世界图像之间相同图像坐标的像素差异值的总和,得到与各组摄像机参数相关联的适应值。
其中,所述像素差异值的总和的计算公式为:
其中,Nij表示模板图像上坐标(i,j)上的像素值,Mij表示理想世界图像上坐标(i,j)的像素值,Sum表示世界图像和理想世界图像像素差异值的总和,也就是适应值,每个适应值与一组摄像机参数相关联。图像中每个坐标是对应一个像素值,相同的坐标对于两幅不同的图就会有不同的像素值,已知具体的一个参数数组就可以计算出Sum的值。
已知模板形状,即理想世界图像是已知的,将模板图像与理想世界图像的像素差异值的总和作为优化函数模型的函数值,摄像机参数为变量。改变变量,使函数值改变,本实施例中,像素差异值的总和越小,摄像机参数越优。
步骤S16:判断适应值计算结果是否满足设定的终止条件,当适应值计算结果满足终止条件时执行步骤S17,当没有满足终止条件时继续执行步骤S13,重新产生一个参数系列。
设定的终止条件包括:收敛算法运行次数达到设定值、迭代计算的次数达到设定值和适应值达到预期值中的任一或两个以上的组合。在一种实施例中,判断适应值计算结果是否满足设定的终止条件的流程如图8所示,包括:
步骤S161,判断迭代计算的次数是否达到设定的次数,如果是,则执行步骤S17,否则继续步骤S162。
步骤S162,判断本次迭代计算中是否有适应值小于预期值,如果有,则执行步骤S17,否则继续步骤S163。
步骤S163,判断收敛算法的运行次数是否达到设定值,如果是,则执行步骤S17。
当然,本领域根据此处公开的内容应该认识到,终止条件判断步骤中还可以是在上述实施例的基础上减少一个或两个终止条件,也可以任意改变其判断顺序,也可以只选择其中的一个终止条件。
步骤S17:将与该适应值相关联的一组摄像机参数作为定标参数输出,结束迭代计算。
利用确定的定标参数对平时拍摄的图像进行矫正,图9为完成摄像机定标后模板图像矫正的效果图。
下面以收敛算法采用粒子群智能算法为例,说明如何分配摄像机参数。
本实施例中,将每个世界坐标对应的像素值定义为一个粒子,用粒子的位置表示待优化问题的解,每个粒子的优劣程度取决于待优化问题目标函数确定的适应值(即Sum值),适应值越小,代表粒子越优。
首先,定义摄像机参数数组为粒子位置,即一个粒子就是一组摄像机参数。初始化粒子群算法参数及粒子位置,粒子随机分布在解空间,以每次迭代计算具有50个粒子为例进行说明,即每次迭代计算产生50组摄像机参数。
在适应值计算步骤中,采用产生的50组摄像机参数分别计算出与各自摄像机参数相关联的50个适应值。根据计算出的适应值,评价粒子所处位置的适应值的优劣,根据适应值得到最优粒子和最坏粒子,适应值越小,粒子最优,适应值越大,粒子越差。在一种实施例中,查找本次迭代计算的最优粒子和最差粒子步骤包括以下步骤:
根据历次计算出的与各粒子相关联的适应值,查找个体或者群体最优粒子并将个体或者群体最优粒子作为本次迭代计算的最优粒子,查找个体或者群体最差粒子并将个体或者群体最差粒子作为本次迭代计算的最差粒子,找出各粒子的个体或群体最优粒子、个体或群体最差粒子,所述某粒子的个体最优粒子为与该粒子历次计算出的适应值中最小适应值相关联的一组摄像机参数确定的粒子,所述某粒子的个体最差粒子为与该粒子历次计算出的适应值中最大适应值相关联的一组摄像机参数确定的粒子。所述某粒子的群体最优粒子为所有个体最优粒子适应值中的最小适应值相关联的一组摄像机参数确定的粒子,所述某粒子的群体最差粒子为所有个体最差粒子适应值中的最大适应值相关联的一组摄像机参数确定的粒子。
例如有50个粒子参加迭代计算,共进行了10次迭代计算,即每个粒子都有10个适应值,在每个粒子的10个适应值中查找出最小的适应值和最大的适应值,该最小适应值对应的粒子为个体最优粒子,该最大适应值对应的粒子为个体最差粒子。按照上述方法可找到50个个体最优粒子和50个个体最差粒子,在50个个体最优粒子中再查找出最小的适应值,该最小适应值对应的粒子为群体最优粒子。同样,在50个个体最差粒子中再查找出最大的适应值,该最大适应值对应的粒子为群体最差粒子。
在另一种实施例中,查找本次迭代计算的最优粒子和最差粒子步骤包括以下步骤:
在本次迭代计算得到的适应值中找出最大适应值和最小适应值,将与最小适应值相关联的一组摄像机参数确定的粒子作为本次迭代计算的最优粒子,将与最大适应值相关联的一组摄像机参数确定的粒子作为本次迭代计算的最差粒子。
确定最优和最差粒子后计算粒子群体密度。在一种实施例中,所述粒子群体密度的计算步骤包括:计算所有粒子各维度的平均值,得到中心粒子;计算各个粒子与中心粒子的空间欧氏距离的平方和。若该平方和超过设定的阀值则认为粒子密度为低,若低于设定的阀值则认为粒子密度为高。
然后根据粒子群体密度的情况,进行粒子进化。
当群体密度较低时,粒子朝着最优粒子运动;而当群体密度较高时,粒子背向最差粒子运动。粒子每次运动的步距可根据公式实时计算出来,也可以规定步距为一确定的值,用于本次迭代计算的粒子加上或减去步距后可得到用于下一次迭代计算的粒子。同时,粒子以一定的概率产生变异,而随机分布在可行解范围。
本实施例通过将摄像机定标问题转化为参数优化问题,并利用粒子群优化算法进行求解以完成摄像机定标,搜索的精度更高,无局部收敛现象,可以更大概率搜索到全局最优的定标参数,提高了定标精度,并且减少了定标时间。
实施例中包括多个步骤,而其中一些步骤可以通过通用或专用的计算机(或其他电子器件)执行机器可执行指令来实现。另外,这些步骤也可以通过包含有特定逻辑电路的硬件或者通过硬件、软件和/或固件的组合来实现。
具体实施例也可以是一个可完成这里所描述的过程的计算机程序产品,它包括一个可机读的介质,介质中存储有计算机(或其他电子器件)可执行的指令。可机读介质包括但不限于硬件驱动器、软盘、光盘、CD ROM、DVD ROM、ROM、RAM、EPROM、EEPROM、磁卡或光卡、固体存储器件或其他类型的适用于存储电子指令的媒介/可机读介质。
上述实施例中的步骤和图像处理设备可以集成在机动车辆上,也可以制作成一个单独的设备安装在机动车辆上,用于机动车辆的安全驾驶和安全泊车。上述实施例中的步骤和图像处理设备可以用于智能机器人或其他图像处理设备上。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。