显示效果融合方法、系统、存储介质及主控单元
文献发布时间:2023-06-19 09:36:59
技术领域
本申请涉及智能汽车驾驶领域,具体而言,涉及一种显示效果融合方法、系统、存储介质及主控单元。
背景技术
抬头显示简称HUD(Head Up Display),又称为平行显示系统,是指以驾驶人员为中心的盲操作、多功能的仪表盘。AR HUD即融合了AR(增强现实技术,Augmented Reality)技术的HUD技术。
HUD技术目前已经使用在车辆中,HUD系统由电子组件、光学显示组件以及控制单元等组成的汽车综合电子显示设备。用于车辆的HUD能够在前挡风玻璃上显示来源于仪表群和车辆内部的信息及物体融合框,使得驾驶者能够在驾驶时容易地获得驾驶信息。例如,将车辆速度、导航信息、主动安全告警信号等以图像、字符的形式,通过光学组件投射到驾驶人员正前方,形成虚像,使驾驶人员在观察车外路况时,可以同时看到叠加在外景上的图像、字符等信息。
目前市场上的HUD在具体应用时,由于不同人的身高、驾驶习惯和视觉习惯各不相同,由于这些差异化的影响因素,使得驾驶人员观察到的虚像无法与现实很好地融合,从而造成虚像显示效果不佳的问题。
发明内容
本申请实施例的目的在于提供一种显示效果融合方法、系统、存储介质及主控单元,以提升车用HUD的虚像显示效果。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供一种显示效果融合方法,应用于抬头显示系统,所述方法包括:获取驾驶车辆的行车图像,其中,所述行车图像中包含关注对象,所述关注对象包括车道线、路标、其他车辆、行人中的一项或多项;获取所述驾驶车辆中驾驶人员的眼睛位置;根据所述眼睛位置、所述行车图像和预设的虚像显示面,在所述虚像显示面中显示对象虚像,以使从所述眼睛位置观察的所述对象虚像与实际景象中的所述关注对象重合,其中,所述对象虚像表示所述关注对象在所述虚像显示面中显示的虚像,所述实际景象表示所述驾驶人员的眼睛观察的包含所述关注对象的现实景象。
在本申请实施例中,通过获取驾驶车辆的行车图像(其中包含车道线、路标、其他车辆、行人等中的一项或多项关注对象),以及,获取驾驶人员的眼睛位置,以基于眼睛位置和行车图像,在预设的虚像显示面显示对象虚像(关注对象在虚像显示面中显示的虚像),以使从眼睛位置观察的对象虚像与实际景象(驾驶人员的眼睛观察的包含关注对象的现实景象)中的关注对象重合。这样能够考虑到不同人的身高、驾驶习惯和视觉习惯(眼睛位置、视线等)等因素,使得虚像能够很好地与现实环境相融合,尽可能避免虚像偏移(即驾驶人员看见的虚像与实际景象之间的偏移)的情况,且能够跟随驾驶人员的眼睛位置变化而实时调整虚像的显示情况,从而能够适应于不同身高、驾驶习惯、视觉习惯的驾驶人员,保证虚像显示效果,能够提升驾驶人员的驾驶体验。
结合第一方面,在第一方面的第一种可能的实现方式中,所述获取所述驾驶车辆中驾驶人员的眼睛位置,包括:获取包含所述驾驶车辆内所述驾驶人员的人员图像;根据所述人员图像,确定出所述驾驶人员的眼睛在世界坐标系中的所述眼睛位置,其中,所述世界坐标系基于所述驾驶车辆建立。
在该实现方式中,通过获取包含驾驶车辆内驾驶人员的人员图像,并从中确定出驾驶人员的眼睛在世界坐标系(基于驾驶车辆建立)中的眼睛位置。这样可以实时获取驾驶人员的眼睛位置,有利于虚像显示的实时调整,从而能够在驾驶人员眼睛位置改变时迅速对显示的对象虚像作出调整,保证虚像显示效果,避免对象虚像与关注对象的长时间错位而给驾驶人员带来负面影响,从而有利于提升驾驶人员的使用体验。
结合第一方面,在第一方面的第二种可能的实现方式中,所述眼睛位置为所述驾驶人员的眼睛在世界坐标系中的位置,所述根据所述眼睛位置、所述行车图像和预设的虚像显示面,在所述虚像显示面中显示对象虚像,包括:根据所述行车图像,确定出所述关注对象在所述世界坐标系中的对象位置;根据所述眼睛位置和所述虚像显示面,确定出转换矩阵,其中,所述转换矩阵用于将所述世界坐标系中的位置坐标转换为所述虚像显示面的虚像坐标;根据所述对象位置和所述转换矩阵,确定出所述关注对象在所述虚像显示面的对象虚像位置;根据所述对象虚像位置,在所述虚像显示面中显示所述对象虚像。
在该实现方式中,通过基于行车图像确定出关注对象在世界坐标系中的对象位置,结合基于眼睛位置和虚像显示面确定的转换矩阵(用于将世界坐标系中的位置坐标转换为虚像显示面的虚像坐标),以确定出关注对象在虚像显示面的对象虚像位置,并据此进行虚像显示。这样的方式可以准确地确定对象虚像在虚像显示面应当显示的位置、大小等,从而使得驾驶人员视角下的虚像对象与关注对象准确地重合,能够很好地实现虚像与现实的融合效果。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述眼睛位置和所述虚像显示面,确定出转换矩阵,包括:根据所述眼睛位置和所述虚像显示面,确定出所述眼睛位置朝向所述虚像显示面的视线向量;根据所述眼睛位置和所述视线向量,确定出视图矩阵,其中,所述视图矩阵用于校正所述对象位置;获取虚像尺寸及显示虚像时的近远界面参数,并根据所述虚像尺寸和所述近远界面参数,确定出投影矩阵;根据所述视图矩阵和所述投影矩阵确定出所述转换矩阵。
在该实现方式中,通过眼睛位置和虚像显示面可以确定出视线向量(即从眼睛位置朝向虚像显示面而确定的向量),进一步基于眼睛位置和视线向量确定出视图矩阵。这样一方面可以保证视图矩阵的准确性,有利于实现对象虚像与关注对象的显示融合,另一方面,此种方式简单准确且高效,可以快速确定出视图矩阵(用于校正对象位置),以便对关注对象的对象位置进行校正。而根据虚像尺寸和近远界面参数,确定出投影矩阵后,根据视图矩阵和投影矩阵确定出转换矩阵,则能够快速准确地确定出转换矩阵,从而能够实现虚像显示的快速调整,有利于保证显示融合的实时性。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述眼睛位置和所述视线向量,确定出所述视图矩阵,包括:根据所述眼睛位置,确定出眼睛位置矩阵;根据所述视线向量,确定出眼睛视角矩阵;将所述眼睛视角矩阵左乘所述眼睛位置矩阵,确定出所述视图矩阵。
在该实现方式中,通过将基于视线向量确定的眼睛视角矩阵左乘基于眼睛位置确定的眼睛位置矩阵,可以快速准确地确定出视图矩阵。
结合第一方面的第三种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据所述眼睛位置和所述视线向量,确定出所述视图矩阵,包括:获取所述虚像显示面的基准向量,其中,所述基准向量表示垂直于所述虚像显示面中心且朝向所述驾驶车辆外部的向量;根据所述眼睛位置、所述视线向量和所述基准向量,通过OpenGL计算出所述视图矩阵。
在该实现方式中,通过OpenGL基于眼睛位置、视线向量和基准向量(垂直于虚像显示面中心且朝向驾驶车辆外部的向量)可以快速高效地计算视图矩阵。并且,通过采用OpenGL进行转换矩阵的计算,还有利于在进行虚像显示时实现GPU加速,提升虚像显示速度,从而提升驾驶人员的视觉体验。
结合第一方面的第二种可能的实现方式,在第一方面的第六种可能的实现方式中,在所述根据所述行车图像,确定出所述关注对象在所述世界坐标系中的对象位置之后,所述方法还包括:根据所述关注对象和所述对象位置,构建包含所述对象位置的所述关注对象的对象三维模型;以及,在所述根据所述眼睛位置和所述虚像显示面,确定出转换矩阵之后,还包括:根据所述对象三维模型和所述转换矩阵,确定出所述对象三维模型用于在所述虚像显示面显示的二维对象图形;对应的,所述根据所述对象虚像位置,在所述虚像显示面中显示所述对象虚像,包括:根据所述对象虚像位置和所述二维对象图形,在所述虚像显示面中显示所述对象虚像。
在该实现方式中,通过构建关注对象的对象三维模型(包含对象位置),结合转换矩阵可以确定出对象三维模型的二维对象图形(用于在虚像显示面显示),进一步根据对象虚像位置和二维对象图形,在虚像显示面中显示对象虚像。这样的方式,一方面可以保证对象虚像显示的准确性;另一方面,可以保证对象虚像的显示效果与实际中关注对象的视觉效果的一致性,从而能够提升虚像与现实的融合效果。
第二方面,本申请实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如第一方面或第一方面的可能的实现方式中任一项所述的显示效果融合方法。
第三方面,本申请实施例提供一种主控单元,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时,实现如第一方面或第一方面的可能的实现方式中任一项所述的显示效果融合方法。
第四方面,本申请实施例提供一种抬头显示系统,包括:第一摄像机构,用于拍摄驾驶车辆的行车图像,其中,所述行车图像中包含关注对象,所述关注对象包括车道线、路标、其他车辆、行人中的一项或多项;第二摄像机构,用于拍摄驾驶车辆内驾驶人员的人员图像;主控单元,用于获取所述行车图像和所述人员图像,并根据所述人员图像,确定出所述驾驶人员的眼睛在世界坐标系中的眼睛位置,以及,根据所述眼睛位置、所述行车图像和预设的虚像显示面,在所述虚像显示面中显示对象虚像,以使从所述眼睛位置观察的所述对象虚像与实际景象中的所述关注对象重合,其中,所述世界坐标系基于所述驾驶车辆建立,所述对象虚像表示所述关注对象在所述虚像显示面中显示的虚像,所述实际景象表示所述驾驶人员的眼睛观察的包含所述关注对象的现实景象。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种抬头显示系统的示意图。
图2为本申请实施例提供的一种显示效果融合方法的流程图。
图3为本申请实施例提供的一种示例性的显示效果融合方法的过程示意图。
图4为本申请实施例提供的一种主控单元的结构框图。
图标:100-抬头显示系统;110-第一摄像机构;120-第二摄像机构;130-主控单元;131-存储器;132-通信模块;133-总线;134-处理器;140-虚像显示单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,图1为本申请实施例提供的一种抬头显示系统100的示意图。
在本实施例中,抬头显示系统100可以包括第一摄像机构110、第二摄像机构120、主控单元130和虚像显示单元140,第一摄像机构110、第二摄像机构120、虚像显示单元140分别与主控单元130连接。
示例性的,第一摄像机构110用于拍摄驾驶车辆的行车图像,行车图像中可以包含关注对象(包括车道线、路标、其他车辆、行人中的一项或多项),作为虚像显示单元140需要显示的虚像对象的基础。
为了更加全面地获取行车图像,示例性的,第一摄像机构110可以设置在驾驶车辆的挡风玻璃上方,尽可能靠近挡风玻璃中央(例如刚好设置在中央),以便获取更全面的行车图像。当然,也可以设置在挡风玻璃上方且偏向驾驶人员的所在位置,以尽可能减小行车图像与驾驶人员实际观察的景象之间的差异,有利于保证行车图像的质量。
在本实施例中,第一摄像机构110可以采用包含摄像功能的驾驶辅助模块,以尽可能与驾驶车辆的辅助单元相结合起来,从而提升抬头显示系统100与驾驶车辆的适配性。示例性的,第一摄像机构110可以选用高级驾驶辅助系统(Advanced Driving AssistanceSystem,简称ADAS),例如佑驾X1或者其他型号的ADAS。当然,也可以采用其他包含摄像功能的驾驶辅助模块,此处不作限定。
示例性的,第二摄像机构120用于拍摄驾驶车辆内驾驶人员的人员图像。通过第二摄像机构120获取人员图像,可以实时获取到驾驶人员的状态,在虚像显示的过程中能够考虑到驾驶人员的状态,从而有利于抬头显示系统100基于驾驶人员的状态而对虚像显示的实时调整,从而有利于提升显示的融合效果(将显示的虚像与实际景象融合起来)。
示例性的,为了更好地获取驾驶车辆内驾驶人员的人员图像,第二摄像机构120可以设置在车内,例如悬置于驾驶车辆内部的前上方,或者设置在挡风玻璃上,位于驾驶人员的前上方,从而尽可能准确地获取驾驶人员的人员图像,有利于抬头显示系统100对虚像显示的实时调整。
为了更好地获取驾驶人员的状态信息(例如位置,距离等),第二摄像机构120可以采用深度摄像装置,例如3D结构光模组、双目视觉摄像装置等,此处不作限定。这样获取的人员图像中还包含深度信息,有利于准确感知驾驶人员的实时状态。
在本实施例中,主控单元130用于基于行车图像和人员图像,进行相应的处理后,实现对虚像的显示,使得显示的虚像与现实景象具有很好的融合效果,从而提升抬头显示系统100的虚像显示质量,提升用户体验。
示例性的,主控单元130可以是一个独立的控制单元(例如针对性开发的智能终端,如采用恩智浦NXP开发板设计的控制器;或者一些常用的智能终端例如智能手机、平板电脑等;又或者,主控单元130还可以是服务器,在主控单元130为服务器时,第一摄像机构110和第二摄像机构120可以与其无线通信连接),这样便于适应不同的车辆,对车辆的配置要求很低。当然,为了提升抬头显示系统100与车辆的适配性,节约成本等,主控单元130也可以是车辆上的车载电脑,尽可能提升抬头显示系统100与该种车辆的适配性。
示例性的,第一摄像机构110与主控单元130的连接,可以通过CAN(ControllerArea Network,控制器局域网络)实现,这样能够保证通信质量和可靠性。而第二摄像机构120的要求可以稍低,例如可以采用USB(Universal Serial Bus,通用串行总线)实现与主控单元130的通信,这样方便第二摄像机构120的使用,也可以保证通信质量;当然,也可以采用CAN实现与主控单元的通信,或者其他的通信方式,此处不作限定。
在本实施例中,为了提升抬头显示系统100的虚像显示效果和显示质量,抬头显示系统100还可以与驾驶车辆的其他辅助功能模块连接:例如,可以与车辆的控制器(车载电脑、底盘控制模块等)连接,获取车辆状态参数(例如车速、转向角度等参数)、车辆的驾驶环境参数(例如车距),以便抬头显示系统100用以对虚像显示进行实时调整,使得显示的虚像与现实景象更好地融合,进一步提升虚像显示效果。
以及,在本实施例中,可以采用HUD单元(即虚像显示单元140)作为实现虚像显示的组件,那么,HUD单元可以与主控单元130连接。主控单元130可以接收第一摄像机构110发送的行车图像、第二摄像机构120发送的人员图像,并基于此确定出需要显示的虚像,使得HUD单元进行虚像的显示。
示例性的,为了便于驾驶人员观察,HUD单元可以设置在车身的挡风玻璃下方,使得HUD单元确定的虚像显示面位于驾驶人员的视线内,在驾驶车辆挡风玻璃外的一定距离(例如1~3米)的面上,这样便于驾驶人员的观察。
以上是对本申请实施例提供的抬头显示系统100的介绍,为了保证虚像的显示效果,本申请实施例还提供一种显示效果融合方法,可以通过主控单元130执行显示效果融合方法(也可以通过整个抬头显示系统100执行方法,此处不作限定),以使显示的虚像与现实景象融合,从而提升抬头显示系统100的显示效果。
请参阅图2,图2为本申请实施例提供的一种显示效果融合方法的流程图。显示效果融合方法可以包括步骤S10、步骤S20、步骤S30。
在主控单元执行步骤S10之前,可以通过第一摄像机构拍摄驾驶车辆的行车图像,行车图像中包含关注对象(包括车道线、路标、其他车辆、行人中的一项或多项),当然,还可以根据需要选择其他的对象作为关注对象,例如道路边界、道路坡度等,此处不作限定。以及,可以通过第二摄像机构拍摄驾驶车辆内驾驶人员的人员图像。
在第一摄像机构(即第一摄像机构110)拍摄行车图像和第二摄像机构(即第二摄像机构120)拍摄人员图像后,主控单元可以执行步骤S10和步骤S20。
步骤S10:获取驾驶车辆的行车图像,其中,行车图像中包含关注对象,关注对象包括车道线、路标、其他车辆、行人中的一项或多项。
步骤S20:获取驾驶车辆中驾驶人员的眼睛位置。
需要说明的是,步骤S10和步骤S20的执行顺序不作限定,可以先执行步骤S10再执行步骤S20,或者先执行步骤S20再执行步骤S10,又或者同时执行步骤S10和步骤S20,此处不作限定。而步骤S10在第一摄像机构拍摄行车图像后即可执行,步骤S20在第二摄像机构拍摄人员图像后即可执行。
当然,为了保证融合效果,行车图像和人员图像的拍摄时机可以趋于一致,尽可能避免时间不一致而导致的景象变化,这样能够尽可能保证显示的虚像与实际景象的融合效果。
此处先介绍步骤S10。主控单元可以获取行车图像,例如通过接收第一摄像机构拍摄后发送的行车图像,当然,也可以是接收的其他设备传输的行车图像,只需保证该行车图像是第一摄像机构于一个时刻拍摄的行车图像即可。
而对于步骤S20的执行,主控单元可以获取人员图像,并根据人员图像确定出驾驶人员的眼睛位置。
示例性的,主控单元可以通过接收第二摄像机构拍摄并发送的人员图像,人员图像种包含驾驶人员。而后,主控单元可以根据人员图像,确定出驾驶人员的眼睛在世界坐标系(基于驾驶车辆建立的三维空间坐标系,这样可以使得驾驶人员、第一摄像机构、第二摄像机构、虚像显示面等,均可以通过该世界坐标系揭示其与驾驶车辆中某一点的位置关系)中的眼睛位置。
例如,可以通过对人员图像进行人脸特征提取,从而确定出驾驶人员的眼睛在图像中的位置,而后结合第二摄像机构在世界坐标系中的位置,确定出驾驶人员的眼睛在世界坐标系中的眼睛位置。
另外,驾驶人员的眼睛位置的获取,并非限定于上文提供的方式,眼睛位置的获取,还可以是其他设备发送的。例如,有一个专有的眼睛位置确定的装置,用于实时获取驾驶人员的眼睛位置,并将实时的眼睛为之发送给主控单元。因此,此处不应视为对本申请的限定。
通过获取包含驾驶车辆内驾驶人员的人员图像,并从中确定出驾驶人员的眼睛在世界坐标系(基于驾驶车辆建立)中的眼睛位置。这样可以实时获取驾驶人员的眼睛位置,有利于虚像显示的实时调整,从而能够在驾驶人员眼睛位置改变时迅速对显示的对象虚像作出调整,保证虚像显示效果,避免对象虚像与关注对象的长时间错位而给驾驶人员带来负面影响,从而有利于提升驾驶人员的使用体验。
在获取行车图像和获取眼睛位置后,主控单元可以执行步骤S30。
步骤S30:根据所述眼睛位置、所述行车图像和预设的虚像显示面,在所述虚像显示面中显示对象虚像,以使从所述眼睛位置观察的所述对象虚像与实际景象中的所述关注对象重合,其中,所述对象虚像表示所述关注对象在所述虚像显示面中显示的虚像,所述实际景象表示所述驾驶人员的眼睛观察的包含所述关注对象的现实景象。
在本实施例中,主控单元可以根据眼睛位置、行车图像和预设的虚像显示面(即用于显示虚像的一个面),在虚像显示面中显示对象虚像(即关注对象在虚像显示面中显示的虚像),以使从眼睛位置观察的对象虚像与实际景象(即驾驶人员的眼睛观察的包含关注对象的现实景象)中的关注对象重合。
这样能够考虑到不同人的身高、驾驶习惯和视觉习惯(眼睛位置、视线等)等因素,使得虚像能够很好地与现实环境相融合,尽可能避免虚像偏移(即驾驶人员看见的虚像与实际景象之间的偏移)的情况,且能够跟随驾驶人员的眼睛位置变化而实时调整虚像的显示情况,从而能够适应于不同身高、驾驶习惯、视觉习惯的驾驶人员,保证虚像显示效果,能够提升驾驶人员的驾驶体验。
示例性的,主控单元可以根据行车图像,确定出关注对象在世界坐标系中的对象位置。
例如,通过确定出图像中某个(或多个)标定点(例如车头上的一个或多个固定点)的位置,固定点的位置相对于第一摄像机构的位置固定,因此,标定点在图像中的位置也是固定的,从而可以确定出图像中其他像素的位置信息,从而确定出关注对象在图像中的位置。而后,主控单元可以结合第一摄像机构在世界坐标系的位置,将关注对象在图像中的位置转换为世界坐标系中的位置,从而确定出关注对象在世界坐标系中的对象位置。
当然,也可以通过其他方式确定关注对象在世界坐标系中的位置。例如,行车图像为深度图像时,可以确定出关注对象的距离信息,从而结合第一摄像机构的在世界坐标系中的位置确定出关注对象在世界坐标系中的对象位置。又如,主控单元还可以获取车身设置的距离传感器获取的距离信息,确定出关注对象的距离,从而结合第一摄像机构的在世界坐标系中的位置确定出关注对象在世界坐标系中的对象位置。
因此,确定出关注对象在世界坐标系中的对象位置的方式,不应视为对本申请的限定。而通过这些方式,可以准确地确定出关注对象在世界坐标系中的对象位置。
在确定出关注对象在世界坐标系中的对象位置之后,主控单元可以根据关注对象和对象位置,构建包含对象位置的关注对象的对象三维模型。当然,此处构建关注对象的对象三维模型的方式,可以是通过提取关注对象的轮廓特征,以构建相应的对象三维模型。也可以是通过对关注对象进行识别,从预设的三维模型中确定出对应的模型,而后将对应的模型与关注对象在图像中的大小、角度等进行匹配(当然,也可以不匹配,而是通过后续的转换矩阵进行转换,此处不作限定),从而得到关注对象的三维模型。因此,此处构建对象三维模型的方式,不应视为对本申请的限定。
通过以上方式构建关注对象的对象三维模型,可以很好地还原对象在行车图像中的模样,保证虚像显示的效果。
以及,主控单元可以根据眼睛位置和虚像显示面,确定出转换矩阵。此处,转换矩阵用于将世界坐标系中的位置坐标转换为虚像显示面的虚像坐标。当然,在其他一些可能的方式中,用于将世界坐标系中的位置坐标转换为虚像显示面的虚像坐标的参数可以不为矩阵,例如,为转换函数,因此,本实施例中以转换矩阵为例,但不应视为对本申请的限定。
示例性的,主控单元可以根据眼睛位置和虚像显示面,确定出眼睛位置朝向虚像显示面的视线向量。例如视线向量可以为世界坐标系中眼睛位置与虚像显示面中心位置之间的向量,方向为眼睛位置与虚像显示面中心位置。
而后,主控单元可以根据眼睛位置和视线向量,确定出视图矩阵(用于校正所述对象位置)。
而确定视图矩阵的具体方式,本实施例中将提供两种示例性的方式,但不应视为对本申请的限定。
第一种确定视图矩阵的方式:主控单元可以根据眼睛位置,确定出眼睛位置矩阵,根据视线向量,确定出眼睛视角矩阵;再将眼睛视角矩阵左乘眼睛位置矩阵,确定出视图矩阵。
例如,眼睛位置为(x,y,z),那么,眼睛位置矩阵T可以为:
而视线向量的参数为(x
而后,可以确定视图矩阵:C=RT。由此,即可确定出视图矩阵C。
通过将基于视线向量确定的眼睛视角矩阵左乘基于眼睛位置确定的眼睛位置矩阵,可以快速准确地确定出视图矩阵。需要说明的是,确定眼睛位置矩阵和眼睛视角矩阵的顺序不作限定。
第二种确定视图矩阵的方式:主控单元可以获取虚像显示面的基准向量(即垂直于虚像显示面中心且朝向驾驶车辆外部的向量,也可以理解为虚像显示面的法向量),并根据眼睛位置、视线向量和基准向量,通过OpenGL计算出视图矩阵。
例如,眼睛位置:cameraPos=QVector3D(x,y,z)。
视线向量:cameraFront=QVector3D(x
基准向量:cameraUp=QVector3D(0,1,0)。
那么,主控单元可以通过OpenGL计算视图矩阵:
lookAt(cameraPos,cameraPos+cameraFront,cameraUp)。
由此,主控单元可以通过OpenGL计算出视图矩阵lookAt。
通过OpenGL基于眼睛位置、视线向量和基准向量(垂直于虚像显示面中心且朝向驾驶车辆外部的向量)可以快速高效地计算视图矩阵。并且,通过采用OpenGL进行转换矩阵的计算,还有利于在进行虚像显示时实现GPU加速,提升虚像显示速度,从而提升驾驶人员的视觉体验。
确定出视图矩阵后,主控单元可以获取虚像尺寸(即虚像需要显示的高度、宽度等参数,虚像显示面的距离等)及显示虚像时的近远界面参数(即需要显示的对象虚像在虚像显示界面中的远近距离),并根据虚像尺寸和近远界面参数,确定出投影矩阵。
对应视图矩阵的确定,此处同样以两种方式为例进行介绍。
示例性的,对应前文中确定视图矩阵的第一种方式,此处确定投影矩阵的第一种方式为:
主控单元可以获取虚像尺寸:虚像宽度l和虚像高度t;以及,获取近远界面参数:虚像面距离n,最远距离f。基于虚像宽度l和虚像高度t,以及,虚像面距离n和最远距离f,计算出投影矩阵P:
通过此种方式可以准确计算出投影矩阵。
示例性的,对应前文中确定视图矩阵的第二种方式,此处确定投影矩阵的第二种方式为:
主控单元可以获取视场角参数(即第一摄像机构的视场角,视场角在光学工程中又称视场,视场角的大小决定了光学仪器的视野范围)、虚像尺寸(即虚像需要显示的高度、宽度等参数)及显示虚像时的近远界面参数(即需要显示的对象虚像在虚像显示界面中的远近距离),并根据视场角参数、虚像尺寸和近远界面参数,确定出投影矩阵。
例如,视场角参数:fov(参数可用aspect表示)。
虚像尺寸:width(虚像宽度)和height(虚像高度)。
近远界面参数:包括n(near,近),f(far,远)。
那么,主控单元可以通过OpenGL计算出投影矩阵:
projectMat.perspective(aspect,width()/height(),n,f)。
由此,主控单元可以通过OpenGL计算出投影矩阵project。
通过采用OpenGL根据视场角参数、虚像尺寸和近远界面参数,可以快速高效地确定出投影矩阵。并且,通过采用OpenGL进行转换矩阵的计算,还有利于在进行虚像显示时实现GPU加速,提升虚像显示速度,从而提升驾驶人员的视觉体验。
需要说明的是,本实施例中以先计算视图矩阵,后计算投影矩阵的方式进行说明,但不应视为对本申请的限定。在实际应用中,确定视图矩阵和投影矩阵的顺序不作限定。并且,采用何种方式计算视图矩阵和投影矩阵,也不作具体限定,可以根据实际需要进行选取,例如,采用第一种方式计算视图矩阵,采用第二种方式计算投影矩阵。
确定出视图矩阵和投影矩阵后,主控单元可以根据视图矩阵和投影矩阵确定出转换矩阵。示例性的,主控单元可以通过将投影矩阵左乘视图矩阵得到转换矩阵:X=CP。由此可以高效准确地计算得到转换矩阵。
确定出转换矩阵后,主控单元可以根据对象位置和转换矩阵,确定出关注对象在虚像显示面的对象虚像位置。
示例性的,主控单元可以根据对象三维模型和转换矩阵,确定出对象三维模型用于在虚像显示面显示的二维对象图形。即,通过转换矩阵,可以实现将对象三维模型转换为二维对象图形。
而后,主控单元可以根据对象虚像位置,在虚像显示面中显示对象虚像。示例性的,主控单元可以根据对象虚像位置和二维对象图形,在虚像显示面中显示对象虚像。
通过基于行车图像确定出关注对象在世界坐标系中的对象位置,结合基于眼睛位置和虚像显示面确定的转换矩阵,以确定出关注对象在虚像显示面的对象虚像位置,并据此进行虚像显示。这样的方式可以准确地确定对象虚像在虚像显示面应当显示的位置、大小等,从而使得驾驶人员视角下的虚像对象与关注对象准确地重合,能够很好地实现虚像与现实的融合效果。而通过构建关注对象的对象三维模型,结合转换矩阵可以确定出对象三维模型的二维对象图形,进一步根据对象虚像位置和二维对象图形,在虚像显示面中显示对象虚像。这样的方式,一方面可以保证对象虚像显示的准确性;另一方面,可以保证对象虚像的显示效果与实际中关注对象的视觉效果的一致性,从而能够提升虚像与现实的融合效果。
以上,即为对本申请实施例提供的显示效果融合方法的介绍,此处,将结合一个具体的实例,对方法的应用流程进行简单的说明。
请参阅图3,图3为本申请实施例提供的一种示例性的显示效果融合方法的过程示意图。
示例性的,一方面,ADAS(即第一摄像机构)可以拍摄行车图像后通过CAN发送给主控单元(即转换为CAN数据),主控单元可以解析CAN数据后,构建关注对象的对象三维模型(例如车道线3维模型、车辆3维模型、行人3维模型等)。而另一方面,深度相机(即第二摄像机构)可以拍摄人员图像(包含驾驶人员),而后,主控单元可以对人员图像进行处理(例如人眼标定),确定出对应的转换参数(即转换矩阵)。通过转换参数,主控单元可以对对象三维模型进行虚像转换,从而确定出相应的对象虚像(例如车道线虚像、车辆虚像、行人虚像等),进而实现虚像的显示。经此种方式实现的虚像显示,可以与现实中驾驶人员观察到的实际景象相重合,从而提升虚像显示效果,提升驾驶人员的体验。
请参阅图4,本申请实施例还提供一种主控单元,图4为本申请实施例提供的一种主控单元130的结构框图。
示例性的,主控单元130可以包括:通过网络与外界连接的通信模块132、用于执行程序指令的一个或多个处理器134、总线133、不同形式的存储器131,例如,磁盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器),或其任意组合。其中,存储器131、通信模块132和处理器134之间通过总线133连接。
示例性的,存储器131中存储有程序。处理器134可以从存储器131调用并运行这些程序,从而可以通过运行程序而执行显示效果融合方法,以提升虚像的显示效果。
本申请实施例还提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本实施例中所述的显示效果融合方法。
综上所述,本申请实施例提供一种显示效果融合方法、系统、存储介质及主控单元,通过获取驾驶车辆的行车图像(其中包含车道线、路标、其他车辆、行人等中的一项或多项关注对象),以及,获取驾驶人员的眼睛位置,以基于眼睛位置和行车图像,在预设的虚像显示面显示对象虚像(关注对象在虚像显示面中显示的虚像),以使从眼睛位置观察的对象虚像与实际景象(驾驶人员的眼睛观察的包含关注对象的现实景象)中的关注对象重合。这样能够考虑到不同人的身高、驾驶习惯和视觉习惯(眼睛位置、视线等)等因素,使得虚像能够很好地与现实环境相融合,尽可能避免虚像偏移(即驾驶人员看见的虚像与实际景象之间的偏移)的情况,且能够跟随驾驶人员的眼睛位置变化而实时调整虚像的显示情况,从而能够适应于不同身高、驾驶习惯、视觉习惯的驾驶人员,保证虚像显示效果,能够提升驾驶人员的驾驶体验。
在本申请所提供的实施例中,应该理解到,所揭露的方法,可以通过其它的方式实现,以上所描述的装置实施例仅仅是示意性的。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 显示效果融合方法、系统、存储介质及主控单元
- 液晶显示系统、液晶显示方法及主控单元