一种曲面凸点检测方法及装置
文献发布时间:2023-06-19 13:29:16
技术领域
本文涉及属于3D检测技术领域,尤其涉及一种曲面凸点检测方法及装置。
背景技术
三维点云是通过3D数字扫描等设备对物体表面进行离散采样后所得到的原始数据,其中包含了物体的三维信息以及相关的外表属性,一般所采集的数据量比较大并且是无序的,处理相对比较繁琐。随着三维扫描测距技术的快速发展和计算机硬件设备性能的不断提高,点云作为CAGD、逆向工程、工业检测以及虚拟现实等研究领域的基础数据,受到了越来越广泛的关注。尤其是随着三维数据扫描技术的不断更新和成熟,利用该设备获取物体的三维点云数据变得越来越容易,点云模型成为了一种新兴的数字媒体表达方式,越来越多的研究学者把兴趣投入到点云数据的处理技术上。此外,随着机器视觉技术的蓬勃发展,工业自动化检测方案也进一步升级,由传统的2D图像分析进一步过渡到3D点云数据的检测,在3D视觉检测领域中,对于工艺流程中的焊料凸点缺陷检测成为当前的研究热点,通过测量凸点的高度进而提供监控工艺和设备情况的有效信息。传统的凸点检测方式需要提前预设一个统一的基准面,通过计算高度筛选出凸点,而对于曲面上的凸点,由于缺乏统一的基准面,导致凸点的检测不准确。
发明内容
本文在于提供一种曲面凸点检测方法及装置,通过将曲面划分为较小的连续的子区域,对每个子区域分别进行凸点检测,解决了难以设置统一基准面的问题,提高了曲面凸点检测的准确性。
本文解决上述技术问题所采用的技术方案如下:
根据本文的一个方面,提供的一种曲面凸点检测方法,包括:
通过结构光扫描仪对待测物体进行3D数据采集,获得3D点云数据;
将3D点云数据划分为若干个子区域;
计算所述子区域的所有点相对子区域基准面的相对高度值;
当所述相对高度值大于预设的高度阈值时,对应的点判定为凸点。
可选地,所述获得3D点云数据之后还包括:
对3D点云数据进行预处理,去除离群点。
可选地,所述对3D点云数据进行预处理,去除离群点包括:
对所述3D点云数据进行遍历,计算每个点与该点最近的k个邻域点之间的平均距离;
计算所有平均距离的均值μ和标准差σ,得到距离阈值dmax=μ+α*σ,其中α为比例系数;
再次遍历所述3D点云数据,将所述平均距离大于所述距离阈值的点作为离群点,去除所述离群点。
可选地,所述将3D点云数据划分为若干个子区域包括:
将3D点云数据映射为2D灰度图像;
采用滑动窗将所述2D灰度图像划分为若干个子区域。
可选地,所述采用滑动窗将所述2D灰度图像划分为若干个子区域包括:
设置滑动窗口之间的重叠率;
根据所述重叠率计算窗口的移动步长;
根据所述移动步长及预设的子区域的尺寸大小将所述2D灰度图像划分为若干个子区域。
可选地,所述计算所述子区域的所有点相对子区域基准面的相对高度值包括:
拟合每个所述子区域的基准面;
计算所述子区域的所有点到所述基准面的高度值。
根据本文的另一方面,提供的一种曲面凸点检测装置,包括:
采集模块,用于通过结构光扫描仪对待测物体进行3D数据采集,获得3D点云数据;
划分模块,用于将3D点云数据划分为若干个子区域;
计算模块,用于计算所述子区域的所有点相对子区域基准面的相对高度值;
判定模块,用于当所述相对高度值大于预设的高度阈值时,对应的点判定为凸点。
可选地,还包括:
预处理模块,用于对3D点云数据进行预处理,去除离群点;
可选地,所述预处理模块包括:
遍历单元,用于对所述3D点云数据进行遍历,计算每个点与该点最近的k个邻域点之间的平均距离;
阈值计算单元,用于计算所有平均距离的均值μ和标准差σ,得到距离阈值dmax=μ+α*σ,其中α为比例系数;
去除单元,用于再次遍历所述3D点云数据,将所述平均距离大于所述距离阈值的点作为离群点,去除所述离群点。
可选地,所述划分模块包括:
映射单元,用于将3D点云数据映射为2D灰度图像;
划分单元,用于采用滑动窗将所述2D灰度图像划分为若干个子区域;所述计算模块包括:
拟合单元,用于拟合每个所述子区域的基准面;
高度计算单元,用于计算所述子区域的所有点到所述基准面的高度值。
本发明实施例的一种曲面凸点检测方法及装置,该方法包括:通过结构光扫描仪对待测物体进行3D数据采集,获得3D点云数据;将3D点云数据划分为若干个子区域;计算所述子区域的所有点相对子区域基准面的相对高度值;当所述相对高度值大于预设的高度阈值时,对应的点判定为凸点;通过将曲面划分为较小的连续的子区域,对每个子区域分别进行凸点检测,解决了曲面上难以设置统一基准面的问题,提高了曲面凸点检测的准确性。
附图说明
图1为本发明实施例一提供的一种曲面凸点检测方法流程图;
图2为本发明实施例一提供的另一种曲面凸点检测方法流程图;
图3为图1中步骤S11的方法流程图;
图4为图1中步骤S20的方法流程图;
图5为图4中步骤S22的方法流程图;
图6为本发明实施例一提供的一种利用滑动窗进行图像分割的示意图;
图7为本发明实施例一提供的一种图像子区域划分的结果图;
图8为图1中步骤S30的方法流程图;
图9为本发明实施例二提供的一种曲面凸点检测装置的示范性结构框图;
图10为本发明实施例二提供的另一种曲面凸点检测装置的示范性结构框图;
图11为本发明实施例二提供的一种预处理模块的示范性结构框图;
图12为本发明实施例二提供的一种划分模块的示范性结构框图;
图13为本发明实施例二提供的一种计算模块的示范性结构框图。
本文目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本文所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本文进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本文,并不用于限定本文。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
实施例一
如图1所示,在本实施例中,一种曲面凸点检测方法,包括:
S10、通过结构光扫描仪对待测物体进行3D数据采集,获得3D点云数据;
S20、将3D点云数据划分为若干个子区域;
S30、计算所述子区域的所有点相对子区域基准面的相对高度值;
S40、当所述相对高度值大于预设的高度阈值时,对应的点判定为凸点。
在本实施例中,通过将曲面划分为较小的连续的子区域,对每个子区域分别进行凸点检测,解决了曲面上难以设置统一基准面的问题,提高了曲面凸点检测的准确性。
在本实施例中,待测物体的表面为曲面,本实施例采用结构光3D扫描仪采集所述待测物体的3D数据,结构光3D扫描仪的硬件主要由相机和投射器组成,结构光就是通过投射器投射到被测物体表面的主动结构信息,如激光条纹、格雷码、正弦条纹等;然后通过单个或多个相机拍摄被测表面即得结构光图像;最后,基于三角测量原理经过图像三维解析计算从而实现三维数据的获取。
如图2所示,在本实施例中,所述获得3D点云数据之后还包括:
S11、对3D点云数据进行预处理,去除离群点。
如图3所示,在本实施例中,所述步骤S11包括:
S111、对所述3D点云数据进行遍历,计算每个点与该点最近的k个邻域点之间的平均距离;
S112、计算所有平均距离的均值μ和标准差σ,得到距离阈值dmax=μ+α*σ,其中α为比例系数;
S113、再次遍历所述3D点云数据,将所述平均距离大于所述距离阈值的点作为离群点,去除所述离群点。
在本实施例中,主要的预处理操作是使用统计滤波对点云进行去噪。统计滤波的具体方法为在输入数据中对点到邻近点的距离分布的计算,对每一个点,计算它到所有邻近点的平均距离(假设得到的结果是一个高斯分布,其形状是由均值和标准差决定),那么平均距离在标准范围之外的点,可以被定义为离群点并从数据中去除。经过预处理操作后,可以有效地去除采集点云集合中的离群点,降低凸点的误检率。
如图4所示,在本实施例中,所述步骤S20包括:
S21、将3D点云数据映射为2D灰度图像;
S22、采用滑动窗将所述2D灰度图像划分为若干个子区域。
在本实施例中,根据采集原理将3D点云一一映射到2D的灰度图上,即空间中的每一个3D点都对应图像上的一个像素点。因此对于3D点云的细化子区域可以降维至对图像的细化处理。
如图5所示,所述步骤S22包括:
S221、设置滑动窗口之间的重叠率;
S222、根据所述重叠率计算窗口的移动步长;
S223、根据所述移动步长及预设的子区域的尺寸大小将所述2D灰度图像划分为若干个子区域。
如图6所示,为本发明利用滑动窗进行图像分割的示意图,设定滑动窗口的大小为wnd_size,图像水平方向的重叠率为x_percent,垂直方向上的重叠率为y_percent,则滑动窗口在X方向的移动步长为x_step=wnd_size*(1-x_percent),在Y方向上的移动步长为y_step=wnd_size*(1-y_percent),当滑动窗口划过图像时,按照窗口大小wnd_size进行子区域的划分,对于图像边缘不足wnd_size的区域,单独作为一个子区域,从而保证检测区域都被检测,防止漏检区域,通过设置滑动窗的重叠率,可灵活调整滑动窗的移动步长。如图7所示,为图像子区域划分的结果图,设定的滑动窗大小wnd_size为250(像素),x_percent和y_percent重叠率均为30%,其中左上方灰色填充的区域即为一个子区域。
如图8所示,在本实施例中,所述步骤S30包括:
S31、拟合每个所述子区域的基准面;
S32、计算所述子区域的所有点到所述基准面的高度值。
在本实施例中,图像子区域划分后,映射到点云图,直接得到各子区域的点云集,分别对各个子区域的点集拟合平面,得到各子区域的基准面,最后计算各子区域点云到拟合平面的高度值,若高度值大于设定的高度阈值,即判定为凸点。
实施例二
如图9所示,在本实施例中,一种曲面凸点检测装置,包括:
采集模块10,用于通过结构光扫描仪对待测物体进行3D数据采集,获得3D点云数据;
划分模块20,用于将3D点云数据划分为若干个子区域;
计算模块30,用于计算所述子区域的所有点相对子区域基准面的相对高度值;
判定模块40,用于当所述相对高度值大于预设的高度阈值时,对应的点判定为凸点。
在本实施例中,通过将曲面划分为较小的连续的子区域,对每个子区域分别进行凸点检测,解决了曲面上难以设置统一基准面的问题,提高了曲面凸点检测的准确性。
在本实施例中,待测物体的表面为曲面,本实施例采用结构光3D扫描仪采集所述待测物体的3D数据,结构光3D扫描仪的硬件主要由相机和投射器组成,结构光就是通过投射器投射到被测物体表面的主动结构信息,如激光条纹、格雷码、正弦条纹等;然后通过单个或多个相机拍摄被测表面即得结构光图像;最后,基于三角测量原理经过图像三维解析计算从而实现三维数据的获取。
如图10所示,在本实施例中,还包括:
预处理模块11,用于对3D点云数据进行预处理,去除离群点;
如图11所示,在本实施例中,所述预处理模块包括:
遍历单元111,用于对所述3D点云数据进行遍历,计算每个点与该点最近的k个邻域点之间的平均距离;
阈值计算单元112,用于计算所有平均距离的均值μ和标准差σ,得到距离阈值dmax=μ+α*σ,其中α为比例系数;
去除单元113,用于再次遍历所述3D点云数据,将所述平均距离大于所述距离阈值的点作为离群点,去除所述离群点。
在本实施例中,主要的预处理操作是使用统计滤波对点云进行去噪。统计滤波的具体方法为在输入数据中对点到邻近点的距离分布的计算,对每一个点,计算它到所有邻近点的平均距离(假设得到的结果是一个高斯分布,其形状是由均值和标准差决定),那么平均距离在标准范围之外的点,可以被定义为离群点并从数据中去除。经过预处理操作后,可以有效地去除采集点云集合中的离群点,降低凸点的误检率。
如图12所示,在本实施例中,所述划分模块包括:
映射单元21,用于将3D点云数据映射为2D灰度图像;
划分单元22,用于采用滑动窗将所述2D灰度图像划分为若干个子区域。
在本实施例中,根据采集原理将3D点云一一映射到2D的灰度图上,即空间中的每一个3D点都对应图像上的一个像素点。因此对于3D点云的细化子区域可以降维至对图像的细化处理。
如图6所示,为本发明利用滑动窗进行图像分割的示意图,设定滑动窗口(window)的大小为3,当滑动窗口划过图像时,按照窗口大小进行子区域的划分,通过设置滑动窗的重叠率,可灵活调整滑动窗的移动步长。如图7所示,为图像子区域划分的结果图,设定的滑动窗大小为250(像素),水平和垂直方向重叠率为30%,其中左上方灰色填充的区域即为一个子区域。
如图13所示,在本实施例中,所述计算模块包括:
拟合单元31,用于拟合每个所述子区域的基准面;
高度计算单元32,用于计算所述子区域的所有点到所述基准面的高度值。
在本实施例中,图像子区域划分后,映射到点云图,直接得到各子区域的点云集,分别对各个子区域的点集拟合平面,得到各子区域的基准面,最后计算各子区域点云到拟合平面的高度值,若高度值大于设定的高度阈值,即判定为凸点。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
- 一种曲面凸点检测方法及装置
- 一种涡轮曲面自动旋转检测装置、辅助安装装置以及检测方法