CN111727924B - 一种立体显示环境下混合现实鱼缸***及生成方法 - Google Patents
一种立体显示环境下混合现实鱼缸***及生成方法 Download PDFInfo
- Publication number
- CN111727924B CN111727924B CN202010676771.8A CN202010676771A CN111727924B CN 111727924 B CN111727924 B CN 111727924B CN 202010676771 A CN202010676771 A CN 202010676771A CN 111727924 B CN111727924 B CN 111727924B
- Authority
- CN
- China
- Prior art keywords
- fish
- real
- virtual
- point
- real fish
- 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
- 241000251468 Actinopterygii Species 0.000 title claims abstract description 247
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000001514 detection method Methods 0.000 claims abstract description 41
- 238000013507 mapping Methods 0.000 claims abstract description 9
- 238000003384 imaging method Methods 0.000 claims abstract description 6
- 230000008859 change Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 24
- 210000003128 head Anatomy 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 8
- 239000000203 mixture Substances 0.000 claims description 5
- 238000000926 separation method Methods 0.000 claims description 5
- 230000004888 barrier function Effects 0.000 claims description 4
- 230000004927 fusion Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 17
- 230000009466 transformation Effects 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 239000011521 glass Substances 0.000 description 6
- 230000009182 swimming Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000005286 illumination Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009323 psychological health Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01K—ANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
- A01K63/00—Receptacles for live fish, e.g. aquaria; Terraria
- A01K63/003—Aquaria; Terraria
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01K—ANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
- A01K63/00—Receptacles for live fish, e.g. aquaria; Terraria
- A01K63/003—Aquaria; Terraria
- A01K63/006—Accessories for aquaria or terraria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
Landscapes
- Life Sciences & Earth Sciences (AREA)
- Environmental Sciences (AREA)
- Engineering & Computer Science (AREA)
- Marine Sciences & Fisheries (AREA)
- Animal Husbandry (AREA)
- Biodiversity & Conservation Biology (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供了一种立体显示环境下混合现实鱼缸***及生成方法,实时获取真鱼位置和用户头部位置;对获取的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置;利用获得的真鱼位置信息,将其映射到虚拟场景中,在真鱼附近放置虚拟的真鱼标签,并对真鱼和虚拟物体进行实时的碰撞检测,使虚拟物体有效规避真鱼的碰撞,同时检测真鱼是否遮挡虚拟场景,以有效获取场景信息;利用立体显示的成像原理,将虚拟鱼精准地置于鱼缸环境中,将虚拟鱼与鱼缸环境融为一体。本公开实现了MR鱼缸内容的虚实融合,生成的立体画面更生动、真实,为用户提供一种具有真实感的混合现实体验。
Description
技术领域
本公开属于虚拟现实交互技术领域,涉及一种立体显示环境下混合现实鱼缸***及生成方法。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
鱼缸和鱼对人的身心健康有积极的作用。O’Haire等人研究发现鱼缸具有舒缓作用,观察鱼类会产生放松效果,且会吸引人的注意力,是一种模拟自然的合适方式。此外,鱼缸是中国家庭常见的观赏设备,构造比较简单、成本也不高,因此利用混合现实(MR)技术,以鱼缸为载体,可以设计一个简单、生动的能力训练和素质拓展平台。
虚实融合技术致力于实现人、真实环境和虚拟环境三者之间的无缝融合,从而达到自然逼真的人机交互效果,这也是当前研究的共同目标。构建虚实融合的混合环境,不仅涉及虚拟与真实环境的融合呈现,还包括高精度定位、光学显示、多感知交互等多种关键技术。但是,目前有些混合现实***,只是简单地将虚拟环境叠加在真实环境中,而没有考虑真实物体与虚拟环境的有效融合,无法达到混合现实的效果。
目前,基于混合现实技术的鱼缸中存在的问题主要表现在:
鱼缸内真实鱼类的来回游动,对虚拟场景造成一定的遮挡,使用户无法有效地获取虚拟场景信息;将虚拟环境叠加在真实环境中,而没有考虑真实物体与虚拟环境的有效融合,无法达到混合现实的效果。因此,虚实遮挡不仅削弱了混合现实鱼缸的视觉沉浸感,而且进一步影响了用户的交互体验。
发明内容
本公开为了解决上述问题,提出了一种立体显示环境下混合现实鱼缸***及生成方法,本公开实现了MR鱼缸中内容的虚实融合,生成的立体画面更生动、真实,为用户提供一种具有真实感的混合现实体验。该发明通过对鱼缸内真实鱼类进行实时的检测,获取其坐标位置,再利用光折射方法实时补偿折射对其位置的影响。在此位置信息的基础上,采用立体渲染方法,实时地在真实鱼缸内显示真鱼标签,并实现虚拟鱼与真鱼的碰撞检测和规避。另外,解决了真鱼对虚拟场景的遮挡问题,使用户能够有效获取场景信息。
根据一些实施例,本公开采用如下技术方案:
一种立体显示环境下混合现实鱼缸***,包括:
位置追踪模块,被配置为实时获取真鱼位置和用户头部位置;
折射补偿模块,被配置为对获取的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置;
虚拟内容设置模块,被配置为利用获得的真鱼位置信息,将其映射到虚拟场景中,在真鱼附近放置虚拟的真鱼标签,并对真鱼和虚拟物体进行实时的碰撞检测,使虚拟物体有效规避真鱼的碰撞,同时检测真鱼是否遮挡虚拟场景,以有效获取场景信息;
立体显示模块,被配置为利用立体显示的成像原理,将虚拟鱼精准地置于鱼缸环境中,将虚拟鱼与鱼缸环境融为一体。
作为可选择的实施方式,所述位置追踪模块,包括至少两个RGB-D相机,分别对真鱼位置、用户头部位置进行实时获取。
作为可选择的实施方式,所述位置追踪模块,在分辨率为W×H的深度图像上,使用混合高斯模型分离算法对单只鱼的游动进行检测。
作为可选择的实施方式,所述折射补偿模块,利用斯涅尔定律计算折射补偿值。
作为可选择的实施方式,所述虚拟内容设置模块,被配置为进行真鱼遮挡检测,具体为,配置一按钮,确定按钮与人眼之间是否有真鱼的遮挡,如果存在遮挡,用户无法看到按钮,所述虚拟内容设置模块对按钮位置进行更新。
作为可选择的实施方式,所述虚拟内容设置模块,被配置为进行真鱼标签实时显示,利用真鱼位置信息,实时在真鱼的位置附近配置一个虚拟的标签,标注有真鱼信息,并跟随真鱼进行移动。
作为可选择的实施方式,所述虚拟内容设置模块,被配置为进行真鱼和虚拟鱼的碰撞检测和规避,具体包括规划虚拟鱼的漫游路径;在真鱼周围设置碰撞体,控制虚拟鱼在漫游过程中通过向前方发射射线并进行碰撞检测判断前方是否存在障碍物,设置虚拟鱼的规避方向。
一种立体显示环境下混合现实鱼缸生成方法,包括以下步骤:
实时获取真鱼位置和用户头部位置;
对获取的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置;
利用获得的真鱼位置信息,将其映射到虚拟场景中,在真鱼附近放置虚拟的真鱼标签,并对真鱼和虚拟物体进行实时的碰撞检测,控制虚拟物体有效规避真鱼的碰撞,检测真鱼是否遮挡虚拟场景,以有效获取场景信息;
利用立体显示的成像原理,将虚拟鱼精准地置于鱼缸环境中,将虚拟鱼与鱼缸环境融为一体,得到虚实融合的混合现实鱼缸。
作为可选择的实施方式,对获取的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置的具体过程包括:
根据虚像PK和Kinect相机空间坐标系的原点的位置关系,可以计算进入Kinect相机的折射光线的折射角;
根据斯涅尔定律,则求得该光线的入射角;
根据物点P的z坐标和折射点i的z坐标,计算求得物点P的x坐标与折射点i的x坐标的差值,进一步确定物点P的x坐标和y坐标;
拟合出折射前后物点位置z坐标和虚像深度位置之间的关系,根据虚像PK在水中的深度位置,求出未发生折射前实际的深度位置,即物点P的z坐标。
作为可选择的实施方式,利用获得的真鱼位置信息,将其映射到虚拟场景中的过程包括:将真鱼以及人眼的位置转换到同一坐标系下,即进行骨骼追踪的Kinect相机空间中。
作为可选择的实施方式,检测真鱼是否遮挡虚拟场景的具体过程包括:在虚拟场景中配置一按钮,根据按钮、真鱼以及人眼的位置,计算真鱼到人眼与按钮之间直线的距离d;
根据按钮和真鱼的大小,设置遮挡阈值;
比较计算的距离d和遮挡阈值,若距离d小于等于遮挡阈值,则发生遮挡,需要对按钮位置进行更新。
作为可选择的实施方式,控制虚拟物体有效规避真鱼的碰撞的具体过程包括:规划虚拟鱼的漫游路径;在真鱼周围设置碰撞体,控制虚拟鱼在漫游过程中通过向前方发射射线并进行碰撞检测判断前方是否存在障碍物,设置虚拟鱼的规避方向。
作为可选择的实施方式,规划虚拟鱼的漫游路径的具体过程包括:
采用柏林噪声随机产生平滑的速度;
设置徘徊周期和变化概率两个参数,其中徘徊周期决定角度变化的时间间隔;变化概率决定徘徊周期内是否进行角度变化,每个徘徊周期内产生0到1之间的随机数,若随机数小于变化概率,则设置随机角度,并按照该角度改变虚拟鱼的方向,否则,不改变虚拟鱼的方向。
作为可选择的实施方式,设置虚拟鱼的规避方向的具体过程包括:
根据射线碰撞检测获取碰撞点和射线反射方向,计算得到反射点,计算反射点到碰撞点的距离;
在鱼缸内部取一点,将该点和反射点的重点作为规避的目标点;
由目标点和虚拟鱼当前位置计算规避方向向量,按照规避方向向量进行规避。
与现有技术相比,本公开的有益效果为:
本公开实现了MR鱼缸内容的虚实融合,生成的立体画面更生动、真实,为用户提供一种具有真实感的混合现实体验;
本公开的技术方案用户不需要额外的训练,使用自然的交互方式即可,应用范围广,适用于多种环境,如实验室、医院、普通家庭环境等,可以用于认知训练、语言学习、词汇学习或康复治疗训练中。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1(a)、图1(b)为***架构图;
图2(a)、图2(b)、图2(c)为使用混合高斯模型分离算法在深度图像上的检测结果及前景截图;
图3为折射示意图;
图4(a)、图4(b)为分析鱼缸内相同位置,在发生折射前后其深度位置变化的实验示意图;
图5为折射前和折射后的深度位置在Matlab中的拟合关系;
图6(a)-(c)为用户观看立体投影的效果;
图7为按钮被真鱼遮挡示意图;
图8为屏幕坐标系与Kinect坐标系图;
图9(a)-(c)为真鱼的虚拟标签跟随显示效果;
图10为障碍规避示意图;
图11(a)、图11(b)为虚拟鱼障碍物规避效果对比图;
图12(a)、图12(b)为虚拟鱼规避真鱼效果图。
具体实施方式:
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
一种立体显示环境下混合现实鱼缸***主要包括位置追踪模块、折射补偿模块、立体显示模块、虚拟内容设置模块。
位置追踪模块:利用两个RGB-D相机分别对真鱼位置、用户头部位置进行实时获取,本实施例以Kinect相机为例进行说明。
折射补偿模块:折射补偿对检测的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置。
立体显示模块:利用立体显示的成像原理,将虚拟鱼精准地“放置”在真实的鱼缸环境中,借助显示设备将虚拟鱼与真实鱼缸环境融为一体,呈现给用户感官效果真实的新体验,实现虚实融合的混合现实鱼缸。
虚拟内容设置模块:虚拟内容设置利用获得的真鱼位置信息,将其映射到虚拟场景中,在真鱼附近放置虚拟的真鱼标签,并对真鱼和虚拟物体进行实时的碰撞检测,使虚拟物体有效规避真鱼的碰撞,同时检测真鱼是否遮挡虚拟场景,使用户可以有效获取场景信息。
所述的位置追踪模块,在分辨率为W×H的深度图像上(Kinect深度图像分辨率为512×424),使用混合高斯模型分离算法对单只鱼的游动进行检测。这是一种基于自适应混合高斯背景建模的背景差分法。并且,在Kinect深度图像上使用该算法,能够有效避免光照的突然变化。
所述的折射模块,利用斯涅尔定律计算折射补偿,由于从鱼到Kinect只穿过了一层玻璃,且玻璃比较薄可以被忽略掉。
所述的立体显示模块,利用立体视觉及立体渲染技术,将虚拟场景信息以出屏的立体效果,显示在真实的鱼缸环境中。
所述虚拟内容设置模块,包括真鱼遮挡处理、真鱼标签实时显示和碰撞检测和规避,其具体如下:
1.真鱼遮挡处理:真鱼遮挡处理包括真鱼遮挡检测和按钮位置更新,其中真鱼遮挡检测指的是,检测按钮与人眼之间是否有真鱼的遮挡,如果存在遮挡,则会使用户无法看到按钮,此时对按钮位置进行更新。
2.真鱼标签实时显示:为了有效构建虚实融合的鱼缸环境,本实施例在虚拟内容上设置了真鱼标签的实时显示,即利用真鱼位置信息,实时在真鱼的位置附近放置一个虚拟的标签,跟随真鱼进行移动,以增加用户对鱼类的了解。
3.碰撞检测和规避:为了避免混合现实鱼缸中真鱼和虚拟鱼的碰撞,本实施例提出碰撞检测和规避算法。该算法主要包括虚拟鱼漫游路径规划、障碍规避和虚拟鱼位置更新三部分。
(1)虚拟鱼的漫游路径规划:虚拟鱼的漫游指的是虚拟鱼在真实鱼缸中进行无规律、无目的地游动。
(2)障碍规避:障碍规避包括障碍物检测和规避方向设置两个阶段。其中障碍物检测基于碰撞检测实现。通过真鱼标签实时显示,能够在真鱼周围设置碰撞体。虚拟鱼在漫游过程中通过向前方发射射线并进行碰撞检测判断前方是否存在障碍物。检测到障碍物之后需要设置虚拟鱼的规避方向,避免虚拟鱼和真鱼的碰撞。
(3)虚拟鱼位置更新:漫游路径规划和障碍规避主要是对虚拟鱼的方向进行改变,要实现虚拟鱼的游动效果,还需要实时改变其位置。
通过对鱼缸内真实鱼类进行实时的检测,获取其坐标位置,再利用基于光折射的触摸偏移补偿方法实时补偿折射对其位置的影响。在此位置信息的基础上,采用立体渲染方法,实时地在真实鱼缸内显示真鱼标签,并实现虚拟鱼与真鱼的碰撞检测和规避,增强混合现实界面的真实感。此外,解决了真鱼对按钮的遮挡问题。该技术实现了虚实融合的混合现实鱼缸,其立体画面更为生动、真实,为用户提供一种新颖的混合现实体验。一种典型的实施方式,图1(a)为***硬件架构图,主要硬件设备有:投影仪、主机、立体眼镜、改造的鱼缸和RGB-D相机(以Kinect为例)。其中,我们对普通鱼缸进行了改造,鱼缸的一面装有液晶调光膜,用于投影显示;另一面装有红外触摸屏,支持触控操作。为了避免用户遮挡Kinect影响真鱼检测,本实施例将进行真鱼检测的Kinect放置在鱼缸的侧面,而在鱼缸的正面放置另一台Kinect,来进行骨骼追踪,实现真鱼遮挡处理。
图1(b)为***的功能架构图,立体显示环境下MR鱼缸***主要包括四个部分:位置追踪、折射补偿、虚拟内容设置和立体显示。首先,位置追踪是基础部分,利用Kinect分别对真鱼位置和用户头部位置进行实时获取。其次,折射补偿对检测的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置。接着,虚拟内容设置利用获得的真鱼位置信息,将其映射到虚拟场景中,在真鱼附近放置虚拟的真鱼标签,并对真鱼和虚拟物体进行实时的碰撞检测,使虚拟物体有效规避真鱼的碰撞,同时检测真鱼是否遮挡虚拟场景,使用户可以有效获取场景信息。最后,利用立体显示原理,将虚拟内容立体的显示在真实鱼缸内。
检测方法为在Kinect深度图像上使用混合高斯模型分离算法,在Kinect获取的深度图像中,每一个像素点都包含着该点对应的深度信息,通过MapDepthFrameToCameraSpace,可以得到深度数据对应的三维坐标数据。因此,可以通过运动目标在深度图像上的像素坐标,得到其在Kinect相机空间中的三维坐标PK。从图中可以看出,在深度图像上进行检测时,大多数情况下如2(a)所示,可以得到比较理想的检测结果。并且,当真鱼游到玻璃处,在深度图像上的玻璃处并不会产生镜像,如2(b)。此外,由于深度图像不会受到光照影响,所以当光照突然发生变化时,真鱼的检测效果也不会受到影响,如2(c)。
如图3所示为折射示意图,下面介绍其计算过程:
步骤五:由于只有一条入射光线,无法确定鱼的实际位置,所以我们对鱼缸内相同位置发生折射前后的深度位置的变化进行了探索。我们针对鱼缸内72个不同的位置,在加水前(未发生折射)和加水后(发生折射),分别利用Kinect收集了它们的深度位置信息,紧接着利用Matlab拟合出了二者之间的回归方程:z折射前=a*z折射后+b。利用该回归方程,根据虚像PK在水中的深度位置,求出未发生折射前实际的深度位置,也就是物点P的z坐标。至此,利用入射光线与实际深度位置,可求出鱼在水中的实际位置P。
如图4(a)、图4(b)所示为折射补偿模块计算物点P的z坐标实验图,我们在鱼缸底部放置一块长条,上面贴有12个硬币,作为标记物体,在加水前(未发生折射,如图4(a))和加水后(发生折射,如图4(b)),分别通过人工在Kinect深度图像上进行鼠标点击标记物体的操作,获得标记物体的深度位置。在6组不同的深度位置上重复以上操作,最终获得12×6=72个不同位置的深度位置信息。其中,去掉9个异常数据(包括深度值缺失和异常),最终得到63个有效数据。
如图5为折射前和折射后的深度位置在Matlab中的拟合关系图。利用Matlab拟合出了折射前与折射后深度位置之间的回归方程:z折射前=a*z折射后+b。
图6(a)和6(b)分别是用户佩戴立体眼镜时通过左、右眼看到的画面,两幅画面是不同的,通过裁剪变换,使得用户左右眼产生视差,进而产生立体视觉效果。6(c)为用户裸眼观看的画面,可以看到有重影出现,本实施例使用的立体投影仪以60Hz的频率交替投影左右眼画面,故用户裸眼观看为重影效果。
如图7所示,鱼缸内真实游动的鱼类有时会遮挡用户的视线。为了减少真鱼对虚拟场景的遮挡,保证用户有效获取信息,本实施例提出真鱼遮挡处理方法,真鱼遮挡处理包括真鱼遮挡检测和按钮位置更新。
在进行检测之前,首先把按钮、真鱼以及人眼的位置转换到同一坐标系下,即进行骨骼追踪的Kinect相机空间中。
通过屏幕坐标系到Kinect坐标系的坐标映射方法(如图8所示方法),可以将进行骨骼追踪的Kinect相机空间坐标与Unity的屏幕坐标进行转换,得到两个坐标系的变换矩阵C′1和C′2,其中,C′1是将屏幕坐标系对齐到进行骨骼追踪的Kinect相机空间坐标系的变换矩阵,C′2是将进行骨骼追踪的Kinect相机空间坐标系对齐到屏幕坐标系的变换矩阵。
通过上述坐标映射,可以获得按钮在进行骨骼追踪的Kinect相机空间中的实际位置Pbutton,即Pbutton=C'1Pbutton',其中Pbutton'为按钮在Unity屏幕坐标系下的坐标。
在进行真鱼检测的Kinect相机空间中,未发生折射前的真鱼实际位置Pfish可以参照位置折射补偿模块获得,使用三点法计算七参数模型,求解两个Kinect相机空间坐标系之间的变换矩阵,将其转换到进行骨骼追踪的Kinect相机空间中。
而人眼在进行骨骼追踪的Kinect相机空间中的位置Peye,则可直接通过头部位置估计获得。
判断遮挡的计算过程如下:
1)根据按钮、真鱼以及人眼的位置Pbutton、Pfish和Peye,计算真鱼到人眼与按钮之间直线的距离d:
2)根据按钮和真鱼的大小Sbutton、Sfish,设置遮挡阈值T:
3)将公式1计算的距离d与遮挡阈值T进行比较:
d≤T (3)
如果满足公式3的遮挡条件,则说明按钮被真鱼挡住,需要对按钮位置进行更新。更新策略如下:在按钮的上方和下方设置两个候选位置,如果满足遮挡条件,则随机移动到候选位置。为了防止按钮移出画面外,为按钮设置上下的界限,如果超过某个方向的界限,则朝相反方向移动。
如图8为屏幕坐标与Kinect坐标映射。由于我们将Kinect放置在正对鱼缸的位置,默认Kinect的相机空间坐标系的x-y平面屏幕坐标系的x-y平面是平行的,所以屏幕坐标系的x-y平面在Kinect相机空间中的z值是固定的。将复杂的三维直角坐标系与二维坐标系之间的变换,简化成了二维坐标系与二维坐标系之间的变换。
在鱼缸表面的左下角和右上角,各自固定了一个红色的圆形纸片,作为两个标记点,分别对应屏幕坐标系的原点(0,0)和点(screen.width,screen.height),其中,屏幕坐标与屏幕的分辨率有关,单位为像素。同时,统计标记点在Kinect相机空间坐标系下的三维坐标,其中,Kinect相机空间坐标系的单位为米。
在得到两组对应的二维点与三维点后,我们可以计算得到两个坐标系之间的旋转矩阵R1、R2和平移向量t1、t2。将屏幕坐标系对齐到Kinect相机空间坐标系的变换矩阵可表示为C1=(R1|t1),将Kinect相机空间坐标系对齐到屏幕坐标系的变换矩阵可表示为C2=(R2|t2)。
如图9(a)-(c)为真鱼游动过程中,真鱼的虚拟标签实时跟随真鱼显示的效果图,其中在真鱼上方的红色字母Nemo即为真鱼的虚拟标签。在真鱼附近放置虚拟标签,最重要的就是要获得真鱼在虚拟场景坐标系中的位置。通过参考位置折射补偿模块,我们可以实时获取真鱼在进行真鱼检测的Kinect相机空间中的实际位置P,同时利用真鱼遮挡处理部分求得的变换矩阵C'2,可将真鱼在进行骨骼追踪的Kinect相机空间中的位置P,转换成屏幕坐标系下的位置P1,即P1=C'2P。但是,由于要添加的真鱼标签,在虚拟场景中是以Unity的世界坐标存在的,所以还需要进行再一次的坐标映射,将Unity屏幕坐标转换到世界坐标。Unity的世界坐标系是一个三维直角坐标系,将二维的屏幕坐标转换成三维的世界坐标,需要添加额外的z值信息,否则会发生转换错误。本文直接将真鱼在进行骨骼追踪的Kinect相机空间中的实际位置P的z值作为额外信息,加入屏幕坐标到世界坐标的转换过程中,利用ScreenToWorldPoint获得P1对应的世界坐标P2,即P2=ScreenToWorldPoint(P1x,P1y,Pz)。在经过一系列坐标映射获得的P2位置处,放置一个虚拟的真鱼标签,这样就可以实现真鱼和虚拟标签的位置匹配。
如图10为障碍规避示意图,该图展示了目标点和虚拟鱼的规避方向。规避方向计算过程如下:
1)由射线碰撞检测获取碰撞点Phit和射线反射方向Vref,计算得到反射点Pref,Pref计算公式入公式4所示,其中T为反射点到碰撞点的距离;
Pref=Phit+Vref*T (4)
2)为了防止虚拟鱼跑出鱼缸外,在鱼缸内部取点Ptank,计算Ptank和Pref的中点作为规避的目标点Pgoal,即
3)由目标点Pgoal和虚拟鱼当前位置Pfish计算规避方向向量Vavoid,规避方向计算如公式6所示。
Vavoid=Pgoal-Pfish (6)
其中,漫游通过实时改变鱼的位置和方向实现,本文给出的漫游路径规划即包括虚拟鱼的漫游速度设置和方向设置两个部分。速度设置方面,为了实现更加自然的虚拟鱼游动效果,本文动态设置漫游速度。另外,为了平稳改变漫游速度,本实施例采用柏林噪声随机产生平滑的速度SpeedW。方向设置的目的是防止虚拟鱼沿同一方向运动,让虚拟鱼的运动更加接近真实。为了使方向变化更加自然,本文设置徘徊周期PeriodW和变化概率ProbabilityW两个参数。其中PeriodW决定角度变化的时间间隔;ProbabilityW决定徘徊周期内是否进行角度变化,每个徘徊周期内产生0到1之间的随机数RW,若RW小于ProbabilityW则设置随机角度AngleW,并改变虚拟鱼的方向,否则不改变虚拟鱼的方向。
如图11(a)为未进行障碍规避的效果,虚拟鱼和代表真鱼的物体发生遮挡;图11(b)为加入障碍规避的效果,虚拟鱼遇到真鱼后改变漫游方向。
图12(a)为虚拟鱼初始的漫游状态,此时虚拟鱼朝向真鱼方向游动;图12(b)为虚拟鱼检测到真鱼后进行规避的效果,此时虚拟鱼改变漫游方向游动。漫游路径规划和障碍规避主要是对虚拟鱼的方向进行改变,要实现虚拟鱼的游动效果,还需要实时改变其位置。本文利用漫游路径规划中获取的位移速度SpeedW、虚拟鱼实时的方位Rfish以及虚拟鱼上一帧的位置Pprev计算虚拟鱼在当前帧中的位置Pcur。其位置计算公式如公式7所示,其中dp为每一帧虚拟鱼的位置增量。
Pcur=Pprev+Rfish*SpeedW*dp (7)
本领域内的技术人员应明白,本公开的实施例可提供为方法、***、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
Claims (5)
1.一种立体显示环境下混合现实鱼缸***,其特征是:包括:
位置追踪模块,被配置为实时获取真鱼位置和用户头部位置;
折射补偿模块,被配置为对获取的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置;
虚拟内容设置模块,被配置为利用获得的真鱼位置信息,将其映射到虚拟场景中,在真鱼附近放置虚拟的真鱼标签,并对真鱼和虚拟物体进行实时的碰撞检测,使虚拟物体有效规避真鱼的碰撞,同时检测真鱼是否遮挡虚拟场景,以有效获取场景信息;
所述虚拟内容设置模块,被配置为进行真鱼遮挡检测,具体为,配置一按钮,确定按钮与人眼之间是否有真鱼的遮挡,如果存在遮挡,用户无法看到按钮,所述虚拟内容设置模块对按钮位置进行更新;
所述虚拟内容设置模块,被配置为进行真鱼标签实时显示,利用真鱼位置信息,实时在真鱼的位置附近配置一个虚拟的标签,标注有真鱼信息,并跟随真鱼进行移动;
所述虚拟内容设置模块,被配置为进行真鱼和虚拟鱼的碰撞检测和规避,具体包括规划虚拟鱼的漫游路径;在真鱼周围设置碰撞体,控制虚拟鱼在漫游过程中通过向前方发射射线并进行碰撞检测判断前方是否存在障碍物,设置虚拟鱼的规避方向;
立体显示模块,被配置为利用立体显示的成像原理,将虚拟鱼精准地置于鱼缸环境中,将虚拟鱼与鱼缸环境融为一体;
规划虚拟鱼的漫游路径的具体过程包括:
采用柏林噪声随机产生平滑的速度;
设置徘徊周期和变化概率两个参数,其中徘徊周期决定角度变化的时间间隔;变化概率决定徘徊周期内是否进行角度变化,每个徘徊周期内产生0到1之间的随机数,若随机数小于变化概率,则设置随机角度,并按照该角度改变虚拟鱼的方向,否则,不改变虚拟鱼的方向;
设置虚拟鱼的规避方向的具体过程包括:
根据射线碰撞检测获取碰撞点和射线反射方向,计算得到反射点,计算反射点到碰撞点的距离;
在鱼缸内部取一点,将该点和反射点的重点作为规避的目标点;
由目标点和虚拟鱼当前位置计算规避方向向量,按照规避方向向量进行规避。
2.如权利要求1所述的一种立体显示环境下混合现实鱼缸***,其特征是:所述位置追踪模块,包括至少两个RGB-D相机,分别对真鱼位置、用户头部位置进行实时获取。
3.如权利要求1所述的一种立体显示环境下混合现实鱼缸***,其特征是:所述位置追踪模块,在分辨率为W×H的深度图像上,使用混合高斯模型分离算法对单只鱼的游动进行检测。
4.如权利要求1所述的一种立体显示环境下混合现实鱼缸***,其特征是:所述折射补偿模块,利用斯涅尔定律计算折射补偿值。
5.一种立体显示环境下混合现实鱼缸生成方法,其特征是:包括以下步骤:
实时获取真鱼位置和用户头部位置;
对获取的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置;
利用获得的真鱼位置信息,将其映射到虚拟场景中,在真鱼附近放置虚拟的真鱼标签,并对真鱼和虚拟物体进行实时的碰撞检测,控制虚拟物体有效规避真鱼的碰撞,检测真鱼是否遮挡虚拟场景,以有效获取场景信息;
利用立体显示的成像原理,将虚拟鱼精准地置于鱼缸环境中,将虚拟鱼与鱼缸环境融为一体,得到虚实融合的混合现实鱼缸;
对获取的真鱼位置进行补偿,获得真鱼在Kinect相机空间中的真实位置的具体过程包括:
根据虚像P K 和Kinect相机空间坐标系的原点的位置关系,可以计算进入Kinect相机的折射光线的折射角;
根据斯涅尔定律,则求得该光线的入射角;
根据物点P的z坐标和折射点i的z坐标,计算求得物点P的x坐标与折射点i的x坐标的差值,进一步确定物点P的x坐标和y坐标;
拟合出折射前后物点位置z坐标和虚像深度位置之间的关系,根据虚像P K 在水中的深度位置,求出未发生折射前实际的深度位置,即物点P的z坐标;
检测真鱼是否遮挡虚拟场景的具体过程包括:在虚拟场景中配置一按钮,根据按钮、真鱼以及人眼的位置,计算真鱼到人眼与按钮之间直线的距离d;
根据按钮和真鱼的大小,设置遮挡阈值;
比较计算的距离d和遮挡阈值,若距离d小于等于遮挡阈值,则发生遮挡,需要对按钮位置进行更新;
控制虚拟物体有效规避真鱼的碰撞的具体过程包括:规划虚拟鱼的漫游路径;在真鱼周围设置碰撞体,控制虚拟鱼在漫游过程中通过向前方发射射线并进行碰撞检测判断前方是否存在障碍物,设置虚拟鱼的规避方向;
规划虚拟鱼的漫游路径的具体过程包括:
采用柏林噪声随机产生平滑的速度;
设置徘徊周期和变化概率两个参数,其中徘徊周期决定角度变化的时间间隔;变化概率决定徘徊周期内是否进行角度变化,每个徘徊周期内产生0到1之间的随机数,若随机数小于变化概率,则设置随机角度,并按照该角度改变虚拟鱼的方向,否则,不改变虚拟鱼的方向;
设置虚拟鱼的规避方向的具体过程包括:
根据射线碰撞检测获取碰撞点和射线反射方向,计算得到反射点,计算反射点到碰撞点的距离;
在鱼缸内部取一点,将该点和反射点的重点作为规避的目标点;
由目标点和虚拟鱼当前位置计算规避方向向量,按照规避方向向量进行规避。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010676771.8A CN111727924B (zh) | 2020-07-14 | 2020-07-14 | 一种立体显示环境下混合现实鱼缸***及生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010676771.8A CN111727924B (zh) | 2020-07-14 | 2020-07-14 | 一种立体显示环境下混合现实鱼缸***及生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111727924A CN111727924A (zh) | 2020-10-02 |
CN111727924B true CN111727924B (zh) | 2022-03-18 |
Family
ID=72655265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010676771.8A Active CN111727924B (zh) | 2020-07-14 | 2020-07-14 | 一种立体显示环境下混合现实鱼缸***及生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111727924B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176733A (zh) * | 2011-12-20 | 2013-06-26 | 西安天动数字科技有限公司 | 电子互动鱼缸*** |
CN104375778A (zh) * | 2014-11-25 | 2015-02-25 | 湖南大学 | 智能交互式水族箱展示*** |
CN205485918U (zh) * | 2016-01-12 | 2016-08-17 | 上海盟云移软网络科技股份有限公司 | 一种水中虚拟现实体验*** |
US9635305B1 (en) * | 2012-11-03 | 2017-04-25 | Iontank, Ltd. | Display apparatus including a transparent electronic monitor |
CN107274438A (zh) * | 2017-06-28 | 2017-10-20 | 山东大学 | 支持移动虚拟现实应用的单Kinect多人跟踪***及方法 |
CN107340870A (zh) * | 2017-07-13 | 2017-11-10 | 深圳市未来感知科技有限公司 | 一种融合vr和ar的虚拟现实展示***及其实现方法 |
CN109471521A (zh) * | 2018-09-05 | 2019-03-15 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | Ar环境下的虚实遮挡交互方法及*** |
CN109616179A (zh) * | 2018-12-07 | 2019-04-12 | 山东大学 | 自闭症谱系障碍混合现实康复训练***及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107390224A (zh) * | 2017-07-21 | 2017-11-24 | 歌尔科技有限公司 | 障碍物检测方法、装置和虚拟现实显示设备 |
CN108898676B (zh) * | 2018-06-19 | 2022-05-13 | 青岛理工大学 | 一种虚实物体之间碰撞及遮挡检测方法及*** |
-
2020
- 2020-07-14 CN CN202010676771.8A patent/CN111727924B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176733A (zh) * | 2011-12-20 | 2013-06-26 | 西安天动数字科技有限公司 | 电子互动鱼缸*** |
US9635305B1 (en) * | 2012-11-03 | 2017-04-25 | Iontank, Ltd. | Display apparatus including a transparent electronic monitor |
CN104375778A (zh) * | 2014-11-25 | 2015-02-25 | 湖南大学 | 智能交互式水族箱展示*** |
CN205485918U (zh) * | 2016-01-12 | 2016-08-17 | 上海盟云移软网络科技股份有限公司 | 一种水中虚拟现实体验*** |
CN107274438A (zh) * | 2017-06-28 | 2017-10-20 | 山东大学 | 支持移动虚拟现实应用的单Kinect多人跟踪***及方法 |
CN107340870A (zh) * | 2017-07-13 | 2017-11-10 | 深圳市未来感知科技有限公司 | 一种融合vr和ar的虚拟现实展示***及其实现方法 |
CN109471521A (zh) * | 2018-09-05 | 2019-03-15 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | Ar环境下的虚实遮挡交互方法及*** |
CN109616179A (zh) * | 2018-12-07 | 2019-04-12 | 山东大学 | 自闭症谱系障碍混合现实康复训练***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111727924A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230324684A1 (en) | Head-mounted display for virtual and mixed reality with inside-out positional, user body and environment tracking | |
Diaz et al. | Designing for depth perceptions in augmented reality | |
US8890812B2 (en) | Graphical user interface adjusting to a change of user's disposition | |
US20100225743A1 (en) | Three-Dimensional (3D) Imaging Based on MotionParallax | |
CN103337095B (zh) | 一种真实空间三维地理实体的立体虚拟显示方法 | |
Tomioka et al. | Approximated user-perspective rendering in tablet-based augmented reality | |
US20180136716A1 (en) | Method for operating a virtual reality system, and virtual reality system | |
US20150042640A1 (en) | Floating 3d image in midair | |
US20190371072A1 (en) | Static occluder | |
CN105992965A (zh) | 响应于焦点移位的立体显示 | |
Livingston et al. | Pursuit of “X-ray vision” for augmented reality | |
US10235806B2 (en) | Depth and chroma information based coalescence of real world and virtual world images | |
KR20130108643A (ko) | 응시 및 제스처 인터페이스를 위한 시스템들 및 방법들 | |
JP2024054137A (ja) | 画像表示システム | |
CN107810634A (zh) | 用于立体增强现实的显示器 | |
US20210407125A1 (en) | Object recognition neural network for amodal center prediction | |
Yamashita et al. | AquaCAVE: An Underwater Immersive Projection System for Enhancing the Swimming Experience. | |
CN111727924B (zh) | 一种立体显示环境下混合现实鱼缸***及生成方法 | |
KR101177793B1 (ko) | 입체영상 체험 장치 및 방법 | |
EP4365887A1 (en) | Image display system and image display method | |
Lin | Lightweight and Sufficient Two Viewpoint Connections for Augmented Reality | |
KR20100062774A (ko) | 동화상 입력장치를 이용한 3차원 가상현실 디스플레이 시스템 및 방법 | |
JPH0415772A (ja) | 視線追従形高速画像生成表示方法 | |
Fiore | Enhanced Interaction in Immersive Virtual Environments | |
Liu et al. | 20‐4: An AI‐Driven Aquarium Guide System for Intelligent Museum |
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 |