1.本发明涉及一种同时追踪可移动物体与可移动相机的六自由度方位的方法与系统。
背景技术:
2.在现有的追踪技术中,例如同时定位与地图构建技术(simultaneous localization and mapping,slam)可以追踪可移动相机的六自由度方位,但却无法同时追踪可移动物体。原因是可移动相机需要用稳定的环境特征点才能进行定位,而可移动物体的特征点不稳定,通常会被丢弃,无法用于追踪。
3.另一方面,用于追踪可移动物体的技术都会忽略环境特征点以避免干扰,因此这些技术都无法追踪可移动相机。
4.大多数神经网络所学习的特征都是用来区分物体的类型,而不是计算物体的六自由度方位。某些用于辨识姿态或手势的神经网络只能够输出骨胳关节在影像平面的2d坐标(x,y),即使靠深度感测技术估算关节与相机之间的距离,也不是空间中真正的3d坐标,更无法计算空间中的六自由度方位。
5.在运动捕捉系统中,则是使用多个固定相机追踪关节位置,一般会在关节上贴标记以减少误差,没有追踪可移动相机的六自由度方位。
6.因此,就目前已知的技术而言,尚未有任何技术能够做到同时追踪可移动物体与可移动相机。
7.随着混合实境(mixed reality,mr)的快速发展,促使研究人员开发能够同时追踪可移动相机和可移动物体的六个自由度方位的技术。在混合实境的应用中,由于安装在mr眼镜上的相机会随头部移动,因此需要知道相机的六自由度方位才能知道使用者的位置和方向。与使用者互动的物体也会移动,因此还需要知道该物体的六自由度方位才能在适当的位置和方向显示虚拟内容。戴着mr眼镜的使用者可能在室内或室外自由走动,很难在环境中放置标记。而且为了有较好的使用体验,除了物体本身的特征外,也不会在物体上贴特殊的标记。
8.虽然这些情况提高追踪六自由度方位的难度,我们仍开发出能够同时追踪可移动物体与可移动相机的技术,以解决上述这些问题并满足更多的应用。
技术实现要素:
9.本发明所提出的技术例如可以应用于:当使用者戴着mr眼镜时,可以在手持装置,例如:手机的真实荧幕旁显示一个或多个虚拟荧幕,根据手机和mr眼镜上的相机的六自由度方位设定虚拟荧幕的预设位置、方向和大小。并且,通过六自由度方位的追踪,可以自动控制虚拟荧幕旋转和移动,使其与观看方向一致。本发明技术可以为使用者提供以下好处:(1)将小的实体荧幕扩展到大的虚拟荧幕;(2)将单个实体荧幕增加到多个虚拟荧幕,以同
时查看更多应用程序;(3)虚拟荧幕的内容不会被他人窥探。
10.根据本发明的一实施例,提出一种同时追踪可移动物体与可移动相机的六自由度方位(6 dof poses)的方法,包括以下步骤:以可移动相机撷取一连串的影像,从这些影像中提取数个环境特征点,匹配这些环境特征点计算可移动相机的数个相机矩阵,再由这些相机矩阵计算可移动相机的六自由度方位;并同时从可移动相机撷取的这些影像中推算可移动物体的数个特征点,使用这些影像各自对应的相机矩阵,以及预先定义的几何限制和时间限制,修正可移动物体的这些特征点的坐标,再以这些修正后的特征点坐标及其对应的相机矩阵,计算可移动物体的六自由度方位。
11.根据本发明的另一实施例,提出一种同时追踪可移动物体与可移动相机的六自由度方位的系统,包括可移动相机、可移动相机六自由度方位计算单元及可移动物体六自由度方位计算单元。可移动相机用于撷取一连串的影像。可移动相机六自由度方位计算单元用于从这些影像中提取数个环境特征点,匹配这些环境特征点计算可移动相机的数个相机矩阵,再由这些相机矩阵计算可移动相机的六自由度方位。可移动物体六自由度方位计算单元,用于从可移动相机撷取的这些影像中推算可移动物体的数个特征点,通过这些影像各自对应的相机矩阵,以及预先定义的几何限制、和时间限制,修正可移动物体的这些特征点的坐标,再以这些修正后的特征点坐标及其对应的这些相机矩阵,计算可移动物体的六自由度方位。
12.为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合附图详细说明如下:
附图说明
13.图1a、1b绘示本发明同时追踪可移动物体与可移动相机的技术与现有技术相比在应用上的说明;
14.图2a绘示根据一实施例的同时追踪可移动物体与可移动相机的六自由度方位的系统与方法;
15.图2b绘示加入训练阶段的同时追踪可移动物体与可移动相机的六自由度方位的系统与方法;
16.图3a绘示可移动相机撷取的一连串影像中,环境特征点、可移动物体特征点各自的对应关系;
17.图3b示例说明物体在空间的位置与方向;
18.图4a~4b绘示修补可移动物体的特征点;
19.图5a~5d绘示以手机为例的特征点定义及各种训练数据;
20.图6绘示神经网络在训练阶段的结构;
21.图7绘示在相邻的两张影像之间,特征点位移的计算方式;
22.图8绘示时间限制的计算及判定方法;
23.图9绘示缺少时间限制而产生不正确位移的情况;
24.图10绘示加入增量学习的同时追踪可移动物体与可移动相机的六自由度方位的系统与方法;
25.图11绘示应用于mr眼镜的同时追踪可移动物体与可移动相机的六自由度方位的
系统与方法。
26.各附图中符号含义如下所示:
27.100,200,300:同时追踪可移动物体与可移动相机的六自由度方位的系统
28.110:可移动相机
29.120:可移动相机六自由度方位计算单元
30.121:环境特征撷取单元
31.122:相机矩阵计算单元
32.123:相机方位计算单元
33.130:可移动物体六自由度方位计算单元
34.131:物体特征坐标推算单元
35.132:物体特征坐标修正单元
36.133:物体方位计算单元
37.140:训练数据生成单元
38.150:神经网络训练单元
39.260:自动扩增单元
40.270:权重调整单元
41.310:方位修正单元
42.311:交叉比对单元
43.312:修正单元
44.320:方位稳定单元
45.330:视轴计算单元
46.340:荧幕方位计算单元
47.350:立体影像产生单元
48.351:影像产生单元
49.352:成像单元
50.900:可移动物体
51.cd:可移动相机的六自由度方位
52.cm:相机矩阵
53.d,d’,d”:位移
54.d1,d4:实体荧幕
55.d2,d3:虚拟荧幕
56.dd:虚拟荧幕的六自由度方位
57.ef:环境特征点
58.et:特征提取器
59.fl:特征点坐标预测层
60.fv:特征向量
61.g1:mr眼镜
62.gc:几何限制
63.gcl:几何限制层
64.im,im’:影像
65.lv:损失值
66.md:神经网络推论模型
67.m:位移平均值
68.od:可移动物体的六自由度方位
69.of,of’,of*,of**:特征点
70.olv:总损失值
71.p1:手机
72.s:位移标准差
73.st1:训练阶段
74.st2:追踪阶段
75.st3:增量学习阶段
76.tc:时间限制
77.tcl:时间限制层
78.(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x
′2,y
′2),(x
t-1
,y
t-1
),(x
t
′
,y
t
′
),(x
t
″
,y
t
″
),p
t
,p
t-1
,:坐标
79.||p
t-p
t-1
||:位移
80.惩罚值
81.pl:最佳平面
82.c:中心点
83.n:法向量
具体实施方式
84.请参照图1a、1b,其绘示本发明同时追踪可移动物体与可移动相机的技术与现有技术相比在应用上的说明。本发明所提出的技术例如可以应用于:如图1a所示,当使用者戴着mr眼镜g1(mr眼镜g1上配置可移动相机110)时,可以在手持装置,例如:手机p1(即可移动物体900)的真实荧幕旁显示一个或多个虚拟荧幕,根据手机p1和mr眼镜g1上的可移动相机110的六自由度方位设定虚拟荧幕d2、d3的预设位置、方向和大小。可移动相机110的“可移动”是指相对于三维空间的静止物而言。并且,通过六自由度方位的追踪,可以自动控制虚拟荧幕d2、d3旋转和移动,使其与观看方向一致(如图1b所示),使用者也可以根据自己的喜好调整这些虚拟荧幕d2、d3的位置和角度。现有技术所显示的虚拟荧幕会跟着mr眼镜g1移动,不会跟着物体的六自由度方位移动。本发明技术可以为使用者提供以下好处:(1)将小的实体荧幕d1扩展到大的虚拟荧幕d2;(2)将单个实体荧幕d1增加到多个虚拟荧幕d2、d3,以同时查看更多应用程序;(3)虚拟荧幕d2、d3的内容不会被他人窥探。上述技术也可以应用于平板电脑或笔记本电脑,在其实体荧幕旁设置虚拟荧幕。可移动物体900除了实体荧幕以外,还可以是其他能定义特征的物体,例如:汽车、自行车、行人等。可移动相机110不局限是mr眼镜g1上的相机,也可以是自主移动机器人和车辆上的相机。
85.请参照图2a,其绘示根据一实施例的同时追踪可移动物体900(标示于图1a)与可移动相机110的六自由度方位的系统100与方法。可移动物体900例如是图1a的手机p1;可移
动相机110例如是图1a的mr眼镜g1上的相机。同时追踪可移动物体900与可移动相机110的六自由度方位的系统100包括可移动相机110、可移动相机六自由度方位计算单元120及可移动物体六自由度方位计算单元130。可移动相机110用于撷取一连串影像im。可移动相机110可以设置于头戴式立体显示器、移动装置、电脑或机器人上。可移动相机六自由度方位计算单元120及/或可移动物体六自由度方位计算单元130例如是电路、芯片、电路板、程序代码、或储存程序代码的储存装置。
86.可移动相机六自由度方位计算单元120包括环境特征撷取单元121、相机矩阵计算单元122及相机方位计算单元123,其实施方式例如是电路、芯片、电路板、程序代码、或储存程序代码的储存装置。环境特征撷取单元121用于从这些影像im中提取数个环境特征点ef。相机矩阵计算单元122是匹配这些环境特征点ef计算可移动相机110的数个相机矩阵cm。相机方位计算单元123再由相机矩阵cm计算可移动相机110的六自由度方位cd。
87.可移动物体六自由度方位计算单元130包括物体特征坐标推算单元131、物体特征坐标修正单元132及物体方位计算单元133,其实施方式例如是电路、芯片、电路板、程序代码、或储存程序代码的储存装置。物体特征坐标推算单元131用于从可移动相机110撷取的这些影像im中推算可移动物体900的数个特征点of,这些特征点of为预先定义,与可移动相机110撷取的这些影像im做比对,以推算这些特征点of的坐标。其中,可移动物体900为刚性物体。
88.请参照图2b所绘示的另一实施例,同时追踪可移动物体900与可移动相机110的六自由度方位的方法包含训练阶段(training stage)st1和追踪阶段(tracking stage)st2。其中,物体特征坐标推算单元131使用神经网络推论模型md,从可移动相机110撷取的这些影像im中推算可移动物体900特征点of的坐标,神经网络推论模型md为预先训练,训练数据由手动或自动标记获得,在训练过程中加入几何限制gc和时间限制tc。
89.物体特征坐标修正单元132使用这些影像im各自对应的相机矩阵cm,以及预先定义的几何限制gc和时间限制tc,修正可移动物体900的这些特征点of的坐标。其中,物体特征坐标修正单元132使用这些相机矩阵cm,将这些特征点of的二维坐标投影至对应的三维坐标,依据几何限制gc,删除三维坐标偏差大于预定值的特征点of,或以相邻特征点of的坐标依据几何限制gc补充未被侦测到的特征点of的坐标。并且,物体特征坐标修正单元132还依据时间限制tc,比对这些特征点of在多张连续影像im中的坐标变化,再以这些连续影像im中对应的这些特征点of的坐标修正坐标变化大于预定值的特征点of的坐标,得到修正后的这些特征点of’的坐标。
90.请参照图3a,其示例说明可移动相机撷取的一连串影像中,环境特征点、可移动物体特征点各自的对应关系。对于非平面物体来说,则可以通过几个选定的特征点of的质心来定义方向和位置。请参照图3b,其示例说明物体在空间的位置与方向。特征点of拟合出最佳平面pl,最佳平面pl的中心点c可以代表物体在三维空间中的位置(x,y,x),并且用最佳平面pl的法向量n可以表示物体的方向。
91.几何限制gc定义于三维空间中,对于刚性物体,特征点of之间的距离应该是固定的。经过相机矩阵投影至二维影像平面后,所有特征点of的位置须限制在合理的范围内。
92.请参照图4a~4b,其示例说明修正特征点of的坐标。相机矩阵cm不仅可用于计算可移动相机110和可移动物体900的六自由度方位,还可套用三维的几何限制gc,修正特征
点of*投影到二维影像平面的坐标(如图4a所示)或添加缺少的特征点of**坐标(如图4b所示)。
93.物体方位计算单元133再以修正后的这些特征点of’的坐标及其对应的这些相机矩阵cm,计算可移动物体900的六自由度方位od。对于平面的可移动物体,使用这些特征点of计算最佳拟合平面。可移动物体900的六自由度方位od由平面的中心点及法向量定义。对于非平面的可移动物体,可移动物体900的六自由度方位od由这些特征点of
′
的三维坐标的质心定义。
94.如图2b所示,同时追踪可移动物体900与可移动相机110的六自由度方位的系统100的训练阶段(training stage)st1包括训练数据生成单元140及神经网络训练单元150,其实施方式例如是电路、芯片、电路板、程序代码、或储存程序代码的储存装置。
95.神经网络训练单元150用于训练神经网络推论模型md。神经网络推论模型md用于推算可移动物体900的特征点of的位置和序列。在训练数据生成单元140中,训练数据可以是手动标记特征点的位置和序列的影像、或者是自动扩充已标记的影像。请参照图5a~5d,其绘示以手机为例的各种训练数据。在这些附图中,特征点of由实体荧幕d4的四个内角定义。实体荧幕d4摆放成纵向方向时,顺时针方向从左上角到左下角依序指定为四个特征点of的顺序。如图5a所示,四个特征点of依序具有坐标(x1,y1)、坐标(x2,y2)、坐标(x3,y3)、坐标(x4,y4)。即使将实体荧幕d4屏幕旋转到横向,特征点of的顺序也保持不变(如图5b所示)。在某些情况中,并不是所有的特征点of都能被拍到。因此,训练数据需要包含一些类似图5c或图5d这种缺漏一些特征点of的影像。如图5a与图5d所示,特征点标记的动作可以分辨出手机的正面(即荧幕)与背面,而仅在正面进行标记。为了获得较高的精准度,在标记特征点of时放大每张影像,直到清楚地看到每个像素。由于手动标记的动作非常耗时,因此需要自动扩充才能将训练数据扩展到百万张数等级。对手动标记的影像进行自动扩充的方法包含:按比例缩放与旋转、以透视投影法进行映射、转换到不同的颜色、调整其亮度和对比度、添加移动模糊和杂讯、加上其他物体遮盖某些特征点(如图5c与图5d所示)、变更荧幕显示的内容、或者替换背景等等。再将这些手动标记的特征点of的位置按照转换关系重新计算在自动扩充的影像中的位置。
96.请参照图6,其示例说明神经网络在训练阶段的主要结构包含特征提取和特征点坐标预测。其中特征提取器et可以使用如resnet这种深度残差网络或其他有类似功能的网络。所提取的特征向量fv传送至特征点坐标预测层fl中,推算特征点of的坐标(例如目前影像的特征点of的坐标以p
t
表示、前一张影像的特征点of的坐标以p
t-1
表示)。除了特征点预测层之外,本实施例还加上几何限制层gcl和时间限制层tcl以减少错误的预测。在训练阶段,每一层会根据损失函数计算出预测值与真值的损失值lv,然后将这些损失值及其各自的权重进行累加以获得总损失值olv。
97.请参照图7,其示例说明在相邻的两张影像之间,特征点位移的计算方式。在目前影像中特征点of的坐标为p
t
,同一特征点of在前一张影像中的坐标为p
t-1
,其间的位移定为||p
t-p
t-1
||。
98.不合理的位移以惩罚值进行限制。惩罚值例如是按照下式(1)进行计算。
[0099][0100]
其中m为所有训练数据针对每个特征点of所计算出的位移平均值,s是位移标准差,d是同一特征点of在前一影像与目前影像之间的位移。当d≤m时,位移属于可接受范围内,没有惩罚值(即)。请参照图8,其示例说明时间限制tc、惩罚值的计算及判定方法。圆的中心代表在前一张影像中特征点of的坐标(x
t-1
,y
t-1
),圆的面积代表在目前影像中特征点of可接受的位移。如果在目前影像中,特征点of的预测坐标(x
t
′
,y
t
′
)在圆内(位移d
′
≤m),则惩罚值为零。如果在目前影像中特征点of的预测坐标(x
t
″
,y
t
″
)在圆外(位移d
″
>m),则惩罚值为位移超出圆的半径(即m)越多,在训练过程中将会得到较大的惩罚值和较大的损失值,以此限制特征点of的坐标在合理范围内。
[0101]
请参照图9,其示例说明缺少时间限制tc而产生不正确位移的情况。图9的左侧图示为前一影像,右侧图示为目前影像。在前一影像中,辨识出具有坐标(x2,y2)的特征点of。但在目前影像中,从反光成像中辨识出具有坐标(x
′2,y
′2)的特征点of,坐标(x
′2,y
′2)与坐标(x2,y2)之间的位移大于时间限制tc所设定的范围,故可以判定坐标(x
′2,y
′2)不正确。
[0102]
如图2b所示,在追踪阶段st2,可移动相机110撷取一连串的影像im。从这些影像中提取数个环境特征点ef,然后将其用于计算可移动相机110的相应的相机矩阵cm和六自由度方位cd。同时,可移动物体900的特征点of的坐标也被神经网络推论模型md推算出来,并由相机矩阵cm转换、修正,以获得可移动物体900的六自由度方位od。
[0103]
请参照图10,其绘示加入增量学习阶段(incremental learning stage)st3的同时追踪可移动物体900(标示于图1a)与可移动相机110的六自由度方位的系统200与方法,包含:自动扩增单元260及权重调整单元270,其实施方式例如是电路、芯片、电路板、程序代码、或储存程序代码的储存装置。
[0104]
在图10的实施例中,神经网络推论模型md在训练阶段,其训练数据由手动标记和自动扩充组成;而在增量学习阶段,其训练数据由自动标记和自动扩充组成。
[0105]
在追踪可移动物体900的同时,神经网络推论模型md在背景执行增量学习。增量学习的训练数据包括:可移动相机110撷取的影像im及自动扩增单元260根据影像im自动扩增的影像im’。自动扩增单元260并以对应影像im及im’的修正后的特征点of的坐标取代手动标记,作为特征点坐标真值。权重调整单元270调整神经网络推论模型md中的权重,以更新为神经网络推论模型md’,借此适应使用情境以精准追踪可移动物体900的六自由度方位od。
[0106]
此外,请参照图11,其绘示应用于mr眼镜的同时追踪可移动物体900与可移动相机110的六自由度方位的系统300与方法,包括:方位修正单元310、方位稳定单元320、视轴计算单元330、荧幕方位计算单元340及立体影像产生单元350,其实施方式例如是电路、芯片、电路板、程序代码、或储存程序代码的储存装置。方位修正单元310包括交叉比对单元311及修正单元312,其实施方式例如是电路、芯片、电路板、程序代码、或储存程序代码的储存装置。立体影像产生单元350包括影像产生单元351及成像单元352,其实施方式例如是电路、芯片、电路板、程序代码、或储存程序代码的储存装置。
[0107]
随着可移动相机110和可移动物体900的移动,需要对它们的六自由度方位cd、od进行交叉比对和修正(如图8所示)。方位修正单元310的交叉比对单元311用于交叉比对可移动物体900的六自由度方位od与可移动相机110的六自由度方位cd。修正单元312用于修正可移动物体900的六自由度方位od与可移动相机110的六自由度方位cd。
[0108]
为减少因头部无意识的轻微晃动,而重新计算可移动相机及可移动物体的六自由度方位,造成虚拟荧幕d2(绘示于图1a)跟着晃动产生晕眩。方位稳定单元320用于判断当可移动物体900的六自由度方位od或可移动相机110的六自由度方位cd的变动小于预设值时,不改变可移动物体900的六自由度方位od与可移动相机110的六自由度方位cd。
[0109]
视轴计算单元330用于根据可移动相机110的六自由度方位cd计算使用者的双眼的视轴。
[0110]
荧幕方位计算单元340用于根据可移动物体900的六自由度方位od与可移动相机110的六自由度方位cd计算虚拟荧幕d2的六自由度方位dd,让虚拟荧幕d2随着可移动物体900一起移动(如图1b所示),或是随着可移动相机110的六自由度方位改变虚拟荧幕d2呈显的视角。
[0111]
立体影像产生单元350的影像产生单元351用于根据虚拟荧幕d2的六自由度方位dd及立体显示器(例如图1a的mr眼镜g1)的光学参数产生虚拟荧幕d2的左眼影像及右眼影像。立体影像产生单元350的成像单元352用于显示虚拟荧幕d2的立体影像于立体显示器(例如是图1a的mr眼镜g1)。
[0112]
其中,立体影像产生单元350的成像单元352可以根据使用者设定,将虚拟荧幕d2显示于可移动物体900周围的特定位置。
[0113]
综上所述,虽然本发明已以实施例公开如上,然其并非用于限定本发明。本发明本领域技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求所界定者为准。
转载请注明原文地址:https://win.8miu.com/read-1058743.html