发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种避障方法、装置、介质及AR/VR设备,旨在实现对人眼注意力区域之外的障碍物进行提醒避让,提高AR/VR设备佩戴使用过程中的安全性。
本发明的技术方案如下:
一种避障方法,应用于安装有双目相机的AR/VR设备,所述方法包括:
通过所述双目相机采集场景图像并输出场景深度图;
对所述场景图像和/或场景深度图进行场景物体识别,确定当前场景中的目标物体;
计算所述目标物体的移动速度;
获取用户的眼动信息,根据所述眼动信息确定人眼注意力区域;
当所述目标物体位于所述人眼注意力区域之外时,基于所述目标物体的位置与移动速度输出避障提示信息。
在一个实施例中,所述通过所述双目相机采集场景图像并输出场景深度图,包括:
预先对所述双目相机进行标定,获取所述双目相机的内参矩阵、畸变基数和旋转矩阵;
通过所述双目相机分别采集当前场景的左右图像;
根据所述内参矩阵、畸变基数和旋转矩阵对所述左右图像进行双目校正与立体匹配后,输出对应的场景深度图。
在一个实施例中,所述对所述场景图像和/或场景深度图进行场景物体识别,确定当前场景中的目标物体,包括:
对所述场景图像和/或场景深度图进行特征提取,输出对应的特征信息;
根据所述特征信息对当前场景中的物体进行分类识别,确定当前场景中符合目标类别的目标物体。
在一个实施例中,所述计算所述目标物体的移动速度,包括:
获取预设时间内的场景图像序列;
根据所述场景图像序列进行光流计算,得到所述目标物体上预设关键点的光流场;
根据所述光流场计算得到所述目标物体的移动速度。
在一个实施例中,所述获取用户的眼动信息,根据所述眼动信息确定人眼注意力区域,包括:
采集用户的眼动信息;
根据所述眼动信息和场景图像分析当前用户的注意力中心点;
获取预设的人眼视度的注意力集中范围,根据所述注意力中心点与注意力集中范围确定人眼注意力区域。
在一个实施例中,所述当所述目标物体位于所述人眼注意力区域之外时,基于所述目标物体的位置与移动速度输出避障提示信息,包括:
当所述目标物体位于所述人眼注意力区域之外时,根据所述目标物体的位置与移动速度预测与用户的相遇时间;
当所述相遇时间小于预设时间阈值时,输出对应的避障提示信息。
在一个实施例中,所述避障提示信息包括所述目标物体的距离、移动速度、与用户的相遇时间和避让引导信息。
一种避障装置,其特征在于,所述装置包括:
双目相机,用于采集场景图像并输出场景深度图;
物体识别模块,用于对所述场景图像和/或场景深度图进行场景物体识别,确定当前场景中的目标物体;
速度计算模块,用于计算所述目标物体的移动速度;
眼动追踪模块,用于获取用户的眼动信息,根据所述眼动信息确定人眼注意力区域;
避障提示模块,用于当所述目标物体位于所述人眼注意力区域之外时,基于所述目标物体的位置与移动速度输出避障提示信息。
一种AR/VR设备,所述AR/VR设备包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述避障方法。
一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的避障方法。
有益效果:本发明公开了一种避障方法、装置、介质及AR/VR设备,相比于现有技术,本发明实施例通过利用双目视觉感知场景的深度信息并检测用户视野中的障碍物体,同时基于眼动追踪信息进行人眼视觉注意力感知,使得在注意力范围之外存在障碍物体时输出避障信息,提示用户及时避让,保证AR/VR设备使用者的安全性。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
请参阅图1,图1为本发明提供的避障方法一个实施例的流程图,该避障方法应用于安装有双目相机的AR/VR设备,例如AR/VR眼镜、AR/VR头盔等等,以AR/VR眼镜为例,可在AR/VR眼镜的两侧安装双目相机,或者置于AR/VR隐形眼镜上,以对用户周围场景进行深度估测从而为避障提供依据。如图1所示,该方法具体包括如下步骤:
S100、通过所述双目相机采集场景图像并输出场景深度图。
本实施例中,在用户左右双眼位置安装双目相机,通过双目相机从两个方向进行图像采集,以实现对用户前方的场景进行深度估测,从而输出与二维的场景图像对应的场景深度图。本实施例通过双目相机来还原当前场景下的立体空间数据,相对于其它成像系统如ToF(Time of flight,飞行时间)系统、结构光等,其硬件要求和成本都更有优势,可实现对场景中物体进行低成本且可靠的深度信息采集,为避障提供可靠的判断依据。
在一个实施例中,步骤S100包括:
预先对所述双目相机进行标定,获取所述双目相机的内参矩阵、畸变基数和旋转矩阵;
通过所述双目相机分别采集当前场景的左右图像;
根据所述内参矩阵、畸变基数和旋转矩阵对所述左右图像进行双目校正与立体匹配后,输出对应的场景深度图。
本实施例中,在AR/VR设备上安装的双目相机由左右两个摄像头组成,其中左右两个摄像头处于同一水平线上,对同一场景进行拍摄,可采集得到当前场景的左右图像。如图2所示,以图像的左上角为原点水平方向向右为x轴,竖直方向向下为y轴,可将每个像素点唯一表示为[x,y],并以此坐标表示进行后续标定和校正。
在通过双目相机采集并输出场景深度图之前,需要预先对双目相机进行标定,获取双目相机中左右两个相机的内参矩阵、畸变基数和旋转矩阵,从而将图像的像素坐标转化到包括图像物理坐标和相机坐标坐标系中,以用于后续的双目视觉校正实现场景的三维重建。
其中,内参矩阵A由像素物理尺寸(dx,dy)、焦距f、图像物理坐标的扭曲因子γ、图像相对于光心成像点的偏移量(cx,cy)组成:
畸变系数包括(k1,k2,p1,p2,k3),用于描述径向畸变和切向畸变。畸变前像素点位置(x0,y0)和校正后像素点位置(x,y)满足关系:
x0=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)
y0=y(1+k1r2+k2r4+k3r6)+2p2xy+p1(r2+2y2)
r=x2+y2
其中,r为成像位置到图像物理坐标系原点的距离。
旋转矩阵R则为某一相机(例如右相机)相对于左相机的相对旋转矩阵,通过现有的相机标定方法例如直接线性变换法;Tsai两步法;基于Kruppa方程的自标定方法;张正友标定法等等,对双目相机进行标定,进而得到内参矩阵、畸变系数及两相机的相对旋转矩阵。
基于标定得到的各项参数,对双目相机中左右摄像头分别采集的当前场景的左右图像进行双目校正与立体匹配处理,以感知场景的深度信息。
具体实施时,先对左右图像进行双目校正处理,针对左右摄像头分别采集的左右图像,利用内参矩阵将像素坐标转换为相机坐标;之后根据旋转矩阵对图片分别进行平行极线校正,具体可采用例如Fusiello法、Bouguet法等进行校正;之后通过畸变系数校正图像的相机坐标;之后利用内参矩阵将校正后的相机坐标转换为图像像素坐标,对新得到的图像进行插值补全操作,以保持图像数据光滑性和连续性,减少信息量的损失。双目校正使得像点在左右图像上的高度一致,即将同一物体在左右两幅图中置于水平直线上,双目校正后的图像在后续的立体匹配时,只需在同一行上搜索左右像平面的匹配点即可,能使效率大大提高。
双目校正后,为了从经过校正的左右图像中得到视差,恢复三维信息,需要通过立体匹配得到三维空间中相同的点的对应关系,具体在进行立体匹配时,先进行代价匹配,即计算左右图像中某一图像中局部的像素点与另一图像中像素点的匹配程度,可通过例如绝对差值和(Sum of Absolute Differences,SAD)、截断绝对差值和(Sum of TruncatedAbsolute Differences,STAD)、差值平方和(Sum of squared Differences,SSD)、归一化互相关NCC(Normalized Cross Correlation)、BT代价函数(S.Birchfield&C.Tomasi)等匹配代价算法计算匹配程度。
之后进行匹配代价聚合,获取全部像素点的代价匹配结果,为避免图像噪声对于局部匹配的影响,可设立全局函数对代价进行全局优化,降低异常值的影响;基于匹配代价聚合的结果,选择累计代价最低的像素点作为匹配点,计算输出每个像素点的视差,得到视差图。
由于视差图可能还存在遮挡点导致视差计算不准确或者存在噪声点等情况,因此进一步针对视差图进行提纯后处理以校正误差,具体可通过例如插值(Interpolation)、亚像素增强(Subpixel Enhancement)、精细化(Refinement)、图像滤波(Image Filtering)等操作进行提纯处理,提高视差图的准确性。
获取了准确的视差图后,即可基于视差图计算图像的深度信息,从而输出当前场景下的场景深度图,具体如图3所示,对双目摄像机的图像进行分析,假设三维空间任意一点P在左相机OL的成像点为PL,在右相机OR的成像点为PR,则点P在左右相机的视差d可以定义如下:d=|DL-DR|,DL为PL的水平坐标,DR为PR的水平坐标,两个成像点之间的距离为:
根据相似三角形理论可以得出:
则可以得到P到投影平面中心的距离为:
其中f为相机的焦距,b为两相机之间的距离。通过使用双目相机分别采集左右图像并经过双目校正与立体匹配后,即可根据每个像素点的视差、双目相机光心之间的距离以及双目相机的焦距计算输出每个像素点的深度信息,从而可以得到用户周围场景的深度信息。
本实施例通过双目相机感知环境深度信息的方式具有不涉及通过主动光源获取图像信息的特点,因此在室外的强光条件下依然可发挥更好效果,适用范围与环境更加广泛灵活。并且,由双目相机采集到的外部环境图像还可用于AR/VR设备的其它应用例如虚拟物体插入、环境光线调节等,由同一套设备所采集到的数据可用于多个用途,达到了节省空间,硬件成本和计算资源和能耗的效果。
S200、对所述场景图像和/或场景深度图进行场景物体识别,确定当前场景中的目标物体。
本实施例中,在双目相机采集了场景图像并输出场景深度图后,进一步对当前场景下拍摄到的物体进行检测识别,确定当前场景中存在的目标物体,以辅助用户对可能存在风险的目标物体进行避让。该目标物体可以是预先设置了相应类别的物体,例如汽车、动物、人类、建筑、植物等等,或者也可以是与当前用户之间具有相对运动的物体,即忽略与当前用户之间相对静止的、无安全隐患的物体,仅针对可能存在碰撞风险的目标物体进行识别,以尽量节约数据处理量,提高数据处理效率。
在一个实施例中,步骤S200包括:
对所述场景图像和/或场景深度图进行特征提取,输出对应的特征信息;
根据所述特征信息对当前场景中的物体进行分类识别,确定当前场景中符合目标类别的目标物体。
本实施例中,进行场景物体识别时输入的图像信息可以是双目相机采集的原始场景图像、或者经过处理得到的场景深度图、或者二者的结合。通过对输入的图像信息进行特征提取,即对图像信息中具有代表性的特征信息进行提取,在提取到图像信息中的特征信息后,基于特征信息对当前场景中的物体进行分类识别,确定当前场景中符合目标类别的目标物体。该目标类别可以是预先设置的例如汽车、动物、人类、建筑、植物等物体类别,或者是与用户之间的相对速度大于0的运动物体类别,具体可以根据需求灵活设置。
具体实施时,场景物体识别可以通过传统算法例如LoG与DoH、SIFT定位算法、SURF算法;角点检测原理的算法,如Harris算法与FAST算法;二进制串描述子算法,如ORB,BRISK,FREAK;Viola Jones算法、Histogram of Oriented Gradients(HOG)算法、Deformable Part-based Model(DPM)算法等;或者也可以通过基于深度学习算法的深度学习框架例如RCNN、SPPNet、Fast RCNN、Faster RCNN、Feature Pyramid Networks、YOLO、SSD、RetinaNet等,具体可根据特征提取的精度需求、成本控制需求等等进行灵活选择,本实施例对此不作限定。
S300、计算所述目标物体的移动速度。
本实施例中,针对识别出的当前场景中的目标物体,进一步计算其实时的移动速度,以便判断当前场景中的物体是否与用户之间具有碰撞等风险,从而实现准确的避障提示,确保用户的使用安全。
在一个实施例中,步骤S300包括:
获取预设时间内的场景图像序列;
根据所述场景图像序列进行光流计算,得到所述目标物体上预设关键点的光流场;
根据所述光流场计算得到所述目标物体的移动速度。
本实施例中,通过光流法结合图像信息来判断目标物体的移动速度,具体的,获取双目相机在预设时间内的场景图像序列,对场景图像序列进行重采样和去噪预处理以提高图像质量,之后对场景图像序列中目标物体上预设关键点进行光流值的计算,得到各个预设关键点的光流场,该预设关键点通常为前运动点,例如可选择目标物体的角点,以更好地体现目标物体在图像序列中的光流变化。之后对光流场进行阈值分割,以区分出前景与背景,进而得到运动目标区域。优选的,还可采用形态学滤波中的开、闭运算滤除孤立噪声点,最后经过区域连通便可识别出目标区域并统计其特征信息,从而得到目标物体的光流变化特征以用于速度估计。
由于光流是空间运动物体在观察成像平面上的像素运动的瞬时速度,因此利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息,即通过光流法根据光流场计算得到对应的目标物体的移动速度,实现准确高效的移动速度计算。光流法的具体算法可以采用传统算法如Horn-Schunck光流法、块匹配算法、Lucas-Kanade光流法、金字塔LK光流法等等,或者基于深度学习的光流算法例如FlowNet、PWC-Net、LiteFlowNet2、IRR(IterativeResidual Refinement for Joint Optical Flow and Occlusion Estimation)、MaskFlownet、RAFT、GMA等,本实施例对此不作限定。
S400、获取用户的眼动信息,根据所述眼动信息确定人眼注意力区域。
本实施例中,在用户佩戴使用AR/VR设备过程中,通过采集的眼动信息来进行人眼视觉注意力感知,具体的眼动信息包括两眼视线交点的位置序列及时间序列,通过眼动信息来确定当前用户的人眼注意力区域,从而对全视野范围进行区域划分,以便针对用户不同注意力区域中存在的物体及其运动状态进行精准的避障处理。
在一个实施例中,步骤S400包括:
采集用户的眼动信息;
根据所述眼动信息和场景图像分析当前用户的注意力中心点;
获取预设的人眼视度的注意力集中范围,根据所述注意力中心点与注意力集中范围确定人眼注意力区域。
本实施例中,在确定人眼注意力区域时,可通过例如红外眼动跟踪法、基于眼电的眼动信息提取法、眼睛图像特征分析法或者相关可以提取眼动信息的眼动装置来采集用户的眼动信息。结合眼动信息及通过双目相机采集到的场景图像,通过聚类分析或主成分分析等方法分析当前时刻下用户的注意力中心点X=(x,y,z),之后获取预设的人眼视度的注意力集中范围α,该注意力集中范围可根据用户需求灵活调节,基于眼动信息分析得到的注意力中心点以及预设的注意力集中范围即可确定人眼注意力区域。通过人眼注意力区域的判断可针对每个用户实时的眼动情况,进行针对性的避障提示,为准确的避障判断提供可靠的依据。
S500、当所述目标物体位于所述人眼注意力区域之外时,基于所述目标物体的位置与移动速度输出避障提示信息。
本实施例中,由于在人眼注意力区域内的物体,用户具有较高概率留意到,若具有碰撞风险用户可自主避让,而在人眼注意力区域外的物体,用户则具有较低概率留意到,即用户此时依靠人眼视觉系统很可能无法捕捉到其注意力区域之外的物体。因此可对目标物体的位置进行区域判断,确认其是否位于人眼注意力区域之外,若不位于,则不进行后续处理以节约系统功耗,若位于,则基于目标物体的位置与移动速度输出避障提示信息,以提醒用户及时留意该区域之外的目标物体并避开,确保用户使用过程中的安全。
具体地,避障提示信息可以包括目标物体的距离、移动速度、与用户的相遇时间和避让引导信息(例如建议的避让方向、避让距离)等等,该避让提示信息优选为在显示屏上展示的提示文字信息,例如在AR/VR设备的显示画面上以边界框等形式标记人眼注意力区域之外的目标物体,并展示其与用户之间的距离、移动速度、相遇时间和避让引导信息,实现直观高效的避障提醒。当然,在其他实施例中该避障提示信息还可以包括例如音频提示、机械振动提示等等,本实施例对此不作限定。
在一个实施例中,步骤S500包括:
当所述目标物体位于所述人眼注意力区域之外时,根据所述目标物体的位置与移动速度预测与用户的相遇时间;
当所述相遇时间小于预设时间阈值时,输出对应的避障提示信息。
本实施例中,在进行避障判断时,针对位于人眼注意力区域之外的目标物体,均基于器其位置与移动速度预测与用户的相遇时间。如图4所示,当前用户的注意力中心在左侧汽车上,左侧汽车位于注意力区域内,而左侧行人与右侧汽车均位于注意力区域之外,针对这两个目标物体均计算相遇时间t,并判断相遇时间t是否小于预设时间阈值t0,根据判断结果灵活输出避障提示信息。
当相遇时间大于等于预设时间阈值时,表明该目标物体(即图4中右侧汽车)与用户的碰撞风险较低,此时在如图5所示的提示画面中,则不对右侧汽车进行提示处理,节约能耗且避免画面过于繁杂影响用户使用;当相遇时间小于预设时间阈值时,表明该目标物体(即图4中左侧行人)与用户的碰撞风险较高,此时在如图5所示的提示画面中,对左侧行人进行边框标记,并输出距离、速度、相遇时间、避让警示等等避障提示信息,从而帮助用户及时避开自身注意力范围之外难以留意到的障碍物,保证用户在使用AR/VR设备过程中的安全性。
需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,即可以并行执行,亦可以交换执行等等。
本发明另一实施例提供一种避障装置,如图6所示,装置1包括:
双目相机11,用于采集场景图像并输出场景深度图;
物体识别模块12,用于对所述场景图像和/或场景深度图进行场景物体识别,确定当前场景中的目标物体;
速度计算模块13,用于计算所述目标物体的移动速度;
眼动追踪模块14,用于获取用户的眼动信息,根据所述眼动信息确定人眼注意力区域;
避障提示模块15,用于当所述目标物体位于所述人眼注意力区域之外时,基于所述目标物体的位置与移动速度输出避障提示信息。
本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述避障的执行过程,各模块的具体实施方式请参考上述对应的方法实施例,此处不再赘述。
本发明另一实施例提供一种AR/VR设备,如图7所示,AR/VR设备10包括:
一个或多个处理器110以及存储器120,图7中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图7中以通过总线连接为例。
处理器110用于完成AR/VR设备10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的避障方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行AR/VR设备10的各种功能应用以及数据处理,即实现上述方法实施例中的避障方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据AR/VR设备10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至系统10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的避障方法,例如,执行以上描述的图1中的方法步骤S100至步骤S500。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S500。
作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明而非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
综上,本发明公开的一种避障方法、装置、介质及AR/VR设备中,方法应用于安装有双目相机的AR/VR设备,通过所述双目相机采集场景图像并输出场景深度图;对所述场景图像和/或场景深度图进行场景物体识别,确定当前场景中的目标物体;计算所述目标物体的移动速度;获取用户的眼动信息,根据所述眼动信息确定人眼注意力区域;当所述目标物体位于所述人眼注意力区域之外时,基于所述目标物体的位置与移动速度输出避障提示信息。通过利用双目视觉感知场景的深度信息并检测用户视野中的障碍物体,同时基于眼动追踪信息进行人眼视觉注意力感知,使得在注意力范围之外存在障碍物体时输出避障信息,提示用户及时避让,保证AR/VR设备使用者的安全性。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的计算机程序可存储于一非易失性计算机可读取的存储介质中,该计算机程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、软盘、闪存、光存储器等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。