本发明涉及人工智能和三维建模技术领域,具体涉及一种实时的基于目标检测和背景去除的三维模型实时重建方法及装置。
背景技术:
随着三维重建技术的普及,越来越多的用户希望重建出对象(包括人体、物体等)的三维模型。目前三维重建主要通过人工建模的方式进行,这种方式需要投入较多的人力和较长的时间,重建出的模型质量参差不齐。近几年,使用深度相机进行自动三维建模的方法开始出现,但是现有的自动三维重建方法建模耗时较长,且重建出的模型含有较多噪点。因此如何对各种各样的物体进行快速、准确地三维重建是一个亟须解决的问题。现有的三维模型重建方案和实际效果举例如下:
(1)先使用各种测量仪器对需要三维建模的物体进行全面地测量,得到物体各个细节的长度等信息。然后人工使用3dsmax、rhino、blender等三维建模软件根据物体的测量信息进行建模(王大虎,高会争,陈侠.基于quest3d的变电站仿真培训系统[j].中国电力,2016,49(9):62-65.)。这种方法的缺点在于:对于历史文物等造型复杂、细节丰富的物体,人工建模的难度非常大,且很难保证每个细节部分的比例、形状与原物体一致。
(2)使用rgb-d(深度相机)获取物体的深度信息,然后根据物体的深度信息计算出物体的点云,最后将各个观察角度得到的点云融合,从而完成三维模型的重建(李翔,李泽丰,李治江.基于kinect的人体三维重建方法[j].计算机系统应用,2018,27(6):178-183.)。采用此方法的缺点在于:重建速度较慢,并且点云融合的过程中容易引入无关点云。
(3)先使用rgb-d相机获取物体深度信息之后进行初步三维建模,然后通过人工编辑的方式对重建出的三维模型进行微调(郑太雄,黄帅,李永福,等.基于视觉的三维重建关键技术研究综述[j].自动化学报,2020,46(4):631-652.)。这种方法可以保证重建出的三维模型没有噪点,但是整体流程仍须人工参与,智能化程度不高,效率依然有很大提升空间。
技术实现要素:
本发明的目的在于克服现有技术的缺点与不足,提供一种基于目标检测和背景去除的三维模型实时重建方法及装置,解决目前主流三维重建方法无法快速、准确地进行实时三维重建的问题。本发明方法通过rgb-d相机从不同角度获取目标物体的颜色图像流和深度图像流,颜色图像和深度图像大小一致,根据相机提供的时间戳对颜色图像流和深度图像流进行对齐处理;使用已完成训练的目标检测神经网络模型从颜色图像中检测出物体所在区域,去除其余区域的颜色信息,并对应去除深度图像中无关区域的深度信息;使用物体每一帧的深度图像合成单帧物体点云,然后计算当前帧点云与前一帧点云之间的旋转偏移量,最后将当前点云旋转、平移后融合到三维模型点云中;根据三维模型点云中点附近的相邻点数量进行去噪处理,然后将颜色信息渲染到三维模型点云中,最后对三维模型点云进行表面网格化处理,生成完整的三维模型;实时展示重建出的三维模型。
本发明至少通过如下技术方案之一实现。
一种基于目标检测和背景去除的三维模型实时重建方法,包括以下步骤:
s1、采集待建模物体颜色图像和深度图像,并根据时间戳进行对齐处理;
s2、检测颜色图像和深度图像关键区域以及去除无关区域;
s3、根据深度图像中的深度信息合成单帧点云,将多帧点云融合;
s4、对融合之后的点云进行去噪处理,并将颜色信息并行渲染至点云中;
s5、实时展示重建出的三维模型。
优选的,根据时间戳进行对齐处理,包括以下步骤:
a、分别从颜色图像流和深度图像流中读取出图像;
b、设从颜色图像中读取出该图像的采集时间戳t1,从深度图像中读取出该图像的采集时间戳t2;
c、设最大时间间隔为σ,判断|-t2|与σ之间的大小关系;
d、若|t1-t2|>σ,则执行步骤e,否则保存当前的颜色图像和深度图像,完成一次对齐处理;
e、若t1>t2,则丢弃当前的深度图像,从深度图像流中读取下一张深度图像;否则,丢弃当前的颜色,从颜色图像流中读取下一张颜色图像。
优选的,检测颜色图像和深度图像关键区域以及去除无关区域,包括以下步骤:
1)、选择目标检测神经网络模型,使用与待重建物体同类型的物体图像对模型进行调整;
2)、使用训练后的目标检测神经网络模型从颜色图像中提取目标物体的所在区域,去除其余区域的颜色信息;
3)、根据颜色图像中目标物体所在区域的位置,对应去除深度图像中其余区域的深度信息。
优选的,步骤3)包括以下步骤:
31)、使用完成训练的目标检测神经网络模型从颜色图像中检测出目标物体所在区域target1;
32)、设整个颜色图像区域为total1,除物体所在区域外的区域记为无关区域useless1,则有:
total1=target1∪useless1
useless1=total1--target1
33)、深度图像中物体所在区域为:
target2=total2--useless1
其中,target2为整个深度图像区域,total2为深度图像中目标物体所在区域;
34)、根据步骤33),深度图像中的无关区域useless2为:
useless2=total2-target2
35)、最后去除区域useless2的深度信息。
优选的,步骤s3,根据深度图像中的深度信息合成单帧点云,包括以下步骤:
s31、设定阈值,将大于深度值大于阈值的点从深度图像中去除;
s32、根据rgb-d相机的内参矩阵,将深度图像中的点映射到相机坐标系中;
s33、设定目标坐标系与相机坐标系的旋转、平移关系,将相机坐标系中的点映射到目标坐标系中。
优选的,所述去噪处理具体为:
设扫描半径为r,相邻点的数量为neighbors,假设现有点point,函数countnb使得以下等式成立:
neighbors=countnb(point,r)
遍历所有点云中的点,使用函数countnb计算每一个点的neighbors,判断其是否大于设定的阈值;
若一个点的neighbors大于设定的阈值,则保留该点;否则,将该点从点云中移除。
优选的,步骤s4将颜色信息并行渲染至点云中,包括以下步骤:
s41、去除颜色图像和深度图像的无关区域之后,将颜色图像和深度图像目标区域的每个像素点的信息一一对应存储到数据库database中;
s42、设像素点的颜色信息为(r,g,b),唯一标识符为id,查找函数findcolor根据id从database中查找出每个点的颜色信息;
s43、在生成物体的三维模型点云之后,根据每个点的id从database中找到对应的颜色信息,最后将每个点的颜色信息渲染到点云中,查找、渲染过程多个点同时进行。
一种实现基于目标检测和背景去除的三维模型实时重建方法的装置,包括:rgb-d相机、存储器、处理器以及存储在所述存储器上并在处理器上运行的三维模型实时重建模块。
优选的,所述三维模型实时重建模块,包括:
物体信息采集模块:调用rgb-d相机从不同角度获取目标物体的颜色图像流和深度图像流,颜色图像和深度图像大小一致,根据相机提供的时间戳对颜色图像流和深度图像流进行对齐处理;
目标检测模块:使用已完成训练的目标检测神经网络模型从颜色图像中检测出物体所在区域,去除其余区域的颜色信息,并对应去除深度图像中无关区域的深度信息;
点云处理模块:使用物体每一帧的深度图像合成单帧物体点云,然后计算当前帧点云与前一帧点云之间的旋转偏移量,最后将当前点云旋转、平移后融合到三维模型点云中。
模型优化模块:根据三维模型点云中点附近的相邻点数量进行去噪处理,然后将颜色信息渲染到三维模型点云中,最后对三维模型点云进行表面网格化处理,生成完整的三维模型;
模型可视化展示模块:实时展示重建出的三维模型。
优选的,所述rgb-d相机为基于双目测距原理的深度相机、基于结构光原理的深度相机或基于tof原理的深度相机。
与现有的技术相比,本发明的有益效果为:
采用本发明对待建模物体的颜色图像和深度图像的预处理方法可以去除无关区域信息的干扰,减少重建出的三维模型的噪点。本发明使用的三维模型点云颜色渲染方法可以加快三维模型的重建速度,保证重建的实时性。除此之外,本发明提供的基于目标检测和背景去除的三维模型实时重建方法结构清晰,各模块互相配合、协同工作,能够完成绝大多数物体的三维模型实时重建,相比人工建模和传统的自动建模具有更快的运行速度和更精确的建模结果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本实施例一种基于目标检测和背景去除的三维模型实时重建方法的流程图;
图2是根据本实施例一种物体颜色图像和深度图像预处理方法的流程图;
图3是本实施例一种三维模型点云颜色渲染方法的流程图;
图4是本实施例一种基于目标检测和背景去除的三维模型实时重建装置的示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
如图1所示,本实施例的一种基于目标检测和背景去除的三维模型实时重建方法,包括以下步骤:
步骤s11、通过rgb-d相机从不同角度获取目标物体的颜色图像流和深度图像流,颜色图像和深度图像大小一致,根据相机提供的时间戳对颜色图像流和深度图像流进行对齐处理;
步骤s12、使用已完成训练的目标检测神经网络模型mobilenetssd从颜色图像中检测出物体所在区域,去除其余区域的颜色信息,并对应去除深度图像中无关区域的深度信息;
作为优选的实施例,所述目标检测神经网络模型可以为yolov3、mobilenetssd或centernet。
步骤s13、判断采集到的图像中是否包含目标物体,若不包含,则返回步骤s11;若包含,则继续执行下一个步骤;
步骤s14、使用物体每一帧的深度图像合成单帧物体点云,然后计算当前帧点云与前一帧点云之间的旋转偏移量,最后将当前点云旋转、平移后融合到三维模型点云中。融合完毕后返回物体信息采集模块,准备采集下一帧的图像;
步骤s15、根据三维模型点云中点附近的相邻点数量进行去噪处理,然后将颜色信息渲染到三维模型点云中,最后对三维模型点云进行表面网格化处理,生成完整的三维模型;
步骤s16、模型可视化展示模块实时展示重建出的三维模型。
需要说明的是,本实施例提供的这种基于目标检测和背景去除的三维模型实时重建方法可以应用于笔记本电脑,平板电脑、手机、机器人、手持扫描仪等终端设备,本申请实施例对终端设备的具体类型不做任何限制。本实施例中的“实时重建”是指在采集物体颜色信息和深度信息的同时,根据先前采集到的信息动态合成物体的三维模型并展示。
在具体实践中,各模块互相配合、协同工作,能够完成绝大多数物体的三维模型实时重建,相比人工建模和传统的自动建模方法具有更快的运行速度和更精确的建模结果。
步骤s11所述对颜色图像流和深度图像流进行对齐处理,包括以下步骤:
a、分别从颜色图像流和深度图像流中读取出一张图像;
b、从颜色图像中读取出该图像的采集时间戳t1,从深度图像中读取出该图像的采集时间戳t2;
c、设最大时间间隔为的σ,判断|t1-t2|与σ之间的大小关系;
d、若|t1-t2|>σ,则执行步骤f;
e、否则,保存当前的颜色图像和深度图像,完成一次对齐处理;
f、若t1>t2,则丢弃当前的深度图像,从深度图像流中读取下一张深度图像;否则,丢弃当前的颜色,从颜色图像流中读取下一张颜色图像。
优选地,所述去噪处理具体为:
设扫描半径为r,相邻点的数量为neighbors,假设现有点point,存在函数countnb使得以下等式成立:
neighbors=countnb(point,r)
遍历所有点云中的点,使用函数countnb计算每一个点的neighbors,判断其是否大于设定的阈值;
若一个点的neighbors大于设定的阈值,则保留该点;否则,将该点从点云中移除。
在具体实践中,可以去除无关区域信息的干扰,减少重建出的三维模型的噪点。同时,因为去除了无关区域的信息,使得需要计算的点的数量大大减少,从而提高了重建速度。
如图2所示,步骤s12包括以下步骤:
步骤s21、根据对检测速度和精度的需求,选择目标检测神经网络模型,使用与待重建物体同类型的物体图像对模型进行调整,使用选择的目标检测神经网络模型检测颜色图像中物体所在区域;
步骤s22、去除物体所在区域以外的颜色信息,并对应去除深度图像中无关区域的深度信息,包括以下步骤:
s221、使用已完成训练的神经网络模型从颜色图像中检测出目标物体所在区域target1;
s222、设整个颜色图像区域为total1,除物体所在区域外的区域记为无关区域useless1,则有:
total1=target1∪useless1
useless1=total1-target1
s223、由于颜色图像和深度图像大小一致,所以深度图像中物体所在区域为:
target2=total2--useless1
其中,target2为整个深度图像区域,total2为深度图像中目标物体所在区域;
s224、根据步骤s223,深度图像中的无关区域useless2为:
useless2=total2-target2
s225、最后,去除区域useless2的深度信息。
如图3所示,步骤s15的渲染过程包括以下步骤:
步骤s31、使用物体的一张深度图像中的信息生成单帧点云;
步骤s32、计算当前帧点云与前一帧点云之间的旋转偏移量,最后将当前点云旋转、平移后融合到三维模型点云中;
步骤s33、根据点云的点与颜色图像中点的对应关系,并行渲染颜色信息至点云。
在具体实践中,并行渲染相比传统的自动建模方法充分利用了处理器的多核优势,大大缩短了运行时长,实现物体三维模型的实时重建。
步骤s151,使用物体的一张深度图像中的信息生成单帧点云,具体包括以下步骤:
s1511、设深度阈值为distance,将深度图像中深度大于distance的点深度值置为0;
s1512、设深度图像中点的坐标为(u,v,d),深度相机的内参矩阵为k,相机坐标系中点的坐标为pcamera:
根据深度相机内参的定义和几何关系有:
将上式整理有:
z=d
其中,u为点在深度图像中的横坐标,v为点在深度图像中纵坐标,d为点在深度图像(u,v)位置的深度值,x为点在相机坐标系中的横坐标,y为点在相机坐标系中的纵坐标,z为点在相机坐标系中的竖坐标,fx为x轴方向焦距的长度,fy为y轴方向焦距的长度,cx、cy为深度图像中原点的横、纵坐标,fx、fy、cx、cy的单位都是像素个数;
s1513、设目标坐标系中点的坐标为ptarget,得到pcamera后,再根据预先设定的相机坐标系与目标坐标系之间的旋转、偏移关系,将pcamera转换为ptarget,具体为:
ptarget=rpcamera t
其中,r为相机坐标系到目标坐标系的旋转矩阵,t为相机坐标系到目标坐标系的平移矩阵;
s1514、计算所有深度值不为0的点的ptarget,得到该深度图像对应的单帧点云。
步骤s153、根据点云的点与颜色图像中点的对应关系,并行渲染颜色信息至点云,包括以下步骤:
步骤s1531、去除一对颜色图像和深度图像的无关区域之后,将颜色图像和深度图像目标区域的每个像素点的信息一一对应存储到数据库database中;
步骤s1532、设像素点的颜色信息为(r,g,b),唯一标识符为id,存在查找函数findcolor,满足:
(r,g,b)=findcolor(database,id)
步骤s1533、因为函数findcolor是线程安全的,所以在生成物体的三维模型点云之后,根据每个点的id从database中找到对应的颜色信息,最后将其渲染到点云中,这个过程可以多个点同时进行。
图4是本实施例一种基于目标检测和背景去除的三维模型实时重建装置100的示意图,包括:rgb-d相机101、存储器102、处理器103以及存储在所述存储器102上并在处理器103上运行的三维模型实时重建模块。
所述三维模型实时重建模块,包括:
物体信息采集模块:调用rgb-d相机从不同角度获取目标物体的颜色图像流和深度图像流,颜色图像和深度图像大小一致,根据相机提供的时间戳对颜色图像流和深度图像流进行对齐处理;
目标检测模块:使用已完成训练的目标检测神经网络模型从颜色图像中检测出物体所在区域,去除其余区域的颜色信息,并对应去除深度图像中无关区域的深度信息;
点云处理模块:使用物体每一帧的深度图像合成单帧物体点云,然后计算当前帧点云与前一帧点云之间的旋转偏移量,最后将当前点云旋转、平移后融合到三维模型点云中。
模型优化模块:根据三维模型点云中点附近的相邻点数量进行去噪处理,然后将颜色信息渲染到三维模型点云中,最后对三维模型点云进行表面网格化处理,生成完整的三维模型;
模型可视化展示模块:实时展示重建出的三维模型。
所述三维模型实时重建模块被所述处理器103执行时实现如下方法步骤:
步骤301、通过rgb-d相机从不同角度获取目标物体的颜色图像流和深度图像流,颜色图像和深度图像大小一致,根据相机提供的时间戳对颜色图像流和深度图像流进行对齐处理;
步骤302、使用已完成训练的目标检测神经网络模型从颜色图像中检测出物体所在区域,去除其余区域的颜色信息,并对应去除深度图像中无关区域的深度信息;
步骤303、判断采集到的图像中是否包含目标物体,若不包含,则返回步骤301;若包含,则继续执行下一个步骤;
步骤304、使用物体每一帧的深度图像合成单帧物体点云,然后计算当前帧点云与前一帧点云之间的旋转偏移量,最后将当前点云旋转、平移后融合到三维模型点云中。融合完毕后返回物体信息采集模块,准备采集下一帧的图像;
步骤305、根据三维模型点云中点附近的相邻点数量进行去噪处理,然后将颜色信息渲染到三维模型点云中,最后对三维模型点云进行表面网格化处理,生成完整的三维模型;
步骤306、展示重建出的三维模型。
作为另一个优选的实施例,所述rgb-d相机101具体可以是基于双目测距原理的深度相机,也可以是基于结构光原理的深度相机或基于tof(timeofflight)原理的深度相机。
作为另外的实施例,所述存储器102包括但不限于:机械硬盘、固态硬盘、ram、rom等。
具体实现中,本发明所描述的一种基于目标检测和背景去除的三维模型实时重建装置可执行本发明提供的基于目标检测和背景去除的三维模型实时重建方法的实施例中所描述的实施方式,具体执行过程这里不再赘述。
以上示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制。熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
1.一种基于目标检测和背景去除的三维模型实时重建方法,其特征在于,包括以下步骤:
s1、采集待建模物体颜色图像和深度图像,并根据时间戳进行对齐处理;
s2、检测颜色图像和深度图像关键区域以及去除无关区域;
s3、根据深度图像中的深度信息合成单帧点云,将多帧点云融合;
s4、对融合之后的点云进行去噪处理,并将颜色信息并行渲染至点云中;
s5、实时展示重建出的三维模型。
2.根据权利要求1所述的一种基于目标检测和背景去除的三维模型实时重建方法,其特征在于,根据时间戳进行对齐处理,包括以下步骤:
a、分别从颜色图像流和深度图像流中读取出图像;
b、设从颜色图像中读取出该图像的采集时间戳t1,从深度图像中读取出该图像的采集时间戳t2;
c、设最大时间间隔为σ,判断|-t2|与σ之间的大小关系;
d、若|t1-t2|>σ,则执行步骤e,否则保存当前的颜色图像和深度图像,完成一次对齐处理;
e、若t1>t2,则丢弃当前的深度图像,从深度图像流中读取下一张深度图像;否则,丢弃当前的颜色,从颜色图像流中读取下一张颜色图像。
3.根据权利要求2所述的一种基于目标检测和背景去除的三维模型实时重建方法,其特征在于,检测颜色图像和深度图像关键区域以及去除无关区域,包括以下步骤:
1)、选择目标检测神经网络模型,使用与待重建物体同类型的物体图像对模型进行调整;
2)、使用训练后的目标检测神经网络模型从颜色图像中提取目标物体的所在区域,去除其余区域的颜色信息;
3)、根据颜色图像中目标物体所在区域的位置,对应去除深度图像中其余区域的深度信息。
4.根据权利要求3所述的一种基于目标检测和背景去除的三维模型实时重建方法,其特征在于,步骤3)包括以下步骤:
31)、使用完成训练的目标检测神经网络模型从颜色图像中检测出目标物体所在区域target1;
32)、设整个颜色图像区域为total1,除物体所在区域外的区域记为无关区域useless1,则有:
total1=target1∪useless1
useless1=total1-target1
33)、深度图像中物体所在区域为:
target2=total2--useless1
其中,target2为整个深度图像区域,total2为深度图像中目标物体所在区域;
34)、根据步骤33),深度图像中的无关区域useless2为:
useless2=total2--target2
35)、最后去除区域useless2的深度信息。
5.根据权利要求4所述的一种基于目标检测和背景去除的三维模型实时重建方法,其特征在于,步骤s3,根据深度图像中的深度信息合成单帧点云,包括以下步骤:
s31、设定阈值,将大于深度值大于阈值的点从深度图像中去除;
s32、根据rgb-d相机的内参矩阵,将深度图像中的点映射到相机坐标系中;
s33、设定目标坐标系与相机坐标系的旋转、平移关系,将相机坐标系中的点映射到目标坐标系中。
6.根据权利要求5所述的一种基于目标检测和背景去除的三维模型实时重建方法,其特征在于,所述去噪处理具体为:
设扫描半径为r,相邻点的数量为neighbors,假设现有点point,函数countnb使得以下等式成立:
neighbors=countnb(point,r)
遍历所有点云中的点,使用函数countnb计算每一个点的neighbors,判断其是否大于设定的阈值;
若一个点的neighbors大于设定的阈值,则保留该点;否则,将该点从点云中移除。
7.根据权利要求6所述的一种基于目标检测和背景去除的三维模型实时重建方法,其特征在于,步骤s4将颜色信息并行渲染至点云中,包括以下步骤:
s41、去除颜色图像和深度图像的无关区域之后,将颜色图像和深度图像目标区域的每个像素点的信息一一对应存储到数据库database中;
s42、设像素点的颜色信息为(r,g,b),唯一标识符为id,查找函数findcolor根据id从database中查找出每个点的颜色信息;
s43、在生成物体的三维模型点云之后,根据每个点的id从database中找到对应的颜色信息,最后将每个点的颜色信息渲染到点云中,查找、渲染过程多个点同时进行。
8.一种实现权利要求7基于目标检测和背景去除的三维模型实时重建方法的装置,其特征在于,包括:rgb-d相机、存储器、处理器以及存储在所述存储器上并在处理器上运行的三维模型实时重建模块。
9.根据权利要求8所述的基于目标检测和背景去除的三维模型实时重建装置,其特征在于,所述三维模型实时重建模块,包括:
物体信息采集模块:调用rgb-d相机从不同角度获取目标物体的颜色图像流和深度图像流,颜色图像和深度图像大小一致,根据相机提供的时间戳对颜色图像流和深度图像流进行对齐处理;
目标检测模块:使用已完成训练的目标检测神经网络模型从颜色图像中检测出物体所在区域,去除其余区域的颜色信息,并对应去除深度图像中无关区域的深度信息;
点云处理模块:使用物体每一帧的深度图像合成单帧物体点云,然后计算当前帧点云与前一帧点云之间的旋转偏移量,最后将当前点云旋转、平移后融合到三维模型点云中。
模型优化模块:根据三维模型点云中点附近的相邻点数量进行去噪处理,然后将颜色信息渲染到三维模型点云中,最后对三维模型点云进行表面网格化处理,生成完整的三维模型;
模型可视化展示模块:实时展示重建出的三维模型。
10.根据权利要求9所述的基于目标检测和背景去除的三维模型实时重建装置,其特征在于,所述rgb-d相机为基于双目测距原理的深度相机、基于结构光原理的深度相机或基于tof原理的深度相机。
技术总结