CN112967173A - 一种图像生成方法、装置及系统 - Google Patents
一种图像生成方法、装置及系统 Download PDFInfo
- Publication number
- CN112967173A CN112967173A CN201911276823.6A CN201911276823A CN112967173A CN 112967173 A CN112967173 A CN 112967173A CN 201911276823 A CN201911276823 A CN 201911276823A CN 112967173 A CN112967173 A CN 112967173A
- Authority
- CN
- China
- Prior art keywords
- image
- parameter
- target
- fisheye
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 239000011159 matrix material Substances 0.000 claims abstract description 113
- 238000013507 mapping Methods 0.000 claims abstract description 92
- 238000012937 correction Methods 0.000 claims description 67
- 238000012545 processing Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 14
- 239000003550 marker Substances 0.000 description 244
- 230000008569 process Effects 0.000 description 30
- 238000005457 optimization Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 16
- 230000002457 bidirectional effect Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000004927 fusion Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G06T3/047—
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Abstract
本申请提供一种图像生成方法、装置及系统,该方法包括:基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。通过本申请的技术方案,不需要内参就可以完成参数标定,降低标定参数的数量。
Description
技术领域
本申请涉及辅助驾驶技术领域,尤其涉及一种图像生成方法、装置及系统。
背景技术
随着图像技术的不断发展,车载全景系统也得到了大量应用,车载全景系统包括安装在车辆上的多个摄像头,如前视摄像头和环视摄像头等。在车辆行驶过程中,这些摄像头可以实时采集图像。例如,前视摄像头用于采集车辆前方的图像,环视摄像头用于采集车辆周围的图像。基于多个摄像头采集的多个图像,车载全景系统可以将多个图像拼接成全景图像,即360度的环视图像。
车载全景系统是辅助安全系统之一,基于多个摄像头采集的多个图像,车载全景系统可以为驾驶员提供车辆周围情况,为驾驶员的操作提供视觉辅助。
为了实现上述功能,需要对摄像头的相机参数进行标定。具体的,为了确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,需要建立成像的几何模型,这些几何模型的参数就是相机参数,而这些相机参数的求解过程就称之为相机参数的标定,相机参数的标定是非常关键的环节。
在相关技术中,并没有对相机参数进行标定的有效方式,用户体验较差。
发明内容
本申请提供一种图像生成方法,所述方法包括:
基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;
基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;
基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;
基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
本申请提供一种图像生成装置,所述装置包括:
获取模块,用于基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;
基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;
基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;
处理模块,用于基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
本申请提供一种车载全景系统,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;
基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;
基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;
基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
由以上技术方案可见,本申请实施例中,提出参数的自动标定方法,能够为摄像头标定目标展开参数和目标单应性矩阵,即通过目标展开参数和目标单应性矩阵替换传统的相机参数(如内参和外参),不需要对摄像头的相机参数进行标定,减少相机参数的标定流程,降低标定参数的数量和标定难度。上述方式是一种无内参的标定方法,一次性准确完成参数标定,不需要内参就可以完成参数标定,降低对摄像头的要求,降低出厂操作流程和成本。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的部署多个车载摄像头的示意图;
图2是本申请一种实施方式中的参数标定方法的流程示意图;
图3是本申请一种实施方式中的标定场地的示意图;
图4A-图4F是本申请一种实施方式中的鱼眼图像与展开图像的映射示意图;
图5是本申请一种实施方式中的图像生成方法的流程示意图;
图6是本申请一种实施方式中的车载全景系统的结构示意图;
图7是本申请一种实施方式中的图像生成装置的结构示意图;
图8是本申请一种实施方式中的车载全景系统的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1所示,车载全景系统包括安装在车辆上的多个摄像头(即车载摄像头),如前视摄像头和环视摄像头。在车辆行驶过程中,这些摄像头实时采集图像,例如,前视摄像头用于采集车辆前方的图像,环视摄像头用于采集车辆周围的图像。基于多个摄像头采集的多个图像,车载全景系统能够生成并显示全景视图,从而为驾驶员提供车辆周围情况,为驾驶员的操作提供视觉辅助。
对摄像头的相机参数进行标定,是车载全景系统不可避免的一个环节,而相机参数可以包括内参(即内部参数)和外参(即外部参数)。
示例性的,内参由(cx,cy,fx,fy,s0,s1,s2,s3)这八个参数组成,(cx,cy)是主点坐标,(fx,fy)是摄像头焦距,(s0,s1,s2,s3)是摄像头畸变系数。外参由(ω,δ,θ,Tx,Ty,Tz)这六个参数组成,(ω,δ,θ)是三个轴的旋转参数,(Tx,Ty,Tz)是三个轴的平移参数。
综上所述,对摄像头的内参和外参进行标定时,需要标定的参数较多,标定过程较为复杂,相关技术中,并没有对这些参数进行标定的有效方式。
针对上述发现,本申请实施例中,提出无内参的参数自动标定方法,能够为摄像头标定目标展开参数和目标单应性矩阵,即通过目标展开参数和目标单应性矩阵替换传统的相机参数(如内参和外参),不需要对摄像头的相机参数进行标定,减少相机参数的标定流程,降低标定参数的数量和标定难度。
以下结合具体实施例,对本申请实施例的技术方案进行说明。
参见图2所示,为参数标定方法的流程示意图,该方法可以包括:
步骤201,获取摄像头采集的鱼眼图像,该鱼眼图像可以包括多个标记点。
示例性的,摄像头可以包括鱼眼摄像头,鱼眼摄像头采集的图像可以记为鱼眼图像。当然,鱼眼摄像头只是一个示例,对此鱼眼摄像头的类型不做限制。
针对鱼眼图像来说,鱼眼图像的有效区域可以为圆形图像,比如说,当鱼眼图像为一个方形图像时,则该鱼眼图像可以包括有效区域和无效区域,有效区域是真正显示画面的区域,且有效区域为圆形图像。无效区域不是真正显示画面的区域,可以使用指定颜色(如黑色)进行填充。
在一种可能的实施方式中,可以预先创建标定场地,该标定场地包括多个标记点,这些标记点包括共线的标记点,也包括不共线的标记点。在将车辆驶入标定场地后,车辆上的摄像头可以采集鱼眼图像,鱼眼图像包括多个标记点。
参见图3所示,为标定场地的示意图,图3中示出了16个标记点,当然,图3只是标定场地的一个示例,对此不做限制,对于标定场地中的标记点,可以任意设置,只要存在共线的至少三个标记点、且存在不共线的标记点(即与所述至少三个标记点不共线的标记点)即可。
参见图3,标记点A1、标记点A2、标记点B1和标记点B2是共线的标记点。标记点A3、标记点A4、标记点B3和标记点B4是共线的标记点。标记点A1、标记点A3、标记点C1和标记点C3是共线的标记点。标记点A2、标记点A4、标记点C2和标记点C4是共线的标记点。标记点B1、标记点B3、标记点D1和标记点D3是共线的标记点。标记点B2、标记点B4、标记点D2和标记点D4是共线的标记点。标记点C1、标记点C2、标记点D1和标记点D2是共线的标记点。标记点C3、标记点C4、标记点D3和标记点D4是共线的标记点。
参见图3,针对部署在车辆前方的摄像头,采集的鱼眼图像包括标记点A1、标记点A2、标记点A3、标记点A4、标记点B1、标记点B2、标记点B3和标记点B4。针对部署在车辆左侧的摄像头,采集的鱼眼图像包括标记点A1、标记点A2、标记点A3、标记点A4、标记点C1、标记点C2、标记点C3和标记点C4。针对部署在车辆右侧的摄像头,采集的鱼眼图像包括标记点B1、标记点B2、标记点B3、标记点B4、标记点D1、标记点D2、标记点D3和标记点D4。针对部署在车辆后方的摄像头,采集的鱼眼图像包括标记点C1、标记点C2、标记点C3、标记点C4、标记点D1、标记点D2、标记点D3和标记点D4。
示例性的,参见图3所示,针对每个摄像头采集的鱼眼图像,可以包括8个标记点,比如说,每个鱼眼图像可以至少包括8个标记点,且所述8个标记点中存在共线的至少三个标记点、且存在不共线的标记点,对此不做限制。
基于每个摄像头采集的鱼眼图像,可以为摄像头进行参数标定,标定过程参见后续实施例。由于每个摄像头的参数标定过程相同,因此,以一个摄像头为例。假设以车辆前方的摄像头为例,则鱼眼图像包括标记点A1、标记点A2、标记点A3、标记点A4、标记点B1、标记点B2、标记点B3和标记点B4。
示例性的,针对鱼眼图像的每个标记点来说,该标记点在世界坐标系中的物理坐标可以为已知,该标记点在鱼眼图像中的像素坐标也可以为已知。
步骤202,获取与鱼眼图像对应的初始展开参数,该初始展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系。
示例性的,可以使用初始展开参数对鱼眼图像进行展开,得到展开图像,具体过程参见后续实施例。由于初始展开参数的数量比较少,从而使用比较少的初始展开参数替代由(cx,cy,fx,fy,s0,s1,s2,s3)这八个参数组成的内参,不再通过内参对鱼眼图像进行展开,继而实现参数的简化。
示例性的,可以预先配置初始展开参数,或者,采用如下方式获取与鱼眼图像对应的初始展开参数。当然,这里只是给出获取初始展开参数的两个示例,对此获取方式不做限制,只要能够获取初始展开参数,且初始展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系即可。
示例性的,可以采用如下步骤获取与鱼眼图像对应的初始展开参数:
步骤2021,根据鱼眼图像的分辨率确定主点坐标。
示例性的,主点坐标可以包括:横向坐标和纵向坐标,根据鱼眼图像的横向分辨率确定横向坐标,并根据鱼眼图像的纵向分辨率确定纵向坐标。
例如,主点坐标可以为(cx,cy),cx表示横向坐标,cy表示纵向坐标,鱼眼图像的横向分辨率为width,即鱼眼图像的宽度,表示鱼眼图像横向的像素点数量,鱼眼图像的纵向分辨率为height,即鱼眼图像的高度,表示鱼眼图像纵向的像素点数量。在此基础上,则cx=width/2,cy=height/2。当然,上述只是主点坐标的示例,还可以采用其它方式确定主点坐标,对此不做限制。
步骤2022,为校正参数设置参数初始值。
在一种可能的实施方式中,校正参数可以为展开图像与鱼眼图像的畸变系数,用于表示从主点坐标(cx,cy)出发,沿着半径方向的畸变程度。当畸变系数为0时,则展开图像与鱼眼图像一致;当畸变系数越大时,则表示边缘位置像素的畸变比中间位置像素的畸变越大。例如,畸变系数的参数初始值可以为1,当然,参数初始值还可以为其它数值,如0.8、0.9等,对此不做限制。
在另一种可能的实施方式中,校正参数可以为鱼眼图像对应的半径,比如说,鱼眼图像为鱼眼图像时,则校正参数可以为鱼眼图像的有效区域(即圆形图像)的半径。例如,半径的参数初始值可以为cx和cy中的较大值,即,当cx大于cy时,则半径的参数初始值可以cx,当cx小于cy时,则半径的参数初始值可以cy。当然,参数初始值还可以为其它数值,对此不做限制。
当然,上述畸变系数和半径只是校正参数的两个示例,对此校正参数不做限制,还可以采用其它类型的校正参数,其实现原理类似,后续不再赘述。
步骤2023,根据参数初始值确定校正参数的参数目标值;或,根据标记点在鱼眼图像中的像素坐标对参数初始值进行优化,得到校正参数的参数目标值。
在一种可能的实施方式中,可以根据参数初始值确定校正参数的参数目标值,比如说,直接将校正参数的参数初始值确定为校正参数的参数目标值。
在另一种可能的实施方式中,可以根据标记点在鱼眼图像中的像素坐标对校正参数的参数初始值进行优化,得到校正参数的参数目标值,具体优化过程参见如下方式。当然,这里只是给出了两个示例,对此优化过程不做限制。
方式一,可以采用如下步骤,得到校正参数的参数目标值:
步骤a1、从多个标记点中选择位于同一直线的至少三个目标标记点。
步骤a2、针对每个目标标记点,根据该目标标记点在鱼眼图像中的像素坐标和校正参数的参数初始值,确定该目标标记点在展开图像中的像素坐标。
步骤a3、根据至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标对校正参数的参数初始值进行优化,得到校正参数的参数目标值。
方式二、可以采用如下步骤,得到校正参数的参数目标值:
步骤b1、从多个标记点中选择位于同一直线的至少三个目标标记点。
步骤b2、针对每个目标标记点,根据该目标标记点在鱼眼图像中的像素坐标和校正参数的参数初始值,确定该目标标记点在展开图像中的像素坐标。
步骤b3、基于至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定所述至少三个目标标记点是否位于同一直线。
如果否,则执行步骤b4;如果是,则执行步骤b5。
步骤b4、对校正参数的参数初始值进行优化,并将优化后的数值作为所述参数初始值,返回步骤b2,即重新执行根据目标标记点在鱼眼图像中的像素坐标和校正参数的参数初始值,确定该目标标记点在展开图像中的像素坐标。
步骤b5、根据当前的参数初始值确定校正参数的参数目标值,比如说,可以直接将当前的参数初始值确定为校正参数的参数目标值。
在步骤a1和步骤b1中,鱼眼图像包括标记点A1、标记点A2、标记点A3、标记点A4、标记点B1、标记点B2、标记点B3和标记点B4,可以从这些标记点中选择位于同一直线的至少三个目标标记点。例如,可以从这些标记点中选择位于同一直线的标记点A1、标记点A2和标记点B1,或者,从这些标记点中选择位于同一直线的标记点A3、标记点A4和标记点B3,当然,上述只是示例,对此不做限制,后续以标记点A1、标记点A2和标记点B1为例。标记点A1在鱼眼图像中的像素坐标为(A1-x2,A1-y2),标记点A2在鱼眼图像中的像素坐标为(A2-x2,A2-y2),标记点B1在鱼眼图像中的像素坐标为(B1-x2,B1-y2)。
在步骤a2和步骤b2中,可以根据目标标记点在鱼眼图像中的像素坐标和校正参数的参数初始值,确定该目标标记点在展开图像中的像素坐标。示例性的,由于初始展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系,而初始展开参数包括主点坐标和校正参数,因此,主点坐标和校正参数的参数初始值可以表示初始展开参数,即,基于主点坐标和校正参数的参数初始值,可以确定鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系。综上所述,基于目标标记点在鱼眼图像中的像素坐标和校正参数的参数初始值,就可以确定该目标标记点在展开图像中的像素坐标。
在一种可能的实施方式中,校正参数可以为展开图像与鱼眼图像的畸变系数,可以根据鱼眼图像对应的半径,目标标记点在鱼眼图像中的像素坐标与鱼眼图像的主点坐标之间的距离,畸变系数的参数初始值,确定该目标标记点在展开图像中的像素坐标。例如,可以根据鱼眼图像对应的半径,目标标记点在鱼眼图像中的像素坐标与鱼眼图像的主点坐标之间的距离,畸变系数的参数初始值,确定目标标记点在展开图像中的像素坐标与展开图像的主点坐标之间的距离。然后,可以根据目标标记点在展开图像中的像素坐标与展开图像的主点坐标之间的距离,确定该目标标记点在展开图像中的像素坐标。
在另一种可能的实施方式中,校正参数可以为鱼眼图像对应的半径,可以根据目标标记点在鱼眼图像中的像素坐标,鱼眼图像的主点坐标,鱼眼图像对应的半径的参数初始值,确定该目标标记点在展开图像中的像素坐标。
在另一种可能的实施方式中,校正参数可以为鱼眼图像对应的半径,可以根据目标标记点在鱼眼图像中的像素坐标,确定纵向经线(即经线)所在圆半径以及横向纬线(即纬线)所在圆半径。然后,可以根据该纵向经线所在圆半径,该横向纬线所在圆半径,鱼眼图像对应的半径的参数初始值,鱼眼图像的主点坐标,确定该目标标记点在展开图像中的像素坐标。
示例性的,关于确定目标标记点在展开图像中的像素坐标的实现方式,可以参见后续实施例,与展开模型有关,不同的展开模型对应不同的实现方式,对此不做限制,只要达到减少参数数量,校正效果可接受的目的即可。
在步骤b3中,基于至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定至少三个目标标记点是否位于同一直线,例如,基于至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定任意两个目标标记点之间的斜率,根据该斜率确定至少三个目标标记点是否位于同一直线。
例如,当两个斜率的差值的绝对值小于或者等于阈值(可以根据经验配置,如0、0.01、0.05等,对此不做限制)时,则确定至少三个目标标记点位于同一直线。当两个斜率的差值的绝对值大于阈值时,则确定至少三个目标标记点不位于同一直线。
参见图3所示,假设目标标记点为标记点A1、标记点A2和标记点B1,显然,由于标记点A1、标记点A2与标记点B1在世界坐标系下共线,因此,标记点A1、标记点A2与标记点B1在鱼眼图像中也需要共线,而且,标记点A1、标记点A2与标记点B1在展开图像中也需要共线。
基于上述原理,在得到标记点A1在展开图像中的像素坐标、标记点A2在展开图像中的像素坐标和标记点B1在展开图像中的像素坐标后,可以根据标记点A1在展开图像中的像素坐标和标记点A2在展开图像中的像素坐标,确定标记点A1与标记点B1之间的斜率1;根据标记点A1在展开图像中的像素坐标和标记点B1在展开图像中的像素坐标,确定标记点A1与标记点B1之间的斜率2;根据标记点A2在展开图像中的像素坐标和标记点B1在展开图像中的像素坐标,确定标记点A2与标记点B1之间的斜率3。
若根据斜率1、斜率2和斜率3确定标记点A1、标记点A2与标记点B1位于同一直线,则满足标记点A1、标记点A2与标记点B1在展开图像中共线的目标,可以结束参数初始值的优化过程,并执行步骤b5,即,可以将当前的参数初始值确定为校正参数的参数目标值。若根据斜率1、斜率2和斜率3确定标记点A1、标记点A2与标记点B1不位于同一直线,则不满足标记点A1、标记点A2与标记点B1在展开图像中共线的目标,因此,可以继续参数初始值的优化过程,并执行步骤b4,即,对校正参数的参数初始值进行优化。
例如,若斜率1与斜率2的差值的绝对值小于或者等于阈值,斜率1与斜率3的差值的绝对值小于或者等于阈值,斜率2与斜率3的差值的绝对值小于或者等于阈值,如斜率1等于斜率2,斜率1等于斜率3,则根据斜率1、斜率2和斜率3确定标记点A1、标记点A2与标记点B1位于同一直线。
若斜率1与斜率2的差值的绝对值大于阈值,或,斜率1与斜率3的差值的绝对值大于阈值,或,斜率2与斜率3的差值的绝对值大于阈值,则根据斜率1、斜率2和斜率3确定标记点A1、标记点A2与标记点B1不位于同一直线。
在步骤b4和步骤a3中,可以对校正参数的参数初始值进行优化,对此优化过程不做限制,优化的目标可以是使至少三个目标标记点位于同一直线,即至少三个目标标记点之间的斜率越来越小。例如,可以采用二分法、最小二乘法、黄金分割法等方式,对校正参数的参数初始值进行迭代优化。
例如,校正参数的参数初始值为R1,在第一次执行步骤b4时,采用二分法对校正参数的参数初始值R1进行优化,优化后的数值可以为R2(如R1/2),将优化后的数值R2作为参数初始值,返回执行步骤b2和步骤b3。
若步骤b3的判断结果为至少三个目标标记点不位于同一直线,在第二次执行步骤b4时,采用二分法对校正参数的参数初始值R2进行优化,优化后的数值可以为R3,将优化后的数值R3作为参数初始值,返回执行步骤b2和步骤b3。
若步骤b3的判断结果为至少三个目标标记点位于同一直线,则执行步骤b5,在步骤b5中,将当前的参数初始值R3确定为校正参数的参数目标值。
步骤2024,将主点坐标和校正参数的参数目标值确定为初始展开参数。
以下结合几个具体应用场景,对上述步骤2021-步骤2024进行说明。
应用场景1:基于径向畸变的鱼眼展开模型对鱼眼图像进行校正。
本应用场景中,使用基于径向畸变的鱼眼展开模型来替换内参,而基于径向畸变的鱼眼展开模型包括鱼眼图像的主点坐标(cx,cy)和畸变系数,即校正参数为展开图像与鱼眼图像的畸变系数,畸变系数用于表示从主点坐标(cx,cy)出发,沿着半径方向的畸变程度。当畸变系数为0时,展开图像与鱼眼图像一致;当畸变系数越大时,表示边缘位置像素的畸变比中间位置像素的畸变越大。
参见图4A所示,是鱼眼展开模型的示意图,(cx,cy)是鱼眼图像的主点坐标,R是鱼眼图像对应的半径,即鱼眼图像的有效区域的半径,r是鱼眼图像中的像素坐标到主点坐标的距离。本应用场景中,畸变系数用于表示从主点坐标(cx,cy)出发,沿着r的方向存在畸变,且离主点坐标越远,畸变越大。
本应用场景中,鱼眼展开模型的原理示例可以参见公式1所示,在公式1中,r用于表示鱼眼图像中的像素坐标到主点坐标(即鱼眼图像的主点坐标)的距离,r’用于表示展开图像中的像素坐标到主点坐标(即展开图像的主点坐标)的距离,R用于表示鱼眼图像对应的半径,warp用于表示畸变系数。
本应用场景中,鱼眼图像/展开图像的主点坐标可以为(cx,cy),cx=width/2,cy=height/2,width为鱼眼图像的横向分辨率,height为鱼眼图像的纵向分辨率。
本应用场景中,假设畸变系数warp的参数初始值为1,当然,畸变系数warp的参数初始值还可以为其它数值,如0.8、0.9等,对此不做限制。
本应用场景中,假设目标标记点为标记点A1、标记点A2和标记点B1,则需要获取标记点A1在展开图像中的像素坐标,获取标记点A2在展开图像中的像素坐标,并获取标记点B1在展开图像中的像素坐标。
由于标记点A1在鱼眼图像的像素坐标为已知,鱼眼图像的主点坐标为已知,因此,基于标记点A1在鱼眼图像的像素坐标和鱼眼图像的主点坐标,确定标记点A1在鱼眼图像中的像素坐标与鱼眼图像的主点坐标之间的距离r。
由于标记点A1在鱼眼图像中的像素坐标与鱼眼图像的主点坐标之间的距离r为已知,畸变系数warp的参数初始值为已知,鱼眼图像对应的半径R为已知,参见公式1,根据鱼眼图像对应的半径R,标记点A1在鱼眼图像中的像素坐标与鱼眼图像的主点坐标之间的距离r,畸变系数warp的参数初始值,确定标记点A1在展开图像中的像素坐标与展开图像的主点坐标之间的距离r’。
由于展开图像的主点坐标为已知,标记点A1在展开图像中的像素坐标与展开图像的主点坐标之间的距离为已知,根据标记点A1在展开图像中的像素坐标与展开图像的主点坐标之间的距离,确定标记点A1在展开图像中的像素坐标。
同理,可以确定标记点A2和标记点B1在展开图像中的像素坐标,对此不再赘述。
假设主点坐标在鱼眼图像中心,即cx=width/2,cy=height/2,畸变系数的参数初始值为1,则保持cx和cy不变,并对畸变系数的参数初始值进行优化。
例如,参见图3所示,标记点A1、标记点A2与标记点B1在世界坐标系下共线,且共线关系不变,因此,标记点A1、标记点A2与标记点B1在鱼眼图像中也需要共线,标记点A1、标记点A2与标记点B1在展开图像中也需要共线。示例性的,展开图像可以为基于径向畸变的鱼眼展开模型对鱼眼图像进行校正后,得到的校正图像。
显然,若不改变(cx,cy)的坐标,则共线性只与畸变系数有关。基于共线性的约束,可以对畸变系数的参数初始值进行迭代优化,从而获取畸变系数的最优值,而畸变系数的最优值就是畸变系数的参数目标值。例如,采用二分法、最小二乘法、黄金分割法等方式,对畸变系数的参数初始值进行迭代优化。
示例性的,在得到标记点A1在展开图像中的像素坐标、标记点A2在展开图像中的像素坐标和标记点B1在展开图像中的像素坐标后,可以根据标记点A1在展开图像中的像素坐标、标记点A2在展开图像中的像素坐标和标记点B1在展开图像中的像素坐标,确定标记点A1与标记点B1之间的斜率、标记点A1与标记点A2之间的斜率、标记点A2与标记点B1之间的斜率。若根据上述斜率确定标记点A1、标记点A2与标记点B1位于同一直线,则满足共线性的约束,结束畸变系数的参数初始值的优化过程,将当前的参数初始值作为畸变系数的参数目标值。若根据上述斜率确定标记点A1、标记点A2与标记点B1不位于同一直线,则不满足共线性的约束,继续对畸变系数的参数初始值进行迭代优化,以此类推。
在得到畸变系数的参数目标值、主点坐标(cx,cy)后,则可以将畸变系数的参数目标值、主点坐标(cx,cy)作为初始展开参数,且基于初始展开参数确定基于径向畸变的鱼眼展开模型,该鱼眼展开模型可以参见公式1所示。
应用场景2:基于球体的映射展开模型对鱼眼图像进行校正。
本应用场景中,使用基于球体的映射展开模型来替换内参,而基于球体的映射展开模型包括鱼眼图像的主点坐标(cx,cy)和鱼眼图像对应的半径,即校正参数为鱼眼图像对应的半径,比如说,鱼眼图像的有效区域的半径。
本应用场景中,将鱼眼镜头看成理想半球体,模拟鱼眼镜头的成像过程,实现鱼眼图像的展开。参见图4B所示,是基于球体的映射展开模型的示意图。P为真实场景下的某一点,P’为P经过鱼眼镜头折射后在成像平面成的像,O为光心,即鱼眼图像的主点坐标(cx,cy),R是鱼眼图像对应的半径。在成像过程中,P点与O点的连线,与球面的交点在xoy平面的投影就是P’点。
在基于球体的映射展开模型中,P点作为展开图像中的点,P点在展开图像中的像素坐标记为(x,y)。P’点作为鱼眼图像中的点,P’点与展开图像中的P点相对应,且P’点在鱼眼图像中的像素坐标记为(x’,y’)。
本应用场景中,基于球体的映射展开模型的原理示例,参见公式2-公式4所示。在公式2-公式4中,d’用于表示P’点在鱼眼图像中的像素坐标到主点坐标的距离,R用于表示鱼眼图像对应的半径,(cx,cy)用于表示主点坐标,(x,y)是展开图像中的像素坐标,(x’,y’)是鱼眼图像中的像素坐标。
本应用场景中,主点坐标可以为(cx,cy),cx=width/2,cy=height/2,width为鱼眼图像的横向分辨率,height为鱼眼图像的纵向分辨率。
本应用场景中,半径R的参数初始值可以为cx和cy中的较大值,即,当cx大于cy时,则半径R的参数初始值可以cx,当cx小于cy时,则半径R的参数初始值可以cy。当然,参数初始值还可以为其它数值,对此不做限制。
本应用场景中,假设目标标记点为标记点A1、标记点A2和标记点B1,则需要获取标记点A1在展开图像中的像素坐标,获取标记点A2在展开图像中的像素坐标,并获取标记点B1在展开图像中的像素坐标。
由于标记点A1在鱼眼图像中的像素坐标(x’,y’)为已知,鱼眼图像的主点坐标(cx,cy)为已知,半径R的参数初始值为已知,因此,参见公式2-公式4,可以根据标记点A1在鱼眼图像中的像素坐标,鱼眼图像的主点坐标,半径R的参数初始值,确定标记点A1在展开图像中的像素坐标(x,y)。
同理,可以确定标记点A2和标记点B1在展开图像中的像素坐标,对此不再赘述。
假设主点坐标在鱼眼图像中心,即cx=width/2,cy=height/2,半径R的参数初始值为cx和cy中的较大值,则保持cx和cy不变,并对半径R的参数初始值进行优化。例如,参见图3所示,标记点A1、标记点A2与标记点B1在世界坐标系下共线,且共线关系不变,因此,标记点A1、标记点A2与标记点B1在鱼眼图像中也需要共线,标记点A1、标记点A2与标记点B1在展开图像中也需要共线。示例性的,展开图像可以为基于球体的映射展开模型对鱼眼图像进行校正后,得到的校正图像。
显然,若不改变(cx,cy)的坐标,则共线性只与半径R有关。基于共线性的约束,则可以对半径R的参数初始值进行迭代优化,从而获取半径R的最优值,而半径R的最优值就是半径R的参数目标值。例如,采用二分法、最小二乘法、黄金分割法等方式,对半径R的参数初始值进行迭代优化。
示例性的,在得到标记点A1在展开图像中的像素坐标、标记点A2在展开图像中的像素坐标和标记点B1在展开图像中的像素坐标后,可以根据标记点A1在展开图像中的像素坐标、标记点A2在展开图像中的像素坐标和标记点B1在展开图像中的像素坐标,确定标记点A1与标记点B1之间的斜率、标记点A1与标记点A2之间的斜率、标记点A2与标记点B1之间的斜率。若根据上述斜率确定标记点A1、标记点A2与标记点B1位于同一直线,则满足共线性的约束,结束半径R的参数初始值的优化过程,将当前的参数初始值作为半径R的参数目标值。若根据该斜率确定标记点A1、标记点A2与标记点B1不位于同一直线,则不满足共线性的约束,继续对半径R的参数初始值进行迭代优化,以此类推。
在得到半径R的参数目标值、主点坐标(cx,cy)后,则可以将半径R的参数目标值、主点坐标(cx,cy)作为初始展开参数,且基于初始展开参数确定基于球体的映射展开模型,该映射展开模型可以参见公式2-公式4所示。
应用场景3:基于经纬的双向展开模型对鱼眼图像进行校正。
本应用场景中,使用基于经纬的双向展开模型来替换内参,而基于经纬的双向展开模型包括鱼眼图像的主点坐标(cx,cy)和鱼眼图像对应的半径,即校正参数为鱼眼图像对应的半径,比如说,鱼眼图像的有效区域的半径。
在基于经纬的双向展开模型中,同一条纵向经线上的不同像素点在展开图像中具有相同的横坐标值,同一条横向纬线上的不同像素点在展开图像中具有相同的纵坐标值,参见图4C所示,是基于经纬的双向展开模型的示意图。
在基于经纬的双向展开模型中,K’点作为展开图像中的点,K’点在展开图像中的像素坐标记为(x’,y’),K点作为鱼眼图像中的点,K点与展开图像中的K’点相对应,且K点在鱼眼图像中的像素坐标记为(x,y)。
参见图4C所示,A点是K’点在x轴上的投影点,B点是K’点在y轴上的投影点,从图4C可以看出,K点是A点所在经线与B点所在纬线的交点。
本应用场景中,基于经纬的双向展开模型的原理示例,参见公式5和公式6所示。在公式5和公式6中,(cx,cy)用于表示主点坐标,(x’,y’)是展开图像中的像素坐标,R用于表示鱼眼图像对应的半径,r经线用于表示纵向经线(即经线)所在圆半径,r维线用于表示横向纬线(即纬线)所在圆半径。
本应用场景中,主点坐标可以为(cx,cy),cx=width/2,cy=height/2,width为鱼眼图像的横向分辨率,height为鱼眼图像的纵向分辨率。
本应用场景中,半径R的参数初始值可以为cx和cy中的较大值,即,当cx大于cy时,则半径R的参数初始值可以cx,当cx小于cy时,则半径R的参数初始值可以cy。当然,参数初始值还可以为其它数值,对此不做限制。
本应用场景中,假设目标标记点为标记点A1、标记点A2和标记点B1,则需要获取标记点A1在展开图像中的像素坐标,获取标记点A2在展开图像中的像素坐标,并获取标记点B1在展开图像中的像素坐标。
由于标记点A1在鱼眼图像中的像素坐标(x,y)为已知,因此,可以根据标记点A1在鱼眼图像中的像素坐标,确定纵向经线(即经线)所在圆半径以及横向纬线(即纬线)所在圆半径。例如,根据标记点A1在鱼眼图像中的像素坐标,确定纵向经线,即标记点A1的横坐标值x所在的纵向经线,然后,确定该纵向经线所在圆半径。根据标记点A1在鱼眼图像中的像素坐标,确定横向纬线,即标记点A1的纵坐标值y所在的横向纬线,然后,确定该横向纬线所在圆半径。
由于纵向经线所在圆半径r经线为已知,横向纬线所在圆半径r维线为已知,鱼眼图像的主点坐标(cx,cy)为已知,半径R的参数初始值为已知,因此,参见公式5和公式6,根据纵向经线所在圆半径,横向纬线所在圆半径,半径R的参数初始值,鱼眼图像的主点坐标,确定标记点A1在展开图像中的像素坐标。
同理,可以确定标记点A2和标记点B1在展开图像中的像素坐标,对此不再赘述。
本应用场景中,针对半径R的参数初始值,可以直接将半径R的参数初始值作为半径R的参数目标值,也可以对半径R的参数初始值进行优化,得到半径R的参数目标值,具体优化过程可以参见应用场景2,在此不再赘述。
在得到半径R的参数目标值、主点坐标(cx,cy)后,则可以将半径R的参数目标值、主点坐标(cx,cy)作为初始展开参数,且基于初始展开参数确定基于经纬的双向展开模型,该双向展开模型可以参见公式5和公式6所示。
应用场景4:基于柱面的映射展开模型对鱼眼图像进行校正。
本应用场景中,使用基于柱面的映射展开模型来替换内参,而基于柱面的映射展开模型包括鱼眼图像的主点坐标(cx,cy)和鱼眼图像对应的半径,即校正参数为鱼眼图像对应的半径,比如说,鱼眼图像的有效区域的半径。
本应用场景中,将鱼眼图像投影到半球面上,然后将半球面上的点投影到其最小外切圆柱面上,实现鱼眼图像的展开。参见图4D所示,是基于柱面的映射展开模型的示意图。圆柱面是展开图像所在曲面,已知圆柱面上的一个P’点,O点为光心,即主点坐标(cx,cy),O’点是P’点在Z轴的投影点,P’点与O’点的连线,与半球面的交点为A点,A点在平面xoz上的投影点是P点,P点是鱼眼图像上的点,且鱼眼图像上的P点与展开图像上的P’点相对应。
在基于柱面的映射展开模型中,P’点作为展开图像中的点,P’点在展开图像中的像素坐标记为(x’,y’)。P点作为鱼眼图像中的点,P点与展开图像中的P’点相对应,且P点在鱼眼图像中的像素坐标记为(x,y)。
本应用场景中,基于柱面的映射展开模型的原理示例,参见公式7和公式8所示。在公式7和公式8中,R为鱼眼图像对应的半径,(cx,cy)为主点坐标,(x,y)是鱼眼图像中的像素坐标,(x’,y’)是展开图像中的像素坐标。
y=y′ 公式8
本应用场景中,主点坐标可以为(cx,cy),cx=width/2,cy=height/2,width为鱼眼图像的横向分辨率,height为鱼眼图像的纵向分辨率。
本应用场景中,半径R的参数初始值可以为cx和cy中的较大值,即,当cx大于cy时,则半径R的参数初始值可以cx,当cx小于cy时,则半径R的参数初始值可以cy。当然,参数初始值还可以为其它数值,对此不做限制。
本应用场景中,假设目标标记点为标记点A1、标记点A2和标记点B1,则需要获取标记点A1在展开图像中的像素坐标,获取标记点A2在展开图像中的像素坐标,并获取标记点B1在展开图像中的像素坐标。
由于标记点A1在鱼眼图像中的像素坐标(x,y)为已知,鱼眼图像的主点坐标(cx,cy)为已知,半径R的参数初始值为已知,因此,参见公式7和公式8,可以根据标记点A1在鱼眼图像中的像素坐标,鱼眼图像的主点坐标,半径R的参数初始值,确定标记点A1在展开图像中的像素坐标(x’,y’)。
同理,可以确定标记点A2和标记点B1在展开图像中的像素坐标,对此不再赘述。
本应用场景中,针对半径R的参数初始值,可以直接将半径R的参数初始值作为半径R的参数目标值,也可以对半径R的参数初始值进行优化,得到半径R的参数目标值,具体优化过程可以参见应用场景2,在此不再赘述。
在得到半径R的参数目标值、主点坐标(cx,cy)后,则可以将半径R的参数目标值、主点坐标(cx,cy)作为初始展开参数,且基于初始展开参数确定基于柱面的映射展开模型,该映射展开模型可以参见公式7和公式8所示。
当然,上述4个应用场景的展开模型,只是展开模型的几个示例,对此展开模型不做限制,本申请并不局限于上述4个应用场景的展开模型。
步骤203,根据初始展开参数和鱼眼图像生成展开图像。
示例性的,由于初始展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系,因此,可以根据初始展开参数和鱼眼图像生成展开图像。例如,基于初始展开参数确定鱼眼图像的像素坐标S与展开图像的像素坐标T之间具有位置映射关系,则可以将鱼眼图像的像素坐标S的像素值作为展开图像的像素坐标T的像素值。综上所述,针对展开图像的每个像素坐标,可以根据初始展开参数从鱼眼图像中查询到对应的像素坐标,继而将鱼眼图像的像素坐标的像素值作为展开图像的像素坐标的像素值。
参见图4E所示,为鱼眼图像的示意图,参见图4F所示,为展开图像的示意图。根据初始展开参数确定鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系,根据鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系,将鱼眼图像的像素坐标的像素值作为展开图像的像素坐标的像素值。
以下结合上述4个应用场景,对步骤203的实现过程进行说明。
针对上述应用场景1,在根据初始展开参数和鱼眼图像生成展开图像时,可以基于径向畸变的鱼眼展开模型对鱼眼图像进行校正,得到展开图像,初始展开参数可以包括鱼眼图像的主点坐标(cx,cy)和畸变系数warp的参数目标值。
参见公式1所示,针对展开图像的每个像素坐标T,像素坐标T与展开图像的主点坐标之间的距离r’为已知,畸变系数warp的参数目标值为已知,鱼眼图像对应的半径R为已知,因此,通过公式1确定鱼眼图像的像素坐标S与鱼眼图像的主点坐标之间的距离r。由于鱼眼图像的主点坐标为已知,因此,根据像素坐标S与鱼眼图像的主点坐标之间的距离r和鱼眼图像的主点坐标,确定像素坐标S。显然,上述过程可以得到像素坐标T与像素坐标S的位置映射关系,并将鱼眼图像的像素坐标S的像素值作为展开图像的像素坐标T的像素值。
在针对展开图像的每个像素坐标T进行上述处理后,就可以得到展开图像的每个像素坐标T的像素值,这些像素坐标T的像素值就组成展开图像。
针对上述应用场景2,在根据初始展开参数和鱼眼图像生成展开图像时,可以基于球体的映射展开模型对鱼眼图像进行校正,得到展开图像,初始展开参数可以包括鱼眼图像的主点坐标(cx,cy)和半径R的参数目标值。
参见公式2-公式4所示,针对展开图像的每个像素坐标T,像素坐标T的(x,y)为已知,半径R的参数目标值为已知,鱼眼图像的主点坐标(cx,cy)为已知,因此,通过公式2-公式4可以确定像素坐标S的(x’,y’)。
显然,上述过程可以得到像素坐标T与像素坐标S的位置映射关系,并将鱼眼图像的像素坐标S的像素值作为展开图像的像素坐标T的像素值。
在针对展开图像的每个像素坐标T进行上述处理后,就可以得到展开图像的每个像素坐标T的像素值,这些像素坐标T的像素值就组成展开图像。
针对上述应用场景3,在根据初始展开参数和鱼眼图像生成展开图像时,可以基于经纬的双向展开模型对鱼眼图像进行校正,得到展开图像,初始展开参数可以包括鱼眼图像的主点坐标(cx,cy)和半径R的参数目标值。
参见公式5和公式6所示,针对展开图像的每个像素坐标T,像素坐标T的(x’,y’)为已知,半径R的参数目标值为已知,鱼眼图像的主点坐标(cx,cy)为已知,因此,通过公式5和公式6可以确定纵向经线所在圆半径r经线和横向纬线所在圆半径r维线。参见图4C所示,纵向经线所在圆和横向纬线所在圆在与K’点相同象限下的交点,就是K点,K点在鱼眼图像中的像素坐标为像素坐标S,且纵向经线所在圆和横向纬线所在圆的交点K的像素坐标S可知。
显然,上述过程可以得到像素坐标T与像素坐标S的位置映射关系,并将鱼眼图像的像素坐标S的像素值作为展开图像的像素坐标T的像素值。
在针对展开图像的每个像素坐标T进行上述处理后,就可以得到展开图像的每个像素坐标T的像素值,这些像素坐标T的像素值就组成展开图像。
针对上述应用场景4,在根据初始展开参数和鱼眼图像生成展开图像时,可以基于柱面的映射展开模型对鱼眼图像进行校正,得到展开图像,初始展开参数可以包括鱼眼图像的主点坐标(cx,cy)和半径R的参数目标值。
参见公式7和公式8所示,针对展开图像的每个像素坐标T,像素坐标T的(x’,y’)为已知,半径R的参数目标值为已知,鱼眼图像的主点坐标(cx,cy)为已知,因此,通过公式7和公式8可以确定像素坐标S的(x,y)。
显然,上述过程可以得到像素坐标T与像素坐标S的位置映射关系,并将鱼眼图像的像素坐标S的像素值作为展开图像的像素坐标T的像素值。
在针对展开图像的每个像素坐标T进行上述处理后,就可以得到展开图像的每个像素坐标T的像素值,这些像素坐标T的像素值就组成展开图像。
步骤204,根据标记点在世界坐标系中的物理坐标与该标记点在展开图像中的像素坐标,确定世界坐标系与展开图像之间的初始单应性矩阵。
参见上述实施例,可以获知标记点(如标记点A1、标记点A2、标记点A3、标记点A4、标记点B1、标记点B2、标记点B3和标记点B4等)在世界坐标系中的物理坐标,并获知该标记点在展开图像中的像素坐标。例如,可以使用(xw,yw,1)表示标记点在世界坐标系中的物理坐标,并使用(u,v)表示标记点在展开图像中的像素坐标,则世界坐标系中的物理坐标与展开图像中的像素坐标之间的关系,可以参见公式9所示。在公式9中,h11、h12、h13、h21、h22、h23、h31、h32和h33组成的矩阵,就可以是初始单应性矩阵H,且初始单应性矩阵H用于描述物体在世界坐标系和像素坐标系之间的位置映射关系。
示例性的,基于多个标记点(如不少于8个标记点)在世界坐标系中的物理坐标、这些标记点在展开图像中的像素坐标,可以确定初始单应性矩阵H(即单应性矩阵H的初始值,后续需要对这个初始单应性矩阵H进行优化),例如,可以采用最小二乘法确定初始单应性矩阵H,当然,也可以采用其它方式确定初始单应性矩阵H,对此初始单应性矩阵H的确定方式不做限制。
例如,通过对公式9进行展开和变形,得到公式10,当存在n(n>4)个标记点时,则公式10左侧的矩阵是一个2n*9的矩阵,其具体形式参见公式11。
对公式11中的2n*9的矩阵进行SVD分解,参见公式12所示。在SVD分解后,V是一个9*9的矩阵,而矩阵V最右侧的列向量就是初始单应性矩阵H的值,至此,得到初始单应性矩阵H,完成初始单应性矩阵H的确定过程。
U,S,V=SVD(A) 公式12
当然,上述只是确定初始单应性矩阵H的一个示例,还可以采用其它方式确定初始单应性矩阵H,对此初始单应性矩阵H的确定方式不做限制。
步骤205,对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵。
在一种可能的实施方式中,针对每个标记点,确定该标记点在鱼眼图像中的第一像素坐标;根据该标记点在世界坐标系中的物理坐标和初始单应性矩阵,确定该标记点在展开图像中的像素坐标,并根据该标记点在展开图像中的像素坐标和初始展开参数,确定该标记点在鱼眼图像中的第二像素坐标。然后,根据每个标记点对应的第一像素坐标和第二像素坐标的差值,对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵。
示例性的,参见步骤201,针对n个标记点中的每个标记点(如标记点A1、标记点A2、标记点A3、标记点A4、标记点B1、标记点B2、标记点B3和标记点B4等),该标记点在鱼眼图像中的像素坐标(为了区分方便,将该标记点在鱼眼图像中的像素坐标称为第一像素坐标)为已知,且该标记点在世界坐标系中的物理坐标为已知,n为大于或者等于1的正整数,n个标记点可以为鱼眼图像包括的多个标记点中的全部标记点或者部分标记点,对此不做限制。
参见步骤204,初始单应性矩阵用于表示标记点在世界坐标系中的物理坐标与该标记点在展开图像中的像素坐标之间的位置映射关系,因此,可以根据标记点在世界坐标系中的物理坐标和该初始单应性矩阵,确定该标记点在展开图像中的像素坐标。例如,参见公式9所示,h11、h12、h13、h21、h22、h23、h31、h32和h33组成的矩阵H就是初始单应性矩阵,该初始单应性矩阵为已知,(xw,yw,1)表示标记点在世界坐标系中的物理坐标,且(xw,yw,1)为已知,因此,基于公式9,就可以得到标记点在展开图像中的像素坐标(u,v)。
参见步骤203,初始展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系,因此,可以根据标记点在展开图像中的像素坐标和该初始展开参数,确定该标记点在鱼眼图像中的像素坐标(为了区分方便,可以将该标记点在鱼眼图像中的像素坐标称为第二像素坐标)。
例如,基于应用场景1-应用场景4中的任意应用场景,以应用场景2为例,参见公式2-公式4所示,初始展开参数为已知,标记点在展开图像中的像素坐标为已知,则可以根据公式2-公式4得到该标记点在鱼眼图像中的第二像素坐标,其它应用场景的实现类似,只是采用的公式不同,在此不再赘述。
综上所述,可以得到标记点在鱼眼图像中的第一像素坐标,并根据初始展开参数和初始单应性矩阵得到该标记点在鱼眼图像中的第二像素坐标。第一像素坐标是准确的坐标值,若初始展开参数和初始单应性矩阵为准确的,则第二像素坐标与第一像素坐标相同或者近似,即标记点对应的第一像素坐标和第二像素坐标的差值小于阈值(如0、0.01、0.02等,对此阈值不做限制)。例如,第一像素坐标和第二像素坐标的差值为0时,表示第一像素坐标和第二像素坐标相同,此时的初始展开参数和初始单应性矩阵为准确的,是优化的目标。
基于上述原理,可以根据每个标记点对应的第一像素坐标和第二像素坐标的差值,对初始展开参数和初始单应性矩阵进行优化(如对初始展开参数和初始单应性矩阵进行非线性优化),得到目标展开参数和目标单应性矩阵。
例如,可以使用非线性优化算法对初始展开参数和初始单应性矩阵进行迭代优化,从而得到最优的初始展开参数和初始单应性矩阵,将最优的初始展开参数作为目标展开参数,并将最优的初始单应性矩阵作为目标单应性矩阵。
比如说,针对每个标记点i,将该标记点i在鱼眼图像中的第一像素坐标记为FPi,该第一像素坐标是从鱼眼图像中获取的像素坐标。将该标记点i在鱼眼图像中的第二像素坐标记为FP′i,该第二像素坐标是根据初始展开参数和初始单应性矩阵计算的像素坐标。则优化目标函数可以为
在优化目标函数中,n为标记点的数量,i为n个标记点中的任意标记点,例如,FP1为标记点A1的第一像素坐标,FP′1为标记点A1的第二像素坐标,FP2为标记点A2的第一像素坐标,FP′2为标记点A2的第二像素坐标,以此类推。
然后,对初始展开参数1和初始单应性矩阵1进行优化,得到初始展开参数2和初始单应性矩阵2,对此不做限制,优化目标是使的函数值变小,例如,使用非线性优化算法对初始展开参数1和初始单应性矩阵1进行优化,得到初始展开参数2和初始单应性矩阵2。基于初始展开参数2和初始单应性矩阵2,可以得到每个标记点对应的第二像素坐标,从鱼眼图像中获取每个标记点对应的第一像素坐标。基于每个标记点对应的第一像素坐标和第二像素坐标,得到的函数值2,且函数值2小于函数值1。
然后,对初始展开参数2和初始单应性矩阵2进行优化,得到初始展开参数3和初始单应性矩阵3,对此优化过程不做限制。基于初始展开参数3和初始单应性矩阵3,可以得到每个标记点对应的第二像素坐标,从鱼眼图像中获取每个标记点对应的第一像素坐标。基于每个标记点对应的第一像素坐标和第二像素坐标,得到的函数值3,且函数值3小于函数值2。
以此类推,不断对初始展开参数和初始单应性矩阵进行优化,优化目标是使的函数值变小,一直到满足约束条件,则结束优化过程,将最小函数值对应的初始展开参数作为目标展开参数,将最小函数值对应的初始单应性矩阵作为目标单应性矩阵,至此,得到目标展开参数和目标单应性矩阵,并为摄像头标定目标展开参数和目标单应性矩阵,从而完成参数标定。
示例性的,当的函数值小于或者等于阈值后,可以确定满足约束条件;或者,当初始展开参数和初始单应性矩阵的迭代优化次数达到预设次数(如10、15等,对此不做限制)时,可以确定满足约束条件;或者,当初始展开参数和初始单应性矩阵的迭代优化时间达到预设时间时,可以确定满足约束条件。当然,上述只是约束条件的几个示例,对此不做限制。
由以上技术方案可见,本申请实施例中,提出参数的自动标定方法,能够为摄像头标定目标展开参数和目标单应性矩阵,即通过目标展开参数和目标单应性矩阵替换传统的相机参数(如内参和外参),不需要对摄像头的相机参数进行标定,减少相机参数的标定流程,降低标定参数的数量和标定难度。上述方式是一种无内参的标定方法,一次性准确完成参数标定,不需要内参就可以完成参数标定,降低对摄像头的要求,降低出厂操作流程和成本。
参见图5所示,为图像生成方法的流程示意图,该方法可以包括:
步骤501,基于鱼眼展开模型获取目标展开参数和目标单应性矩阵。
示例性的,可以采用上述步骤201-步骤205,获取目标展开参数和目标单应性矩阵,具体获取方式参见上述实施例,在此不再重复赘述。
步骤502,基于目标单应性矩阵,获取全景图像与展开图像之间的映射关系。
示例性的,可以将全景图像中的像素位置映射到世界坐标系中的物理坐标,并根据目标单应性矩阵将该物理坐标映射到展开图像中的像素坐标。
例如,可以根据全景图像在世界坐标系下的位置信息和全景图像的像素分辨率,将全景图像中的像素位置映射到世界坐标系中的物理坐标。
针对全景图像中的每个像素位置,在将该像素位置映射到世界坐标系中的物理坐标后,可以根据目标单应性矩阵将该物理坐标映射到展开图像中的像素坐标,即将全景图像中的像素位置与展开图像中的像素坐标进行映射。
示例性的,目标单应性矩阵用于表示世界坐标系中的物理坐标与展开图像中的像素坐标之间的位置映射关系,因此,可以根据目标单应性矩阵将世界坐标系中的物理坐标映射到展开图像中的像素坐标。例如,参见公式9所示,目标单应性矩阵是矩阵H,(xw,yw,1)表示世界坐标系中的物理坐标,因此,基于公式9,就可以将世界坐标系中的物理坐标映射到展开图像中的像素坐标。
步骤503,基于目标展开参数,获取展开图像与鱼眼图像之间的映射关系。
示例性的,可以根据目标展开参数将展开图像中的像素坐标映射到鱼眼图像中的像素坐标。例如,目标展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系,因此,可以根据目标展开参数将展开图像中的像素坐标映射到鱼眼图像中的像素坐标。例如,基于应用场景1-应用场景4中的各公式,可以将展开图像中的像素坐标映射到鱼眼图像中的像素坐标。
步骤504,基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
示例性的,可以基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,确定全景图像与鱼眼图像之间的映射关系。然后,基于全景图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
示例性的,针对全景图像中的每个像素位置,将该像素位置映射到世界坐标系中的物理坐标后,根据目标单应性矩阵将该物理坐标映射到展开图像中的像素坐标,并根据目标展开参数将展开图像中的像素坐标映射到鱼眼图像中的像素坐标,即将全景图像中的像素位置与鱼眼图像中的像素坐标进行映射。
综上所述,针对全景图像中的每个像素位置,可以根据目标展开参数和目标单应性矩阵,建立该像素位置与鱼眼图像中的像素坐标之间的映射关系,即,建立全景图像中的每个像素位置与鱼眼图像中的像素坐标之间的映射关系。
例如,可以生成全景图像与鱼眼图像的查找表,该查找表用于记录全景图像中的每个像素位置与鱼眼图像中的像素坐标之间的映射关系,参见表1所示,为查找表的一个示例,当然,这里只是查找表的示例,对此不做限制。
表1
像素位置L1 | 像素位置L2 | 像素位置L3 | 像素位置L4 | 像素位置L5 | 像素位置L6 | 像素位置L7 | 像素位置L8 |
像素坐标C1 | 像素坐标C2 | 像素坐标C3 | 像素坐标C4 | 像素坐标C5 | 像素坐标C6 | 像素坐标C7 | 像素坐标C8 |
… | … | … | … | … | … | … | … |
示例性的,在通过摄像头采集到鱼眼图像之后,根据全景图像与鱼眼图像之间的映射关系(即全景图像中的每个像素位置与鱼眼图像中的像素坐标之间的映射关系),确定全景图像中的每个像素位置对应的鱼眼图像中的像素坐标,并根据鱼眼图像中的像素坐标的像素值确定全景图像中的每个像素位置的像素值。根据全景图像中的每个像素位置的像素值生成全景图像。
例如,基于表1所示的查找表,确定全景图像中的像素位置L1对应鱼眼图像中的像素坐标C1,并将鱼眼图像中的像素坐标C1的像素值作为像素位置L1的像素值;确定全景图像中的像素位置L2对应鱼眼图像中的像素坐标C2,并将鱼眼图像中的像素坐标C2的像素值作为像素位置L2的像素值,以此类推。
经过上述处理,可以基于摄像头采集到鱼眼图像,得到全景图像中的每个像素位置的像素值,而这些像素位置的像素值就组成全景图像。
在上述实施例中,全景图像可以为全景俯视图像,对此图像类型不做限制。
在一种可能的实施方式中,在表1所示的查找表的基础上,还可以生成融合权重表,基于融合权重表对多个摄像头采集的鱼眼图像进行拼接,得到全景图像。例如,融合权重表包括全景图像中的每个像素位置对应的至少两个鱼眼图像中的像素坐标,以及,每个像素坐标对应的权重值。例如,参见表2所示,为融合权重表的一个示例,当然,这里只是融合权重表的示例,对此不做限制。
表2
例如,基于表2所示的融合权重表,确定全景图像中的像素位置L1对应鱼眼图像1中的像素坐标C1和鱼眼图像2中的像素坐标D1,对鱼眼图像中的像素坐标C1的像素值和鱼眼图像2中的像素坐标D1的像素值进行加权,并将加权后的像素值作为像素位置L1的像素值。在进行加权时,鱼眼图像1中的像素坐标C1的权重值为0.4,鱼眼图像2中的像素坐标D1的权重值为0.6。
以此类推,采用上述方式得到全景图像中的每个像素位置的像素值。
在一种可能的实施方式中,参见图6所示,车载全景系统可以包括视频采集单元、数据传输单元、数据处理单元、查找表生成单元、图像渲染单元和图像显示单元。示例性的,视频采集单元,用于通过分布于车身周围的摄像头采集鱼眼图像。数据传输单元,用于将视频采集单元采集的鱼眼图像传输给数据处理单元。数据处理单元,用于执行步骤201-步骤205,得到目标展开参数和目标单应性矩阵。查找表生成单元,用于生成全景图像与鱼眼图像的查找表,该查找表用于记录全景图像中的每个像素位置与鱼眼图像中的像素坐标之间的映射关系。图像渲染单元,用于根据鱼眼图像渲染出各种全景图像。图像显示单元,用于将全景图像经过显示器等显示设备呈现给用户。
基于与上述方法同样的申请构思,本申请实施例中提出一种图像生成装置,参见图7所示,为所述图像生成装置的结构示意图,所述装置可以包括:
获取模块71,用于基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;
基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;
基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;
处理模块72,用于基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
所述获取模块71基于鱼眼展开模型获取目标展开参数和目标单应性矩阵时具体用于:获取摄像头采集的鱼眼图像,所述鱼眼图像包括多个标记点;
获取与所述鱼眼图像对应的初始展开参数,所述初始展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系;
根据所述初始展开参数和所述鱼眼图像生成展开图像;
根据所述标记点在世界坐标系中的物理坐标与所述标记点在展开图像中的像素坐标,确定世界坐标系与展开图像之间的初始单应性矩阵;
对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵。
所述获取模块71获取与所述鱼眼图像对应的初始展开参数时具体用于:
根据鱼眼图像的分辨率确定主点坐标,并为校正参数设置参数初始值;
根据参数初始值确定校正参数的参数目标值;或,根据所述标记点在鱼眼图像中的像素坐标对参数初始值进行优化,得到校正参数的参数目标值;
将所述主点坐标和所述校正参数的参数目标值确定为初始展开参数。
所述获取模块71根据所述标记点在鱼眼图像中的像素坐标对参数初始值进行优化,得到校正参数的参数目标值时具体用于:
从多个标记点中选择位于同一直线的至少三个目标标记点;
根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标;根据所述目标标记点在展开图像中的像素坐标对所述参数初始值进行优化,得到校正参数的参数目标值。
示例性的,所述校正参数为展开图像与鱼眼图像的畸变系数;所述获取模块71根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标时具体用于:
根据所述鱼眼图像对应的半径,所述目标标记点在所述鱼眼图像中的像素坐标与所述鱼眼图像的主点坐标之间的距离,所述畸变系数的参数初始值,确定所述目标标记点在展开图像中的像素坐标。
示例性的,所述校正参数为所述鱼眼图像对应的半径;所述获取模块71根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标时具体用于:
根据所述目标标记点在所述鱼眼图像中的像素坐标,所述鱼眼图像的主点坐标,所述半径的参数初始值,确定所述目标标记点在展开图像中的像素坐标。
示例性的,所述校正参数为所述鱼眼图像对应的半径;所述获取模块71根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标时具体用于:
根据所述目标标记点在所述鱼眼图像中的像素坐标,确定纵向经线所在圆半径以及横向纬线所在圆半径;根据所述纵向经线所在圆半径,所述横向纬线所在圆半径,所述鱼眼图像对应的半径的参数初始值,所述鱼眼图像的主点坐标,确定所述目标标记点在展开图像中的像素坐标。
示例性的,所述获取模块71根据所述目标标记点在展开图像中的像素坐标对所述参数初始值进行优化,得到校正参数的参数目标值时具体用于:
基于所述至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定所述至少三个目标标记点是否位于同一直线;
如果否,则对所述参数初始值进行优化,并将优化后的数值作为所述参数初始值,返回执行根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标;
如果是,则根据当前的参数初始值确定校正参数的参数目标值。
示例性的,所述获取模块71基于所述至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定所述至少三个目标标记点是否位于同一直线时具体用于:基于所述至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定任意两个目标标记点之间的斜率;
根据所述斜率确定所述至少三个目标标记点是否位于同一直线。
所述获取模块71对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵时具体用于:
针对每个标记点,确定所述标记点在鱼眼图像中的第一像素坐标;
根据所述标记点在世界坐标系中的物理坐标和初始单应性矩阵,确定所述标记点在展开图像中的像素坐标,并根据所述标记点在展开图像中的像素坐标和初始展开参数,确定所述标记点在鱼眼图像中的第二像素坐标;
根据每个标记点对应的第一像素坐标和第二像素坐标的差值,对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵。
基于与上述方法同样的申请构思,本申请实施例中提出一种车载全景系统,参见图8所示,所述车载全景系统包括:处理器81和机器可读存储介质82,所述机器可读存储介质82存储有能够被所述处理器81执行的机器可执行指令;所述处理器81用于执行机器可执行指令,以实现如下步骤:
基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;
基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;
基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;
基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的图像生成方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种图像生成方法,其特征在于,所述方法包括:
基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;
基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;
基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;
基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
2.根据权利要求1所述的方法,其特征在于,
所述基于鱼眼展开模型获取目标展开参数和目标单应性矩阵,包括:
获取摄像头采集的鱼眼图像,所述鱼眼图像包括多个标记点;
获取与所述鱼眼图像对应的初始展开参数,所述初始展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系;
根据所述初始展开参数和所述鱼眼图像生成展开图像;
根据所述标记点在世界坐标系中的物理坐标与所述标记点在展开图像中的像素坐标,确定世界坐标系与展开图像之间的初始单应性矩阵;
对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵。
3.根据权利要求2所述的方法,其特征在于,
所述获取与所述鱼眼图像对应的初始展开参数,包括:
根据鱼眼图像的分辨率确定主点坐标,并为校正参数设置参数初始值;
根据参数初始值确定校正参数的参数目标值;或,根据所述标记点在鱼眼图像中的像素坐标对参数初始值进行优化,得到校正参数的参数目标值;
将所述主点坐标和所述校正参数的参数目标值确定为初始展开参数。
4.根据权利要求3所述的方法,其特征在于,所述主点坐标包括:横向坐标和纵向坐标,所述根据鱼眼图像的分辨率确定主点坐标,包括:
根据所述鱼眼图像的横向分辨率确定所述横向坐标;
根据所述鱼眼图像的纵向分辨率确定所述纵向坐标。
5.根据权利要求3所述的方法,其特征在于,所述根据所述标记点在鱼眼图像中的像素坐标对参数初始值进行优化,得到校正参数的参数目标值,包括:
从多个标记点中选择位于同一直线的至少三个目标标记点;
根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标;根据所述目标标记点在展开图像中的像素坐标对所述参数初始值进行优化,得到校正参数的参数目标值。
6.根据权利要求5所述的方法,其特征在于,所述校正参数为展开图像与鱼眼图像的畸变系数;所述根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标,包括:
根据所述鱼眼图像对应的半径,所述目标标记点在所述鱼眼图像中的像素坐标与所述鱼眼图像的主点坐标之间的距离,所述畸变系数的参数初始值,确定所述目标标记点在展开图像中的像素坐标。
7.根据权利要求5所述的方法,其特征在于,所述校正参数为所述鱼眼图像对应的半径;所述根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标,包括:
根据所述目标标记点在所述鱼眼图像中的像素坐标,所述鱼眼图像的主点坐标,所述半径的参数初始值,确定所述目标标记点在展开图像中的像素坐标。
8.根据权利要求5所述的方法,其特征在于,所述校正参数为所述鱼眼图像对应的半径;所述根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标,包括:
根据所述目标标记点在所述鱼眼图像中的像素坐标,确定纵向经线所在圆半径以及横向纬线所在圆半径;根据所述纵向经线所在圆半径,所述横向纬线所在圆半径,所述鱼眼图像对应的半径的参数初始值,所述鱼眼图像的主点坐标,确定所述目标标记点在展开图像中的像素坐标。
9.根据权利要求5所述的方法,其特征在于,
所述根据所述目标标记点在展开图像中的像素坐标对所述参数初始值进行优化,得到校正参数的参数目标值,包括:
基于所述至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定所述至少三个目标标记点是否位于同一直线;
如果否,则对所述参数初始值进行优化,并将优化后的数值作为所述参数初始值,返回执行根据所述目标标记点在所述鱼眼图像中的像素坐标和所述参数初始值,确定所述目标标记点在展开图像中的像素坐标;
如果是,则根据当前的参数初始值确定校正参数的参数目标值。
10.根据权利要求9所述的方法,其特征在于,
所述基于所述至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定所述至少三个目标标记点是否位于同一直线,包括:
基于所述至少三个目标标记点中的每个目标标记点在展开图像中的像素坐标,确定任意两个目标标记点之间的斜率;
根据所述斜率确定所述至少三个目标标记点是否位于同一直线。
11.根据权利要求2所述的方法,其特征在于,所述对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵,包括:
针对每个标记点,确定所述标记点在鱼眼图像中的第一像素坐标;
根据所述标记点在世界坐标系中的物理坐标和初始单应性矩阵,确定所述标记点在展开图像中的像素坐标,并根据所述标记点在展开图像中的像素坐标和初始展开参数,确定所述标记点在鱼眼图像中的第二像素坐标;
根据每个标记点对应的第一像素坐标和第二像素坐标的差值,对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵。
12.一种图像生成装置,其特征在于,所述装置包括:
获取模块,用于基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;
基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;
基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;
处理模块,用于基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
13.根据权利要求12所述的装置,其特征在于,所述获取模块基于鱼眼展开模型获取目标展开参数和目标单应性矩阵时具体用于:
获取摄像头采集的鱼眼图像,所述鱼眼图像包括多个标记点;
获取与所述鱼眼图像对应的初始展开参数,所述初始展开参数用于表示鱼眼图像的像素坐标与展开图像的像素坐标之间的位置映射关系;
根据所述初始展开参数和所述鱼眼图像生成展开图像;
根据所述标记点在世界坐标系中的物理坐标与所述标记点在展开图像中的像素坐标,确定世界坐标系与展开图像之间的初始单应性矩阵;
对初始展开参数和初始单应性矩阵进行优化,得到目标展开参数和目标单应性矩阵。
14.一种车载全景系统,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
基于鱼眼展开模型获取目标展开参数和目标单应性矩阵;
基于所述目标单应性矩阵,获取全景图像与展开图像之间的映射关系;
基于所述目标展开参数,获取展开图像与鱼眼图像之间的映射关系;
基于全景图像与展开图像之间的映射关系,展开图像与鱼眼图像之间的映射关系,将采集到的鱼眼图像转换为全景图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911276823.6A CN112967173B (zh) | 2019-12-12 | 2019-12-12 | 一种图像生成方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911276823.6A CN112967173B (zh) | 2019-12-12 | 2019-12-12 | 一种图像生成方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112967173A true CN112967173A (zh) | 2021-06-15 |
CN112967173B CN112967173B (zh) | 2023-05-26 |
Family
ID=76271101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911276823.6A Active CN112967173B (zh) | 2019-12-12 | 2019-12-12 | 一种图像生成方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112967173B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106408511A (zh) * | 2016-09-22 | 2017-02-15 | 苏州大学 | 鱼眼图像的俯视变换、俯视图像获取及映射表构建方法 |
CN108269235A (zh) * | 2018-02-26 | 2018-07-10 | 江苏裕兰信息科技有限公司 | 一种基于opengl的车载环视多视角全景生成方法 |
CN108805801A (zh) * | 2018-05-24 | 2018-11-13 | 北京华捷艾米科技有限公司 | 一种全景图像校正方法及系统 |
CN109064404A (zh) * | 2018-08-10 | 2018-12-21 | 西安电子科技大学 | 一种基于多相机标定的全景拼接方法、全景拼接系统 |
US20190349524A1 (en) * | 2016-05-11 | 2019-11-14 | Shenzhen Pisofttech Technology Co., Ltd. | Method and device for unfolding lens image into panoramic image |
-
2019
- 2019-12-12 CN CN201911276823.6A patent/CN112967173B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190349524A1 (en) * | 2016-05-11 | 2019-11-14 | Shenzhen Pisofttech Technology Co., Ltd. | Method and device for unfolding lens image into panoramic image |
CN106408511A (zh) * | 2016-09-22 | 2017-02-15 | 苏州大学 | 鱼眼图像的俯视变换、俯视图像获取及映射表构建方法 |
CN108269235A (zh) * | 2018-02-26 | 2018-07-10 | 江苏裕兰信息科技有限公司 | 一种基于opengl的车载环视多视角全景生成方法 |
CN108805801A (zh) * | 2018-05-24 | 2018-11-13 | 北京华捷艾米科技有限公司 | 一种全景图像校正方法及系统 |
CN109064404A (zh) * | 2018-08-10 | 2018-12-21 | 西安电子科技大学 | 一种基于多相机标定的全景拼接方法、全景拼接系统 |
Non-Patent Citations (2)
Title |
---|
YU M,ET AL.: "360°surround view system with parking guidance", 《SAE INTERNATIONAL JOURNAL OF COMMERCIAL VEHICLES》 * |
卢官明等: "全景视图泊车辅助系统中的多视点视频拼接", 《南京邮电大学学报(自然科学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112967173B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5739584B2 (ja) | 車両周辺視角化のための3次元映像合成装置およびその方法 | |
KR101666959B1 (ko) | 카메라로부터 획득한 영상에 대한 자동보정기능을 구비한 영상처리장치 및 그 방법 | |
CN111223038B (zh) | 一种车载环视图像的自动拼接方法及显示装置 | |
US10594941B2 (en) | Method and device of image processing and camera | |
JP6764533B2 (ja) | キャリブレーション装置、キャリブレーション用チャート、チャートパターン生成装置、およびキャリブレーション方法 | |
US10434877B2 (en) | Driver-assistance method and a driver-assistance apparatus | |
CN110351494B (zh) | 一种全景视频合成方法、装置及电子设备 | |
JP5455124B2 (ja) | カメラ姿勢パラメータ推定装置 | |
KR100914211B1 (ko) | 왜곡 영상 보정 장치 및 방법 | |
JP4681432B2 (ja) | 車載周辺画像表示装置 | |
CN110288527B (zh) | 一种车载环视相机全景鸟瞰图生成方法 | |
JP5456330B2 (ja) | 画像表示装置及びそのカメラ取り付け角度算出方法 | |
JP2009151524A (ja) | 画像表示方法および画像表示装置 | |
JP2018519696A (ja) | 画像の線からのカメラの外部パラメータ推定 | |
JP6276719B2 (ja) | 画像生成装置、座標変換テーブル作成装置および作成方法 | |
CN103065318A (zh) | 多摄像机全景系统的曲面投影方法及装置 | |
CN107492125A (zh) | 汽车鱼眼镜头环视图像的处理方法 | |
EP3098777B1 (en) | Drawing apparatus, drawing method, and drawing program | |
KR101469717B1 (ko) | 광각 카메라를 이용한 영상 시스템 및 그 방법 | |
CN112967173B (zh) | 一种图像生成方法、装置及系统 | |
CN113674138B (zh) | 图像处理方法、装置及系统 | |
CN115880142A (zh) | 一种拖挂车的图像生成方法、装置、存储介质及终端 | |
CN113610927B (zh) | 一种avm摄像头参数标定方法、装置及电子设备 | |
CN113888401B (zh) | 图像转换方法及装置 | |
CN113592704A (zh) | 一种图像生成方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |