发明内容
本发明的目的在于提供了一种点云与CAD模型配准方法、装置、电子设备和存储介质,其能够无需将CAD模型转换为点云模型,直接实现点云与CAD模型的配准,提高了配准效率、且配准精度高,图形处理器GPU(Graphics Processing Unit,GPU)加速友好,落地部署上更具优势。
本发明的实施例可以这样实现:
第一方面,本发明提供一种点云与CAD模型配准方法,所述方法包括:
获取待配准平面的轮廓点云及CAD平面模型,所述轮廓点云包括多个待配准点,所述CAD平面模型包括围成所述待配准平面的多个几何线;
从所述多个几何线中确定与每一所述待配准点距离最近的配准点、并基于每一所述待配准点及对应的配准点,确定所述轮廓点云与所述CAD平面模型之间的配准关系;
根据所述配准关系将所述轮廓点云与所述CAD平面模型进行配准。
在可选的实施方式中,所述从所述多个几何线中确定与每一所述待配准点距离最近的配准点、并基于每一所述待配准点及对应的配准点,确定所述轮廓点云与所述CAD平面模型之间的配准关系的步骤包括:
从所述多个几何线中确定与每一所述待配准点距离最近的配准几何线、并从每一所述待配准点的配准几何线中确定与每一所述待配准点距离最近的配准点;
根据所有所述待配准点及对应的配准点,计算表征所述轮廓点云与所述CAD平面模型之间的变换关系;
根据所述变换关系,计算所述轮廓点云与所述CAD平面模型之间的配准误差;
若所述配准误差不满足预设条件,则根据所述变换关系更新所述轮廓点云,并用更新后的所述轮廓点云中的点替换所述待配准点,重复上述步骤直至所述配准误差满足所述预设条件;
若所述配准误差满足所述预设条件,则将当前的变换关系作为所述配准关系。
在可选的实施方式中,所述从所述多个几何线中确定与每一所述待配准点距离最近的配准几何线、并从每一所述待配准点的配准几何线中确定与每一所述待配准点距离最近的配准点的步骤包括:
对于任一目标待配准点、任一目标几何线,确定所述目标待配准点与所述目标几何线之间的相对位置;
根据所述目标待配准点与所述目标几何线之间的相对位置,计算所述目标待配准点与所述目标几何线之间的最短距离,最终得到所述目标待配准点与每一所述几何线之间的最短距离;
将最小的所述最短距离对应的几何线确定为所述目标待配准点的配准几何线;
根据所述目标待配准点与所述配准几何线之间的相对位置,在所述配准几何线上确定所述目标待配准点的配准点,最终得到每一所述待配准点的配准点。
在可选的实施方式中,所述根据所述目标待配准点与所述目标几何线之间的相对位置,计算所述目标待配准点与所述目标几何线之间的最短距离的步骤包括:
若所述目标待配准点与所述目标几何线之间的相对位置为第一位置,则根据所述目标待配准点及所述目标几何线的形状,计算所述目标待配准点与所述目标几何线之间的最短距离;
若所述目标待配准点与所述目标几何线之间的相对位置为第二位置,则将所述目标待配准点与所述目标几何线的两个端点之间距离的最小值作为所述目标待配准点与所述目标几何线之间的最短距离。
在可选的实施方式中,所述根据所述目标待配准点及所述目标几何线的形状,计算所述目标待配准点与所述目标几何线之间的最短距离的步骤包括:
若所述目标几何线的形状为圆弧线,则获取所述圆弧线的圆心和半径;
根据所述目标待配准点、所述圆心及所述半径,计算所述目标待配准点与所述目标几何线之间的最短距离;
若所述目标几何线的形状为直线,则根据所述目标待配准点及所述目标几何线的两个端点,计算所述目标待配准点与所述目标几何线之间的最短距离。
在可选的实施方式中,所述根据所述目标待配准点与所述配准几何线之间的相对位置,在所述配准几何线上确定所述目标待配准点的配准点的步骤包括:
若所述目标待配准点与所述配准几何线之间的相对位置为第一位置,则根据所述配准几何线的形状,确定所述目标待配准点的配准点;
若所述目标待配准点与所述配准几何线之间的相对位置为第二位置,则根据所述目标待配准点及所述配准几何线的两个端点,确定所述目标待配准点的配准点。
在可选的实施方式中,所述根据所述配准几何线的形状,确定所述目标待配准点的配准点的步骤包括:
若所述配准几何线的形状为圆弧线,则根据所述目标待配准点、所述圆弧线的圆心、半径及所述圆弧线的两个端点,确定所述目标待配准点的配准点;
若所述配准几何线的形状为直线,则根据所述目标待配准点及所述直线的两个端点,确定所述目标待配准点的配准点。
在可选的实施方式中,所述对于任一目标待配准点、任一目标几何线,确定所述目标待配准点与所述目标几何线之间的相对位置的步骤包括:
若所述目标几何线为圆弧线,且所述目标待配准点位于由圆心、圆弧线的两个端点围成、且包括所述圆弧线的区域内,则确定所述目标待配准点与所述目标几何线之间的相对位置为第一位置,否则确定所述目标待配准点与所述目标几何线之间的相对位置为第二位置;
若所述目标几何线为直线,且所述目标待配准点位于由经过所述目标几何线两个端点、且垂直于所述目标几何线的两条垂线之间、且包括所述目标几何线的区域内,则确定目标待配准点与所述目标几何线之间的相对位置为第一位置,否则确定目标待配准点与所述目标几何线之间的相对位置为第二位置。
在可选的实施方式中,每一所述待配准点及对应的配准点组成一个配准点对,所述根据所有所述待配准点及对应的配准点,计算表征所述轮廓点云与所述CAD平面模型之间的变换关系的步骤包括:
确定所有配准点对中的异常配准点对;
将所述所有配准点对中的异常配准点对删除,得到参考配准点对;
利用所述参考配准点对,计算所述轮廓点云与所述CAD平面模型之间的旋转矩阵和平移矩阵,所述旋转矩阵表征所述轮廓点云与所述CAD平面模型之间的坐标旋转关系,所述平移矩阵表征所述轮廓点云与所述CAD平面模型之间坐标平移关系;
将所述旋转矩阵和所述平移矩阵作为所述变换关系。
在可选的实施方式中,所述确定所有配准点对中的异常配准点对的步骤包括:
计算每一所述配准点对中待配准点和对应的配准点之间的距离,得到每一所述配准点对的配准距离;
计算所有配准距离的均值和标准差;
计算每一所述配准距离偏离所述均值的偏差,得到每一所述配准距离的偏差值;
将偏差值大于所述标准差预设倍数的配准距离对应的配准点对确定为异常配准点对。
第二方面,本发明提供一种点云与CAD模型配准装置,所述装置包括:
获取模块,用于获取待配准平面的轮廓点云及CAD平面模型,所述轮廓点云包括多个待配准点,所述CAD平面模型包括围成所述待配准平面的多个几何线;
确定模块,用于从所述多个几何线中确定与每一所述待配准点距离最近的配准点、并基于每一所述待配准点及对应的配准点,确定所述轮廓点云与所述CAD平面模型之间的配准关系;
配准模块,用于根据所述配准关系将所述轮廓点云与所述CAD平面模型进行配准。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现前述实施方式中任一项所述的点云与CAD模型配准方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现前述实施方式中任一项所述的点云与CAD模型配准方法。
与现有技术相比,本发明从CAD平面模型的多个几何线中确定与轮廓点云中每一个待配准点距离最近的配准点,基于待配准点及对应配准点,确定轮廓点云和CAD平面模型之间的配准关系,再根据配准关系将轮廓点云和CAD平面模型进行配准,本发明无需将CAD模型转换为点云模型,直接实现点云与CAD模型的配准,避免了CAD模型转换为点云模型产生的额外处理消耗,提高了配准效率,同时配准时直接使用CAD平面模型的信息,避免了将CAD平面模型转换成点云模型时引入的转换误差,提高了配准精度。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
为了将点云和CAD模型进行配准,一种相关的技术方案主要为:将CAD模型转换为点云模型,然后利用传统的点云配准方法对待检测工件的3D点云与CAD模板点云模型进行配准,请参考图1,图1为本发明实施例提供的现有技术点云与CAD模型配准方法的流程示例图,该方法主要步骤如下:
S11:输入待配准的源点云和目标CAD模型;
S12:将目标CAD模板采样为目标点云;
S13:为目标点云建立kd-tree;
S14:对于源点云中的每一个点,利用kd-tree从目标点云中搜索与其距离最近的点,建立两者的对应关系;
S15:根据对应关系计算变换矩阵;
S16:根据变换矩阵,计算配准误差,并更新源点云;
S17:判断两次迭代的配准误差之间的差值是否小于预设阈值,若是,则停止迭代,当前的变换矩阵即为待配准的源点云和目标CAD模型之间的配准关系,若否,则利用更新后的源点云重复S4-S7,直至满足停止迭代条件,得到待配准的源点云和目标CAD模型之间的配准关系。
上述技术方案至少存在以下缺陷:
1)需根据CAD模型的几何描述文件对模型轮廓进行数学拟合或需要将模型转换为Mesh格式,再采样为点。这一轮廓拟合或Mesh格式转换过程较为耗时,效率低且存在引入精度误差的风险;
2)CAD模型为连续模型,采样为离散点云模型损失模型信息。同时采样点数高则计算慢,采样点数低则配准精度低。
3)需要先对目标点云建立kd-tree以进行后续的源点云和目标点云的配对。kd-tree搜索耗时严重,且目标点云越精细点越多则计算越慢,效率越低。
4)kd-tree搜索方式是树形结构搜索,但GPU上所有分支都会执行,所以不能发挥kd-tree的搜索优势。
现实的应用场景中,通常要求对工件进行实时检测,且许多工件的加工精度要求为毫米级或纳米级,上述技术中存在的上述缺点无法达到实际应用场景需求,严重限制了基于3D视觉的质量检测技术在现实场景中的应用及使用效果。
有鉴于此,本发明实施例提供了一种点云与CAD模型配准方法、装置、电子设备和存储介质,其核心改进点在于通过从CAD平面模型中直接找到与轮廓点云中的待配准点距离最近的配准点,避免了将CAD模型转换为点云导致的耗时长、引入精度误差导致精度差的问题,提高了配准效率和精度,此外,本发明实施例提供的方法无需采用树形结构去搜索,而是直接对点进行计算,避免了搜索树形结构的耗时,GPU加速友好,落地部署上更具优势,下面将对其进行详细描述。
请参考图2,图2为本发明实施例提供的点云与CAD模型配准方法的流程示例图一,该方法包括以下步骤:
步骤S101,获取待配准平面的轮廓点云及CAD平面模型,轮廓点云包括多个待配准点,CAD平面模型包括围成待配准平面的多个几何线。
在本实施例中,对于工件检测的应用场景,待配准平面可以是待检测工件的任一截面的平面,对待检测工件的所有截面的平面均按照本发明实施提供的点云与CAD模型配准方法进行配准,最终能够将整个待检测工件的轮廓点云和待检测工件的CAD平面模型进行配准。
在本实施例中,待检测工件可以是规则的几何体,例如柱体,对于柱体而言,柱体的顶部面、底部面、顶部面和底部面之间的截面均是相同的,此时,可以利用线激光工业相机采集柱体的顶部面、底部面及两者之间的若干截面的轮廓点云,对于每一个面的轮廓点云,将其与对应的CAD平面模型进行配准,最终将柱体和其CAD模型进行配准。待检测工件也可以是不规则的几何体,此时,需要对其每一个面及若干截面均进行轮廓点云的采集,再分别对每一个面及若干截面进行配准,最终将柱体和其CAD模型进行配准。
在本实施例中,为了得到CAD平面模型中的多个几何线,可以通过CAD软件利用圆弧和直线的组合对待检测工件的平面模型进行构建,根据CAD模型文件解析出组成模型的圆弧和直线的个数、各圆弧的圆心坐标、各圆弧的半径、各圆弧的起始以及结束角度、直线的两个端点坐标。作为一种实现方式,通过获取CAD模型的.dxf文件,可以使用自行编写的.dxf解析代码、也可以调用如dxfgrabber这样的公开代码库对CAD模型进行解析,得到CAD平面模型中的多个几何线,请参照图3,图3为本发明实施例提供的CAD模型解析后的示例图,图3中,CAD模型解析后,包括34条几何线,图中的数字代表几何线的序号,为了更直观地显示,图3中利用不同粗细的线表示不同的几何线,例如,3是直线、2是圆弧线,25是直线,为了更清楚地显示CAD模型解析结果,请参照图4,图4为图3的CAD模型解析后的示例图的局部图,由图4可以清楚地看出,27是直线、6是圆弧线、26是直线,为了方便区分,图4中的圆弧线用虚线表示。
步骤S102,从多个几何线中确定与每一待配准点距离最近的配准点、并基于每一待配准点及对应的配准点,确定轮廓点云与CAD平面模型之间的配准关系。
在本实施例中,对于轮廓点云中的任一待配准点,其配准点是该待配准点距离多个几何线上的点中最近的点。每一待配准点,均能在多个几何线中找到与之距离最近的点,每一个待配准点对应一个配准点。
在本实施例中,配准关系表征轮廓点云和CAD平面模型的对应关系,由于能够根据CAD平面模型得知每一个配准点所属的几何线,因此,根据配准点和待配准点的对应关系,可以得知待配准点对应CAD平面模型中的几何线,进而能够将轮廓点云中的待配准点按照几何线归类,得到轮廓点云的轮廓边的分割结果。
步骤S103,根据配准关系将轮廓点云与CAD平面模型进行配准。
在本实施例中,通过将待检测工件的轮廓点云与CAD平面模型进行配准,能够将轮廓点云与CAD平面模型进行对齐,进而对待检测工件的尺寸误差的测量和缺陷的检测,最终实现对待检测工件的高精度质量检测。
本实施例提供的上述方法,无需将CAD模型转换为点云模型,直接实现点云与CAD模型的配准,避免了CAD模型转换为点云模型产生的额外处理消耗,提高了配准效率,同时配准时直接使用CAD平面模型的信息,避免了将CAD平面模型转换成点云模型时引入的转换误差,提高了配准精度。
在可选的实施方式中,一种确定轮廓点云与CAD平面模型之间的配准关系的实施方式为:
首先,从多个几何线中确定与每一待配准点距离最近的配准几何线、并从每一待配准点的配准几何线中确定与每一待配准点距离最近的配准点;
在本实施例中,待配准点的配准几何线是多个几何线中距离该待配准点最近的几何线,确定配准几何线之后,再从配准几何线中确定与该待配准点距离最近的点,即该待配准点的配准点。
其次,根据所有待配准点及对应的配准点,计算表征轮廓点云与CAD平面模型之间的变换关系;
在本实施例中,为了提升配准精度,得到待配准点及对应的配准点后,可以对其进行预处理,剔除其中明显不合理的待配准点及对应的配准点,一种确定变换关系处理方式是:将每一待配准点及对应的配准点组成一个配准点对,确定所有配准点对中的异常配准点对;将所有配准点对中的异常配准点对删除,得到参考配准点对;再利用参考配准点对,确定变换关系。
为了确定异常配准点对,一种处理方式为:计算每一配准点对中待配准点和对应的配准点之间的距离,得到每一配准点对的配准距离;计算所有配准距离的均值和标准差;计算每一配准距离偏离均值的偏差,得到每一配准距离的偏差值;将偏差值大于标准差预设倍数的配准距离对应的配准点对确定为异常配准点对。
在本实施例中,预设倍数可以根据精度可容忍度设置,预设倍数越大,则精度可容忍度越高,精度越低,反之,精度可容忍度越低,精度越高。例如预设倍数设置为3。
在本实施例中,变换关系可以是矩阵形式表示的变换矩阵,变换矩阵包括旋转矩阵和平移矩阵,旋转矩阵表征轮廓点云与CAD平面模型之间的坐标旋转关系,平移矩阵表征轮廓点云与CAD平面模型之间的坐标平移关系。作为一种实现方式,可以利用奇异值分解求解旋转矩阵和平移矩阵,求解过程如下:
(1)将参考配准点对中的待配准点表示为
,配准点表示为
,/>
为旋转矩阵,/>
为平移矩阵,k为参考配准点对的个数。
作为另一种实现方式,求解变换矩阵也可以用非线性求解的方法,此处不再赘述。
第三,根据变换关系,计算轮廓点云与CAD平面模型之间的配准误差;
在本实施例中,根据变换关系对
进行更新,更新方式可以为:
T,S`为更新后的轮廓点云,再根据更新后的轮廓点云计算配准误差,计算公式为:/>
,其中,loss为配准误差,/>
为配准点,/>
为范式。
第四,若配准误差不满足预设条件,则根据变换关系更新轮廓点云,并用更新后的轮廓点云中的点替换待配准点,重复上述步骤直至配准误差满足预设条件;
在本实施例中,配准误差满足预设条件,可以是连续预设次数迭代的配准误差之前的差值小于设定阈值,预设次数可以根据需要设置,例如预设次数为2次,即本次迭代的配准误差和上次迭代的配准误差之间的差值小于设定阈值,则认为配准误差满足预设条件;也可以根据实际情况使用固定误差阈值,即当本次迭代的配准误差小于固定误差阈值时,认为配准误差满足预设条件。
需要说明的是,若对配准点对做了预处理,则根据变换关系更新的轮廓点云为本次预处理后的参考配准点对中的待配准点,若未对配准点做预处理,则根据变换关系更新的轮廓点云为本次迭代采用的轮廓点云。
在本实施例中,若配准误差不满足预设条件,则用更新后的轮廓点云中的点替换待配准点重复上述“从多个几何线中确定与每一待配准点距离最近的配准几何线、并从每一待配准点的配准几何线中确定与每一待配准点距离最近的配准点”的步骤至当前的步骤,直至配准误差满足预设条件。
第五,若配准误差满足预设条件,则将当前的变换关系作为配准关系。
在可选的实施方式中,一种确定待配准点的配准点的方式为:
(1)对于任一目标待配准点、任一目标几何线,确定目标待配准点与目标几何线之间的相对位置;
(2)根据目标待配准点与目标几何线之间的相对位置,计算目标待配准点与目标几何线之间的最短距离,最终得到目标待配准点与每一几何线之间的最短距离;
在本实施例中,相对位置可以为第一位置或者第二位置,第一位置为目标待配准点在目标几何线确定的区域范围内,第二位置为目标待配准点未在目标几何线确定的区域范围内。作为一种确定相对位置的方式:
若目标几何线为圆弧线,且目标待配准点位于由圆心、圆弧线的两个端点围成、且包括所述圆弧线的区域内,则确定目标待配准点与目标几何线之间的相对位置为第一位置,否则确定目标待配准点与目标几何线之间的相对位置为第二位置;
请参照图5,图5为本发明实施例提供的目标几何线为圆弧线时第一位置和第二位置的示例图,图5中的阴影部分为由圆心、圆弧线的两个端点围成、且包括所述圆弧线的区域,点A和点B是圆弧线的两个端点,点O为圆心,目标待配准点C和点D与圆弧线之间的相对位置为第一位置,目标待配准点E与圆弧线之间的相对位置为第二位置。
若目标几何线为直线,且目标待配准点位于由经过目标几何线两个端点、且垂直于目标几何线的两条垂线之间、且包括目标几何线的区域内,则确定目标待配准点与目标几何线之间的相对位置为第一位置,否则确定目标待配准点与目标几何线之间的相对位置为第二位置。
请参照图6,图6为本发明实施例提供的目标几何线为直线时第一位置和第二位置的示例图,图6中,点A和点B是直线的两个端点,两条虚线为经过目标几何线两个端点A和B、且垂直于目标几何线的两条垂线,阴影区域为两条垂线围成的包括直线AB的区域,目标待配准点C与直线之间的相对位置为第一位置,目标待配准点D与直线之间的相对位置为第二位置。
在可选的实施方式中,一种计算目标待配准点与目标几何线之间的最短距离的方式为:
(a)若目标待配准点与目标几何线之间的相对位置为第一位置,则根据目标待配准点及目标几何线的形状,计算目标待配准点与目标几何线之间的最短距离;
目标几何线的形状包括圆弧线和直线,当为圆弧线和为直线时采用不同的处理方式:
(a.1)若目标几何线的形状为圆弧线,则获取圆弧线的圆心和半径;根据目标待配准点、圆心及半径,计算目标待配准点与目标几何线之间的最短距离;
在本实施例中,用
表示圆弧线的圆心,圆心坐标表示为/>
,用/>
表示圆弧线的半径,该情况下,目标待配准点与圆弧的最短距离为目标待配准点到圆心的距离减去半径r的绝对值,计算公式为:
其中,
为目标待配准点与圆弧的最短距离,(/>
,/>
)为目标待配准点的坐标。
(a.2)若目标几何线的形状为直线,则根据目标待配准点及目标几何线的两个端点,计算目标待配准点与目标几何线之间的最短距离。
在本实施例中,目标待配准点与目标几何线之间的最短距离可采用如下公式计算:
其中,
为目标待配准点与目标几何线之间的最短距离,/>
和
分别为直线两个端点A和B的坐标,(/>
,/>
)为目标待配准点的坐标。
(b)若目标待配准点与目标几何线之间的相对位置为第二位置,则将目标待配准点与目标几何线的两个端点之间距离的最小值作为目标待配准点与目标几何线之间的最短距离。
在本实施例中,此种情况下,目标待配准点与目标几何线之间的最短距离可采用如下公式计算:
其中,
为目标待配准点与目标几何线之间的最短距离,/>
和
分别为目标几何线的两个端点A和B的坐标,(/>
,/>
)为目标待配准点的坐标,需要说明的是,当目标几何线为直线时,通过对CAD模型的解析可以直接得到直线两个端点的坐标,当目标几何线为圆弧线时,通过CAD模型解析出来的圆弧的起始角度和结束角度、圆心坐标可以计算得到圆弧线两个端点的坐标,具体计算公式为:
其中,
和/>
分别为圆弧的起始角度和结束角度,/>
和/>
分别为圆弧线两个端点A和B的坐标。
为了更清楚地说明最短距离,请参照图7和图8,图7为本发明实施例提供的目标几何线为圆弧线时最短距离的示例图,图7中,处于第一位置的点C和圆弧线之间的最短距离如d1所示,处于第一位置的点D和圆弧线之间的最短距离如d2所示,处于第二位置的点E和圆弧线之间的最短距离如d3所示。图8为本发明实施例提供的目标几何线为直线时最短距离的示例图,图8中,处于第一位置的点C和直线之间的最短距离如d1所示,处于第二位置的点D和直线之间的最短距离如d2所示。
(3)将最小的最短距离对应的几何线确定为目标待配准点的配准几何线;
(4)根据目标待配准点与配准几何线之间的相对位置,在配准几何线上确定目标待配准点的配准点,最终得到每一待配准点的配准点。
在本实施例中,目标待配准点与配准几何线之间的相对位置不一样,在配准几何线上确定目标待配准点的配准点的方式也不一样:
(4.1)若目标待配准点与配准几何线之间的相对位置为第一位置,则根据配准几何线的形状,确定目标待配准点的配准点;
若配准几何线的形状为圆弧线,则根据目标待配准点、圆弧线的圆心、半径及圆弧线的两个端点,确定目标待配准点的配准点;
此种情况下,可以采用如下公式求解出目标待配准点的配准点:
其中,(
,/>
)为目标待配准点的坐标,(/>
)为目标待配准点的配准点的坐标,r为圆弧的圆心半径,/>
表示/>
和/>
需要满足的约束条件,/>
和/>
分别为圆弧线两个端点A和B的坐标,/>
为圆心坐标,圆弧线两个端点A和B的坐标的计算方式上文已经描述,此处不再赘述。
若配准几何线的形状为直线,则根据目标待配准点及直线的两个端点,确定目标待配准点的配准点。
在此情况下,可以采用如下公式求解出目标待配准点的配准点:
其中,(
,/>
)为目标待配准点的坐标,(/>
)为目标待配准点的配准点的坐标,/>
和/>
分别为直线两个端点A和B的坐标。
(4.2)若目标待配准点与配准几何线之间的相对位置为第二位置,则根据目标待配准点及配准几何线的两个端点,确定目标待配准点的配准点。
在此情况下,可以采用如下公式求解出目标待配准点的配准点:
其中,(
,/>
)为目标待配准点的坐标,(/>
)为目标待配准点的配准点的坐标,/>
和/>
分别为配准几何线的两个端点坐标,若配准几何线为圆弧线,则该两个端点坐标为圆弧线的两个端点坐标,若配准几何线为直线,则该两个端点作为直线的两个端点坐标。端点坐标的确定方式在前文已有描述,此处不再赘述。
为了从整体流程上说明本发明实施例提供的点云与CAD模型配准方法,本实施例还提供了一种整体流程的示例图,请参照图9,图9为本发明实施例提供的点云与CAD模型配准方法的流程示例图二,图9中,该流程包括以下步骤:
S21:输入源点云和目标CAD模型;
S22:计算源点云中每一点到目标CAD模型中的最近的配准点,建立对应关系;
S23:根据对应关系,计算变换矩阵;
S24:根据变换矩阵更新源点云,根据更新后的源点云和配准点计算配准误差;
S25:判断两次迭代配准误差的差值是否小于预设阈值,若是,则结束迭代,将当前迭代的变换矩阵作为源点云和目标CAD模型的配准关系;若否则转到S22继续下一次迭代。
为了更清楚地说明本发明实施例提供的点云与CAD模型配准方法的效果,本实施例以钢轨断面为例,分别采用本实施例提供的方法和传统的迭代最近点ICP(IterativeClosest Point,迭代最近点)方法进行配准实验,实验结果如表1所示:
表1
由表可以看出,本实施例方法,比传统ICP方法迭代次数更少,单次迭代和配准总耗时均明显减少,同时配准进度也明显提高。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种点云与CAD模型配准装置的实现方式。请参照图10,图10为本发明实施例提供的点云与CAD模型配准装置100的方框示意图。需要说明的是,本实施例所提供的点云与CAD模型配准装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
点云与CAD模型配准装置100包括获取模块110、确定模块120及配准模块130。
获取模块110,用于获取待配准平面的轮廓点云及CAD平面模型,轮廓点云包括多个待配准点, CAD平面模型包括围成待配准平面的多个几何线。
确定模块120,用于从多个几何线中确定与每一待配准点距离最近的配准点、并基于每一待配准点及对应的配准点,确定轮廓点云与CAD平面模型之间的配准关系。
在可选的实施方式中,确定模块120具体用于:从多个几何线中确定与每一待配准点距离最近的配准几何线、并从每一待配准点的配准几何线中确定与每一待配准点距离最近的配准点;根据所有待配准点及对应的配准点,计算表征轮廓点云与CAD平面模型之间的变换关系;根据变换关系,计算轮廓点云与CAD平面模型之间的配准误差;若配准误差不满足预设条件,则根据变换关系更新轮廓点云,并用更新后的轮廓点云中的点替换待配准点,重复上述步骤直至配准误差满足预设条件;若配准误差满足预设条件,则将当前的变换关系作为配准关系。
在可选的实施方式中,确定模块120在具体用于从多个几何线中确定与每一待配准点距离最近的配准几何线、并从每一待配准点的配准几何线中确定与每一待配准点距离最近的配准点时具体用于:对于任一目标待配准点、任一目标几何线,确定目标待配准点与目标几何线之间的相对位置;根据目标待配准点与目标几何线之间的相对位置,计算目标待配准点与目标几何线之间的最短距离,最终得到目标待配准点与每一几何线之间的最短距离;将最小的最短距离对应的几何线确定为目标待配准点的配准几何线;根据目标待配准点与配准几何线之间的相对位置,在配准几何线上确定目标待配准点的配准点,最终得到每一待配准点的配准点。
在可选的实施方式中,确定模块120在具体用于根据目标待配准点与目标几何线之间的相对位置,计算目标待配准点与目标几何线之间的最短距离时具体用于:若目标待配准点与目标几何线之间的相对位置为第一位置,则根据目标待配准点及目标几何线的形状,计算目标待配准点与目标几何线之间的最短距离;若目标待配准点与目标几何线之间的相对位置为第二位置,则将目标待配准点与目标几何线的两个端点之间距离的最小值作为目标待配准点与目标几何线之间的最短距离。
在可选的实施方式中,确定模块120在具体用于根据目标待配准点及目标几何线的形状,计算目标待配准点与目标几何线之间的最短距离时具体用于:若目标几何线的形状为圆弧线,则获取圆弧线的圆心和半径;根据目标待配准点、圆心及半径,计算目标待配准点与目标几何线之间的最短距离;若目标几何线的形状为直线,则根据目标待配准点及目标几何线的两个端点,计算目标待配准点与目标几何线之间的最短距离。
在可选的实施方式中,确定模块120在具体用于根据目标待配准点与配准几何线之间的相对位置,在配准几何线上确定目标待配准点的配准点时具体用于:若目标待配准点与配准几何线之间的相对位置为第一位置,则根据配准几何线的形状,确定目标待配准点的配准点;若目标待配准点与配准几何线之间的相对位置为第二位置,则根据目标待配准点及配准几何线的两个端点,确定目标待配准点的配准点。
在可选的实施方式中,确定模块120在具体用于根据配准几何线的形状,确定目标待配准点的配准点时具体用于:若配准几何线的形状为圆弧线,则根据目标待配准点、圆弧线的圆心、半径及圆弧线的两个端点,确定目标待配准点的配准点;若配准几何线的形状为直线,则根据目标待配准点及直线的两个端点,确定目标待配准点的配准点。
在可选的实施方式中,确定模块120在具体用于对于任一目标待配准点、任一目标几何线,确定目标待配准点与目标几何线之间的相对位置时具体用于:若目标几何线为圆弧线,且目标待配准点位于由圆心、圆弧线的两个端点围成、且包括所述圆弧线的区域内,则确定目标待配准点与目标几何线之间的相对位置为第一位置,否则确定目标待配准点与目标几何线之间的相对位置为第二位置;若目标几何线为直线,且目标待配准点位于由经过目标几何线两个端点、且垂直于目标几何线的两条垂线之间、且包括目标几何线的区域内,则确定目标待配准点与目标几何线之间的相对位置为第一位置,否则确定目标待配准点与目标几何线之间的相对位置为第二位置。
在可选的实施方式中,确定模块120具体用于每一待配准点及对应的配准点组成一个配准点对,根据所有待配准点及对应的配准点,计算表征轮廓点云与CAD平面模型之间的变换关系时,具体用于:确定所有配准点对中的异常配准点对;将所有配准点对中的异常配准点对删除,得到参考配准点对;利用参考配准点对,计算轮廓点云与CAD平面模型之间的旋转矩阵和平移矩阵,旋转矩阵表征轮廓点云与CAD平面模型之间的坐标旋转关系,平移矩阵表征轮廓点云与CAD平面模型之间坐标平移关系;将旋转矩阵和平移矩阵作为变换关系。
在可选的实施方式中,确定模块120具体用于确定所有配准点对中的异常配准点对时具体用于:计算每一配准点对中待配准点和对应的配准点之间的距离,得到每一配准点对的配准距离;计算所有配准距离的均值和标准差;计算每一配准距离偏离均值的偏差,得到每一配准距离的偏差值;将偏差值大于标准差预设倍数的配准距离对应的配准点对确定为异常配准点对。
配准模块130,用于根据配准关系将轮廓点云与CAD平面模型进行配准。
本实施例还提供了一种电子设备10的方框示意图,请参照图11,图11为本发明实施例提供的电子设备10的方框示意图,电子设备10包括处理器11、存储器12、总线13。处理器11、存储器12通过总线13连接。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如图10中的点云与CAD模型配准装置100,点云与CAD模型配准装置100均包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行程序以实现本发明实施例中的点云与CAD模型配准方法。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory)。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图11仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现前述实施方式中的点云与CAD模型配准方法。
综上所述,本发明实施例提供了一种点云与CAD模型配准方法、装置、电子设备和存储介质,方法包括:获取待配准平面的轮廓点云及CAD平面模型,轮廓点云包括多个待配准点, CAD平面模型包括围成待配准平面的多个几何线;从多个几何线中确定与每一待配准点距离最近的配准点、并基于每一待配准点及对应的配准点,确定轮廓点云与CAD平面模型之间的配准关系;根据配准关系将轮廓点云与CAD平面模型进行配准。与现有技术相比,本发明实施例至少具有以下优势:(1)本发明实施例无需将CAD模型转换为点云模型,直接实现点云与CAD模型的配准,避免了CAD模型转换为点云模型产生的额外处理消耗,提高了配准效率,同时配准时直接使用CAD平面模型的信息,避免了将CAD平面模型转换成点云模型时引入的转换误差,提高了配准精度;(2)本发明实施例无需建立kd-tree,减少了建立kd-tree的耗时;(3)本发明实施例直接计算轮廓点云的待配准点和CAD平面模型上的最近的配准点,避免了使用kd-tree搜索,减少了确定配准点的耗时;(4)在确定配准点的同时,获取了轮廓点云的待配准点所属的轮廓边,得到了轮廓点云所属的轮廓边分割的结果;(5)完整地利用了CAD模型的所有信息,准确确定配准点,减少了迭代次数,提高了配准精度;(6)GPU加速友好,落地部署上更具优势。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。