具体实施方式
在下文中将参考附图对本发明的各方面进行更充分的描述。然而,本发明可以具体化成许多不同形式且不应解释为局限于贯穿本发明所呈现的任何特定结构或功能。相反地,提供这些方面将使得本发明周全且完整,并且本发明将向本领域技术人员充分地传达本发明的范围。基于本文所教导的内容,本领域的技术人员应意识到,无论是单独还是结合本发明的任何其它方面实现本文所公开的任何方面,本发明的范围旨在涵盖本文中所公开的任何方面。例如,可以使用本文所提出任意数量的装置或者执行方法来实现。另外,除了本文所提出本发明的多个方面之外,本发明的范围更旨在涵盖使用其它结构、功能或结构和功能来实现的装置或方法。应可理解,其可通过申请专利范围的一或多个元件具体化本文所公开的任何方面。
词语“示例性”在本文中用于表示“用作示例、实例或说明”。本发明的任何方面或本文描述为“示例性”的设计不一定被解释为优选于或优于本发明或设计的其他方面。此外,相同的数字在所有若干图示中指示相同的元件,且除非在描述中另有指定,冠词“一”和“上述”包含多个的参考。
可以理解,当元件被称为被“连接”或“耦接”至另一元件时,该元件可被直接地连接到或耦接至另一元件或者可存在中间元件。相反地,当该元件被称为被“直接连接”或“直接耦接”至另一元件时,则不存在中间元件。用于描述元件之间的关系的其他词语应以类似方式被解释(例如,“在…之间”与“直接在…之间”、“相邻”与“直接相邻”等方式)。
图1是显示根据本发明一实施例所述的用于车载环视***中鱼眼镜头标定的方法100的流程图,其可用于车载环视***中鱼眼镜头标定的装置中。
在步骤S105中,鱼眼镜头标定的装置使用一鱼眼镜头拍摄一标定板,以取得一鱼眼畸变图像,其中上述鱼眼畸变图像至少包括具有世界坐标系坐标的四个第一关键点以及不具有世界坐标系坐标的多个第二关键点。
更详细地说明,鱼眼镜头标定方法中需要利用具有黑白棋盘格的一标定板,其目的就是为了检测出黑白棋盘格中的格角点,用于标定工作。黑白棋盘格角点检测的准确与否将会对标定结果的精确性产生很大的影响。经过鱼眼成像后,标定板的棋盘格产生畸变。
图2是显示根据本发明一实施例所述的具有黑白棋盘格标定板的鱼眼畸变图像。如图所示,标定板包含左右两侧的正方形黑色标定块和中间的棋盘格,其中此标定板具有四个具有准确世界坐标系坐标的第一关键点201~204,以及不具有世界坐标系坐标的多个第二关键点211~214、221~244。需注意的是,上述标定板的样式并不用以限定本发明,所属技术领域中具有通常知识者得以根据本实施例作适当更换或调整。
在步骤S110中,鱼眼镜头标定的装置取得在上述鱼眼畸变图像中上述第一关键点及上述第二关键点的像素坐标。在一实施例中,鱼眼镜头标定的装置可使用角点检测法取得在鱼眼畸变图像中所有关键点(例如,图2中正方形黑色标定块的顶点或中间棋盘格的角点)的像素坐标。
在步骤S115中,鱼眼镜头标定的装置使用一遍历方法获取上述鱼眼镜头的内部参数,根据上述内部参数将上述鱼眼畸变图像还原为一非畸变图像并取得在上述非畸变图像中对应上述第一关键点的非畸变图像坐标,其中上述内部参数为上述鱼眼畸变图像的X轴中心偏差值及Y轴中心偏差值,及以一入射角度为80度的光线在上述鱼眼畸变图像中的一成像高度。
在步骤S120中,鱼眼镜头标定的装置根据上述第一关键点的上述世界坐标系坐标及上述非畸变图像坐标取得一投影变换矩阵,其中投影变换矩阵可由以下公式取得。
u′=u/w
v′=v/w
其中,x及y为第一关键点的世界坐标系坐标,u′及v′为由鱼眼畸变图像所还原的非畸变图像的第一关键点的非畸变图像坐标。H为3×3的投影变换矩阵,其系数为a11、a12、…、a21、1。其中a11、a12、a21、a22是线性变换部分,包含旋转参数和缩放参数,a13、a23是平移参数,a31、a32是透视参数。由于第一关键点的世界坐标系坐标及由鱼眼畸变图像所还原的非畸变图像的第一关键点的非畸变图像坐标系为已知,因此可利用上述第一关键点的世界坐标系坐标及非畸变图像的第一关键点的非畸变图像坐标求出投影变换矩阵H。
在步骤S125中,鱼眼镜头标定的装置根据上述内部参数及上述投影变换矩阵计算上述第一关键点及上述第二关键点的理论世界坐标系坐标,并根据上述第一关键点的上述世界坐标系坐标、上述第二关键点的上述像素坐标及上述理论世界坐标系坐标取得上述鱼眼镜头的一误差参数,其中上述误差参数为均方误差(Mean-Square Error,MSE),可由以下公式表示
其中,x及y为第一关键点的世界坐标系坐标或是第二关键点的像素坐标,x′及y′为所有关键点的理论世界坐标系坐标,n为关键点的数量。
在一实施例中,在执行完步骤S110之后,鱼眼镜头标定的装置可使用一等距投影模型对上述鱼眼镜头进行校正,其中上述等距投影模型表示如下:
r=f×θ
其中,θ是入射光线与上述鱼眼镜头的一光轴之间的夹角(即,入射角)、f是上述鱼眼镜头的一镜头焦距、r是当上述鱼眼镜头拍摄一景物的一成像高度。而鱼眼镜头的最大可视范围为入射角的2倍,因此2θ也被称为鱼眼镜头的视场角(Field of View,FOV)。在另一实施例中,等距投影模型亦可用r=2f×tan(θ/2)、r=2f×sin(θ/2)或r=f×sin(θ/2)取代。
以下将详细说明在步骤S115中,鱼眼镜头标定的装置如何使用一遍历方法获取上述鱼眼镜头的内部参数。需先说明,由于装配工艺的原因,以入射角θ为0的光线照射鱼眼镜头时,在鱼眼畸变图像中的成像位置通常不是位于鱼眼畸变图像的正中心,成像位置会有一定的偏差。在此实施例中,将用Cx及Cy分别表示鱼眼畸变图像的X轴中心偏差值及Y轴中心偏差值。举例说明,假设以入射角θ为0的光线照射鱼眼镜头时,大小为1280×720像素的鱼眼畸变图像的中心点坐标为(653,337)。而Cx为13(即,653-640),Cy为-23(即,337-360)。
图3是显示根据本发明一实施例所述的鱼眼镜头标定的装置使用一遍历方法获取鱼眼镜头的内部参数的方法300的流程图。
在步骤S305中,鱼眼镜头标定的装置根据上述鱼眼镜头的一视场角及上述鱼眼畸变图像的大小决定上述成像高度的一搜寻范围。更详细地说明,对于没有装配误差的理想鱼眼镜头而言,Cx、Cy应该为0,而成像高度Range可以通过鱼眼镜头的视场角(FOV)以及鱼眼畸变图像大小来估计合理的搜寻范围。例如,当鱼眼镜头的视场角为180度,且鱼眼畸变图像两侧(1,360)、(1280,360)的像素点正好位于可视范围的边缘,则成像高度Range大约是80/90×640=570。在此例子中,即可在像素点450~700的范围内对成像高度Range进行搜索。
接着,在步骤S310中,鱼眼镜头标定的装置根据在搜寻范围内所取得鱼眼畸变图像的X轴中心偏差值及Y轴中心偏差值为0的最小均方误差(Mean-Square Error,MSE)来决定成像高度Range。换言之,在步骤S305~S310中,此方法从Cx=0及Cy=0开始,在一个较大范围内遍历成像高度Range的值,并通过寻找最小均方误差(MSE)最小的方式来确定成像高度Range。
再来,在步骤S315中,鱼眼镜头标定的装置在上述X轴中心偏差值及上述Y轴中心偏差值为0周围的一步阶距离内搜寻以上述成像高度Range为中心的一特定范围内是否具有比上述最小均方误差更小的一结果,其中上述步阶距离为2像素,而上述特定范围为成像高度的正负10像素之间的范围。
在步骤S320中,当具有比上述最小均方误差更小的上述结果时,鱼眼镜头标定的装置以新X轴中心偏差值、新Y轴中心偏差值周围的上述步阶距离内进行搜寻,直到无法找到使上述最小均方误差更小的结果为止。而此时的新X轴中心偏差值、新Y轴中心偏差值及成像高度为粗搜索后的最优解。
图4A~4B是显示根据本发明一实施例所述的鱼眼镜头标定的装置于图3中的步骤S315及S320执行粗搜索的详细流程图400。
在流程开始之前,可在步骤S310中取得搜寻Cx=0及Cy=0对应的最佳成像高度Range以及最小均方误差(MSE)。在步骤S405中,鱼眼镜头标定的装置计算位于X轴中心偏差值左边一步阶距离Step(例如,步阶距离Step为2像素),且以成像高度Range为中心的一特定范围(例如,正负10像素)内最佳的最小均方误差MSEn。在步骤S410中,鱼眼镜头标定的装置判断是否最小均方误差MSEn小于在步骤S310中所取得的最小均方误差MSE。当鱼眼镜头标定的装置判断最小均方误差MSEn小于最小均方误差MSE时(在步骤S410中为“是”),在步骤S415中,使新X轴中心偏差值x为Cx-Step,使新Y轴中心偏差值y为Cy,使新的成像高度r为成像高度Range,使最小均方误差MSE为最小均方误差MSEn,并使一计数值succ=1。
当鱼眼镜头标定的装置判断最小均方误差MSEn不小于最小均方误差MSE时(在步骤S410中为“否”),在步骤S420中,鱼眼镜头标定的装置计算位于X轴中心偏差值右边一步阶距离Step,且以成像高度Range为中心的一特定范围(例如,正负10像素)内最佳的最小均方误差MSEn。在步骤S425中,鱼眼镜头标定的装置判断是否最小均方误差MSEn小于在步骤S310中所取得的最小均方误差MSE。当鱼眼镜头标定的装置判断最小均方误差MSEn小于最小均方误差MSE时(在步骤S425中为“是”),在步骤S430中,使新X轴中心偏差值x为Cx+Step,使新Y轴中心偏差值y为Cy,使新的成像高度r为成像高度Range,使最小均方误差MSE为最小均方误差MSEn,并使一计数值succ=1。
当鱼眼镜头标定的装置判断最小均方误差MSEn不小于最小均方误差MSE时(在步骤S425中为“否”),在步骤S435中,鱼眼镜头标定的装置计算位于Y轴中心偏差值下方一步阶距离Step,且以成像高度Range为中心的一特定范围(例如,正负10像素)内最佳的最小均方误差MSEn。在步骤S440中,鱼眼镜头标定的装置判断是否最小均方误差MSEn小于在步骤S310中所取得的最小均方误差MSE。当鱼眼镜头标定的装置判断最小均方误差MSEn小于最小均方误差MSE时(在步骤S440中为“是”),在步骤S445中,使新X轴中心偏差值x为Cx,使新Y轴中心偏差值y为Cy-Step,使新的成像高度r为成像高度Range,使最小均方误差MSE为最小均方误差MSEn,并使一计数值succ=1。
当鱼眼镜头标定的装置判断最小均方误差MSEn不小于最小均方误差MSE时(在步骤S445中为“否”),在步骤S450中,鱼眼镜头标定的装置计算位于Y轴中心偏差值上方一步阶距离Step,且以成像高度Range为中心的一特定范围(例如,正负10像素)内最佳的最小均方误差MSEn。在步骤S455中,鱼眼镜头标定的装置判断是否最小均方误差MSEn小于在步骤S310中所取得的最小均方误差MSE。当鱼眼镜头标定的装置判断最小均方误差MSEn小于最小均方误差MSE时(在步骤S455中为“是”),在步骤S460中,使新X轴中心偏差值x为Cx,使新Y轴中心偏差值y为Cy+Step,使新的成像高度r为成像高度Range,使最小均方误差MSE为最小均方误差MSEn,并使一计数值succ=1。
当鱼眼镜头标定的装置判断最小均方误差MSEn不小于最小均方误差MSE时(在步骤S455中为“否”),在步骤S465中,鱼眼镜头标定的装置判断计数值succ是否等于1。当计数值succ等于1时,(在步骤S465中为“是”),在步骤S470中,使Cx为新X轴中心偏差值x、使Cy为新Y轴中心偏差值y及使成像高度Range为新的成像高度r。接着,回到步骤S405中,以Cx、Cy、Range作为下一轮搜索的初始条件进行搜寻,直到无法找到令最小均方误差MSEn更小的结果为止。当计数值succ不等于1时,(在步骤S465中为“否”),在步骤S475中,原始X轴中心偏差值Cx、原始Y轴中心偏差值Cy及原始成像高度Range为粗搜索后的最优解。
在另一实施例中,鱼眼镜头标定的装置可使用更小的步阶距离Step,例如,0.3像素重复图4A~4B的流程,以获得更好的标定精度。
应可理解,执行图1、图3及图4A~4B方法流程的鱼眼镜头标定的装置可经由任何类型的计算装置来实现,像是参考图5描述的计算装置500,如图5所示。而此鱼眼镜头标定的装置可以有线或无线的方式连接至鱼眼镜头以取得鱼眼镜头所拍摄的图像。
如上所述,本发明的用于车载环视***中鱼眼镜头标定的方法假定了鱼眼镜头的内部参数(X轴中心偏差值Cx、Y轴中心偏差值Cy以及成像高度Range),并使用等距投影模型进行鱼眼图像校正及进行投影变换,以获得已知关键点对应的理论世界坐标系坐标。接着,本发明的方法还计算该假定内部参数对应的最小均方误差,并使用遍历方法重复上述过程,选择最小均方误差最小的一组内部参数及外部参数作为最终标定结果,从而获得全域最优的内部参数及外部参数。本发明解决了现有技术的下列问题:1.现有技术通常分开获取内部参数和外部参数,导致获取的内部参数和外部参数是分别最优,而不是全域最优,无法获得整体最佳标定效果;2.现有技术获取的内部参数通常包含径向畸变和切向畸变参数,参数过多,导致获取内部参数的过程复杂,获得的参数精度不容易保证,最终影响外部参数精度。
对于本发明已描述的实施例,下文描述了可以实现本发明实施例的示例性操作环境。具体参考图5,图5是显示用以实现本发明实施例的示例性操作环境,一般可被视为计算装置500。计算装置500仅为一合适计算环境的一个示例,并不意图暗示对本发明使用或功能范围的任何限制。计算装置500也不应被解释为具有与所示元件任一或组合相关任何的依赖性或要求。
本发明可在计算机程序码或机器可使用指令来执行本发明,指令可为程序模块的计算机可执行指令,其程序模块由计算机或其它机器,例如个人数字助理或其它可携式装置执行。一般而言,程序模块包括例程、程序、物件、元件、数据结构等,程序模块指的是执行特定任务或实现特定抽象数据类型的程序码。本发明可在各种***组态中实现,包括可携式装置、消费电子产品、通用计算机、更专业的计算装置等。本发明还可在分散式运算环境中实现,处理由通信网络所连结的装置。
参考图5。计算装置500包括直接或间接耦接以下装置的总线510、存储器512、一或多个处理器514、一或多个显示元件516、输入/输出(I/O)端口518、输入/输出(I/O)元件520以及说明性电源供应器522。总线510表示可为一或多个总线的元件(例如,地址总线、数据总线或其组合)。虽然图5的各个方块为简要起见以线示出,实际上,各个元件的分界并不是具体的,例如,可将显示装置的呈现元件视为I/O元件;处理器可具有存储器。
计算装置500一般包括各种计算机可读取介质。计算机可读取介质可以是可被计算装置500存取的任何可用介质,该介质同时包括易挥发性和非易挥发性介质、可移动和不可移动介质。举例但不局限于,计算机可读取介质可包括计算机存储介质和通信介质。计算机可读取介质同时包括在用于存储像是计算机可读取指令、数据结构、程序模块或其它数据之类信息的任何方法或技术中实现的易挥发性和非易挥发性介质、可移动和不可移动介质。计算机存储介质包括但不局限于随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、电子可擦除可编程只读存储器(Electrically-ErasableProgrammable Read-Only Memory,EEPROM)、快闪存储器或其它存储器技术、只读存储光盘(Compact Disc Read-Only Memory,CD-ROM)、数字多功能光盘(Digital Versatile Disc,DVD)或其它光盘存储装置、磁片、磁盘、磁片存储装置或其它磁存储装置,或可用于存储所需的信息并且可被计算装置500存取的其它任何介质。计算机存储介质本身不包括信号。
通信介质一般包含计算机可读取指令、数据结构、程序模块或其它采用诸如载波或其他传输机制之类的模块化数据信号形式的数据,并包括任何信息传递介质。术语“模块化数据信号”是指具有一或多个特征集合或以在信号中编码信息的一方式更改的信号。举例但不局限于,通信介质包括像是有线网络或直接有线连接的有线介质及无线介质,像是声频、射频、红外线以及其它无线介质。上述介质的组合包括在计算机可读取介质的范围内。
存储器512包括以易挥发性和非易挥发性存储器形式的计算机存储介质。存储器可为可移动、不移动或可以为这两种的组合。示例性硬件装置包括固态存储器、硬盘驱动器、光盘驱动器等。计算装置500包括一或多个处理器,其读取来自像是存储器512或I/O元件520各实体的数据。显示元件516向使用者或其它装置显示数据指示。示例性显示元件包括显示装置、扬声器、打印元件、振动元件等。
I/O端口518允许计算装置500逻辑连接到包括I/O元件520的其它装置,一些此种装置为内建装置。示例性元件包括麦克风、摇杆、游戏台、盘形卫星信号接收器、扫描器、打印机、无线装置等。I/O元件520可提供一自然使用者接口,用于处理使用者生成的姿势、声音或其它生理输入。在一些例子中,这些输入可被传送到一合适的网络元件以便进一步处理。自然用户界面(Natural user interface,NUI)可实现语言识别、触摸与手写笔辨识、面部识别、生物识别、在屏幕上以及邻近屏幕的姿势识别、空中手势、头部及眼部追踪以及与计算装置500所显示相关联的触摸识别的任意组合。计算装置500可装备有深度照相机,像是立体照相机***、红外线照相机***、RGB照相机***和这些***的组合,以侦测与识别姿势。另外,计算装置500可以装备有侦测运动的加速度计或陀螺仪。加速度计或陀螺仪的输出可被提供给计算装置500显示以呈现沉浸式增强现实或虚拟实境。
此外,计算装置500中的处理器514也可执行存储器512中的程序及指令以呈现上述实施例所述的动作和步骤,或其它在说明书中内容的描述。
在此所公开程序的任何具体顺序或分层的步骤纯为一举例的方式。基于设计上的偏好,必须了解到程序上的任何具体顺序或分层的步骤可在此文件所公开的范围内被重新安排。伴随的方法权利要求以一示例顺序呈现出各种步骤的元件,也因此不应被此所展示的特定顺序或阶层所限制。
申请专利范围中用以修饰元件的“第一”、“第二”、“第三”等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。