发明内容
本发明的目的包括提供具有更佳的真实立体感的全景环视图像。
一方面,本发明提供了一种生成车辆全景环视图像的方法,所述方法包括:
获取车辆周围的环境图像;
检测所述环境图像中的目标障碍物;
构建碗状模型,该碗状模型包括相对模型中心点的外碗层和至少一个内碗层;和
通过将所述环境图像和目标障碍物映射至所述碗状模型,形成全景环视图像,其中,所述目标障碍物的图像被映射至相应的所述至少一个内碗层,环境图像的其他部分被映射至所述外碗层。
可选的是,所述碗状模型具有平截的顶部和底部,所述顶部为圆形敞口,所述底部为具有中心点的圆面。
可选的是,所述外碗层从所述底部延伸至敞口并且具有从所述底部朝敞口逐渐增大的半径。
可选的是,所述至少一个内碗层从所述底部延伸至敞口并且呈圆柱形。
可选的是,所述环境图像与碗状模型的映射关系为:
其中,XwYwZw为碗状模型上任一点在笛卡尔下的坐标,UV为环境图像中的像素坐标。
可选的是,所述至少一个内碗层设置有预设的映射范围,其中,落入所述映射范围的目标障碍物的图像映射至相应的所述至少一个内碗层,所述映射范围为所述目标障碍物相对车辆中心的目标距离范围。
可选的是,所述方法还包括确定所述目标障碍物相对车辆中心的目标距离,其中,基于目标距离所对应的映射范围,所述目标障碍物的图像映射至相应的一个内碗层。
可选的是,所述碗状模型的至少一个内碗层被分成多个区片,其中,基于所述目标障碍物在环境图像中的位置,确定所述目标障碍物在该至少一个内碗层上所映射的对应区片。
可选的是,根据在环境图像中目标障碍物的地面位置确定目标障碍物相对车辆中心的目标距离范围。
可选的是,根据目标障碍物在环境图像中的高度确定所述目标障碍物的图像在相应的所述至少一个内碗层中的映射立面高度。
可选的是,根据目标障碍物在环境图像中的宽度确定所述目标障碍物的图像在相应的所述至少一个内碗层中所占据的映射弧度值。
可选的是,所述目标障碍物在全景环视图像中呈现为色块或者三维模型。
另一方面,提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述生成车辆全景环视图像的方法的步骤。
又一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述生成车辆全景环视图像的方法的步骤。
又一方面,提供一种车辆全景环视图像形成单元,包括:
障碍物检测模块,其检测车辆周围的环境图像中的目标障碍物;和
图像拼接模块,其形成有碗状模型,该碗状模型包括相对模型中心点外碗层和至少一个内碗层,其中,所述图像拼接模块将所述目标障碍物的图像映射至相应的所述至少一个内碗层,并将所述环境图像中的其他部分映射至所述外碗层,形成全景环视图像。
可选的是,所述车辆全景环视图像形成单元还包括渲染模块,其将所述目标障碍物在全景环视图像中以色块或者三维模型呈现。
又一方面,提供一种车辆全景环视系统,包括:
图像采集装置,其采集车辆周围的环境图像;和
计算装置,其具有前述的车辆全景环视图像形成单元。
又一方面,提供一种车辆,包括:
图像采集装置,其采集车辆周围的环境图像;
计算装置,其对所述环境图像进行处理并拼接形成关于车辆的全景环视图像;和
显示装置,其以碗状模型的形式显示所述全景环视图像,该碗状模型包括相对车辆中心外碗层和至少一个内碗层,其中,所述环境图像中的目标障碍物的图像被显示于相应的所述至少一个内碗层,所述环境图像中的其他部分显示于所述外碗层。
又一方面,提供一种生成全景环视图像的方法,所述方法包括:
获取关于观察位置的周边环境的环境图像;
检测所述环境图像中的目标障碍物;
构建碗状模型,该碗状模型包括相对模型中心点外碗层和至少一个内碗层;和
通过将所述环境图像映射至所述碗状模型,形成全景环视图像,其中,所述目标障碍物的图像被映射至相应的所述至少一个内碗层,环境图像中的其他部分被映射至所述外碗层。
具体实施方式
以下首先将以车辆应用场景下的全景环视系统来举例说明本发明的相关内容。
本说明书中所述车辆可以是包括汽车、摩托车等各种类型的车辆,比如以发动机为动力源的车辆、以电动机为动力源的车辆、兼具发动机和电动机的混合动力车辆、有驾驶员操控的车辆、自动行驶车辆等。
图1例示了一种用于生成车辆全景环视图像的方法的流程图。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图所示,该用于生成车辆全景环视图像的方法包括以下步骤:
步骤S101:获取关于车辆周围的环境图像。
所述环境图像为使用摄像技术拍摄的关于车辆四周环境的实时图像,该环境图像可以从直接从摄像机获得,也可以间接从存储器等位置获得。
有益的是,所述环境图像可以在此步骤之前或者之后被实施各种处理。比如,可以对所述图像执行降噪(noise reduction)、矫正(rectification)、校准(calibration)、色彩增强(color enhancement)、色彩空间转换(color space conversion;CSC)、插值(interpolation)、摄像头增益控制(camera gain control)等处理,以使得环境图像更适合后续的拼接和渲染等处理。
步骤S102:检测所述环境图像中的目标障碍物。
通过对环境图像进行计算机视觉算法处理,检测图像中车辆周围可能存在的诸如行人、车辆、立柱等目标障碍物。所述目标障碍物为预设的各种类型的障碍物,可以通过训练的神经网络等方法识别出环境图像中的目标障碍物,或者通过雷达等测距,感知环境图像中存在的障碍物。在步骤中,还可以通过预设的外参参数计算出目标障碍物在车身坐标系下的位置以及目标宽度、高度等。
步骤S103:构件碗状模型。
所述碗状模型用于将处理后的环境图像以及目标障碍物形成全景环视图像的三维虚拟碗状模型。
图2和图3分别为一种例示的碗状模型的侧视图和纵向剖视图。如图所示,该碗状模型具有平截的顶部和底部,顶部为大致圆形的敞口,底部为具有中心点的圆面。所述碗状模型具有位于最外层的第一碗层11、位于内部的第二碗层12和第三碗层13,各个碗层具有相对从中心点延伸的中轴线的不同半径,其中第一碗层11从碗底延伸至敞口并且具有逐渐增大的半径,所述第二碗层12和第三碗层13从碗底延伸至敞口并且大致呈圆柱形。所述中轴线即碗状模型的底部中心的垂直线,碗状模型以该中轴线对称。
需要明白的是,根据本发明的碗状模型还可以在外碗层内部设置其他数量的内碗层。例如仅仅设置第二碗层,或者设置更多数量的内碗层,比如第四碗层或者更多的内碗层。此外,所述内碗层除了被构建为圆柱形外,也可以被设置为如外碗层类似的具有从碗底延伸至敞口并且具有逐渐增大的半径。
步骤S104:将所述环境图像和目标障碍物映射至所述碗状模型,形成全景环视图像。
例如,通过将经视觉处理后的环境图像中的像素点UV映射至所述碗状模型中对应的位置XwYwZw,从而拼接成一个反映周围环境的虚拟三维碗状模型的全景环视图像。
所述图像中的像素点UV与碗状模型中对应位置XwYwZw的映射关系为:
其中,Z
c为图像深度值,dx、dy为单位像素在相机坐标系x方向和y方向的长度,u
0为主点行坐标,v
0为主点列坐标,f为焦距,R为旋转矩阵,t为平移向量,O
T为0向量转置,α
x、α
y是公式中两个矩阵相乘后的结果值,即
和
。f、
、
、
、
均为摄像头内参参数,R、t为表示摄像头安装信息的外参参数,均可以通过对相机的标定计算得到。在实际的计算中,先从笛卡尔直角坐标系下碗状模型点X
wY
wZ
w变换到像素坐标系UV,像素坐标系UV再通过鱼眼畸变模型变换到鱼眼图像像素位置。
在上述映射过程的一个实施例中,首先默认把环境图像的所有像素点都投射到最外层碗模型上。同时,如果图像中被检测有目标障碍物,该目标障碍物的图像将被投射到相应的相对外碗层具有更小的半径的内碗层。
有益的是,所述碗状模型中对每个内碗层定义有映射范围,该映射范围例如对应于目标障碍物相对车辆底部中心位置的距离范围。根据障碍物相对车辆底部中心位置的实际距离所落入的映射范围,确定该障碍物所需要映射的内碗层。
为简化上述映射关系,比如可以将碗状模型的每个碗层均区分成360个区片,如图2所示,每个区片具有相对碗底中心的坐标XwYwZw。因此,在上述映射关系中,无需计算环境图像和目标障碍物图像的所有像素点与碗状模型上的映射关系,而是以比像素点更大的区片为单位来确定所述映射关系。
图4例示了上述碗状模型与目标障碍物的映射示意图。如图所示,如果检测到图像中具有一个障碍物,例如行人AB,根据车辆摄像头的安装位置,计算出行人脚底距离车底中心的距离,确定该行人与车辆中心点的目标距离,从而确定所述该障碍物应当投射至第三碗层13。同时,基于摄像头的标定参数,检测出该障碍物的整体高度和宽度,从而确定整个行人在空间中的坐标。然后,基于前文所述映射关系,确定该行人的宽度在笛卡尔坐标中所占据的弧度值,并根据该弧度值选择相应内碗层上对应的区片。从而,行人AB的图像以与真实场景比较一致地得以呈现。具体而言,由于第三碗层13相较作为背景的第一碗层11比较真实地反映出行人的直立状态和行人相对车辆的距离,行人的图像具有更强的真实立体感。
相比之下,在现有技术中,碗状模型仅仅设置单个碗层,也即图中的第一碗层11内。当障碍物的图像被映射在该第一碗层时,障碍物将呈现如图中的A’B’形式,其形成的图像产生严重畸变,行人图像呈卧躺于路面的状态,并且行人图像A’B’在高度和宽度方面也发生严重变形,立体效果难以令人满意。
在实际计算中,还可以根据检测得到的障碍物宽度,来计算得到在笛卡尔坐标中它占据的弧度值。比如,一个行人障碍物的宽度占据的弧度值(经度)为10度,而一个车辆可能就是40度。
此外,还可以根据图像检测得到的障碍物高度,来计算得到在笛卡尔坐标中它占据的立面高度。比如,一个行人障碍物的高度占据的弧度值(纬度)为10度,而一个车辆可能就是40度。默认这个物体是直上直下的立体,障碍物人身体头都是在同一个位置,只是高度不同。类似地,选择的内层模型也是一样,根据脚站的位置选定近似圆柱的内碗层。
在上述映射过程中,可以对障碍物所有点计算它该投到那个内层模型上,也可以仅依靠脚那边的点计算来确定脚以上的像素需要投射到哪里,因为他们属于同一个内碗模型,只是高度位置不太一样而已。
更进一步地,为了将上述全景图像显示于显示装置中,可以对全景环视图像实施合适的渲染。图5例示了环境图像在碗状模型中映射后的渲染效果示意图。如图所示,渲染模块首先将整个环境图像渲染至位于模型最外层的第一碗层11,包括第二碗层和第三碗层的内碗层均不做渲染。当接收到目标障碍物位置以及目标障碍物的宽度和高度后,修改渲染参数,以目标障碍物与车的距离、方位选择特定半径的内碗层模型,即第三碗层13,以目标障碍物宽度设定内碗层模型的弧度,从而将目标障碍物渲染至相应的第三碗层13,同时第一碗层11的对应弧度区片不做渲染。从图5可以看出,渲染后的图像可以直观地分辨出目标障碍物相较其他周边环境以及车辆的相对位置,尤其是在目标障碍物移动时,可以直观地观察到障碍物相对车辆的运动情况,从而方便驾驶员判断目标障碍物接下来可能发生的移动和位置,有效提高驾驶员的安全驾驶行为。
作为实例,在渲染时,碗状模型分为经度和纬度两个维度来描述碗状模型区片位置。GPU渲染以循环的方式展开,比如从经度0到360度扫描式渲染绘制。默认情况下,0到360度均渲染实线默认的碗状模型。当存在障碍物时,比如该障碍物位于10度到20度范围内,距离为x,此时渲染过程0到10度及20度到360度仍渲染默认模型,10到20度根据距离选择最接近的虚线表示的圆柱模型,进行渲染。这里,针对高度信息亦可做针对性的调整,超过高度的区域仍显示碗状模型的渲染结果,减少天空区域突兀变化。在该实例中,通过渲染模型的修改变化,调整目标障碍物所在的区片,突显目标障碍物。
在全景环视图像中,所述目标障碍物可以被渲染为常规的色块雷达板,也可通过目标障碍物的识别,在对应位置渲染成特定形状的目标障碍物三维模型。当然,也可以渲染为目标障碍物的实际图像。所以,在本申请中的表述“显示”的对象并非仅指实际图像,还可以是虚拟的二维或者三维图案、模型、色块等等。
图6示出了一种例示的车辆全景环视图像形成单元的模块结构示意图。该全景环视图像形成单元包括图像获取模块,该图像获取模块被配置为获取关于车辆四周环境的实时环境图像,该环境图像比如可以直接从摄像机获得,也可以间接从存储器获得。所述图像获取模块将所获取的环境图像分别提供给图像处理模块和障碍物检测模块进行后续处理和检测。换言之,所述图像获取模块也可以被省略,从而图像处理模块和障碍物检测模块直接从存储器或者摄像头获得的关于车俩周边环境的实时环境图像。
所述图像处理模块获得多个环境图像后,可以对各个图像执行降噪(noisereduction)、矫正(rectification)、校准(calibration)、色彩增强(color enhancement)、色彩空间转换(color space conversion;CSC)、插值(interpolation)、摄像头增益控制(camera gain control)等处理,以使得环境图像更适合后续的拼接和渲染处理。所述环境图像处理也可以被本全景环视图像形成单元之外的装置进行预先处理,从而省略图中所示的图像处理模块。
所述障碍物检测模块从所述图像获取模块或者从摄像头直接接收多个环境图像后,通过对环境图像进行计算机视觉算法处理,检测行人、车辆、立柱等预设目标障碍物后,通过外参参数计算出目标障碍物在车身坐标系下的位置以及目标宽度、高度等。
所述障碍物检测模块可以采用深度学习算法进行训练。例如,设计网络训练模型,获取样本图像上二维目标的外接矩形框。外接矩形框底部中心像素点为目标接地位置,同时根据标定参数换算实际目标在三维坐标系中的位置以及目标宽度。在训练过程中,输入许多训练用的样本图像,模型的输出数值为图像中的目标障碍物所在的位置及类别等数值。同时,比较模型输出数值与人为标注的真实位置和类别数值等,构建模型输出值与真实值的差异值。通过大量的训练,不断迭代更新模型里的参数,使得差异值最小。当差异值收敛到预定的窄小范围时,完成模型训练。再如,设计网络训练模型,对单张图进行三维目标障碍物检测,直接估计三维目标障碍物的长宽高,输出的目标障碍物由外接立方体形式表示。这样的训练能够更准确的描述目标与车的距离以及目标的宽度长度信息,进而能够对模型进行更准确的训练。
该全景环视图像形成单元还包括图像拼接模块,所述拼接模块形成有一个如前文所述的三维虚拟碗状模型,通过将经图像处理模块处理后的图像映射至所述碗状模型中对应的碗层,拼接成一个三维虚拟碗状模型。所述三维虚拟碗状模型及其与环境图像和目标障碍物图像的映射关系如前文所述,在此不再复述。
该全景环视图像形成单元还包括渲染模块,所述渲染模块对映射后的碗状模型进行渲染,形成实际呈现的全景环视图像,比如适合呈现于车辆驾驶室内安装的显示屏上的全景环视图像。该渲染模块的渲染过程如前文所述,在此不再复述。
图7示出了一种例示的车辆全景环视系统。如图所示,该全景环视系统包括用于采集车辆周围环境的实时环境图像的图像采集装置。该图像采集装置可以比如为分别安装至前车头、后车尾、左后视镜、右后视镜的广角摄像头或者鱼眼相机等,所述多个摄像头分别用于采集车辆前方、后方、左侧和右侧的图像。
在实际应用中,摄像头的安装位置也可根据需要灵活设置,例如将摄像头安装在车窗位置等,只要满足实现360度环视拼接的条件即可。再如,所述摄像头的具体安装位置可以为,前方车头左右侧安装2个,后方左右侧可以安装2个,左右车身分别安装2个或以上合适类型的摄像头。或者,可以将多个拍摄角度为360度的摄像头分别朝向车辆外部的水平方向以及垂直方向拍摄,以保证拍摄到车辆周围全方位的影像,以提高后续全景环视图像的准确性。此外,所述摄像头可以被安装成仅拍摄固定角度的图像,或者被设置为可以根据指令转动以变换拍摄角度。
所述各个摄像头分别进行了标定。标定的方法可以采用本领域技术已知的任何方法进行。比如,可以借助外部测量相机预先确定地面和车身坐标系的变换关系,利用该变换关系,自动完成待标定车辆中各摄像头相对于车身坐标系的摄像头参数标定。
例如,为标定各摄像头,首先在标定区域铺设地面标记物,并在标定区域上方设置外部测量相机,所述外部测量相机能够拍摄到所述地面标记物、车顶及车身。所述地面标记物包括但不限于棋盘格类型的物体,只要是具有矩形结构的任意尺寸的元素或元素组合都可以,例如A4、A0等大小的纸张,只要能满足有效检测出地面标记物角点的条件即可。所述外部测量相机可以采用高清可变焦相机,也可以是手机或其他拍摄相机。然后,将安装有车载全景环视系统的待标定车辆放置在所述标定区域。之后,基于外部测量相机确定地面坐标系和车身坐标系的变换关系。在确定地面坐标系和车身坐标系的变换关系时,需要分别标定外部测量相机相对于地面坐标系的相机参数及外部测量相机相对于车身坐标系的相机参数,根据这些参数确定地面坐标系和车身坐标系的变换关系。所述相机参数包括相机内参(比如焦距、图像中心、畸变系数等)和外参(包括相机坐标系相对于其它参考坐标系的旋转矩阵和平移矩阵)。最后,基于所述变换关系标定摄像头相对于车身坐标系的摄像头参数。
所述全景环视系统还包括计算装置和显示装置。所述计算装置具有全景环视图像形成单元,该全景环视图像形成单元获取摄像头拍摄的多张环境图像并作相关处理和检测后,拼接并渲染形成一个完整的全景环视图像,通过显示装置呈现给驾驶员或者车内的其他人员。所述全景环视图像形成单元例如前文所述,在此不再赘述。
所述计算装置可以是与显示装置共同安装至车辆上,还可以是与摄像头和显示装置通讯连接的远程计算装置。例如,所述计算装置可以是车辆控制器或车辆总控等,其例如包括通过系统总线连接的处理器、存储器、通信接口等。其中,该计算机装置的处理器用于提供计算和控制能力。该计算机装置的存储器可以包括非易失性存储介质、内存储器。非易失性存储介质存储有操作系统和计算机程序,该计算机程序被处理器执行时实现根据本发明的全景环视图像生成方法。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算装置的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。
所述显示装置可以为安装至车辆内部的各种合适类型的显示装置,用于向车内驾驶员或乘客呈现经所述计算单元处理并获得的关于车辆周边环境的虚拟三维全景环视图像。所述显示单元比如为液晶显示屏或者电子墨水显示屏或者投影设备等图像显示装置。所述显示单元可以具有操控装置,比如显示屏上覆盖的触摸层,也可以是按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
上文以车辆全景环视系统作为例示的应用场景来具体描述本发明的相关实施例。本领域技术人员在理解车辆全景环视系统场景下的具体内容后,将能想到本发明在其他相关场景下的具体运用。
例如,图8示出了一种例示的适合包括车辆以及其他合适的应用场景的生成全景环视图像的方法的流程图。如图所示,该方法包括如下步骤:
步骤S801:获取关于观察位置周边环境的环境图像。所述观察位置可以为如车辆之类的移动位置,也可以为类似吊塔等固定位置。可以通过安装由观察位置附近的鱼眼摄像头等图像采集装置获取观察位置周围的实时环境图像,甚至可以通过无人机等移动摄像设备来拍摄观察位置周围的实时环境图像。
步骤S802:检测所述环境图像中的目标障碍物。该步骤例如以与前文所述类似的步骤或装置来实施。
步骤S803:构建碗状模型,该碗状模型包括相对模型中心点具有最大半径的外碗层和具有较小半径的至少一个内碗层,该步骤例如以与前文所述类似的步骤或装置来实施。
步骤S804: 通过将所述环境图像映射至所述碗状模型,形成全景环视图像,其中,所述目标障碍物的图像被映射至相应的所述至少一个内碗层,环境图像中的其他部分被映射至所述外碗层。该步骤例如以与前文所述类似的步骤或装置来实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作步骤与另一个实体或操作步骤区分开,而不一定要求或者暗示这些实体或步骤之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限定的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例、计算机可读存储介质实施例、以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上内仅为举例说明本发明的相关内容,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。