本发明涉及图像处理技术领域,尤其涉及一种航空插头型谱图自动生成方法。
背景技术:
航空插头是连接电气电路的机电元件,广泛应用于航空领域。航空插头装配过程需要型谱图作为参考,利用型谱图查找导线安装位置。但是由于供应商及其他原因,大部分航空插头没有型谱图,因此安装航空插头前需要手动绘制型谱图。
航空插头种类繁多,形状各异,且多数航空插头具有大量插孔,复杂的多达上百个插孔。手动绘制型谱图需要测量插孔位置,辨识字符编号,为每个插孔生成编号,绘制过程繁琐,效率低下。
技术实现要素:
本发明针对上述的技术问题,提供一种航空插头型谱图自动生成方法,利用图像处理技术检测插孔、轮廓,结合k-d树和三角剖分算法,为插孔生成编号,可以自动的生成航空插头型谱图,提高型谱图绘制的效率,为后续航空插头装配过程做准备。
为了实现上述目的,本发明提供如下技术方案:
一种航空插头型谱图自动生成方法,所述方法包括如下步骤:
s101、获取插头的图像或工程图;
部分插头有图片格式的工程图,可以直接作为型谱图生成的原始图像。对于没有工程图的插头,可以使用扫描仪、高拍仪、工业相机等具有拍照功能的设备对插头进行拍摄,得到插头照片,作为型谱图生成的原始图像。
s102、识别插头轮廓、插孔和字符;
识别插头轮廓。对原始图像进行预处理,将原图像灰度化、二值化,进行细节增强。使用轮廓检测算法检测插头轮廓,对检测出的外轮廓进行多边形拟合,若拟合到的顶点较少,则判定轮廓为多边形,否则判定轮廓为圆形,对圆形轮廓使用圆拟合算法,检测轮廓的圆心及半径。
识别插孔,即识别图像上的圆孔。识别圆孔的方法有很多,可以使用霍夫圆检测、最小二乘法拟合、特征匹配等方法,通过圆孔检测算法可以得到插孔的位置和半径。
识别字符。字符识别的方法也有很多种,可以使用机器学习、模板匹配等算法,也可以直接使用厂商提供的字符识别服务(ocr),利用字符识别算法识别字符的位置和内容。
s103、利用插孔坐标构建k-d树,定位字符最近插孔,为插孔生成编号;
识别插孔和字符之后,需要为插孔生成编号,需要检测字符附近的插孔,然后根据距离判断字符与插孔的对应关系。对于字符数或插孔数较少的插头,例如少于10个,可以直接使用暴力检索的方式,检索当前字符距所有插孔的位置,然后对比字符与插孔之间的距离,找到字符最近的插孔,为插孔生成编号。对于插孔数较多的插头,例如多于10个,具体数值可在程序中自行设定,暴力检索的方式效率很低。k-d树是一种查询索引结构,能够分割k维数据空间,实现高效的数据查找(范围查找、近邻查找),广泛应用于数据库索引中。使用插孔的圆心坐标构建k-d树,利用k-d树检索字符最近的插孔,能够大大提高检索的效率,定位字符最近插孔,为插孔生成编号。
对于部分插头图像,由于插头平面上插孔轮廓限制,字符最近的插孔并非字符对应的圆孔。因此,使用暴力检索和k-d树检索时,检索字符附近多个插孔,若字符距最近插孔距离与字符距其他插孔距离相差较大,则可以判定当前字符与插孔对应,否则跳过此字符,定位剩余字符,定位结束后,排除已经定位的插孔,判定字符与剩余插孔的对应关系,重复以上过程,直至所有字符与插孔对应关系定位完毕。
s104、若检测得到字符和插孔一一对应,所有插孔都有编号,则无需当前步骤;若检测得到字符数少于插孔数,则需要判断插头编号模式,利用图像信息为未编号插孔生成编号,所述插头编号模式包括水平编号、垂直编号和螺旋编号。
对于水平、垂直编号模式的插头,利用插孔的位置关系生成插孔编号,对于螺旋编号模式的插头,对插孔圆心进行三角剖分,提取引导线,利用引导线和三角剖分的位置关系生成插孔编号;
检测插头图像中是否有连续的螺旋引导线,若没有连续的螺旋引导线,则插头为水平或垂直编号模式。对比在数值上相邻但不连续的字符对应的插孔坐标,若插孔的y坐标接近,则插头为水平编号模式,将插孔按照垂直坐标分组,对比编号小的插孔和编号大的插孔的x坐标,若前者较小,按照水平坐标升序(从左到右)为未编号插孔生成编号,否则按照水平坐标降序(从右到左)为未编号插孔生成编号;若插孔的x坐标接近,插头为垂直编号模式,将插孔按照水平坐标分组,对比编号小的插孔和编号大的插孔的y坐标,若前者较小,按照垂直坐标升序(从上到下)为未编号插孔生成编号,否则按照垂直坐标降序(从下到上)为未编号插孔生成编号。
若插头图像中有连续的螺旋引导线,则插头为螺旋编号模式。对于螺旋编号模式的插头,需要提取引导线,对插孔圆心进行三角剖分,利用引导线与三角剖分的位置关系为未编号插孔生成编号。三角剖分是计算几何中的研究方法,使用三角剖分可以将离散的点连接起来,构成互不相交的单纯形,在平面上就是构成互不相交的三角形,为点集的后处理做准备。
利用骨架线提取算法提取引导线,对引导线进行后处理,得到连续的引导线。航空插头上相邻编号的插孔之间的连线与引导线不相交,利用二者位置关系可以生成插孔编号。对插孔圆心坐标进行三角剖分,利用三角剖分可以很快的建立插孔之间的邻接关系。从最小编号的插孔出发,遍历当前插孔对应节点的所有连线(三角剖分中节点对应的三角形的边),查找与引导线不相交的连线,查找得到连线的另一个端点就是当前插孔相邻编号的插孔,排除上一个编号的插孔,即可确定下一个编号的插孔。若当前插孔的所有连线都不满足条件,则检索三角剖分中插孔对应节点的三角形的相邻三角形的节点(外围节点),检索插孔与外围节点之间的连线,查找与引导线不相交的连线,确定下一个编号的插孔。重复以上过程,为所有插孔添加编号。
s105、输出型谱图。
为了保证型谱图保存时信息的完整性,以及方便型谱图的后处理与相关应用,型谱图应转换为矢量图,应在cad软件内绘制型谱图。前述过程中提取出插头轮廓,插孔的半径、坐标和编号,可以输出为xml或json等格式,cad软件读入文件,或者利用其它通信方式,与cad软件通信。对cad软件进行二次开发,绘制提取出的型谱图信息,转换为矢量图形式,以备其它后处理。
与现有技术相比,本发明的有益效果为:
本发明提供的航空插头型谱图自动生成方法,可以直接从插头的图像中获取插头轮廓、插孔和字符信息,利用k-d树和三角剖分算法为插孔生成编号,自动生成型谱图。本发明方法可以减少工作人员繁琐的操作,提高航空插头型谱图生成效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种航空插头型谱图自动生成方法的流程示意图;
图2为实施例1使用扫描仪扫描航空插头1得到的图片;
图3为实施例1的航空插头1插孔进行三角剖分后得到的图片;
图4为实施例1的航空插头1编号后的图片;
图5为实施例1利用cad软件绘制的航空插头1的型谱图;
图6为实施例1步骤s104中螺旋编号模式插头编号的流程示意图;
图7为实施例2的航空插头2的工程图;
图8为实施例2的航空插头2使用k-d树定位已有字符对应插孔的图片;
图9为实施例2的航空插头2编号后的图片;
图10为实施例2利用cad软件绘制的航空插头2的型谱图;
图11为实施例2步骤s104中非螺旋编号模式插头编号的流程示意图;
图12为实施例3的航空插头3的原始图像为已有的工程图。
图13为实施例3的航空插头3定位已有字符后的图;
图14为实施例3的航空插头3的型谱图。
具体实施方式
为了使本领域的技术人员更好地理解本发明的技术方案,下面将结合实施例对本发明作进一步的详细介绍。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围
图1为本发明提供的一种航空插头型谱图自动生成方法的流程示意图。下面结合两个航空插头图像阐述本发明的实施方式。
实施例1
如图1所示,本实施例提供的航空插头型谱图自动生成方法,包括以下步骤:
s101、获取插头的图像或工程图。
使用扫描仪扫描插头,获得航空插头1的图像如图2所示。
s102、识别插头轮廓、插孔和字符。
对图2进行预处理,将图像灰度化、二值化,进行细节增强。使用轮廓检测算法检测插头轮廓,对轮廓进行多边形拟合,若拟合到的顶点较少,例如少于10个,则判定轮廓为多边形,否则判定轮廓为圆形。根据检测到的顶点数判定插头1为圆形轮廓,使用圆拟合算法,可以检测得到轮廓圆。使用霍夫圆检测方法,检测图像中的圆孔,得到插孔位置和半径。使用机器学习算法,利用训练好的模型检测字符的位置和内容,得到编号。
s103、利用插孔坐标构建k-d树,定位字符最近插孔,为插孔生成编号。
识别插孔和字符后,利用插孔坐标构建k-d树,定位字符最近插孔。插头1字符较少,图2中可以看出,共4个字符:1、11、21、31,可以直接使用暴力检索的方式定位字符最近插孔。在检索过程中,若字符最近插孔与附近其他插孔距离相差较大,则判定字符与最近插孔对应,否则跳过该字符,判定剩余字符和插孔,循环结束后,排除已编号插孔,定位剩余字符,直至所有字符和插头对应关系查找结束。如图2所示先找到1号孔、再到11号孔、21号孔、31号孔。
s104、若检测得到字符和插孔一一对应,所有插孔都有编号,则无需当前步骤;若检测得到字符数少于插孔数,则需要判断插头编号模式,利用图像信息为未编号插孔生成编号,所述插头编号模式包括水平编号、垂直编号和螺旋编号。对于水平、垂直编号模式的插头,利用插孔的位置关系生成插孔编号,对于螺旋编号模式的插头,对插孔圆心进行三角剖分,提取引导线,利用引导线和三角剖分的位置关系生成插孔编号。
如图2所示,插头1图像中有连续的螺旋引导线,判定插头为螺旋编号模式。
图6为本步骤中螺旋编号模式插头编号的流程示意图。如图6所示,利用骨架线提取算法提取引导线,对引导线进行处理,得到一段连续的引导线。航空插头上相邻编号的插孔之间的连线与引导线不相交,利用二者位置关系可以生成插孔编号。对插孔圆心坐标进行三角剖分,利用三角剖分可以很快的建立插孔之间的邻接关系。如图3所示,从最小编号的插孔1号孔出发,查找三角剖分后1号孔的所有连线(1号孔顶点对应三角剖分中的三角形的边),查找与引导线不相交的连线,查找得到连线的另一个端点就是当前插孔相邻编号的插孔,其中与引导线不相交的连线连接的插孔即为2号孔,再查找2号孔的连线,得到两条与引导线不相交的连线,排除2号孔与1号孔的连线,即可唯一确定一条连线,然后就可以确定3号孔,重复以上过程,即可得到所有插孔的编号。
若当前插孔与三角剖分中相邻节点间的连线都与引导线相交,则检索插孔与三角剖分中外围节点的连线,确定下一个编号的插孔。重复以上过程,为所有插孔添加编号。图4为编号后的插头1的图片(由螺旋引导线依次得到1到10、11到20、21到30、31到37号孔的插孔编号)。
s105、输出型谱图。
前述过程得到了航空插头的轮廓和所有插孔的坐标、半径和编号,为了保存型谱图信息的完整性,方便后处理及其它应用,将其转为矢量图。
导出轮廓和插孔的信息,cad软件读取导出文件,或者使用其它通信方式与cad软件通信。对cad软件进行二次开发,根据型谱图信息绘制型谱图。图5为航空插头1的型谱图,为了更好的显示效果,在绘制型谱图时对图像进行了旋转。
实施例2
如图1所示,本实施例提供的航空插头型谱图自动生成方法,包括以下步骤:
s101、获取插头的图像或工程图。
航空插头2的原始图像为已有的工程图,如图7所示。
s102、识别插头轮廓、插孔和字符。
对图7进行预处理,将图像灰度化、二值化,进行细节增强。使用轮廓检测算法检测插头轮廓,对轮廓进行多边形拟合,若拟合到的顶点较少,则判定轮廓为多边形,否则判定轮廓为圆形。根据检测顶点数为6判定插头2为多边形轮廓,保留轮廓顶点,方便绘制型谱图。使用霍夫圆检测方法,检测图像中的圆孔,得到插孔位置和半径。使用机器学习算法,利用训练好的模型检测字符的位置和内容,得到编号。
s103、利用插孔坐标构建k-d树,定位字符最近插孔,为插孔生成编号。对于字符数或插孔数较少的插头,可以直接使用暴力检索的方式,检索当前字符距所有插孔的位置,然后对比字符与插孔之间的距离,找到字符最近的插孔,为插孔生成编号。对于插孔数较多的插头,暴力检索的方式效率很低。k-d树是一种查询索引结构,能够分割k维数据空间,实现高效的数据查找(范围查找、近邻查找),广泛应用于数据库索引中。
插头2需要利用k-d树定位字符最近插孔,为插孔生成编号,航空插头2定位已有字符后的图片如图8所示。在检索过程中,若字符最近插孔与附近其他插孔距离相差较大,则判定字符与最近插孔对应,否则跳过该字符,判定剩余字符和插孔,循环结束后,排除已编号插孔,定位剩余字符,直至所有字符和插头对应关系查找结束。
s104、若检测得到字符和插孔一一对应,所有插孔都有编号,则无需当前步骤;若检测得到字符数少于插孔数,则需要判断插头编号模式,利用图像信息为未编号插孔生成编号,所述插头编号模式包括水平编号、垂直编号和螺旋编号。对于水平、垂直编号模式的插头,利用插孔的位置关系生成插孔编号,对于螺旋编号模式的插头,对插孔圆心进行三角剖分,提取引导线,利用引导线和三角剖分的位置关系生成插孔编号。
插头2图像中无引导线,且1号插孔和6号插孔的y坐标接近,可以判定插头2为水平编号模式。图11为本步骤中非螺旋编号模式插头编号的流程示意图。利用插孔垂直坐标对插孔进行分组,1号插孔的x坐标大于6号插孔,按照水平坐标降序(从右到左)为未编号插孔生成编号,得到编号后的图像,如图9所示。
s105、输出型谱图。
前述过程得到了航空插头的轮廓和所有插孔的坐标、半径和编号,为了保存型谱图,方便后处理及其它应用,将其转为矢量图。
导出轮廓和插孔的信息,cad软件读取导出文件,或者使用其它通信方式与cad软件通信。对cad软件进行二次开发,根据型谱图信息绘制型谱图。图10为航空插头2的型谱图。
实施例3
如图1所示,本实施例提供的航空插头型谱图自动生成方法,包括以下步骤:
s101、获取插头的图像或工程图。
航空插头3的原始图像为已有的工程图,如图12所示。
s102、识别插头轮廓、插孔和字符。
对图12进行预处理,将图像灰度化、二值化,进行细节增强。使用轮廓检测算法检测插头轮廓,对轮廓进行多边形拟合,若拟合到的顶点较少,则判定轮廓为多边形,否则判定轮廓为圆形。根据检测顶点数较多,使用圆拟合算法,可以检测得到轮廓圆。使用霍夫圆检测方法,检测图像中的圆孔,得到插孔位置和半径。使用机器学习算法,利用训练好的模型检测字符的位置和内容,得到编号。
s103、利用插孔坐标构建k-d树,定位字符最近插孔,为插孔生成编号。对于字符数或插孔数较少的插头,可以直接使用暴力检索的方式,检索当前字符距所有插孔的位置,然后对比字符与插孔之间的距离,找到字符最近的插孔,为插孔生成编号。对于插孔数较多的插头,暴力检索的方式效率很低。k-d树是一种查询索引结构,能够分割k维数据空间,实现高效的数据查找(范围查找、近邻查找),广泛应用于数据库索引中。
插头3字符只有3个,可以直接使用暴力检索的方式定位字符最近插孔。航空插头3定位已有字符后的图片如图13所示。在检索过程中,若字符最近插孔与附近其他插孔距离相差较大,则判定字符与最近插孔对应,否则跳过该字符,判定剩余字符和插孔,循环结束后,排除已编号插孔,定位剩余字符,直至所有字符和插头对应关系查找结束。
s104、若检测得到字符和插孔一一对应,所有插孔都有编号,则无需当前步骤;若检测得到字符数少于插孔数,则需要判断插头编号模式,利用图像信息为未编号插孔生成编号,所述插头编号模式包括水平编号、垂直编号和螺旋编号。插头3中字符和插孔一一对应,所有插孔都有编号,无需当前步骤。
s105、输出型谱图。
前述过程得到了航空插头的轮廓和所有插孔的坐标、半径和编号,为了保存型谱图,方便后处理及其它应用,将其转为矢量图。
导出轮廓和插孔的信息,cad软件读取导出文件,或者使用其它通信方式与cad软件通信。对cad软件进行二次开发,根据型谱图信息绘制型谱图。图14为航空插头3的型谱图。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
1.一种航空插头型谱图自动生成方法,其特征在于,包括以下步骤:
s101、获取插头的图像或工程图;
s102、识别插头轮廓、插孔和字符;
s103、利用插孔坐标构建k-d树,定位字符最近插孔,为插孔生成编号;
s104、若检测得到字符和插孔一一对应,所有插孔都有编号,则无需当前步骤;若检测得到字符数少于插孔数,则需要判断插头编号模式,利用图像信息为未编号插孔生成编号,所述插头编号模式包括水平编号、垂直编号和螺旋编号;
s105、输出型谱图。
2.根据权利要求1所述的航空插头型谱图自动生成方法,其特征在于,步骤s101中,对于部分插头有图片格式的工程图,直接作为型谱图生成的原始图像;对于没有工程图的插头,使用图像获取设备对插头进行拍摄,得到插头照片,作为型谱图生成的原始图像。
3.根据权利要求2所述的航空插头型谱图自动生成方法,其特征在于,步骤s101中,图像获取设备为具有拍照功能的设备。
4.根据权利要求1所述的航空插头型谱图自动生成方法,其特征在于,步骤s102中,识别插头轮廓的方法为:对原始图像进行预处理,将原图像灰度化、二值化,进行细节增强;使用轮廓检测算法检测插头轮廓,对检测出的外轮廓进行多边形拟合,若拟合到的顶点较少,则判定轮廓为多边形,否则判定轮廓为圆形,对圆形轮廓使用圆拟合算法,检测轮廓的圆心及半径。
5.根据权利要求1所述的航空插头型谱图自动生成方法,其特征在于,步骤s102中,识别插孔的方法为:识别图像上的圆孔,使用霍夫圆检测或最小二乘法拟合或特征匹配的方法,通过圆孔检测算法得到插孔的位置和半径。
6.根据权利要求1所述的航空插头型谱图自动生成方法,其特征在于,步骤s102中,识别字符的方法为:使用机器学习或模板匹配算法或直接使用厂商提供的字符识别服务,利用字符识别算法识别字符的位置和内容。
7.根据权利要求1所述的航空插头型谱图自动生成方法,其特征在于,步骤s103中,当字符最近的插孔并非字符对应的圆孔,检索字符附近多个插孔,若字符距最近插孔距离与字符距其他插孔距离相差较大,则判定当前字符与插孔对应,否则跳过此字符,定位剩余字符,定位结束后,排除已经定位的插孔,判定字符与剩余插孔的对应关系,重复以上过程,直至所有字符与插孔对应关系定位完毕。
8.根据权利要求1所述的航空插头型谱图自动生成方法,其特征在于,步骤s104中,对于水平、垂直编号模式的插头,利用插孔的位置关系生成插孔编号;对于螺旋编号模式的插头,对插孔圆心进行三角剖分,提取引导线,利用引导线和三角剖分的位置关系生成插孔编号。
9.根据权利要求1所述的航空插头型谱图自动生成方法,其特征在于,步骤s104中,若检测得到字符数少于插孔数,则需要判断编号模式,利用图像信息为未编号插孔生成编号。
10.根据权利要求1所述的航空插头型谱图自动生成方法,其特征在于,步骤s105中,将输出的型谱图转换为矢量图形式进行保存或后处理。
技术总结