CN103679815B - 基于表面搜索的可视外壳生成方法及装置 - Google Patents
基于表面搜索的可视外壳生成方法及装置 Download PDFInfo
- Publication number
- CN103679815B CN103679815B CN201310705135.3A CN201310705135A CN103679815B CN 103679815 B CN103679815 B CN 103679815B CN 201310705135 A CN201310705135 A CN 201310705135A CN 103679815 B CN103679815 B CN 103679815B
- Authority
- CN
- China
- Prior art keywords
- point
- model
- spatial point
- bounding box
- mark
- 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
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种基于表面搜索的可视外壳生成方法及装置,涉及图像三维重建技术领域,所述方法包括:S1:获取N幅待重建的二值图像,建立包围盒,将所述包围盒根据所述分辨率生成均匀的空间点云,所述二值图像区分前景部分和背景部分;S2:根据所述待重建的二值图像在位于所述包围盒内部的空间点中寻找出一个处于重建模型表面的种子点;S3:以所述种子点为基准,找出处于所述重建模型表面所有的空间点;S4:根据所述重建模型表面所有的空间点提取封闭网格,以实现模型表面网格生成。本发明使用表面点搜索的方式,避免了把计算时间浪费在不能对重建物体表面网格提供任何信息的点上面,极大地提高了计算速度。
Description
技术领域
本发明涉及图像三维重建技术领域,特别涉及一种基于表面搜索的可视外壳生成方法及装置。
背景技术
三维重建是指对三维物体建立适合计算机表示和处理的数字模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。
现有的三维重建方法均会逐一计算在模型外部和模型内部的每一个空间点的内外属性,导致很多计算量都花在没有模型存在的空间,导致计算效率低下,三维重建所需时间过长。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何大幅降低三维重建所需时间。
(二)技术方案
为解决上述技术问题,本发明提供了一种基于表面搜索的可视外壳生成方法,所述方法包括以下步骤:
S1:获取N幅待重建的二值图像,建立包围盒,将所述包围盒根据所述分辨率生成均匀的空间点云,所述二值图像区分前景部分和背景部分;
S2:根据所述待重建的二值图像在位于所述包围盒内部的空间点中寻找出一个处于重建模型表面的种子点;
S3:以所述种子点为基准,找出处于所述重建模型表面所有的空间点;
S4:根据所述重建模型表面所有的空间点提取封闭网格,以实现模型表面网格生成。
其中,所述空间点云中的每个空间点均包括模型内外标识和模型表面标识,且所述模型内外标识和模型表面标识的初始状态均为未知,所述模型内外标识包括未知、内部和外部三种状态,所述模型表面标识包括未知、内表面和外表面三种状态;
步骤S1还包括:获取所述N幅待重建的二值图像分别对应的相机标定数据;
步骤S2包括:
S201:获取所述包围盒的中心空间点,以所述包围盒的中心空间点为中心、与所述包围盒的其它相邻空间点建立一个X×X×M个空间点组成的长方体,其中X为第一预设数量,M为所述包围盒高度方向的空间点数;
S202:从位于所述长方体的上表面或下表面的空间点开始遍历位于所述长方体中的空间点云,根据所述相机标定数据计算当前空间点在每幅二值图像上的投影,若当前空间点在每幅二值图像的投影均处于前景部分,则将所述当前空间点作为所述种子点,且将所述当前空间点的模型内外标识设置为内部,将所述当前空间点的模型表面标识设置为内表面,并执行步骤S3;否则将所述当前空间点的模型内外标识设置为外部,并处理下一个空间点。
其中,步骤S3包括:
S301:将所述种子点的索引压入队列;
S302:判断所述队列中是否为空,若是,则执行步骤S4,否则从所述队列中取出队头的索引,并遍历以所述队头的索引对应的空间点为中心,半径为r的邻域内的所有空间点;
S303:判断当前邻居点是否处于所述包围盒内部,若是,则执行步骤S304;
S304:判断所述当前邻居点的模型表面标识是否为未知,若是,则执行步骤S305;
S305:获取并设置所述当前邻居点的模型内外标识,将所述队头的索引对应的空间点处于模型内外的状态和所述当前邻居点的模型内外标识进行比较,若不相同,则执行步骤S306;
S306:将所述当前邻居点的索引压入所述队列,当所述队头的索引对应的空间点的模型表面标识为外表面时,将所述当前邻居点的模型表面标识设为内表面;当所述队头的索引对应的空间点的模型表面标识为内表面时,将所述当前邻居点的模型表面标识设为外表面,直至遍历完成,返回步骤S302。
其中,步骤S3和步骤S4之间还包括:
根据所述模型表面标识为内表面的空间点建立新的包围盒,将所述包围盒向外扩张第二预设数量的距离,并将新的包围盒根据所述分辨率生成均匀的空间点云;
重复执行步骤S2和步骤S3,以获得扩张后的包围盒中的重建模型表面所有空间点。
其中,步骤S4之前还包括:
从所述包围盒的第一表面的空间点开始向所述包围盒上与第一表面相对的表面的空间点,遍历所述包围盒内的空间点云,根据所述空间点云的模型表面标识对所述包围盒内空间点云的模型内外标识进行设置,对处于所述重建模型内部和外部的空间点进行赋值,并对所述重建模型表面所有的空间点取平滑均值。
本发明还公开了一种基于表面搜索的可视外壳生成装置,所述装置包括:
获取建立模块,用于获取N幅待重建的二值图像,建立包围盒,将所述包围盒根据所述分辨率生成均匀的空间点云,所述二值图像区分前景部分和背景部分;
种子点寻找模块,用于根据所述待重建的二值图像在位于所述包围盒内部的空间点中寻找出一个处于重建模型表面的种子点;
表面寻找模块,用于以所述种子点为基准,找出处于所述重建模型表面所有的空间点;
外壳生成模块,用于根据所述重建模型表面所有的空间点提取封闭网格,以实现模型表面网格生成。
其中,所述空间点云中的每个空间点均包括模型内外标识和模型表面标识,且所述模型内外标识和模型表面标识的初始状态均为未知,所述模型内外标识包括未知、内部和外部三种状态,所述模型表面标识包括未知、内表面和外表面三种状态;
所述获取建立模块,还用于获取所述N幅待重建的二值图像分别对应的相机标定数据;
所述种子点寻找模块包括:
长方体获取子模块,用于获取所述包围盒的中心空间点,以所述包围盒的中心空间点为中心、与所述包围盒的其它相邻空间点建立一个X×X×M个空间点组成的长方体,其中X为第一预设数量,M为所述包围盒高度方向的空间点数;
遍历判断子模块,用于从位于所述长方体的上表面或下表面的空间点开始遍历位于所述长方体中的空间点云,根据所述相机标定数据计算当前空间点在每幅二值图像上的投影,若当前空间点在每幅二值图像的投影均处于前景部分,则将所述当前空间点作为所述种子点,且将所述当前空间点的模型内外标识设置为内部,将所述当前空间点的模型表面标识设置为内表面;否则将所述当前空间点的模型内外标识设置为外部,并处理下一个空间点。
其中,所述表面寻找模块包括:
索引压入子模块,用于将所述种子点的索引压入队列;
索引遍历子模块,用于判断所述队列中是否为空,从所述队列中取出队头的索引,并遍历以所述队头的索引对应的空间点为中心,半径为r的邻域内的所有空间点;
内部判断子模块,用于判断当前邻居点是否处于所述包围盒内部;
标志判断子模块,用于判断所述当前邻居点的模型表面标识是否为未知;
状态获取子模块,用于获取并设置所述当前邻居点的模型内外标识,将所述队头的索引对应的空间点处于模型内外的状态和所述当前邻居点的模型内外标识进行比较;
标志设置子模块,用于将所述当前邻居点的索引压入所述队列,当所述队头的索引对应的空间点的模型表面标识为外表面时,将所述当前邻居点的模型表面标识设为内表面;当所述队头的索引对应的空间点的模型表面标识为内表面时,将所述当前邻居点的模型表面标识设为外表面,直至遍历完成。
其中,所述装置还包括:
建立扩张模块,根据所述模型表面标识为内表面的空间点建立新的包围盒,将所述包围盒向外扩张第二预设数量的距离,并将新的包围盒根据所述分辨率生成均匀的空间点云。
其中,所述装置还包括:
平滑均值模块,用于从所述包围盒的第一表面开始向所述包围盒的中心空间点或向所述包围盒上与第一表面相对的表面,遍历所述包围盒内的空间点云,根据所述空间点云的模型表面标识对所述包围盒内空间点云的模型内外标识进行设置,对处于所述重建模型内部和外部的空间点进行赋值,并对所述重建模型表面所有的空间点取平滑均值。
(三)有益效果
本发明使用表面点搜索的方式,避免了把计算时间浪费在不能对重建物体表面网格提供任何信息的点上面,极大地提高了计算速度。
本发明通过两次重建的方法,能够得到保持小特征的网格。
本发明在表面搜索算法中同时搜索出了内表面点和外表面点,同时进行了一次平滑操作并使用平滑后的均值作为Marching Cube的算法的等值点,这样得到的网格是相对平滑的,不会出现现有方法中明显的锯齿状。
附图说明
图1是本发明一种实施方式的基于表面搜索的可视外壳生成方法的流程图;
图2是用于模型重建的原始照片(即未进行二值化处理的图片)中的第一幅图;
图3是用于模型重建的原始照片中的第二幅图;
图4是第一次重建(即执行到步骤104)出来的点云,包含63293个表面点;
图5是求取紧致包围盒后再次重建出来的点云,包含372989个表面点;
图6是使用第一次重建出来的点云重建的网格(即执行到步骤104后,直接执行步骤109所获得的网格),包含54418个顶点,108824个三角面片;
图7是使用求取了紧致包围盒后重新生成出来的点云重建出来的网格,包含325592个顶点,651100个三角面片;
图8是重建出来的恐龙模型背部细节特征比较;其中,左边为使用第一次重建出来的点云重建的模型,右边为求取了紧致包围盒之后重建出来的点云重建的模型;
图9是简化之后的模型,包含5997个顶点,12000个三角面片;
图10是简化之后的网格模型;
图11是本发明一种实施方式的基于表面搜索的可视外壳生成装置的结构框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1是本发明一种实施方式的于表面搜索的可视外壳生成方法的流程图;参照图1,所述方法包括以下步骤:
S1:获取N幅待重建的二值图像,建立包围盒,将所述包围盒根据所述分辨率生成均匀的空间点云,本实施方式中,所述包围盒为正方体且其中均匀的空间点云的空间点总数为M*M*M,所述二值图像区分前景部分和背景部分,本实施方式中,所述前景部分用1表示,所述背景部分用0表示,所述N幅待重建的二值图像的张数没有具体的数量限制,一般以N幅图像能够覆盖重建模型的各个角度为准,为便于区分每个空间点的状态,故而设置模型内外标识,所述模型内外标识为未知、内部和外部三种状态,所述模型表面标识为未知、内表面和外表面三种状态;
S2:根据所述待重建的二值图像在位于所述包围盒内部的空间点中寻找出一个处于重建模型表面的种子点;
S3:以所述种子点为基准,找出处于所述重建模型表面所有的空间点;
S4:根据所述重建模型表面所有的空间点提取封闭网格,以实现模型表面网格生成。
为实现以最高效的方式找出种子点,优选地,所述空间点云中的每个空间点均包括模型内外标识和模型表面标识,且所述模型内外标识和模型表面标识的初始状态均为未知,所述模型内外标识包括未知、内部和外部三种状态,所述模型表面标识包括未知、内表面和外表面三种状态;
步骤S1还包括:获取所述N幅待重建的二值图像分别对应的相机标定数据;
步骤S2包括:
S201:获取所述包围盒的中心空间点,以所述包围盒的中心空间点为中心、与所述包围盒的其它相邻空间点建立一个X×X×M个空间点组成的长方体,其中X为第一预设数量,M为所述包围盒高度方向的空间点数;
S202:从位于所述长方体的上表面或下表面的空间点开始遍历位于所述长方体中的空间点云,根据所述相机标定数据计算当前空间点在每幅二值图像上的投影,若当前空间点在每幅二值图像的投影均处于前景部分,则将所述当前空间点作为所述种子点,且将所述当前空间点的模型内外标识设置为内部,将所述当前空间点的模型表面标识设置为内表面,并执行步骤S3;否则将所述当前空间点的模型内外标识设置为外部,并处理下一个空间点。
为找出处于所述重建模型表面所有的空间点,优选地,步骤S3包括:
S301:将所述种子点的索引压入队列;
S302:判断所述队列中是否为空,若是,则执行步骤S4,否则从所述队列中取出队头的索引,并遍历以所述队头的索引对应的空间点为中心,半径为r的邻域内的所有空间点;
S303:判断当前邻居点是否处于所述包围盒内部,若是,则执行步骤S304;
S304:判断所述当前邻居点的模型表面标识是否为未知,若是,则执行步骤S305;
S305:获取并设置所述当前邻居点的模型内外标识,将所述队头的索引对应的空间点处于模型内外的状态和所述当前邻居点的模型内外标识进行比较,若不相同,则执行步骤S306;
S306:将所述当前邻居点的索引压入所述队列,当所述队头的索引对应的空间点的模型表面标识为外表面时,将所述当前邻居点的模型表面标识设为内表面;当所述队头的索引对应的空间点的模型表面标识为内表面时,将所述当前邻居点的模型表面标识设为外表面,直至遍历完成,返回步骤S302。
由于最初建立的包围盒通常较大,导致最后形成的网格很粗糙,很多细节无法被显示出来,但往往这些细节却是非常重要的部分,为克服该问题,优选地,步骤S3和步骤S4之间还包括:
根据所述模型表面标识为内表面的空间点建立新的包围盒,将所述包围盒向外扩张第二预设数量的距离,并将新的包围盒根据所述分辨率生成均匀的空间点云;
重复执行步骤S2和步骤S3,以获得扩张后的包围盒中的重建模型表面所有空间点。
为保证生成网格的准确性,优选地,步骤S4之前还包括:
从所述包围盒的第一表面(可以为上表面、下表面或四个侧面中的一个)开始向所述包围盒上与第一表面相对的表面,遍历所述包围盒内的空间点云,根据所述空间点云的模型表面标识对所述包围盒内空间点云的模型内外标识进行设置,对处于所述重建模型内部和外部的空间点进行赋值(本实施方式中,可对所述重建模型内部的空间点赋值为7,对模型外部的空间点赋值为0),并对所述重建模型表面所有的空间点取平滑均值。
假设本实施方式中从上表面的空间点开始向下表面的空间点进行遍历,当遍历过程会穿过所述重建模型时,则必然会先从重建模型外部穿过所述重建模型内部,再到重建模型外部(此处以最简单的情况为例,来说明本发明,若遍历过程多次穿过重建模型,则按照以下方法做多次判断即可),故而在判断时,先判断所述包围盒的第一表面上的空间点的模型内外标识和模型表面标识是否均为未知,若是,则将模型内外标识设置为外部,并判断下一空间点的模型内外标识和模型表面标识,若下一空间点的模型内外标识也为未知,则将该空间点的模型内外标识也设置为外部,直至判断到空间点的模型内外标识为内部、且模型表面标识为内表面,再继续遍历,在遇到另一个模型内外标识为模型内外标识为内部、且模型表面标识为内表面的空间点之前,将遍历到的空间点(即两个相邻的模型表面标识为内表面的空间点之间)的模型内外标识均设为内部,之后会遍历到一个模型内外标识为外部、且模型表面标识为外表面的空间点,从该点开始将遍历到的空间点的模型内外标识均设为外部。
在上述判断过程中,若空间点的模型内外标识不为未知,并且模型表面标识为未知,则直接判断下一空间点,以节省判断量;相应的,步骤S4中,将平滑均值作为MarchingCube算法中等值点的值,使用标准的Marching Cube算法提取封闭网格,并对网格进行平滑和简化操作得到最终的网格。
实施例
下面以一个具体的实施例来说明本发明,但不限定本发明的保护法范围。本实施例的方法包括:
步骤101:参照图2~3,获取30张二值图像及图像分别对应的相机标定数据,图像中包含需要重建物体部分(即前景部分)使用1表示,其余部分(即背景部分)使用0表示。接收重建模型包围盒(左下角为(-50,-50,-50),右上角为(50,40,50)),此处的50和40是用户根据所熟悉相机标定数据所使用的全局坐标系定义的值;接收标定数据;并接收重建的分辨率,本实施例的分辨率设为501;
步骤102:根据原始包围盒计算正方体包围盒(左下角为(-50,-50,-50),右上角为(50,50,50))。然后根据分辨率把正方体包围盒进行细分,得到501*501*501个空间点,即125751501个空间点,每个空间点的坐标(xi,yj,zk)为:
其中,i=0,1,2,...,500,j=0,1,2,...,500,k=0,1,2,...,500,(i,j,k)为空间点的索引。
每一个空间点都使用一个8比特的数据Inout_stat来表示该点的模型内外标识:1表示模型内部,0表示模型外部,2表示状态未知;使用一个8比特的数据Surface_stat来表示模型表面标识:0表示未知状态,1表示内表面,2表示外表面。使用一个64比特的浮点数Fvalue来表示点在标量场中的场值。在本步骤中所有点的Inout_stat值都设置成2;Surface_stat值设置成0。
步骤103:求取重建模型表面种子点。本实例假设x和y的搜索范围都为20。首先根据原始的包围盒计算出中点的位置为(255,255,255),这样我们对于x和y的索引为[235,275]的点都从Z轴索引从小到大的方式进行搜索。具体地说,我们首先从索引为(235,235,0)开始,一直到索引为(235,235,500)的点,然后再从(236,235,0)开始,这样一直搜索。
对于搜索中的每个点,我们首先根据索引计算出(xi,yj,zk),然后使用标定数据把该点投影到输入的每幅二值图像中去。如果投影落在对应的二值图像值为1的范围内,那么该投影点落在重建物体前景分割中。如果所有的投影都落在对应图像的前景分割中,那么该点肯定处于重建物体内部;否则该点处于重建物体外部。对于处于重建物体外部的点,我们设置改点得Inout_stat值为0,对于处于重建物体内部的点,设置其值为1。当找到第一个处于物体内部的点(此处为索引为(237,240,50)的点)的时候就停止搜索后面的点,并把该点的Surface_stat值设置为1。
步骤104:把索引为(237,240,50)的点压入一个队列中。当队列不为空时,首先从队列中取出队首的索引,然后把队首的元素从队列中弹出。对该点的26个邻居点进行处理,对于每个邻居点,如果该邻居点不在包围盒范围以内,那么跳过该邻居点,继续处理下面一个邻居点;否则检查该邻居点的Surface_stat的值,如果值为1或者2,则表示该邻居点已经处理过了,跳过该邻居点继续处理下一个邻居点;如果值为0,那么查看该点的Inout_stat的值,如果该值为2,那么把这个点投影到输入图像,当投影在所有的图像中都处于前景部分的时候判断该点是重建模型内部的点,设置该邻居点的Inout_stat为1,否则设置其为0。如果邻居点的Inout_stat值与当前点一样,比如当前点的值为0,当前邻居点的值也为0(或者当前点和邻居点得Inout_stat的值都为1),那么就跳过当前点,继续处理下一个邻居点;否则把当前邻居点压入队列中,然后根据当前点的模型表面标识来设置该邻居点的相应状态:如果当前点为“内表面”,那么设置该邻居点的模型表面标识为“外表面”,参照图4和6;反之亦然。
步骤105:根据所有的模型表面标识标记为“内表面”的点的坐标计算出紧致包围盒(即新的包围盒),然后把这个包围盒往外扩展一个距离。在本例中计算出的紧致包围盒左下角为(-20,-20,-45),右上角为(20,15,30)。往外扩展了3个单位得到的最后的包围盒的左下角坐标为(-23,-23,-48),右上角的坐标为(23,18,33)。
步骤106:参照图5和7,根据上一步骤计算出来的紧致包围盒,使用S101-S104步骤中的方法以相同的分辨率重新搜索处于模型表面的点云,按照x,y和z的索引都从小到大的方式遍历包围盒中的空间点,把z的索引为0的空间点的Inout_stat都设置为0,然后对于遍历到的空间点(xi,yi,zi),如果该点的Inout_stat等于2,那么设置该点的值为(xi,yi,zi-1)点对应的值。根据图8可知,求取紧致包围盒后,可使得细节之处更加清楚;
步骤107:把S106中计算后模型内部点的FValue值设置为7,模型外部的点的FValue设置值为0,对于模型表面的点(内表面点和外表面点),使用3*3*3邻域点进行平滑均值(其中模型内部点的值当作7,模型外部的点的值当作0,取均值);
步骤108:统计所有值在0-7之间的点的均值AveValue,然后使用标准的MarchingCube算法提取等值点为AveValue的三角网格;
步骤109:参照图9~10,对得到的网格进行平滑和简化得到最终的网格。
本发明还公开了一种基于表面搜索的可视外壳生成装置,参照图11,所述装置包括:
获取建立模块,用于获取N幅待重建的二值图像,建立包围盒,将所述包围盒根据所述分辨率生成均匀的空间点云,所述二值图像区分前景部分和背景部分;
种子点寻找模块,用于根据所述待重建的二值图像在位于所述包围盒内部的空间点中寻找出一个处于重建模型表面的种子点;
表面寻找模块,用于以所述种子点为基准,找出处于所述重建模型表面所有的空间点;
外壳生成模块,用于根据所述重建模型表面所有的空间点提取封闭网格,以实现模型表面网格生成。
优选地,所述空间点云中的每个空间点均包括模型内外标识和模型表面标识,且所述模型内外标识和模型表面标识的初始状态均为未知,所述模型内外标识包括未知、内部和外部三种状态,所述模型表面标识包括未知、内表面和外表面三种状态;
所述获取建立模块,还用于获取所述N幅待重建的二值图像分别对应的相机标定数据;
所述种子点寻找模块包括:
长方体获取子模块,用于获取所述包围盒的中心空间点,以所述包围盒的中心空间点为中心、与所述包围盒的其它相邻空间点建立一个X×X×M个空间点组成的长方体,其中X为第一预设数量,M为所述包围盒高度方向的空间点数;
遍历判断子模块,用于从位于所述长方体的上表面或下表面的空间点开始遍历位于所述长方体中的空间点云,根据所述相机标定数据计算当前空间点在每幅二值图像上的投影,若当前空间点在每幅二值图像的投影均处于前景部分,则将所述当前空间点作为所述种子点,且将所述当前空间点的模型内外标识设置为内部,将所述当前空间点的模型表面标识设置为内表面;否则将所述当前空间点的模型内外标识设置为外部,并处理下一个空间点。
优选地,所述表面寻找模块包括:
索引压入子模块,用于将所述种子点的索引压入队列;
索引遍历子模块,用于判断所述队列中是否为空,从所述队列中取出队头的索引,并遍历以所述队头的索引对应的空间点为中心,半径为r的邻域内的所有空间点;
内部判断子模块,用于判断当前邻居点是否处于所述包围盒内部;
标志判断子模块,用于判断所述当前邻居点的模型表面标识是否为未知;
状态获取子模块,用于获取并设置所述当前邻居点的模型内外标识,将所述队头的索引对应的空间点处于模型内外的状态和所述当前邻居点的模型内外标识进行比较;
标志设置子模块,用于将所述当前邻居点的索引压入所述队列,当所述队头的索引对应的空间点的模型表面标识为外表面时,将所述当前邻居点的模型表面标识设为内表面;当所述队头的索引对应的空间点的模型表面标识为内表面时,将所述当前邻居点的模型表面标识设为外表面,直至遍历完成。
优选地,所述装置还包括:
建立扩张模块,根据所述模型表面标识为内表面的空间点建立新的包围盒,将所述包围盒向外扩张第二预设数量的距离,并将新的包围盒根据所述分辨率生成均匀的空间点云。
优选地,所述装置还包括:
平滑均值模块,用于从所述包围盒的第一表面开始向所述包围盒的中心空间点或向所述包围盒上与第一表面相对的表面,遍历所述包围盒内的空间点云,根据所述空间点云的模型表面标识对所述包围盒内空间点云的模型内外标识进行设置,对处于所述重建模型内部和外部的空间点进行赋值,并对所述重建模型表面所有的空间点取平滑均值。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (8)
1.一种基于表面搜索的可视外壳生成方法,其特征在于,所述方法包括以下步骤:
S1:获取N幅待重建的二值图像,建立包围盒,将所述包围盒根据分辨率生成均匀的空间点云,所述二值图像区分前景部分和背景部分;
S2:根据所述待重建的二值图像在位于所述包围盒内部的空间点中寻找出一个处于重建模型表面的种子点;
S3:以所述种子点为基准,找出处于所述重建模型表面所有的空间点;
S4:根据所述重建模型表面所有的空间点提取封闭网格,以实现模型表面网格生成;
所述空间点云中的每个空间点均包括模型内外标识和模型表面标识,且所述模型内外标识和模型表面标识的初始状态均为未知,所述模型内外标识包括未知、内部和外部三种状态,所述模型表面标识包括未知、内表面和外表面三种状态;
步骤S1还包括:获取所述N幅待重建的二值图像分别对应的相机标定数据;
步骤S2包括:
S201:获取所述包围盒的中心空间点,以所述包围盒的中心空间点为中心、与所述包围盒的其它相邻空间点建立一个X×X×M个空间点组成的长方体,其中X为第一预设数量,M为所述包围盒高度方向的空间点数;
S202:从位于所述长方体的上表面或下表面的空间点开始遍历位于所述长方体中的空间点云,根据所述相机标定数据计算当前空间点在每幅二值图像上的投影,若当前空间点在每幅二值图像的投影均处于前景部分,则将所述当前空间点作为所述种子点,且将所述当前空间点的模型内外标识设置为内部,将所述当前空间点的模型表面标识设置为内表面,并执行步骤S3;否则将所述当前空间点的模型内外标识设置为外部,并处理下一个空间点。
2.如权利要求1所述的方法,其特征在于,步骤S3包括:
S301:将所述种子点的索引压入队列;
S302:判断所述队列中是否为空,若是,则执行步骤S4,否则从所述队列中取出队头的索引,并遍历以所述队头的索引对应的空间点为中心,半径为r的邻域内的所有空间点;
S303:判断当前邻居点是否处于所述包围盒内部,若是,则执行步骤S304;
S304:判断所述当前邻居点的模型表面标识是否为未知,若是,则执行步骤S305;
S305:获取并设置所述当前邻居点的模型内外标识,将所述队头的索引对应的空间点处于模型内外的状态和所述当前邻居点的模型内外标识进行比较,若不相同,则执行步骤S306;
S306:将所述当前邻居点的索引压入所述队列,当所述队头的索引对应的空间点的模型表面标识为外表面时,将所述当前邻居点的模型表面标识设为内表面;当所述队头的索引对应的空间点的模型表面标识为内表面时,将所述当前邻居点的模型表面标识设为外表面,直至遍历完成,返回步骤S302。
3.如权利要求2所述的方法,其特征在于,步骤S3和步骤S4之间还包括:
根据所述模型表面标识为内表面的空间点建立新的包围盒,将所述包围盒向外扩张第二预设数量的距离,并将新的包围盒根据所述分辨率生成均匀的空间点云;
重复执行步骤S2和步骤S3,以获得扩张后的包围盒中的重建模型表面所有空间点。
4.如权利要求3所述的方法,其特征在于,步骤S4之前还包括:
从所述包围盒的第一表面的空间点开始向所述包围盒上与第一表面相对的表面的空间点,遍历所述包围盒内的空间点云,根据所述空间点云的模型表面标识对所述包围盒内空间点云的模型内外标识进行设置,对处于所述重建模型内部和外部的空间点进行赋值,并对所述重建模型表面所有的空间点取平滑均值。
5.一种基于表面搜索的可视外壳生成装置,其特征在于,所述装置包括:
获取建立模块,用于获取N幅待重建的二值图像,建立包围盒,将所述包围盒根据分辨率生成均匀的空间点云,所述二值图像区分前景部分和背景部分;
种子点寻找模块,用于根据所述待重建的二值图像在位于所述包围盒内部的空间点中寻找出一个处于重建模型表面的种子点;
表面寻找模块,用于以所述种子点为基准,找出处于所述重建模型表面所有的空间点;
外壳生成模块,用于根据所述重建模型表面所有的空间点提取封闭网格,以实现模型表面网格生成;
所述空间点云中的每个空间点均包括模型内外标识和模型表面标识,且所述模型内外标识和模型表面标识的初始状态均为未知,所述模型内外标识包括未知、内部和外部三种状态,所述模型表面标识包括未知、内表面和外表面三种状态;
所述获取建立模块,还用于获取所述N幅待重建的二值图像分别对应的相机标定数据;
所述种子点寻找模块包括:
长方体获取子模块,用于获取所述包围盒的中心空间点,以所述包围盒的中心空间点为中心、与所述包围盒的其它相邻空间点建立一个X×X×M个空间点组成的长方体,其中X为第一预设数量,M为所述包围盒高度方向的空间点数;
遍历判断子模块,用于从位于所述长方体的上表面或下表面的空间点开始遍历位于所述长方体中的空间点云,根据所述相机标定数据计算当前空间点在每幅二值图像上的投影,若当前空间点在每幅二值图像的投影均处于前景部分,则将所述当前空间点作为所述种子点,且将所述当前空间点的模型内外标识设置为内部,将所述当前空间点的模型表面标识设置为内表面;否则将所述当前空间点的模型内外标识设置为外部,并处理下一个空间点。
6.如权利要求5所述的装置,其特征在于,所述表面寻找模块包括:
索引压入子模块,用于将所述种子点的索引压入队列;
索引遍历子模块,用于判断所述队列中是否为空,从所述队列中取出队头的索引,并遍历以所述队头的索引对应的空间点为中心,半径为r的邻域内的所有空间点;
内部判断子模块,用于判断当前邻居点是否处于所述包围盒内部;
标志判断子模块,用于判断所述当前邻居点的模型表面标识是否为未知;
状态获取子模块,用于获取并设置所述当前邻居点的模型内外标识,将所述队头的索引对应的空间点处于模型内外的状态和所述当前邻居点的模型内外标识进行比较;
标志设置子模块,用于将所述当前邻居点的索引压入所述队列,当所述队头的索引对应的空间点的模型表面标识为外表面时,将所述当前邻居点的模型表面标识设为内表面;当所述队头的索引对应的空间点的模型表面标识为内表面时,将所述当前邻居点的模型表面标识设为外表面,直至遍历完成。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
建立扩张模块,根据所述模型表面标识为内表面的空间点建立新的包围盒,将所述包围盒向外扩张第二预设数量的距离,并将新的包围盒根据所述分辨率生成均匀的空间点云。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
平滑均值模块,用于从所述包围盒的第一表面开始向所述包围盒的中心空间点或向所述包围盒上与第一表面相对的表面,遍历所述包围盒内的空间点云,根据所述空间点云的模型表面标识对所述包围盒内空间点云的模型内外标识进行设置,对处于所述重建模型内部和外部的空间点进行赋值,并对所述重建模型表面所有的空间点取平滑均值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310705135.3A CN103679815B (zh) | 2013-12-19 | 2013-12-19 | 基于表面搜索的可视外壳生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310705135.3A CN103679815B (zh) | 2013-12-19 | 2013-12-19 | 基于表面搜索的可视外壳生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103679815A CN103679815A (zh) | 2014-03-26 |
CN103679815B true CN103679815B (zh) | 2017-01-25 |
Family
ID=50317256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310705135.3A Active CN103679815B (zh) | 2013-12-19 | 2013-12-19 | 基于表面搜索的可视外壳生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103679815B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109334011B (zh) * | 2018-11-02 | 2020-05-05 | 珠海赛纳打印科技股份有限公司 | 彩色3d打印方法、打印装置及终端设备 |
CN115641411A (zh) * | 2022-04-29 | 2023-01-24 | 中广核风电有限公司 | 基于光滑性的网格模型生成方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615304A (zh) * | 2009-07-31 | 2009-12-30 | 深圳先进技术研究院 | 生成鲁棒的可视外壳的方法 |
CN102393826A (zh) * | 2011-07-15 | 2012-03-28 | 浙江大学 | 一种基于多核并行处理的柔性场景连续碰撞检测方法 |
-
2013
- 2013-12-19 CN CN201310705135.3A patent/CN103679815B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615304A (zh) * | 2009-07-31 | 2009-12-30 | 深圳先进技术研究院 | 生成鲁棒的可视外壳的方法 |
CN102393826A (zh) * | 2011-07-15 | 2012-03-28 | 浙江大学 | 一种基于多核并行处理的柔性场景连续碰撞检测方法 |
Non-Patent Citations (2)
Title |
---|
"一种可视外壳的快速拓扑生成算法";余峰等;《中国图象图形学报》;20040525;第9卷(第5期);第604-610页 * |
"三维重构系统的研究和改进";汤列平;《中国优秀硕士学位论文全文数据库 信息科技辑》;20060915;第I138-698 * |
Also Published As
Publication number | Publication date |
---|---|
CN103679815A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Masc: Multi-scale affinity with sparse convolution for 3d instance segmentation | |
CN110705448B (zh) | 一种人体检测方法及装置 | |
JP6485646B2 (ja) | ストリートビューの画像をラベル付けする方法 | |
Gyulassy et al. | Topology-based simplification for feature extraction from 3D scalar fields | |
CN104809187B (zh) | 一种基于rgb‑d数据的室内场景语义标注方法 | |
CN110383340A (zh) | 使用稀疏体积数据进行路径规划 | |
CN106780751A (zh) | 基于改进的屏蔽泊松算法的三维点云重建方法 | |
CN109086683A (zh) | 一种基于点云语义增强的人手姿态回归方法和系统 | |
CN109635882A (zh) | 一种基于多尺度卷积特征提取和融合的显著物体检测方法 | |
CN102306180A (zh) | 一种基于海量激光雷达栅格点云数据的建模方法 | |
CN104183020B (zh) | 基于带惩罚项的局部二次误差测量的地物网格化简方法 | |
CN108596919A (zh) | 一种基于深度图的自动图像分割方法 | |
CN103530907A (zh) | 基于图像的复杂三维模型绘制方法 | |
CN106251331A (zh) | 一种倾斜测量场景中地物的提取方法 | |
CN106952324A (zh) | 矢量多边形栅格化并行叠加处理装置及方法 | |
CN114627219A (zh) | 三维场景数据的渲染方法及装置、存储介质、电子装置 | |
CN107977930A (zh) | 一种图像超分辨方法及其系统 | |
CN108665509A (zh) | 一种超分辨率重构方法、装置、设备及可读存储介质 | |
CN106952342A (zh) | 基于重心Voronoi剖分的点云均一化方法 | |
CN107103603A (zh) | 一种倾斜测量场景的地物提取方法 | |
CN107704799A (zh) | 一种人体动作识别方法及设备、计算机可读存储介质 | |
CN103679808A (zh) | 利用二维核磁图像重建头部三维模型的方法及系统 | |
CN103679815B (zh) | 基于表面搜索的可视外壳生成方法及装置 | |
CN114445588A (zh) | 具有开放表面的真实场景的结构的3d重建 | |
CN113094463A (zh) | 一种非结构化点云存储方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |