一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种三维物体定位的方法及装置与流程

2022-07-10 04:58:44 来源:中国专利 TAG:


1.本发明属于增强现实技术领域,具体地,涉及一种三维物体定位的方法及装置。


背景技术:

2.目前的增强现实应用中,可以通过摄像头采集三维物体,识别出该三维物体并在虚拟场景中显示对应的虚拟三维物体,例如,可采集一个六面体的图像,并在显示屏中显示与其对应的虚拟物体,如一个虚拟的六面体、虚拟角色、虚拟地球仪等。
3.现有技术中,可通过采集到三维物体的方式显示虚拟物体,但并不能在单摄像头使用场景中根据三维物体的动态改变而自适应调整虚拟物体的变化,成本高,且难以精细化识别出该三维物体的位置及姿态。


技术实现要素:

4.本发明提供了一种三维物体定位的方法及装置,解决了现有技术中无法采用单摄像头场景下根据三维物体的动态改变而自适应调整虚拟物体的变化的问题。
5.为了实现上述目的,本发明提供了一种三维物体的定位方法,包括:
6.利用单摄像头采集三维物体的图像,识别出所述三维物体的姿态及位置,所述三维物体外表面分为多个区域,且相邻区域之间的颜色不同;
7.显示与所述三维物体对应的虚拟物体;
8.检测到所述三维物体在三维空间中的姿态和/或位置发生改变后,根据所述姿态和/或位置的变化量,对所述虚拟物体进行调节。
9.在其中一个实施例中,所述对所述虚拟物体进行调节,包括:
10.在虚拟空间中旋转所述虚拟物体,所述虚拟物体的旋转角度及角速度与所述三维物体的姿态变化量对应,或,
11.在虚拟空间中移动所述虚拟物体的位置,所述虚拟物体的位移量与所述三维物体的位置变化量相对应。
12.在其中一个实施例中,所述对所述虚拟物体进行调节之后,还包括:
13.当摄像头采集到所述三维物体的不同颜色面的不同组合时,根据预设指令进入不同的虚拟场景,或,
14.当所述虚拟物体的旋转角速度超过第一预设阈值时,显示第一虚拟场景,或,
15.当所述虚拟物体的旋转角速度低于第二预设阈值时,显示第二虚拟场景,所述第一预设阈值大于所述第二预设阈值。
16.在其中一个实施例中,所述根据所述姿态和/或位置的变化量,对所述虚拟物体进行调节,包括:
17.根据所述三维物体与所述摄像头的景深距离,调节所述虚拟物体的大小。
18.在其中一个实施例中,识别出所述三维物体的姿态及位置,包括:
19.对图像进行色块分割,将所述图像分解为多个不同颜色的区域;
20.对每个所述区域的颜色取平均值,遍历所有的相邻色块对;
21.使用查表法对所述色块对进行筛选,筛选出与预设模型相匹配的区域;
22.计算所述相匹配区域的朝向数据,并获取所述三维物体的位置与姿态。
23.在其中一个实施例中,所述计算所述相匹配区域的朝向数据之后,还包括:
24.推算出所述相匹配区域对应的候选解;
25.两两比对所述候选解的相容性,丢弃两个相容候选解的任一个;
26.使用边缘检测算法识别出所述色块对之间的边缘像素;
27.使用优化公式来优化所述三维物体的位置与姿态,所述优化公式为:
[0028][0029]
其中p是三维物体的位置与姿态参数,包括位置坐标(x,y,z)和姿态角(qw,q
x
,qy,qz);f为投影函数,用于计算三维物体处于p姿态时所述三维物体面上的点xi的位置;e为代价函数,计算投影位置与观测位置的差异;xi与θi是所述图像中检测到的边缘像素点,xi是边缘点在所述图像中的坐标,θi是边缘点的切线角度。
[0030]
在其中一个实施例中,在对图像进行色块分割之后,所述方法还包括:
[0031]
建立所述三维物体的模型;
[0032]
遍历所述模型中相邻面,记录所述相邻面的颜色对及面朝向;
[0033]
记录所有相邻面的分界线的坐标信息。
[0034]
本发明实施例还提供一种三维物体定位的方法,包括:
[0035]
利用单摄像头采集三维物体的图像,所述三维物体外表面分为多个区域,且相邻区域之间的颜色不同;
[0036]
记录所述三维物体中两个及以上的相邻面;
[0037]
对图像进行色块分割,将所述图像分解为多个不同颜色的区域;
[0038]
对每个所述区域的颜色取平均值,遍历所有的相邻色块对;
[0039]
使用查表法对所述色块对进行筛选,筛选出与预设模型相匹配的区域;
[0040]
计算所述相匹配区域的朝向数据,并获取所述三维物体的位置与姿态;
[0041]
显示与所述三维物体对应的虚拟物体。
[0042]
在其中一个实施例中,所述计算所述相匹配区域的朝向数据之后,还包括:
[0043]
推算出所述相匹配区域对应的候选解;
[0044]
两两比对所述候选解的相容性,丢弃两个相容候选解的任一个;
[0045]
使用边缘检测算法识别出所述色块对之间的边缘像素;
[0046]
使用优化公式来优化所述三维物体的位置与姿态,所述优化公式为:
[0047][0048]
其中p是三维物体的位置与姿态参数,包括位置坐标(x,y,z)和姿态角(qw,q
x
,qy,qz);f为投影函数,用于计算三维物体处于p姿态时所述三维物体面上的点xi的位置;e为代价函数,计算投影位置与观测位置的差异;xi与θi是所述图像中检测到的边缘像素点,xi是
边缘点在所述图像中的坐标,θi是边缘点的切线角度。
[0049]
本发明实施例还提供了一种三维物体的定位装置,所述装置处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述三维物体定位的方法。
[0050]
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机可执行指令,该计算机可执行指令用于执行上述三维物体定位的方法。
[0051]
本发明实施例提供三维物体定位的方法及装置,所述方法通过单摄像头识别三维物体的不同颜色组合区域,确定所述三维物体的空间姿态及位置,并显示对应的虚拟物体,同时,还可以精细化确定该三维物体的空间姿态及位置,此外,还可以通过单摄像头测量该三维物体的景深,成本低,且精度高。
附图说明
[0052]
图1是本发明实施例中三维物体定位方法的流程图;
[0053]
图2是本发明实施例中识别三维物体姿态和位置的方法流程图;
[0054]
图3是本发明实施例中三维物体识别示意图;
[0055]
图4是本发明实施例中三维物体识别又一示意图;
[0056]
图5是本发明实施例中三维物体色块边缘来优化姿态的原理示意图;
[0057]
图6是本发明实施例中三维物体定位装置结构示意图;
[0058]
图7是本发明实施例中三维物体定位装置组成结构示意图。
具体实施方式
[0059]
为了使本发明的目的、技术方案及优点更加清楚,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0060]
为达到以上目的,如图1所示,本发明实施例提供了一种应用程序的推荐方法,该方法包括:
[0061]
s101、利用单摄像头采集三维物体的图像,识别出所述三维物体的姿态及位置,所述三维物体外表面分为多个区域,且相邻区域之间的颜色不同;
[0062]
本发明实施例中,可通过三维物体定位装置实现该三维物体定位与虚拟物体显示,可选地,该定位装置包括单摄像头、处理单元以及显示单元,通过单摄像头在检测区域内采集三维物体的图像,通过处理单元实现图像处理并最终确定该三维物体的姿态及位置,并借助增强现实ar技术在虚拟场景中创建一个与该三维物体相同或对应的虚拟物体。三维物体可以是多面体,例如球体,圆柱体,四面体、六面体等。其中,每一面的颜色可以不同,本发明实施例中,在三维物体旋转或移动过程中,通过每一面的颜色组合,可确定出该三维物体面朝摄像头的朝向及姿态。为了方便说明,本发明实施例均以六面体为例进行说明,而其余的(具备不同颜色面组合的)三维物体也在本发明实施例的保护范围内。
[0063]
如图2所示,在其中一个实施例中,识别出所述三维物体的姿态及位置,具体可以为:
[0064]
s201、对图像进行色块分割,将所述图像分解为多个不同颜色的区域;
[0065]
如图3所示,该图像可以为黄色颜色区域、绿色颜色区域、蓝色颜色区域、黑色颜色区域、白色颜色区域以及红色颜色区域。
[0066]
此外,在色块分割之后,还可以建立所述三维物体的模型;遍历所述模型中相邻面,记录所述相邻面的颜色对及面朝向;记录所有相邻面的分界线的坐标信息。即,本发明实施例中,可遍历三维物体中相邻的面,记录下相邻的面的颜色对(如“绿-红”、“红-黄”等)以及面的朝向,并建表供后续算法使用;同时,记录所有相邻面的分界线的坐标信息(用一系列离散的采样点表示),用于后续的精确测量。
[0067]
当摄像头能同时看到两个或以上的面时,即可通过颜色组合来初步判定标记的位置与姿态(即为朝向),之后通过迭代算法得到更加准确的位置与姿态数据。
[0068]
s202、对每个所述区域的颜色取平均值,遍历所有的相邻色块对(pair);
[0069]
s203、使用查表法对所述色块对进行筛选,筛选出与预设模型相匹配的区域;
[0070]
使用查表法对色块对进行筛选,比如“红-白”就是与三维物体模型相吻合/匹配,但“红-蓝”、“绿-紫”就与模型不吻合(前者是因为在模型中红色与蓝色不是相邻的,后者是因为模型中没有紫色),舍弃不吻合的色块对,筛选出与预设模型相匹配的区域(色块对)。
[0071]
s204、计算所述相匹配区域的朝向数据,并获取所述三维物体的位置与姿态。
[0072]
经过筛选之后会留下一些候选色块对,比如图4中会得到“红-白”、“红-黑”、“黑-白”等,使用查表法可以查出这些面的朝向数据,从而得知摄像头相对于标记的大致方位;同时,由于同时有两个面的数据,也可以计算出摄像头的大致旋转角度(以摄像头与标记的连线为轴的旋转角度),进而可推算出三维物体的大致位置与姿态。
[0073]
上述实施例中可对三维物体的大致位置与姿态进行推算,得到的结果有可能并不精确,而本发明实施例中,可进一步对位置与姿态进行优化,从而精细化得到三维物体在空间中的姿态及位置。具体方法如下:
[0074]
在计算所述相匹配区域的朝向数据之后,本发明实施例还包括:
[0075]
s2041、推算出所述相匹配区域对应的候选解;
[0076]
s2042、两两比对所述候选解的相容性,丢弃两个相容候选解的任一个;
[0077]
当两个候选解得到的标识物位置与姿态比较接近时(距离、角度差异小于一定阈值),可认为两个候选解是相容的,即它们都是同一个标志物上的色块对。此时可以丢弃掉其中一个解。
[0078]
s2043、使用边缘检测算法识别出所述色块对之间的边缘像素;
[0079]
s2044、使用优化公式来优化所述三维物体的位置与姿态,所述优化公式为:
[0080][0081]
其中p是三维物体的位置与姿态参数,包括位置坐标(x,y,z)和姿态角(qw,q
x
,qy,qz);f为投影函数,用于计算三维物体处于p姿态时所述三维物体面上的点xi的位置;e为代价函数,计算投影位置与观测位置的差异;xi与θi是所述图像中检测到的边缘像素点,xi是边缘点在所述图像中的坐标,θi是边缘点的切线角度。使用levenberg-marquardt算法对上式进行迭代优化后,可以得到一个较优的p
*
值,即为优化后的标志物的位置与姿态。
[0082]
在经过迭代算法完成姿态优化后,可得到三维物体的精确姿态数据。
[0083]
此外对于视频数据,可以使用卡尔曼滤波(kalmanfilter)对连续帧的姿态进行平滑,最后可得到相对稳定的姿态序列。
[0084]
s102、显示与所述三维物体对应的虚拟物体;
[0085]
本发明实施例中,可借助ar技术,在识别出三维物体的姿态及位置后,可在虚拟场景中显示出与该三维物体对应的虚拟物体。例如,显示与该三维物体大小一致形状相同的六面体,且各个面的颜色与实际的三维物体一致。
[0086]
s103、检测到所述三维物体在三维空间中的姿态和/或位置发生改变后,根据所述姿态和/或位置的变化量,对所述虚拟物体进行调节。
[0087]
在其中一个实施例中,所述对所述虚拟物体进行调节,具体可以为:
[0088]
在虚拟空间中旋转所述虚拟物体,所述虚拟物体的旋转角度及角速度与所述三维物体的姿态变化量对应,或,
[0089]
在虚拟空间中移动所述虚拟物体的位置,所述虚拟物体的位移量与所述三维物体的位置变化量相对应。
[0090]
在其中一个实施例中,所述对所述虚拟物体进行调节之后,还包括:
[0091]
当摄像头采集到所述三维物体的不同颜色面的不同组合时,根据预设指令进入不同的虚拟场景,或,
[0092]
当所述虚拟物体的旋转角速度超过第一预设阈值时,显示第一虚拟场景,或,
[0093]
当所述虚拟物体的旋转角速度低于第二预设阈值时,显示第二虚拟场景,所述第一预设阈值大于所述第二预设阈值。
[0094]
在其中一个实施例中,所述根据所述姿态和/或位置的变化量,对所述虚拟物体进行调节,包括:
[0095]
根据所述三维物体与所述摄像头的景深距离,调节所述虚拟物体的大小。
[0096]
例如,在游戏领域,该三维物体可以做成一个“魔法棒/魔法杖”的多面体形状,可通过上述三维定位的方法,识别出不同面颜色的组合从而确定当前面对摄像头的是哪一个具体姿态。在用户操作该魔法棒的同时,虚拟魔法棒也可以自适应的改变,如当用户旋转该魔法棒,则虚拟魔法棒也同步进行旋转,当用户移动该魔法棒,虚拟魔法棒也在同步移动。同时,还可以根据远近不同,通过单摄像头测量该实际魔法棒相对于摄像头的景深,景深不同,其虚拟魔法棒的大小有变化,用户可以利用该特性进行不同的游戏体验,例如在立体空间里面操作不同的魔法棒,离摄像头近一点和离摄像头远一点其产生的游戏效果不同,可提高用户的游戏体验,同时降低制造成本(市面上均采用tof摄像头或多摄像头的方案来测量景深,成本高昂)。
[0097]
同时,用户还可以根据魔法棒的不同特性设计不同的游戏体验,例如将魔法棒旋转,在摄像头面前转到不同的面(即摄像头采集到的颜色组合不同),可设计新的交互体验,例如转到a面就进入某一游戏,转到b面进入另一游戏,当从a面转b面即产生一个交互虚拟场景,当从b面转到c面又将产生另一个场景,同时,当转动的速度和角度不同,也可设计不同的游戏,即,不同的角度和不同的速度来旋转,不同的面对应的游戏不同,或者对应的游戏玩法不同。
[0098]
本发明实施例提供三维物体定位的方法及装置,所述方法通过单摄像头识别三维
物体的不同颜色组合区域,确定所述三维物体的空间姿态及位置,并显示对应的虚拟物体,同时,还可以精细化确定该三维物体的空间姿态及位置,此外,还可以通过单摄像头测量该三维物体的景深,成本低,且精度高。
[0099]
此外,本发明实施例还提供一种三维物体定位的方法,定位算法预先将标记的信息录入,包括所有顶点的坐标、边的参数方程、面的颜色。录入模型时有以下几点:
[0100]
1.遍历模型中相邻的面,记录下相邻的面的颜色对(如“绿-红”、“红-黄”等)以及面的朝向,建表供后续算法使用;
[0101]
2.记录所有相邻面的分界线的坐标信息(用一系列离散的采样点表示),用于后续的精确测量。
[0102]
当摄像头能同时看到两个或以上的面时,即可通过颜色组合来初步判定标记的位置与姿态(就是朝向),之后通过迭代算法得到更加准确的位置与姿态数据。
[0103]
该方法具体包括:
[0104]
s501、利用单摄像头采集三维物体的图像,所述三维物体外表面分为多个区域,且相邻区域之间的颜色不同;
[0105]
s502、记录所述三维物体中两个及以上的相邻面;
[0106]
s503、对图像进行色块分割,将所述图像分解为多个不同颜色的区域;
[0107]
s504、对每个所述区域的颜色取平均值,遍历所有的相邻色块对;
[0108]
比如“红-白”就是与模型相吻合的,但“红-蓝”、“绿-紫”这些就与模型不吻合(前者是因为在模型中红色与蓝色不是相邻的,后者是因为模型中没有紫色)。
[0109]
s505、使用查表法对所述色块对进行筛选,筛选出与预设模型相匹配的区域;
[0110]
比如图4中会得到“红-白”、“红-黑”、“黑-白”等,使用查表法可以查出这些面的朝向数据,从而得知摄像头相对于标记的大致方位;同时,由于同时有两个面的数据,也可以计算出摄像头的大致旋转角度(以摄像头与标记的连线为轴的旋转角度),进而可推算出标志物的大致位置与姿态。
[0111]
s506、计算所述相匹配区域的朝向数据,并获取所述三维物体的位置与姿态;
[0112]
当两个候选解得到的标识物位置与姿态比较接近时(距离、角度差异小于一定阈值),可认为两个候选解是相容的,即它们都是同一个标志物上的色块对。此时可以丢弃掉其中一个解。
[0113]
s507、显示与所述三维物体对应的虚拟物体。
[0114]
在其中一个实施例中,所述计算所述相匹配区域的朝向数据之后,还包括:
[0115]
s5061、推算出所述相匹配区域对应的候选解;
[0116]
s5062、两两比对所述候选解的相容性,丢弃两个相容候选解的任一个;
[0117]
s5063、使用边缘检测算法识别出所述色块对之间的边缘像素;
[0118]
s5064、使用优化公式来优化所述三维物体的位置与姿态,所述优化公式为:
[0119][0120]
其中p是三维物体的位置与姿态参数,包括位置坐标(x,y,z)和姿态角(qw,q
x
,qy,qz),这里的姿态角使用四元数(quatemion)表示法;f为投影函数,用于计算标志物处于p姿
态时它上面的点xi在摄像机拍摄到的图像上位于什么位置;e是代价函数,计算投影位置与观测位置的差异,差异越大代价越大;xi与θi是图像中检测到的边缘像素点,xi是边缘点在图像中的坐标,θi是边缘点的切线角度。使用levenberg-marquardt算法对上式进行迭代优化后,可以得到一个较优的p
*
值,即为优化后的标志物的位置与姿态。
[0121]
此外,对于视频数据,可以使用卡尔曼滤波(kalmanfilter)对连续帧的姿态进行平滑,最后可得到相对稳定的姿态序列。
[0122]
图5是本发明实施例中三维物体色块边缘来优化姿态的原理示意图,其中,虚线为当前的估计姿态推算出来的色块边缘,实线为实际拍摄得到的色块边缘。优化时通过调整姿态让虚线向实线靠拢。
[0123]
此外,在本发明实施例中,还可以与遥控模块结合起来对虚拟物体进行人机交互。传统的遥控器具备模式化的操作指令集,按压一个按钮产生一个指令信号,并发射该信号,使得电视、空调等终端对该指令进行响应。而在本发明实施例中,可以针对性地设置一系列操作协议,将遥控指令与三维物体的空间姿态/位置等进行结合,形成一套新的人机交互协议。例如,可以在遥控模块中设置一系列指令集,在不同的空间姿态/位置时产生的交互可以有区别。按压一个向右移动的按键后,若未检测到三维物体进行了位置更新,则虚拟物体向右移动一格,若检测到该三维物体的位置有更新,则同样是按压一个向右移动的按键,可以向右移动三格。
[0124]
图6是本发明实施例中三维定位装置的其中一个示意图;用户可以利用在装置如手机、平板或者电脑操作应用程序。该装置可以包括摄像头、麦克风、应用程序道具和/或ar装置等信息录入装置。该装置还可以包括显示设备、扬声器等输出装置。
[0125]
本发明实施例还提供了一种存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述实现三维物体定位的方法。
[0126]
图7是本发明实施例提供的一种系统结构示意图。该系统600可以包括一个或一个以上中央处理器(central processing units,cpu)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序632或数据634的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对装置中的一系列指令操作。更进一步地,中央处理器610可以设置为与存储介质630通信,在装置600上执行存储介质630中的一系列指令操作。系统600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,上述三维定位的方法实施例所执行的步骤可以基于该图7所示的系统结构。
[0127]
应理解,在本技术的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0128]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的
系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0129]
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
[0130]
最后,需要说明的是:以上仅为本技术技术方案的较佳实施例而已,并非用于限定本技术的保护范围。显然,本领域技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献