CN111833428B - 一种可视域确定方法、装置及设备 - Google Patents
一种可视域确定方法、装置及设备 Download PDFInfo
- Publication number
- CN111833428B CN111833428B CN201910238477.6A CN201910238477A CN111833428B CN 111833428 B CN111833428 B CN 111833428B CN 201910238477 A CN201910238477 A CN 201910238477A CN 111833428 B CN111833428 B CN 111833428B
- Authority
- CN
- China
- Prior art keywords
- visual field
- virtual camera
- line segment
- determining
- processed
- 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.)
- Active
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 157
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000003384 imaging method Methods 0.000 claims abstract description 78
- 238000005070 sampling Methods 0.000 claims description 33
- 238000009877 rendering Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供了一种可视域确定方法、装置及设备,方法包括:在候选可视域范围内,以虚拟相机的成像点为起点生成多条线段;针对每条线段,判断是否存在该线段对应的遮挡物体;若不存在,则将该线段确定为待处理线段;若存在,在该线段对应的遮挡物体中,确定距离虚拟相机最近的物体,作为该线段对应的第一次遮挡物体;确定该线段中、虚拟相机的成像点与该线段对应的第一次遮挡物体之间的部分线段,作为待处理线段;根据每条待处理线段确定实际可视域;可见,如果存在遮挡物体,根据虚拟相机与遮挡物体之间的线段确定出的实际可视域中并不包括遮挡物体后的盲区,提高了确定可视域的准确度。
Description
技术领域
本发明涉及计算机视觉技术领域,特别是涉及一种可视域确定方法、装置及设备。
背景技术
一些场景中,通常要确定虚拟相机的可视域范围。一般来说,确定虚拟相机可视域的方案通常包括:以虚拟相机为顶点构建一个棱锥,棱锥内部范围即为虚拟相机的可视域。
上述方案中确定的可视域可以认为是不存在遮挡情况下的可视域,如果棱锥内存在遮挡物体,则上述方案确定出的可视域中存在盲区。可见,这种方案确定可视域的准确度较差。
发明内容
本发明实施例的目的在于提供一种可视域确定方法、装置及设备,以提高准确度。
为达到上述目的,本发明实施例提供了一种可视域确定方法,包括:
在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域;
在所述候选可视域范围内,以所述虚拟相机的成像点为起点生成多条线段;
针对每条线段,判断是否存在该线段对应的遮挡物体,所述遮挡物体为:与该线段相交叉的物体;若不存在,则将该线段确定为待处理线段;若存在,在该线段对应的遮挡物体中,确定距离所述虚拟相机最近的物体,作为该线段对应的第一次遮挡物体;确定该线段中、虚拟相机的成像点与该线段对应的第一次遮挡物体之间的部分线段,作为待处理线段;
根据每条待处理线段确定实际可视域。
可选的,所述在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域之前,还包括:
针对真实场景进行三维重建,得到虚拟场景;
在所述虚拟场景中,添加虚拟相机;
所述在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域,包括:
根据所述虚拟相机在所述虚拟场景中的位置及角度,构建一个以所述虚拟相机的成像点为顶点的棱锥,作为候选可视域。
可选的,所述棱锥为四棱锥;所述根据所述虚拟相机在所述虚拟场景中的位置及角度,构建一个以所述虚拟相机的成像点为顶点的棱锥,作为候选可视域,包括:
确定所述虚拟相机的视距、视场角、水平角和俯仰角;
根据所述视距、所述视场角、所述水平角和所述俯仰角,计算所述四棱锥的底面的四个角点所在的位置;
构建一个以所述虚拟相机的成像点为顶点、以所述四个角点所在的位置形成的平面为底面的四棱锥,作为候选可视域。
可选的,所述在所述候选可视域范围内,以所述虚拟相机的成像点为起点生成多条线段,包括:
在所述候选可视域范围内确定多个采样点;
针对每个采样点,生成以所述虚拟相机的成像点为起点、且经过该采样点的线段。
可选的,所述候选可视域为以所述虚拟相机的成像点为顶点的棱锥;所述在所述候选可视域范围内确定多个采样点,包括:
将所述棱锥的底面划分为多个网格;将得到的网格点确定为采样点;
所述生成以所述虚拟相机的成像点为起点、且经过该采样点的线段,包括:
生成以所述虚拟相机的成像点为起点、以该采样点为终点的线段。
可选的,所述根据每条待处理线段确定实际可视域,包括:
将所确定的全部待处理线段汇聚形成实际可视域;
或者,确定全部待处理线段的终点形成的曲面,待处理线段的终点为:待处理线段的两个端点中除所述虚拟相机的成像点之外的另一端点;得到一个以所述虚拟相机的成像点为顶点、以所述曲面为底面的实际可视域。
可选的,所述方法还包括:
若未确定出与该线段相交叉的物体,则确定该线段整体属于实际可视域。
可选的,所述方法还包括:
在所述虚拟场景中,对所确定的实际可视域进行渲染。
可选的,所述方法还包括:
根据所确定的不同虚拟相机在不同位姿下的实际可视域,对虚拟相机进行部署。
为达到上述目的,本发明实施例还提供了一种可视域确定装置,包括:
计算模块,用于在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域;
生成模块,用于在所述候选可视域范围内,以所述虚拟相机的成像点为起点生成多条线段;
判断模块,用于针对每条线段,判断是否存在该线段对应的遮挡物体,所述遮挡物体为:与该线段相交叉的物体;若不存在,则触发第一确定模块;若存在,则触发第二确定模块;
第一确定模块,用于将该线段确定为待处理线段;
第二确定模块,用于在该线段对应的遮挡物体中,确定距离所述虚拟相机最近的物体,作为该线段对应的第一次遮挡物体;确定该线段中、虚拟相机的成像点与该线段对应的第一次遮挡物体之间的部分线段,作为待处理线段;
第三确定模块,用于根据每条待处理线段确定实际可视域。
可选的,所述装置还包括:
三维重建模块,用于针对真实场景进行三维重建,得到虚拟场景;在所述虚拟场景中,添加虚拟相机;
所述计算模块,具体用于:根据所述虚拟相机在所述虚拟场景中的位置及角度,构建一个以所述虚拟相机的成像点为顶点的棱锥,作为候选可视域。
可选的,所述棱锥为四棱锥;所述计算模块,具体用于:
确定所述虚拟相机的视距、视场角、水平角和俯仰角;
根据所述视距、所述视场角、所述水平角和所述俯仰角,计算所述四棱锥的底面的四个角点所在的位置;
构建一个以所述虚拟相机的成像点为顶点、以所述四个角点所在的位置形成的平面为底面的四棱锥,作为候选可视域。
可选的,所述生成模块,具体用于:
在所述候选可视域范围内确定多个采样点;
针对每个采样点,生成以所述虚拟相机的成像点为起点、且经过该采样点的线段。
可选的,所述候选可视域为以所述虚拟相机的成像点为顶点的棱锥;所述生成模块,具体用于:
将所述棱锥的底面划分为多个网格;将得到的网格点确定为采样点;
针对每个采样点,生成以所述虚拟相机的成像点为起点、以该采样点为终点的线段。
可选的,所述第三确定模块,具体用于:
将所确定的全部待处理线段汇聚形成实际可视域;
或者,确定全部待处理线段的终点形成的曲面,待处理线段的终点为:待处理线段的两个端点中除所述虚拟相机的成像点之外的另一端点;得到一个以所述虚拟相机的成像点为顶点、以所述曲面为底面的实际可视域。
可选的,所述装置还包括:
第四确定模块,用于在未确定出与该线段相交叉的物体的情况下,则确定该线段整体属于实际可视域。
可选的,所述装置还包括:
渲染模块,用于在所述虚拟场景中,对所确定的实际可视域进行渲染。
可选的,所述装置还包括:
部署模块,用于根据所确定的不同虚拟相机在不同位姿下的实际可视域,对虚拟相机进行部署。
为达到上述目的,本发明实施例还提供了一种电子设备,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一种可视域确定方法。
应用本发明实施例确定可视域时,在候选可视域范围内,以虚拟相机的成像点为起点生成多条线段;针对每条线段,判断是否存在该线段对应的遮挡物体;若不存在,则将该线段确定为待处理线段;若存在,在该线段对应的遮挡物体中,确定距离虚拟相机最近的物体,作为该线段对应的第一次遮挡物体;确定该线段中、虚拟相机的成像点与该线段对应的第一次遮挡物体之间的部分线段,作为待处理线段;根据每条待处理线段确定实际可视域;可见,如果存在遮挡物体,根据虚拟相机与遮挡物体之间的线段确定出的实际可视域中并不包括遮挡物体后的盲区,提高了确定可视域的准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种可视域确定方法的流程示意图;
图2a-图2c为本发明实施例提供的候选可视域示意图;
图3为本发明实施例中的遮挡物体示意图;
图4为本发明实施例提供的一种可视域确定装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种可视域确定方法、装置及设备,该方法及装置可以应用于各种电子设备,具体不做限定。下面首先对本发明实施例提供的可视域确定方法进行详细介绍。
图1为本发明实施例提供的一种可视域确定方法的流程示意图,包括:
S101:在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域。
作为一种实施方式,可以预先针对真实场景进行三维重建,得到虚拟场景;在所述虚拟场景中,添加虚拟相机。
虚拟相机为一种虚拟三维模型,举例来说,可以预先创建多种类型的虚拟相机,这样,可以由用户选择所要添加的虚拟相机。用户还可以对虚拟相机的位置和角度进行调整,比如,可以由用户手动输入虚拟相机的位置和角度,或者,也可以由用户操作鼠标或触屏装置,调整虚拟相机的位置和角度。虚拟相机的角度可以包括视场角、水平角和俯仰角等等,具体不做限定。
一种情况下,可以以虚拟相机的成像点、或者虚拟相机的机身中心点为中心建立三维坐标轴,通过拖动该坐标轴,调整虚拟相机的位置和角度。例如,该三维坐标轴可以为三维左手坐标系,以真实物理世界的正北方向为x轴,正西方向为z轴,向上为y轴。
本实施例中的候选可视域,是指存在盲区的可视域。一种实施方式中,候选可视域可以为一个棱锥的内部区域,这样,计算候选可视域,也就是根据所述虚拟相机在所述虚拟场景中的位置及角度,构建一个以所述虚拟相机的成像点为顶点的棱锥。
可以理解,由于虚拟相机中的成像芯片一般为矩形,因此上述棱锥可以为四棱锥,四棱锥的底面为矩形。或者,该棱锥可以为三棱锥、五棱锥,等等,棱锥的具体形状不做限定。可以将虚拟相机的视距确定为棱锥的高度,也就是棱锥顶点到棱锥底面的距离。视距可以根据实际情况来确定,比如,如果虚拟相机正对地面进行图像采集,则视距为虚拟相机到地面的距离,或者,在一些没有地面阻挡的情况下,视距可以与虚拟相机的分辨率有关。
在上述棱锥为四棱锥的情况下,棱锥的高与棱锥的左侧面(或右侧面)上的斜高之间的夹角可以为虚拟相机水平视场角的一半,棱锥的高与棱锥的上侧面(或者下侧面)上的斜高之间的夹角可以为虚拟相机竖直视场角的一半。
作为一种实施方式,如果上述棱锥为四棱锥,可以根据虚拟相机的视距、视场角、水平角所述俯仰角,计算该四棱锥的底面的四个角点所在的位置;构建一个以所述虚拟相机的成像点为顶点、以所述四个角点所在的位置形成的平面为底面的四棱锥,作为候选可视域。
参考图2a-2c,图2a表示虚拟相机俯视时的棱锥示意图,图2b表示虚拟相机平视时的棱锥示意图,图2c表示虚拟相机仰视时的棱锥示意图。为了方便描述,将虚拟相机的水平视场角记为fangleH,将虚拟相机的垂直视场角记为fangleV,将虚拟相机的水平初始旋转角度记为yangleH,将虚拟相机的垂直初始旋转角度记为yangleV,将虚拟相机的水平实时旋转角度记为cangleH,将虚拟相机的垂直实时旋转角度记为cangleV。
虚拟相机的俯仰角=yangleV+cangleV,虚拟相机俯视时,虚拟相机的俯仰角为正值、且大于视场角的一半,也就是yangleV+cangleV>fangleV/2;虚拟相机平视(平视并不是一个角度,而是一个角度范围)时,-fangleV/2≤yangleV+cangleV≤fangleV/2。虚拟相机俯视时,虚拟相机的俯仰角为负值,yangleV+cangleV<-fangleV/2。
虚拟相机俯视时,
其中,th表示虚拟相机的成像点到四棱锥底面(四边形)中心点的距离,即视距,radius表示虚拟相机的成像点到四棱锥底面的上/下边的距离,radiusUp表示四棱锥底面的上边中心到虚拟相机的成像点的水平距离,radiusLow表示四棱锥底面的下边中心到虚拟相机的成像点的水平距离,yUp表示四棱锥底面的上边中心到虚拟相机的成像点的垂直距离,yLow表示四棱锥底面的下边中心到虚拟相机的成像点的垂直距离。
由上式可以推导出虚拟相机俯视时四棱锥底面四个角点V1、V2、V3和V4的坐标:
其中,campos表示四棱锥顶点的坐标,campos根据虚拟相机的位置确定,是一个已知量。
类似的,虚拟相机平视时,
由上式可以推导出虚拟相机平视时四棱锥底面四个角点V1、V2、V3和V4的坐标:
类似的,虚拟相机俯视时,
由上式可以推导出虚拟相机俯视时四棱锥底面四个角点V1、V2、V3和V4的坐标:
S102:在候选可视域范围内,以虚拟相机的成像点为起点生成多条线段。
举例来说,在一些三维建模场景中,可以利用射线机制,以虚拟相机的成像点为起点生成多条射线,比如,上述一种实施方式中,候选可视域范围为棱锥,所生成的射线到达棱锥的底面时结束,这也是可以的。例如,射线机制可以为Unity 3D(一种三维开发工具)中的Ray射线类和RaycastHit射线投射碰撞信息类等射线工具类,或者,也可以为其他,具体不做限定。
一种情况下,可以在候选可视域范围内,生成无数多条线段;另一种情况下,可以在所述候选可视域范围内确定多个采样点;针对每个采样点,生成以所述虚拟相机的成像点为起点、且经过该采样点的线段。
比如,以候选可视域范围为棱锥的情况来说,可以将棱锥的底面划分为多个网格;将得到的网格点确定为采样点。这种情况下,生成的线段以虚拟相机的成像点为起点、以采样点为终点。换句话说,可以将虚拟相机的成像点与采样点进行连接,即为生成的线段。
举例来说,可以将棱锥的底面均匀划分为多个网格,这样,所生成的各线段之间角度均匀,采样效果更好。
S103:针对每条线段,判断是否存在该线段对应的遮挡物体,遮挡物体为:与该线段相交叉的物体。如果不存在,执行S104,然后执行S107,如果存在,执行S105-S107。
上述虚拟场景是针对真实场景进行三维重建得到的,因此,真实场景中存在的物体也都以三维模型的形式存在于虚拟场景中,在候选可视域范围内可能存在遮挡物体。S103中可以针对S102中生成的每条线段,检测与该线段相交叉的物体,如果检测到与该线段相交叉的物体,则S103判断结果为是,并且与该线段相交叉的物体均为该线段的遮挡物体,如果未检测到与该线段相交叉的物体,则S103判断结果为否。
S104:将该线段确定为待处理线段。
S105:在该线段对应的遮挡物体中,确定距离虚拟相机最近的物体,作为该线段的第一次遮挡物体。
S106:确定该线段中、虚拟相机的成像点与该线段的第一次遮挡物体之间的部分线段,作为待处理线段。
本实施例中所说的待处理线段可以理解为属于实际可视域的线段。
上述一种实施方式中,候选可视域范围为棱锥,假设利用射线机制,以虚拟相机的成像点为起点生成多条射线,这种情况下,如果与射线发生交叉碰撞的点(交叉点)位于棱锥底面,则将与射线的交叉点记为t,并且射线结束,如果与射线的交叉点不位于棱锥底面,则将与射线的交叉点记为mn。
参考图3,为了简单示例说明,图3中仅标示出射线raym和rayn,ray的下标m和n均表示射线的标识,发射的射线可以记为ray1、ray2……rayn……raym……图3中,rayn与物体1发生交叉碰撞,交叉点记为mn1,rayn与棱锥底面发生交叉碰撞,交叉点记为tn,确定rayn中虚拟相机的成像点到mn1之间的部分线段为待处理线段,待处理线段属于实际可视域。raym与物体2发生交叉碰撞,交叉点记为mn2,raym与棱锥底面发生交叉碰撞,交叉点记为tm,确定raym中虚拟相机到mn2之间的部分线段为待处理线段,待处理线段属于实际可视域。
图3中的遮挡物体1和物体2仅为示例说明,并不代表真实场景中的遮挡物体的具体形状。由图3可知,并不需要考虑真实场景中遮挡物体的具体形状,或者说,真实场景中遮挡物体的具体形状对本方案确定可视域并没有影响。
对于S102中所生成的每条线段来说,如果判定不存在该线段的遮挡物体,或者说没有确定出与该线段相交叉的物体,则将该线段整体确定为待处理线段,也就是说该线段整体都属于实际可视域。可以理解,如果候选可视域内不存在与该线段相交叉的物体,也就是不存在遮挡物体,则该线段中不存在盲区,该线段整体都属于实际可视域。
以一条射线rayx进行举例说明,假设rayx在棱锥内除棱锥底面外发生a次交叉碰撞,也就是除棱锥底面外存在a个交叉点:如果a==0,则表示rayx中从虚拟相机的成像点至棱锥底面之间的部分线段都为待处理线段,或者说属于实际可视域,如果a>0,则表示rayx中从虚拟相机的成像点至第一个交叉点(距离虚拟相机最近的交叉点)之间的部分线段为待处理线段,或者说属于实际可视域。
S107:根据所确定的每条待处理线段确定实际可视域。
一种实施方式中,S107可以包括:将所确定的全部待处理线段汇聚形成实际可视域。
如上所述,待处理线段属于实际可视域,由于S102中生成了多条线段,S104及S106中分别在所生成的每条线段中均确定出待处理线段,所有这些待处理线段汇聚形成了完整的实际可视域。
上述S102中生成的线段数量越多,这里确定出的待处理线段也越多,则形成的实际可视域越准确。如果S102中生成的线段较稀疏,则确定出的待处理线段也较稀疏,这种情况下,可以将全部待处理线段进行扩展拼接,得到实际可视域。如果S102中生成的线段较密集,比如上述实施方式中,将棱锥的底面划分为网格时,网格的密集程度达到了最高,比如将棱锥底面的每个像素单元都划分为一个网格,这样可以生成密集的线段,进而可以确定出密集的待处理线段,这些密集的待处理线段直接汇聚形成实际可视域。
作为另一种实施方式,S107可以包括:确定由全部待处理线段的终点构成的曲面,待处理线段的终点为:待处理线段的两个端点中除所述虚拟相机的成像点之外的另一端点;得到一个以所述虚拟相机的成像点为顶点、以所述曲面为底面的实际可视域。
待处理线段存在两个端点,其中一个为虚拟相机的成像点,可以理解,所有待处理线段都相交于虚拟相机的成像点,可以将该成像点称为待处理线段的起点,将待处理线段的另一个端点称为待处理线段的终点。所有待处理线段的终点可以汇聚形成一个曲面,以虚拟相机的成像点为顶点,以该曲面为底面,可以得到一个锥形的区域,该锥形的区域即为实际可视域。
可以将待处理线段理解为光线,光沿直线传播,如果光遇到遮挡物体,遮挡物体之前(面向虚拟相机的一侧)为可视域,遮挡物体之后(背向虚拟相机的一侧)为盲区。
一种实施方式中,可以在虚拟场景中,对所确定的实际可视域进行渲染。也就是将上述完整的实际可视域进行渲染,可以更直观的展示实际可视域的具体位置。
举例来说,可以基于OpenGL图形库或者Directx图形库中的渲染着色器,对生成的每条线段进行渲染,在每条线段中,将属于实际可视区域的部分线段渲染为绿色,将其他部分线段(也就是属于盲区的部分线段)渲染为红色。具体渲染颜色不做限定。
一种实施方式中,可以根据所确定的不同虚拟相机在不同位姿下的实际可视域,对虚拟相机进行部署。
本实施方式中,可以多次调整虚拟相机的位姿、或者多次调整虚拟相机的系列或类型,每次调整后利用本发明实施例确定该次调整后的实际可视域,对不同虚拟相机、不同位姿下的实际可视域进行对比,以选择出采集效果较佳的虚拟相机及虚拟相机的位姿,基于选择结果,对虚拟相机进行部署。
具体来说,可以在每次确定出实际可视域后,显示所确定的实际可视域,并输出对应的虚拟相机的标识信息及位姿信息。进一步的,显示实际可视域时,可以对实际可视域进行渲染,提高显示效果。举例来说,虚拟相机的标识信息可以包括:虚拟相机名称、系列和类型等,位姿信息可以包括虚拟相机的位置信息、视场角、水平角和俯仰角等。
应用本发明实施例确定可视域,第一方面,如果存在遮挡物体,根据虚拟相机与遮挡物体之间的线段确定出的实际可视域中并不包括遮挡物体后的盲区,提高了确定可视域的准确度。第二方面,不需要考虑遮挡物体的具体形状,真实场景中存在任何形状遮挡物的情况下,都可以利用本方案确定可视域,本方案在实际场景中的应用性较好。第三方面,可以利用本方案确定不同虚拟相机在不同位姿下的实际可视域,对不同虚拟相机、不同位姿下的实际可视域进行对比,以选择出采集效果较佳的虚拟相机及虚拟相机的位姿,基于选择结果,可以对虚拟相机进行部署。
与上述方法实施例相对应,本发明实施例还提供了一种可视域确定装置,如图4所示,包括:
计算模块401,用于在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域;
生成模块402,用于在所述候选可视域范围内,以所述虚拟相机的成像点为起点生成多条线段;
判断模块403,用于针对每条线段,判断是否存在该线段对应的遮挡物体,所述遮挡物体为:与该线段相交叉的物体;若不存在,则触发第一确定模块404;若存在,则触发第二确定模块405;
第一确定模块404,用于将该线段确定为待处理线段;
第二确定模块405,用于在该线段对应的遮挡物体中,确定距离所述虚拟相机最近的物体,作为该线段对应的第一次遮挡物体;确定该线段中、虚拟相机的成像点与该线段对应的第一次遮挡物体之间的部分线段,作为待处理线段;
第三确定模块406,用于根据每条待处理线段确定实际可视域。
作为一种实施方式,所述装置还包括:
三维重建模块(图中未示出),用于针对真实场景进行三维重建,得到虚拟场景;在所述虚拟场景中,添加虚拟相机;
计算模块401具体用于:根据所述虚拟相机在所述虚拟场景中的位置及角度,构建一个以所述虚拟相机的成像点为顶点的棱锥,作为候选可视域。
作为一种实施方式,所述棱锥为四棱锥;计算模块401具体用于:
确定所述虚拟相机的视距、视场角、水平角和俯仰角;
根据所述视距、所述视场角、所述水平角和所述俯仰角,计算所述四棱锥的底面的四个角点所在的位置;
构建一个以所述虚拟相机的成像点为顶点、以所述四个角点所在的位置形成的平面为底面的四棱锥,作为候选可视域。
作为一种实施方式,生成模块402,具体用于:
在所述候选可视域范围内确定多个采样点;
针对每个采样点,生成以所述虚拟相机的成像点为起点、且经过该采样点的线段。
作为一种实施方式,所述候选可视域为以所述虚拟相机的成像点为顶点的棱锥;生成模块402,具体用于:
将所述棱锥的底面划分为多个网格;将得到的网格点确定为采样点;
针对每个采样点,生成以所述虚拟相机的成像点为起点、以该采样点为终点的线段。
作为一种实施方式,第三确定模块406具体可以用于:
将所确定的全部待处理线段汇聚形成实际可视域;
或者,确定全部待处理线段的终点形成的曲面,待处理线段的终点为:待处理线段的两个端点中除所述虚拟相机的成像点之外的另一端点;得到一个以所述虚拟相机的成像点为顶点、以所述曲面为底面的实际可视域。
作为一种实施方式,所述装置还包括:渲染模块(图中未示出),用于在所述虚拟场景中,对所确定的实际可视域进行渲染。
作为一种实施方式,所述装置还包括:部署模块(图中未示出),用于根据所确定的不同虚拟相机在不同位姿下的实际可视域,对虚拟相机进行部署。
应用本发明实施例确定可视域时,在候选可视域范围内,以虚拟相机的成像点为起点生成多条线段;针对每条线段,判断是否存在该线段对应的遮挡物体;若不存在,则将该线段确定为待处理线段;若存在,在该线段对应的遮挡物体中,确定距离虚拟相机最近的物体,作为该线段对应的第一次遮挡物体;确定该线段中、虚拟相机的成像点与该线段对应的第一次遮挡物体之间的部分线段,作为待处理线段;根据每条待处理线段确定实际可视域;可见,如果存在遮挡物体,根据虚拟相机与遮挡物体之间的线段确定出的实际可视域中并不包括遮挡物体后的盲区,提高了确定可视域的准确度。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、和存储器502,
存储器502,用于存放计算机程序;
处理器501,用于执行存储器502上所存放的程序时,实现上述任一种可视域确定方法。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种可视域确定方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、设备实施例、以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种可视域确定方法,其特征在于,包括:
在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域;
在所述候选可视域范围内,以所述虚拟相机的成像点为起点生成多条线段;
针对每条线段,判断是否存在该线段对应的遮挡物体,所述遮挡物体为:与该线段相交叉的物体;若不存在,则将该线段确定为待处理线段;若存在,在该线段对应的遮挡物体中,确定距离所述虚拟相机最近的物体,作为该线段对应的第一次遮挡物体;确定该线段中、虚拟相机的成像点与该线段对应的第一次遮挡物体之间的部分线段,作为待处理线段;
根据每条待处理线段确定实际可视域;
所述根据每条待处理线段确定实际可视域,包括:
将所确定的全部待处理线段汇聚形成实际可视域;
或者,确定全部待处理线段的终点形成的曲面,待处理线段的终点为:待处理线段的两个端点中除所述虚拟相机的成像点之外的另一端点;得到一个以所述虚拟相机的成像点为顶点、以所述曲面为底面的实际可视域。
2.根据权利要求1所述的方法,其特征在于,所述在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域之前,还包括:
针对真实场景进行三维重建,得到虚拟场景;
在所述虚拟场景中,添加虚拟相机;
所述在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域,包括:
根据所述虚拟相机在所述虚拟场景中的位置及角度,构建一个以所述虚拟相机的成像点为顶点的棱锥,作为候选可视域。
3.根据权利要求2所述的方法,其特征在于,所述棱锥为四棱锥;所述根据所述虚拟相机在所述虚拟场景中的位置及角度,构建一个以所述虚拟相机的成像点为顶点的棱锥,作为候选可视域,包括:
确定所述虚拟相机的视距、视场角、水平角和俯仰角;
根据所述视距、所述视场角、所述水平角和所述俯仰角,计算所述四棱锥的底面的四个角点所在的位置;
构建一个以所述虚拟相机的成像点为顶点、以所述四个角点所在的位置形成的平面为底面的四棱锥,作为候选可视域。
4.根据权利要求1所述的方法,其特征在于,所述在所述候选可视域范围内,以所述虚拟相机的成像点为起点生成多条线段,包括:
在所述候选可视域范围内确定多个采样点;
针对每个采样点,生成以所述虚拟相机的成像点为起点、且经过该采样点的线段。
5.根据权利要求4所述的方法,其特征在于,所述候选可视域为以所述虚拟相机的成像点为顶点的棱锥;所述在所述候选可视域范围内确定多个采样点,包括:
将所述棱锥的底面划分为多个网格;将得到的网格点确定为采样点;
所述生成以所述虚拟相机的成像点为起点、且经过该采样点的线段,包括:
生成以所述虚拟相机的成像点为起点、以该采样点为终点的线段。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述虚拟场景中,对所确定的实际可视域进行渲染。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所确定的不同虚拟相机在不同位姿下的实际可视域,对虚拟相机进行部署。
8.一种可视域确定装置,其特征在于,包括:
计算模块,用于在虚拟场景中,计算虚拟相机在无遮挡情况下的可视域,作为候选可视域;
生成模块,用于在所述候选可视域范围内,以所述虚拟相机的成像点为起点生成多条线段;
判断模块,用于针对每条线段,判断是否存在该线段对应的遮挡物体,所述遮挡物体为:与该线段相交叉的物体;若不存在,则触发第一确定模块;若存在,则触发第二确定模块;
第一确定模块,用于将该线段确定为待处理线段;
第二确定模块,用于在该线段对应的遮挡物体中,确定距离所述虚拟相机最近的物体,作为该线段对应的第一次遮挡物体;确定该线段中、虚拟相机的成像点与该线段对应的第一次遮挡物体之间的部分线段,作为待处理线段;
第三确定模块,用于根据每条待处理线段确定实际可视域;
所述第三确定模块,具体用于将所确定的全部待处理线段汇聚形成实际可视域;或者,确定全部待处理线段的终点形成的曲面,待处理线段的终点为:待处理线段的两个端点中除所述虚拟相机的成像点之外的另一端点;得到一个以所述虚拟相机的成像点为顶点、以所述曲面为底面的实际可视域。
9.一种电子设备,其特征在于,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910238477.6A CN111833428B (zh) | 2019-03-27 | 2019-03-27 | 一种可视域确定方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910238477.6A CN111833428B (zh) | 2019-03-27 | 2019-03-27 | 一种可视域确定方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111833428A CN111833428A (zh) | 2020-10-27 |
CN111833428B true CN111833428B (zh) | 2024-02-02 |
Family
ID=72914179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910238477.6A Active CN111833428B (zh) | 2019-03-27 | 2019-03-27 | 一种可视域确定方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111833428B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115193038A (zh) * | 2022-07-26 | 2022-10-18 | 北京字跳网络技术有限公司 | 一种交互控制方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105225230A (zh) * | 2015-09-11 | 2016-01-06 | 浙江宇视科技有限公司 | 一种识别前景目标对象的方法及装置 |
CN108052111A (zh) * | 2017-10-24 | 2018-05-18 | 南京奇蛙智能科技有限公司 | 一种基于双目视觉技术的无人机实时避障方法 |
CN111080798A (zh) * | 2019-12-02 | 2020-04-28 | 网易(杭州)网络有限公司 | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2465791A (en) * | 2008-11-28 | 2010-06-02 | Sony Corp | Rendering shadows in augmented reality scenes |
-
2019
- 2019-03-27 CN CN201910238477.6A patent/CN111833428B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105225230A (zh) * | 2015-09-11 | 2016-01-06 | 浙江宇视科技有限公司 | 一种识别前景目标对象的方法及装置 |
CN108052111A (zh) * | 2017-10-24 | 2018-05-18 | 南京奇蛙智能科技有限公司 | 一种基于双目视觉技术的无人机实时避障方法 |
CN111080798A (zh) * | 2019-12-02 | 2020-04-28 | 网易(杭州)网络有限公司 | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111833428A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230412902A1 (en) | Image processing device, image processing method, and recording medium | |
US5990900A (en) | Two-dimensional to three-dimensional image converting system | |
US5790713A (en) | Three-dimensional computer graphics image generator | |
EP3534336B1 (en) | Panoramic image generating method and apparatus | |
US8970586B2 (en) | Building controllable clairvoyance device in virtual world | |
JP6344050B2 (ja) | 画像処理システム、画像処理装置、プログラム | |
CN103970518B (zh) | 一种逻辑窗口的3d渲染方法和装置 | |
CN104331918A (zh) | 基于深度图实时绘制室外地表遮挡剔除以及加速方法 | |
CN111161394B (zh) | 一种三维建筑模型的放置方法和装置 | |
KR101642975B1 (ko) | 객체를 관찰하기 위한 파노라마 공간 모델링 방법 | |
CN110559660B (zh) | Unity3D场景中鼠标对物体的按面拖拽法及介质 | |
JP5136703B2 (ja) | カメラ設置位置評価プログラム、カメラ設置位置評価方法およびカメラ設置位置評価装置 | |
US20030146922A1 (en) | System and method for diminished reality | |
CN111091594B (zh) | 多点云平面融合方法及装置 | |
CN111833428B (zh) | 一种可视域确定方法、装置及设备 | |
CN106657848A (zh) | 一种投影方法及电子设备 | |
US20210201522A1 (en) | System and method of selecting a complementary image from a plurality of images for 3d geometry extraction | |
WO2019042028A1 (zh) | 全视向的球体光场渲染方法 | |
US11741658B2 (en) | Frustum-bounding volume intersection detection using hemispherical projection | |
Deepu et al. | 3D Reconstruction from Single 2D Image | |
JP2021033682A (ja) | 画像処理装置、方法及びプログラム | |
Hrozek et al. | Digital preservation of historical buildings using virtual reality technologies | |
JP6526605B2 (ja) | 仮想カメラ画像生成装置 | |
US20240153207A1 (en) | Systems, methods, and media for filtering points of a point cloud utilizing visibility factors to generate a model of a scene | |
JPH11250285A (ja) | 3次元情報表示システム及び方法 |
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 |