发明内容
本发明的目的是针对现有技术的缺陷,提供一种三维点云数据的去噪方法,可以针对不同复杂场景稳定、高效、准确的滤除由飞行时间传感器采集到的三维点云数据中的噪点。
为实现上述目的,本发明提供了一种三维点云数据的去噪方法,所述方法包括:
提取三维点云数据的深度数据,建立二维点云矩阵;
提取所述二维点云矩阵的K个3×3子矩阵Nk;
建立所述子矩阵Nk的中心元素在所述二维点云矩阵中的位置索引;
将所述子矩阵Nk内的中心元素a2,2分别与aij差的绝对值相加,记做M1,其中aij为所述子矩阵Nk内的元素,1≤i≤3为行标,1≤j≤3为列标;
如果所述M1大于第一阀值,判定所述中心元素a2,2为噪点,根据所述位置索引找到所述噪点在所述二维点云矩阵中的位置并舍弃所述噪点对应的元素;
如果所述M1小于或等于第一阀值,则保留所述中心元素a2,2在所述二维点云矩阵中的位置所对应的元素。
进一步的,所述三维点云数据是通过飞行时间传感器捕获的三维图像的三维坐标。
进一步的,所述二维点云矩阵的列数和行数与所述飞行时间传感器的分辨率一致。
进一步的,所述二维点云矩阵内的元素位置排布与所述三维点云中的点在投影平面上的位置关系一致。
进一步的,所述如果所述M1大于第一阀值,则:
所述子矩阵内的中心元素a2,2分别与左上相邻的元素a1,1a1,2a2,1差的绝对值求和,记做D1;
所述子矩阵内的中心元素a2,2分别与右上相邻的元素a1,2a1,3a2,3差的绝对值求和,记做D2;
所述子矩阵内的中心元素a2,2分别与右上相邻的元素a2,1a3,1a3,2差的绝对值求和,记做D3;
所述子矩阵内的中心元素a2,2分别与右上相邻的元素a2,3a3,2a3,3差的绝对值求和,记做D4;
取D1、D2、D3、D4中的最小值,记做Dmin;
如果Dmin小于第二阀值,则保留所述中心元素a2,2在所述二维点云矩阵中的位置所对应的元素;
如果Dmin大于或等于第二阀值,则判定所述中心元素a2,2为噪点,根据所述位置索引找到所述噪点在所述二维点云矩阵中的位置并舍弃所述噪点对应的元素。
进一步的,所述第二阀值不大于所述第一阀值的一半。
进一步的,所述3×3子矩阵Nk的个数k=行数×列数-2(行数+列数)+4,其中行数和列数分别为二维点云矩阵的行数和列数。
进一步的,所述建立所述子矩阵Nk的中心元素在所述二维点云矩阵中的位置索引包括:标记每个所述3×3子矩阵Nk中a2,2元素在所述二维点云矩阵中的行标和列标,根据所述行标和列标匹配到所述二维点云矩阵中对应的深度数据。
本发明实施例提供的三维点云数据的去噪方法,针对不同复杂场景稳定、高效、准确的滤除了由飞行时间传感器采集到的三维点云数据中的噪点。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例提供的三维点云数据的去噪方法流程图。如图1所示,所述方法包括:
步骤S110,提取三维点云数据的深度数据,建立二维点云矩阵,所述二维点云矩阵内元素为所述深度数据。
具体的,三维点云数据的获取是通过飞行时间传感器捕获的三维图像的三维坐标,三维坐标是通过像素阵列的方式存储在传感器芯片中,采用的三维坐标是依据传感器坐标系生成的数值,其中包括被测物在投影平面的位置信息和被测物体的深度信息,所述投影平面与深度数据方向垂直。
具体的,由于三维点云数据以阵列的形式进行存储,而像素阵列为传感器的分辨率,因此由三维点云数据的深度数据提取的二维点云矩阵的列数和行数与飞行时间传感器的分辨率一致。具体的,当飞行时间传感器的分辨率为32×48时,即飞行时间传感器的水平像素的个数为32,垂直像素的个数为48,则二维点云矩阵的行数取48,列数取32。
具体的,二维点云矩阵内的元素位置排布与所述三维点云中的点在投影平面上的位置关系一致。由于飞行时间传感器采集到的数据需要进行三维重建,因此采集存储的数据需要根据投影平面进行位置标记,将二维点云矩阵虚拟成投影平面,根据飞行时间传感器采集到的三维点云数据的位置标记将三维点云数据里的深度数据投射到二维点云矩阵,通过一一对应投射,保证了二维点云矩阵中各个相邻的元素在三维图像中也是相邻的。
步骤S120,提取所述二维点云矩阵的K个3×3子矩阵Nk。
所提取的3×3子矩阵Nk里的相邻元素在二维点云矩阵中同为相邻的,所提取的不重复3×3子矩阵Nk的个数k≤行数×列数-2(行数+列数)+4,其中行数和列数分别为二维点云矩阵的行数和列数,例如:二维点云矩阵为32×48,则K≤32×48-2(32+48)+4,即K≤1380,在32×48的二维点云矩阵中最多可以提取出1380个3×3子矩阵。
具体的,k=行数×列数-2(行数+列数)+4,即取最大值时,从二维点云矩阵中提取出了所有不重复的3×3子矩阵,最大限度保证了每个点的去噪判断。
步骤S130,建立所述3×3子矩阵Nk的中心元素在所述二维点云矩阵中的位置索引。
在k个3×3子矩阵Nk中,每个3×3子矩阵的第二行第二列为中心元素,记做a2,2,将二维点云矩阵内元素记做bmn,其中m表示元素在二维点云矩阵的行位置,n表示元素在二维点云矩阵中的列位置,优选的,标记每个3×3子矩阵Nk中a2,2元素在二维点云矩阵中的行标和列标,根据标记的行标和列标匹配到二维点云矩阵中对应的深度数据。例如:在一个32×48的二维点云矩阵中,当提取到第一个3×3子矩阵,则对N1进行标记,N1→a2,2→b2,2,通过标记,可以知道提取的N1矩阵中心元素在32×48的二维点云矩阵中的位置是第二行第二列,当提取到第二个3×3子矩阵,则对N2进行标记,N2→a2,2→b2,3,可以知道提取的N2矩阵中心元素在32×48的二维点云矩阵中的位置是第二行第三列,以此类推,当提取到最后一个即第1380个3×3子矩阵时,则对N1380进行标记,N1380→a2,2→b31,47,可以知道提取的N1380矩阵中心元素在32×48的二维点云矩阵中的位置是第31行47列,在这个实施例中,是按照逐行依次的顺序提取的3×3子矩阵,本发明中的提取顺序不限于该实施例的顺序,在提取过程中做对应的位置索引都能找到对应的二维点云矩阵中的深度数据。由于是对3×3子矩阵中心元素进行去噪判断,所以只需要对中心元素的位置进行标记,从而大幅度降低了系统的计算量。
步骤S140,将子矩阵Nk内的中心元素a2,2分别与aij差的绝对值相加,记做M1,其中aij为所述子矩阵Nk内的元素,1≤i≤3为行标,1≤j≤3为列标。
具体的,子矩阵Nk为三行三列的矩阵,则
M1=|a2,2-a1,1|+|a2,2-a1,2|+|a2,2-a2,1|+|a2,2-a2,3|+|a2,2-a3,1|+|a2,2-a3,2|+|a2,2-a3,3|;
例如:在一个32×48的二维点云矩阵中,当提取出所有子矩阵Nk时,M1的值有1380个。
步骤S150,如果M1大于第一阀值,判定所述中心元素a2,2为噪点,根据所述位置索引找到所述噪点在所述二维点云矩阵中的位置并舍弃所述噪点对应的元素。
将M1与第一阀值进行比较,当大于第一阀值时,则找到用于计算M1的3×3子矩阵中的a2,2在二维点云矩阵中对应的bmn,并将其舍弃。
具体的,第一阀值的大小与噪点的数量成反比关系,当第一阀值越小时,被判断成噪点的点越多,当阀值过小时,会出现过饱和,被测物有效的点云数据会被错误舍弃,当第一阀值越大时,被判断成噪点的点越少,第一阀值过大时,会保留下过多的噪点,去噪效果不明显,可以根据标准被测物多次选择不同阀值的方式找到合适的第一阀值,在一个240×320的二维点云矩阵的去噪处理中,优选的,第一阀值取0.2。
在步骤S150中,优选的,如果M1大于第一阀值,做进一步的判断如下:
将子矩阵内的中心元素a2,2分别与左上相邻的元素a1,1a1,2a2,1差的绝对值求和,记做D1,即
D1=|a2,2-a1,1|+|a2,2-a1,2|+|a2,2-a2,1|;
将子矩阵内的中心元素a2,2分别与右上相邻的元素a1,2a1,3a2,3差的绝对值求和,记做D2,即
D2=|a2,2-a1,2|+|a2,2-a1,3|+|a2,2-a2,3|
将子矩阵内的中心元素a2,2分别与右上相邻的元素a2,1a3,1a3,2差的绝对值求和,记做D3,即
D3=|a2,2-a2,1|+|a2,2-a3,1|+|a2,2-a3,2|
将子矩阵内的中心元素a2,2分别与右上相邻的元素a2,3a3,2a3,3差的绝对值求和,记做D4,即
D4=|a2,2-a2,3|+|a2,2-a3,2|+|a2,2-a3,3|
比较D1、D2、D3、D4的大小,取最小值记做Dmin,如果Dmin小于第二阀值,则保留上述中心元素a2,2在对应的二维点云矩阵中的位置所对应的元素bmn;如果Dmin大于或等于第二阀值,则判定上述中心元素a2,2为噪点,根据位置索引找到噪点在二维点云矩阵中的位置并舍弃对应的元素bmn。
具体的,第二阀值的大小与噪点的数量成反比关系,当第二阀值越大时,被判断成噪点的点越少,失去了进行二次判断的意义,可以根据标准被测物多次选择不同阀值的方式找到合适的第二阀值,优选的,第二阀值不大于第一阀值的一半,对M1大于第一阀值做进一步判断能有效降低噪点的误删除率。
步骤S160,如果M1小于或等于第一阀值,则保留中心元素a2,2在二维点云矩阵中的位置所对应的元素bmn。
二维点云矩阵内的K个元素依次进行噪点判断后,保留下来的bmn对应的三维点云数据被判断为有效点云,用于点云的提取和三维重建。
上述三维点云数据的去噪方法通过二次判断有效的去除了通过飞行时间传感器采集到的三维点云数据中的噪点,降低了后期点云数据提取和三维重建的难度,并且二次判断的算法只用到了简单的求和取绝对值及数值比较,占用系统资源少,运算速度快,去噪效果良好,该点云数据的去噪方法尤其适合对需要快速采集并处理的点云数据。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。