一种相机评测方法、装置和存储介质
技术领域
本发明涉及计算机视觉技术领域,具体涉及一种相机评测方法、装置和存储介质。
背景技术
摄像机标定简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵 PP 的过程,在现有的机器视觉应用条件下,相机内参标定是视觉应用不可或缺而又非常重要的一个环节,而相机内参标定的好坏对相机应用产生直接影响,所以对相机内参进行验证必不可少。
目前,在相机内参验证评测方法主要只有一种,即:相机标定完毕后求标定板角点的重投影误差,根据误差大小判断标定好坏。
申请人经研究发现,现有评测方案评估内参误差太笼统,无法准确区分内参中的内参矩阵误差和畸变系数误差;现有评估方法评估不全面,无法对相机所有视野都进行评估,很容易遗漏大面积评估视野,造成精度低。
发明内容
有鉴于此,本发明实施例提供一种相机评测方法和装置,以精准计算相机畸变系数,判断相机的畸变系数是否满足要求。
为实现上述目的,本发明实施例提供如下技术方案:
一种相机评测方法,包括:
获取被测相机的采集图像,所述采集图像为采用被测相机对目标物体上的目标直线进行图像采集得到的图像;
提取所述采集图像中所述目标直线上的第一位置和第二位置;
基于图像识别原理提取所述采集图像中,连接所述第一位置和第二位置的线段,记为相机采集线段;
构建所述第一位置和第二位置之间的连接直线,记为实际线段;
计算所述相机采集线段相对于所述实际线段变形程度;
判断所述变形程度是否大于预设值,如果否,表明相机畸变系数测试通过,如果是,表明相机畸变系数测试不通过。
可选的,上述相机评测方法中,所述计算所述相机采集线段相对于所述实际线段变形程度,包括:
在所述相机采集线段和所述实际线段上平均取N个均分点,所述N为不小于1的正整数,所述相机采集线段上的N个均分点与所述实际线段上的N个均分点一一对应;
计算所述相机采集线段上的每个均分点和所述实际线段上与其对应的均分点之间的距离;
基于计算得到的N个距离计算得到相机采集线段和所述实际线段上相互对应的两个均分点的平均距离,将所述平均距离记为所述相机采集线段相对于所述实际线段变形程度。
可选的,上述相机评测方法中,所述提取所述采集图像中所述目标直线上的第一位置和第二位置包括:
由采集图像中识别得到第一标记点和第二标记点,将所述第一标记点作为所述目标直线上的第一位置,将第二标记点作为所述目标直线上的第二位置。
可选的,上述相机评测方法中,还包括:
获取被测相机的相机镜头中心与标定板上的M个角点之间的平均坐标距离,记为实际距离,所述M为所述标定板上的角点的个数,所述被测相机的相机镜头中心为被测相机的相机镜头中心线与标定板的交点;
获取被测相机对所述标定板的采集图像,基于所述被测相机的相机内参矩阵和畸变系数推导得到采集图像中,所述标定板的M个角点与相机摄像头的镜头中心之间的平均坐标距离,记为图像采集距离;
判断所述实际距离与所述图像采集距离之差是否大于预设误差值,如果否,表明相机内参矩阵验证通过,如果是,表明相机内参矩阵验证未通过。
一种相机评测装置,包括:
第一图像采集单元,用于获取被测相机的采集图像,所述采集图像为采用被测相机对目标物体上的目标直线进行图像采集得到的图像;
坐标提取单元,用于提取所述采集图像中所述目标直线上的第一位置和第二位置;
相机采集线段识别单元,用于基于图像识别原理提取所述采集图像中,连接所述第一位置和第二位置的线段,记为相机采集线段;
实际线段识别单元,用于构建所述第一位置和第二位置之间的连接直线,记为实际线段;
畸变测试结果判断单元,用于计算所述相机采集线段相对于所述实际线段变形程度;判断所述变形程度是否大于预设值,如果否,表明相机畸变系数测试通过,如果是,表明相机畸变系数测试不通过。
可选的,上述相机评测装置中,所述畸变测试结果判断单元在计算所述相机采集线段相对于所述实际线段变形程度时,具体用于:
在所述相机采集线段和所述实际线段上平均取N个均分点,所述N为不小于1的正整数,所述相机采集线段上的N个均分点与所述实际线段上的N个均分点一一对应;
计算所述相机采集线段上的每个均分点和所述实际线段上与其对应的均分点之间的距离;
基于计算得到的N个距离计算得到相机采集线段和所述实际线段上相互对应的两个均分点的平均距离,将所述平均距离记为所述相机采集线段相对于所述实际线段变形程度。
可选的,上述相机评测装置中,所述坐标提取单元在提取所述采集图像中所述目标直线上的第一位置和第二位置时,具体用于:
由采集图像中识别得到第一标记点和第二标记点,将所述第一标记点作为所述目标直线上的第一位置,将第二标记点作为所述目标直线上的第二位置。
可选的,上述相机评测装置中,还包括:
第一距离计算单元,用于获取被测相机的相机镜头中心与标定板上的M个角点之间的平均坐标距离,记为实际距离,所述M为所述标定板上的角点的个数,所述被测相机的相机镜头中心为被测相机的相机镜头中心线与标定板的交点;
第二距离计算单元,获取被测相机对所述标定板的采集图像,基于所述被测相机的相机内参矩阵和畸变系数推导得到采集图像中,所述标定板的M个角点与相机摄像头的镜头中心之间的平均坐标距离,记为图像采集距离;
内参矩阵验证单元,用于判断所述实际距离与所述图像采集距离之差是否大于预设误差值,如果否,表明相机内参矩阵验证通过,如果是,表明相机内参矩阵验证未通过。
一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述任一项所述的相机评测方法中的步骤。
基于上述技术方案,本发明实施例提供的上述方案,通过利用实际场景中的直线在目标场景中会由于畸变原因在图像中形成曲线的原理,测试相机的畸变系数是否满足要求,能够精准计算相机畸变系数,判断相机的畸变系数是否满足要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种相机评测方法的流程示意图;
图2为本申请实施例公开的图像中相机采集线段和实际线段的示意图;
图3为本申请另一实施例公开的一种相机评测方法的流程示意图;
图4为本申请实施例公开的对相机进行内参矩阵评测时,相机与标定板之间的位置示意图;
图5为本申请实施例公开的一种相机评测装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 为了更加特定地强调实施的独立性,本说明书涉及许多模块或单元。举例而言,模块或单元可由硬件电路实现,该硬件电路包括特制VLSI电路或门阵列,比如逻辑芯片、晶体管,或其它组件。模块或单元也可在可编程的硬设备中实现,比如场效可编程门阵列、可编程阵列逻辑、可编程逻辑设备等等。
模块或单元也可在藉由各种形式的处理器所执行的软件中实现。比如说,一可执行码模块可包括一个或多个实体的或逻辑的计算机指令区块,该区块可能形成为,比如说,对象、程序或函数。然而,鉴别模块或单元的可执行部分不需要物理上放置在一起,但可由存于不同位置的不同指令所组成,当逻辑上组合在一起时,形成模块或单元且达到该模块或单元所要求的目的。
实际上,可执行码模块或单元可以是一单一指令或多个指令,甚至可以分布在位于不同的程序中的数个不同的码区段,并且横跨数个存储设备。同样地,操作数据可被辨识及显示于此模块或单元中,并且可以以任何合适的形式实施且在任何合适的数据结构形式内组织。操作数据可以集合成单一数据集,或可分布在具有不同的存储设备的不同的位置,且至少部分地只以电子信号方式存在于一系统或网络。
本说明书所提及的“实施例”或类似用语表示与实施例有关的特性、结构或特征,包括在本发明的至少一实施例中。因此,本说明书所出现的用语“在一实施例中”、“在实施例中”以及类似用语可能但不必然都指向相同实施例。
再者,本发明所述特性、结构或特征可以以任何方式结合在一个或多个实施例中。以下说明将提供许多特定的细节,比如编程序、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等例子,以提供对本发明实施例的了解。然而相关领域的普通技术人员将看出本发明,即使没有利用其中一个或多个特定细节,或利用其它方法、组件、材料等亦可实施。另一方面,为避免混淆本发明,公知的结构、材料或操作并没有详细描述。
为了解决现有技术中相机内参验证评测方法误差大,精度低的问题,本申请提供了一种相机评测方法,参见图1,方法包括:
步骤S101:获取被测相机的采集图像,所述采集图像为采用被测相机对目标物体上的目标直线进行图像采集得到的图像;
在执行本申请实施例公开的技术方案时,先采用被测相机对目标物体进行图像采集,所述目标物体可以是具有直线边缘的物体,在本方案中,采用所述被测相机对所述目标物体进行图像采集时,以所采集的图像中能够清晰识别该直线边缘为准,例如,所述被测相机可以由侧方(相对于所述目标物体的直线边缘区域而言)对所述目标物体进行图像采集,使得采集图像中采集到的目标物体的边缘即为所述目标物体的直线边缘,或者是,所述目标物体也可以为具有明显的直线结构或图形的物体,所述被测相机可直接对所述目标物体上的直线结构或图形进行图像采集。
步骤S102:提取所述采集图像中所述目标直线上的第一位置和第二位置;
在本方案中,获取到所述目标物体的采集图像后,基于图像识别原理,对所述采集图像进行识别,确定所述采集图像中的目标直线,然后,在所述目标直线上确定第一位置和第二位置,所述第一位置和所述第二位置可以是所述目标直线上的两个点,也可以是所述目标直线的端头位置。
在本申请实施例公开的技术方案中,也可以预先在所述目标物体的目标直线上设置标记,在采集到图像以后,由采集图像中识别得到第一标记点和第二标记点,将所述第一标记点作为所述目标直线上的第一位置,将第二标记点作为所述目标直线上的第二位置。
步骤S103:基于图像识别原理提取所述采集图像中,连接所述第一位置和第二位置的线段,记为相机采集线段;
在确定所述第一位置和第二位置以后,基于图像识别原理,识别得到图像中用于连接所述第一位置和第二位置的线段,该线段就是对应于所述目标物体中的目标直线的在所述采集图像中的展示方式,将该线段记为相机采集线段,由于所述相机在图像采集时,存在畸变,该线段在图像中有可能并非是直线。
步骤S104:构建所述第一位置和第二位置之间的连接直线,记为实际线段;
在本步骤中,采用直线连接所述第一位置和第二位置,将连接的直线表征所述目标物体中的目标直线在采集图像中的标准展示方式,将连接的直线记为实际线段。
步骤S105:计算所述相机采集线段相对于所述实际线段变形程度;
本步骤中,通过分析所述相机采集线段与所述实际线段之间的位置差异,即可计算得到所述相机采集线段相对于所述实际线段变形程度,例如,可以通过以下方式计算得到所述相机采集线段相对于所述实际线段变形程度:
结合图2,图2中A、B两点之间的曲线为相机采集线段,A、B两点之间的直线为实际线段,在所述相机采集线段和所述实际线段上平均取N个均分点,所述N为不小于1的正整数,所述相机采集线段上的N个均分点与所述实际线段上的N个均分点一一对应;例如,相机采集线段上的N个均分点为C1、D1、E1,实际线段上的N个均分点为C2、D2、E2,其中,所述C1和C2对应、D1和D2对应、E1和E2对应,计算所述相机采集线段上的每个均分点和所述实际线段上与其对应的均分点之间的距离,例如,计算C1和C2之间的距离、D1和D2之间的距离、E1和E2之间的距离;基于计算得到的N个距离计算得到相机采集线段和所述实际线段上相互对应的两个均分点的平均距离,即,计算C1和C2之间的距离、D1和D2之间的距离、E1和E2之间的距离的平均值,将所述平均距离记为所述相机采集线段相对于所述实际线段变形程度,所述平均值越大,表明畸变程度越大。
步骤S106:判断所述变形程度是否大于预设值,如果否,表明相机畸变系数测试通过,如果是,表明相机畸变系数测试不通过;
在本步骤中,将所述变形程度记为D,预设值为T,如果D>T,则被测相机的畸变系数不能满足要求,需要重新标定。
在上述方案中,通过利用实际场景中的直线在目标场景中会由于畸变原因在图像中形成曲线的原理,测试相机的畸变系数是否满足要求,能够精准计算相机畸变系数,判断相机的畸变系数是否满足要求。
除了测试相机畸变系数是否满足要求的方案之外,本申请还公开了一种测试相机的内参矩阵是否满足要求的方法,参见图3,方法包括:
步骤S301:获取被测相机的相机镜头中心与标定板上的M个角点之间的平均坐标距离,记为实际距离,所述M为所述标定板上的角点的个数,所述被测相机的相机镜头中心为被测相机的相机镜头中心线与标定板的交点;
在本步骤中,如图4所示固定被测相机,并放置好标定板,可以通过人工或其他方式测量标定板上的M个角点对于被测相机镜头中心的坐标距离Xc,该距离可以是相机镜头中心与标定板上的M个角点之间的平均坐标距离,也可以表征每个角点对于被测相机镜头中心的坐标距离,在本方案中,优选其为相机镜头中心与标定板上的M个角点之间的平均坐标距离,将其记为实际距离。
步骤S302:获取被测相机对所述标定板的采集图像,基于所述被测相机的相机内参矩阵和畸变系数推导得到采集图像中,所述标定板的M个角点与相机摄像头的镜头中心之间的平均坐标距离,记为图像采集距离;
在本步骤中,采用固定好的相机采集所述标定板的图像,基于采集结果,根据相机已知的内参矩阵和畸变系数推导出图像中n个角点对相机镜头中心的坐标距离Xp,对应的,该坐标距离Xp可以为图像中M个角点与相机摄像头的镜头中心之间的平均坐标距离,也可以为每个角点与相机摄像头的镜头中心之间的坐标距离,在本方案中,优选的选择坐标距离Xp为图像中M个角点与相机摄像头的镜头中心之间的平均坐标距离,将其记为图像采集距离。
步骤S303:判断所述实际距离与所述图像采集距离之差是否大于预设误差值,如果否,表明相机内参矩阵验证通过,如果是,表明相机内参矩阵验证未通过;
在本方案中,预先设置有距离对比误差T(预设误差值),若(Xp-Xc) > T时,则被测相机的内参矩阵不符合精度要求,需要重新标定。当然,所述Xp和Xc为每个角点与镜头中心之间的坐标距离时,判断(Xp-Xc)/M > T是否成立,若成立,则被测相机的内参矩阵不符合精度要求,需要重新标定。
对应于上述方法,本申请还公开了一种相机评测装置,该装置与上述方法可以相互借鉴,参见图5,装置包括:
第一图像采集单元100,其与上述方法中步骤S101相对应,用于获取被测相机的采集图像,所述采集图像为采用被测相机对目标物体上的目标直线进行图像采集得到的图像;
坐标提取单元200,其与上述方法中步骤S102相对应,用于提取所述采集图像中所述目标直线上的第一位置和第二位置;
相机采集线段识别单元300,其与上述方法中步骤S103相对应,用于基于图像识别原理提取所述采集图像中,连接所述第一位置和第二位置的线段,记为相机采集线段;
实际线段识别单元400,其与上述方法中步骤S104相对应,用于构建所述第一位置和第二位置之间的连接直线,记为实际线段;
畸变测试结果判断单元500,其与上述方法中步骤S105-S106相对应,用于计算所述相机采集线段相对于所述实际线段变形程度;判断所述变形程度是否大于预设值,如果否,表明相机畸变系数测试通过,如果是,表明相机畸变系数测试不通过。
与上述方法相对应,所述畸变测试结果判断单元在计算所述相机采集线段相对于所述实际线段变形程度时,具体用于:
在所述相机采集线段和所述实际线段上平均取N个均分点,所述N为不小于1的正整数,所述相机采集线段上的N个均分点与所述实际线段上的N个均分点一一对应;
计算所述相机采集线段上的每个均分点和所述实际线段上与其对应的均分点之间的距离;
基于计算得到的N个距离计算得到相机采集线段和所述实际线段上相互对应的两个均分点的平均距离,将所述平均距离记为所述相机采集线段相对于所述实际线段变形程度。
与上述方法相对应,所述坐标提取单元在提取所述采集图像中所述目标直线上的第一位置和第二位置时,具体用于:
由采集图像中识别得到第一标记点和第二标记点,将所述第一标记点作为所述目标直线上的第一位置,将第二标记点作为所述目标直线上的第二位置。
与上述方法相对应,上述装置还包括:
第一距离计算单元,用于获取被测相机的相机镜头中心与标定板上的M个角点之间的平均坐标距离,记为实际距离,所述M为所述标定板上的角点的个数,所述被测相机的相机镜头中心为被测相机的相机镜头中心线与标定板的交点;
第二距离计算单元,获取被测相机对所述标定板的采集图像,基于所述被测相机的相机内参矩阵和畸变系数推导得到采集图像中,所述标定板的M个角点与相机摄像头的镜头中心之间的平均坐标距离,记为图像采集距离;
内参矩阵验证单元,用于判断所述实际距离与所述图像采集距离之差是否大于预设误差值,如果否,表明相机内参矩阵验证通过,如果是,表明相机内参矩阵验证未通过。
此外,本申请还公开了一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述任一项实施例所述的相机评测方法中的步骤。
在本公开的上下文中,存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器存储介质可以是机器可读信号介质或机器可读储存介质。机器存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本公开上述的计算机存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机存储介质可以为存储介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。