具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
在本申请中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第二特征。
下文的公开提供了许多不同的实施方式或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本申请。此外,本申请可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本申请提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。
本申请提供一种检测孔的方法,用于确定孔的形状参数,检测孔的方法包括:获取孔的图像;根据图像,确定第一扫描区域;在第一扫描区域内生成第一扫描线集;基于第一扫描线集生成孔的第一轮廓;根据第一轮廓,确定孔的形状参数。上述检测孔的方法中,通过确定第一扫描区域,在第一扫描区域内生成第一扫描线集,在第一扫描线集的基础上获得孔的轮廓点集,使得轮廓点集扫描准确,进而提高所获得的孔的形状参数的准确度。
需要说明的是,上述孔所在的工件可以为手机外壳、平板外壳等孔检测设备的壳体,孔的形状参数包括孔的内径、孔的周长等,一些实施例中,孔为微小螺纹孔,孔的内径大致为0.1mm-1mm,但不限于此。
请参见图1,图1为本申请一实施例检测孔的方法的流程图,检测孔的方法包括:
S10,获取孔的图像。
具体地,孔的图像可通过手机或CCD(Charge-coupled Device)相机等能够拍摄图像的设备直接拍摄获得。执行检测孔的方法的装置可以在检测孔时,直接接收所获得的图像。其中,对所要检测的孔进行拍摄时,可最大限度的获得孔所在工件的部位的图像,以防止图像覆盖范围小所导致的孔的部分缺失。
S20,根据孔的图像,确定第一扫描区域35(见图5)。
示例性的,通常检测孔的方法需要结合实际使用的场景制定,例如检测螺纹孔、通孔和盲孔,因此,第一扫描区域35的形状和尺寸为基于应用场景预设,而在一些实施例中,第一扫描区域35的适合的中心位置则需要另行确定。在确定了第一扫描区域35的中心后,结合预设的扇环形区域的形状和尺寸,则可最终确定第一扫描区域35。例如需要检测的孔内径约为1mm,则孔在图像上按1:1得到一个约1mm的圆,该圆可代表孔在图像中的轮廓。如图5所示,扫描区域30示例性为大扇形区域去除小扇形后得到的扇环形区域。小扇形直径示例性为0.5mm,大扇形直径示例性为1.5mm,使得该扇环形区域能够覆盖图像中孔的轮廓的全部或部分。
此外,扇环形区域所在的初始位置也可以预设,该初始位置包括对应在XY坐标系下的圆心角度数、起始位置和扇环形的预设中心,圆心角度数和起始位置是可以根据场景预设的,共同决定扫描区域30的形状和尺寸,而扇环形的预设中心确定扇环形区域在图像上的预设位置,根据后续步骤调整该预设中心,进而确定扫描区域中心,以此最终确定第一扫描区域35。示例性的,如图5所示,假设扇环形的预设中心为原点位置,预设的扇环形区域为(0.5,1.5,90°,-45°),即表示预设的扇环形区域中小扇形直径为0.5mm,大扇形直径为1.5mm,圆心角度数为90°,起始位置为XY坐标系下以X方向为0°顺时针方向偏移45°,在小扇形和大扇形直径确定的情况下,结合上述圆心角度数、起始位置和扇环形的预设中心,最终确定扫描区域30。
因此,当所要检测孔的形状为圆形,第一扫描区域35可以为扇环形,以便于与圆形孔的较好匹配。通过图像的特征,进一步通过设定第一扫描区域35的中心,即可确定第一扫描区域35。请参见图5,在一实施方式中,第一扫描区域35为扇环形,第一扫描区域35包括相对设置的内圆边界31和外圆边界32,还包括相对设置的第一直边33和第二直边34,内圆边界31、第一直边33、外圆边界32、第二直边34依次围设的区域为第一扫描区域35。
请参见图2,图2本申请一实施例中工件及孔的状态示意图,其中,工件20上设有孔10,孔10示例性的为螺纹孔,围绕孔10设置的是孔10的螺纹段11。
可以理解地,在其他实施例中,所要检测孔的形状可以为方形,所确定的第一扫描区域可以为与方形部分匹配的方形或其他形状。
请参见图3,在一实施方式中,步骤S20中根据图像,确定第一扫描区域的步骤,包括:
S21,根据灰度匹配、形状匹配及变量偏置匹配的至少一个处理该图像,获取该图像中孔的轮廓信息。
灰度匹配是指使用灰度归一化方法在图像ROI(REGION OF INTEREST,感兴趣区域),区域搜索跟模板图像灰度均值和方差相似的目标,该模板图像中的轮廓信息即可表示图像中孔的轮廓信息。形状匹配是指在图像ROI区域中扫描出与模板图像形状相似的边缘轮廓,该模板图像中的边缘轮廓即可表示图像中孔的轮廓信息。变量偏置匹配是指当检测对象无法精确确定时,可用其他清晰对象作为辅助参考,例如图像中孔的轮廓信息不够明显,可借用其他清晰对象,例如最接近孔的工件20的边缘是清晰时,结合该边缘与孔的轮廓的映射关系,以该边缘作为变量进行匹配,间接确定该孔的轮廓信息。
S22,根据轮廓信息,确定扫描区域中心。
在一些需要自动寻找扫描区域的中心的场景中,通过所采用的灰度匹配、形状匹配及变量偏置匹配的至少一个获得图像中孔的轮廓信息后,输入该轮廓信息至现有算法直接确定扫描区域的中心,例如使用OpenCV的轮廓提取算法findContours()直接获得。
S23,基于扫描区域中心,确定第一扫描区域35。
如此,在形成扫描区域的中心的基础上,可确定第一扫描区域35,由于扫描区域可灵活设置,也可以不唯一,则上述步骤中扇环形区域和扫描区域的中心所确定的扫描区域定义为第一扫描区域35,可形成孔的扫描范围,便于后续第一扫描线集的生成。
S30,在第一扫描区域35内生成第一扫描线集。
请参见图4,在一实施例中,步骤S30中在第一扫描区域35内生成第一扫描线集的步骤,包括:
S31,获取扫描参数,根据扫描参数获得第一扫描区域35的区域点坐标。
在一实施方式中,扫描参数包括扫描方向、扫描宽度、扫描线数量及阈值中的至少一个。即扫描方向、扫描宽度、扫描线数量及阈值的任一一个可为变量,其他为预设值。扫描方向示例性为其中一条扫描线36的方向,例如逆时针顺序下第1条扫描线的方向。扫描宽度示例性为对第一扫描区域35被分割形成多个子扫描区域的宽度。扫描线数量示例性为在第一扫描区域35在扫描区域上生成的扫描线36的数量。阈值示例性为对图像进行阈值分割时的特征阈值。
如此,通过设定扫描参数以获得不同的第一扫描线集,可对第一扫描区域生成第一扫描线集的密度进行控制,根据实际使用场景平衡获得第一扫描线集的效率与精度。
请参见图6,图6为第一扫描区域35覆盖部分孔10的示意图,以扫描区域中心为中心点,坐标为(Cx,Cy),例如以扇环形所在的圆的圆心为坐标原点,则Cx=0,Cy=0。区域点包括第一扫描区域35中的内圆边界31上的点和外圆边界32上的点,内圆边界31上的点的坐标表达为(Xsn、Ysn),外圆边界32上的点的坐标为(Xen、Yen),内圆边界31所在圆的半径为Rr,外圆边界32所在圆的半径为RR,其中,n为内圆边界31和外圆边界32上的每条边界上点的个数,可以理解,n也可代表扫描线的数量,其中n为正整数,以1,2,…,n表达第1,2,…,n条扫描线。
具体地,本实施例中,以内圆边界31和外圆边界32上相对应的点的连线形成扫描线36,即扫描线36的起始点和结束点(均为区域点)所在圆共用第一扫描区域35的中心点(Cx,Cy),扫描线的弧度为kn,其中,n为正整数,扫描线36的范围为扇环形的内圆边界31至外圆边界32,弧度表示扫描线36与初始边缘的角度,初始边缘可为第一直边33、第二直边34或设定X轴为0度时参照的边,例如,设定扫描参数。其中,扫描的方向可以由扇环形的内圆边界31开始至外圆边界32结束,也可以由外圆边界32开始至内圆边界31结束。
进一步地,本实施例中,第一扫描区域35上的区域点满足关系式:Xsn=Cx+cos(kn)*Rr,Ysn=Cy+sin(kn)*Rr,Xen=Cx+cos(kn)*RR,Yen=Cy+sin(kn)*RR。其中Ysn表示扫描开始的第n点的Y向坐标,Xsn表示扫描开始的第n点的X向坐标,Yen表示扫描结束的第n点Y向坐标,Xen表示扫描结束的第n点的X向坐标,Rr表示扫描开始点所在圆半径(小扇形半径),RR表示扫描结束点所在圆半径(大扇形半径)。
S32,根据扫描参数和区域点坐标生成第一扫描线集。
具体地,在内圆边界31和外圆边界32上取多个点,获得扫描线36的坐标集合。例如,扫描参数为扫描线数量,则可根据均分第一扫描区域35的方式,进而确定扫描方向和扫描宽度。为便于理解,图6中示意出了三条扫描线36,即n取3,则可先根据均分第一扫描区域的方式获得弧度k1,k2,k3,以扇环形所在的圆的圆心为坐标原点,则Cx=0,Cy=0,根据区域点坐标换算出Rr和RR,最后代入上述公式生成第一扫描线集。扫描参数为扫描方向或扫描宽度的处理方式与扫描参数为扫描线数量的处理方式类似,这里不再赘述,也可以不通过均分第一扫描区域35的方式,而是通过扫描线数量、扫描方向和扫描宽度的至少两个的确定分割第一扫描区域35的方式,生成第一扫描线集。确定在另一些例子中,扫描参数为阈值,可直接得出第一扫描区域的灰度分布,进而根据灰度分布和经验数据,确定合理的扫描线数量、扫描方向和扫描宽度的至少一个,最终运用上述方式生成第一扫描线集。
如此,在第一扫描区域35内将第一扫描线集以设定的二维坐标系予以表示,能够便于第一扫描线集的量化统计,便于后续对孔进行图像分析。
S40,基于第一扫描线集生成孔的第一轮廓37(见图6)。
请一并参见图7,在一实施例中,步骤S40中基于第一扫描线集生成孔的第一轮廓37的步骤,包括:
S41,确定第一扫描线集中每条扫描线灰度变化率最大点坐标,形成第一轮廓点集。
示例性的,确定第一扫描线集中所有扫描线分别扫描图像中孔的轮廓信息,得到所有灰度变化率最大处坐标(Pxn、Pyn),这些坐标的集合形成第一轮廓点集。同理,1,2,…n,代表第1,2,…n条扫描线分别确定的第1,2,…n个的最大处坐标。
S42,根据第一轮廓点集,形成第一轮廓37。
具体地,通过形成的第一轮廓点集,利用坐标关系得到第一轮廓37的坐标集合。其中一种方式是,将第一轮廓点集中的元素全部连接起来。
如此,可通过确定灰度变化率最大的所有坐标,确定所形成第一轮廓点集,进而确定依据第一轮廓点集所形成的第一轮廓37。
S50,根据第一轮廓37,确定孔的形状参数。
具体地,利用第一轮廓37的坐标集合,通过计算机分析软件或预设的计算模型得到孔的形状参数。
上述检测孔10的方法中,通过确定第一扫描区域35,在第一扫描区域35内生成第一扫描线集,在第一扫描线集的基础上获得孔的轮廓点集,使得轮廓点集扫描准确。因此,采用上述检测孔的方法可提高所获得的孔的形状参数的准确度。
请参见图6和图8,在一实施例中,检测孔的方法还包括:
S60,根据孔的图像,确定第二扫描区域38。
其中,第一扫描区域35和第二扫描区域38为以扫描区域30的中心为圆心的扇环形,第一扫描区域35的内圆直径大于或者小于第二扫描区域38的内圆直径,第一扫描区域35的外圆直径大于或者小于第二扫描区域38的外圆直径。
具体地,上述步骤S60大致与步骤S20相同。第二扫描区域38与第一扫描区域35指在孔的图像上表现为不同的区域点坐标和扫描参数。例如第一扫描区域35为(0.5,1.5,90°,-45°,5,10),即表示扇环形区域小扇形直径为0.5mm,大扇形直径为1.5mm,圆心角度数为90°,起始的位置为XY坐标系下以X方向为0°顺时针方向偏移45°,中心点坐标为(5,10)。第二扫描区域38为(0.3,2,60°,45°,5,10),即表示扇环形区域小扇形直径为0.3mm,大扇形直径为2mm,圆心角度数为60°,起始的位置为XY坐标系下以X方向为0°逆时针方向偏移45°,中心点坐标为(5,10)。
S70,在第二扫描区域38内生成第二扫描线集(图未示)。
具体地,上述步骤与步骤S30大致相同,但可以理解,生成第一扫描线集的扫描方向与生成第二扫描线集的扫描方向不同,扫描线数量、扫描宽度或阈值也可以不同。
S80,基于第二扫描线集生成孔的第二轮廓(图未示)。
具体地,上述步骤与步骤S40大致相同。
S90,根据第一轮廓37及第二轮廓,确定孔的形状参数。
如此,利用相同的生成方式获得第二轮廓,通过第一轮廓37和第二轮廓确定形状参数,可增大获得的形状参数的准确度。
在一些实施方式中,孔的形状参数可指螺纹孔的内径d,也可以为孔的周长l,由于孔的内径d和孔的内螺纹半径r示例性的满足关系式:d=2r,孔的周长l和孔的外螺纹半径R示例性的满足关系式:l=2πR。
只采用一个扫描区域获得孔的形状参数,通常是基于全局的整圆来进行孔的形状参数的计算,例如根据图像的孔的像所对应的特征信息,例如采用多个圆上的特征点,做一个最优拟合圆,进而根据拟合圆得出孔的形状参数。但是,仅通过一个扫描区域获得孔的形状参数结果,会导致较大的偏差。在实际运用中,能够发现图像质量、参数设置不同等原因,以及获取的轮廓不准确或不完整,都会导致用一个扫描区域获得孔的形状参数重复精度不合要求。例如,用一个扫描区域获得孔的圆心,3次实测不同时段相同扫描区域的圆心坐标数值是:第一测:(1.987,2.015)、第二测:(1.763,2.125)及第三测:(1.876,2.115)。在这种情况下,通常需要经过平均值的方式得到预估的圆心坐标。但是通过在同一张图像不同时段不同的多个扫描区域条件下,测出的圆心坐标除了上述第一扫描区域的第一测、第二测和第三测的数据,还包括第二扫描区域38的第四测:(1.875,2.115)、第五测(1.936,2.050)及第六测(1.874,2.060),通过对孔不同位置进行两种扫描区域的检测,可以对同一张图像获得更多的参考数值,也能够有更多的处理方式,例如除了取两个扫描区域检测结果的均值,还能取中位数或众数,能够数量上的变化能够有效提高实际使用时的符合预设要求性,也能够在一定程度上抑制时间、光照等因素的影响,起到意想不到的技术效果,在实测中,通过本申请的技术方案完成的孔的形状参数的测量,比现有技术方案的轮廓获取的完整性、准确性和形状参数的重复测量精度都有明显的提高。在本实施例中,重复测量精度可达到0.005mm。
可以理解地,在其他实施例中,检测孔的方法可在步骤S10的基础上依据步骤S20至S40获得N个轮廓,最后,依据第一轮廓37至第N轮廓确定孔的形状参数,以获得更为符合预设要求的形状参数。
在一实施例中,步骤S90中根据第一轮廓及第二轮廓,确定形状参数的步骤,包括:
S91,拟合第一轮廓37及第二轮廓为多边形轮廓。
S92,规整多边形轮廓为正圆。
S93,根据正圆,确定形状参数。
如此,通过拟合的方式获得第一轮廓37和第二轮廓所在的圆,便于获得孔的形状参数。实施方式比仅用第一轮廓37进行拟合圆,能够有效提高检测精度,更接近物理检测结果。通过轮廓拟合相较于根据多个特征点拟合的方式,能够避免特征点存在较大偏差时重复拟合偏差较大的问题,提高了拟合圆的确定性,也能够降低对图像质量的要求。
请参见图9,在一实施例中,步骤S90中根据第一轮廓37及第二轮廓,确定形状参数的步骤,包括:
S901,确定第一轮廓37不符合预设要求。
具体地,利用预设的存储参数与第一轮廓比对,识别出第一轮廓的参数超出预设的存储参数的范围。其中,存储参数可以为孔的内径范围、孔的周长范围等。
S902,根据孔的图像,确定第三扫描区域。
具体地,上述步骤与步骤S20相同。
S903,在第三扫描区域内生成第三扫描线集。
具体地,上述步骤与步骤S30相同。
S904,基于第三扫描线集生成孔的第三轮廓。
具体地,上述步骤与步骤S40相同。
S905,确定第三轮廓符合预设要求。
具体地,利用预设的存储参数与第三轮廓比对,识别出第三轮廓的参数在预设的存储参数的范围之内。
S906,根据第二轮廓及第三轮廓,确定孔的形状参数。
如此,通过设置的第三轮廓,增加对所获得孔的轮廓的错误识别或不完整识别机制,提高获得形状参数的准确度。
需要说明的是,步骤S901中确定第一轮廓37不符合预设要求为一泛指,步骤S901至步骤S906也可以针对N个轮廓的形状参数确定,其中N大于3,此时,步骤S901至S904可以为:重复步骤S10至步骤S50,在图像中孔的轮廓信息的范围内形成N个轮廓,其中,N为正整数,利用预设的存储参数与N个轮廓进行一一比对,确定其中不符合预设要求的轮廓,将剩余的N-1个轮廓依据步骤S91至S93获得形状参数。例如,当由于光照不均,使得图像中局部的图像质量不足,出现轮廓点的对比度不明显的情况,导致第一轮廓不符合预设要求,不符合预设要求的其中一个示例是第一轮廓37中出现“凸包”,凸包会导致执行步骤S91至S93时产生较大的误差,属于错误识别的一种示例,也可能是第一轮廓37中出现第一轮廓点集的样本数过小,比如符合预设要求的点只有2个,根据3点成确定圆的基本逻辑,可确定由第一轮廓点集确定的第一轮廓不符合预设要求。因此,在确定第一轮廓不符合预设要求后,可确定第三扫描区域,例如将第一扫描区域避开“凸包”的剩余区域作为第三扫描区域,得到第三轮廓后,将第三轮廓和第二轮廓依据步骤S91至S93获得形状参数。
本申请一实施例还提供一种孔检测装置100。在一实施方式中,请参见图10(A),孔检测装置100包括处理器120,处理器120与存储器110耦合,存储器110存储有指令111,指令111被处理器120运行时执行上述检测孔的方法。本实施方式中,处理器120属于孔检测装置100的部件,存储器110位于孔检测装置100之外,处理器120和存储器110采用云端耦合的方式进行传输。
在另一实施方式中,请参见图10(B),孔检测装置100包括处理器120和存储器110,处理器120与存储器110耦合,存储器110存储有指令111,指令111被处理器120运行时执行上述检测孔的方法。本实施方式中,处理器120和存储器110均属于孔检测装置100的部件。
孔检测装置100可执行上述检测孔的方法,上述检测孔的方法中通过确定第一扫描区域,在第一扫描区域内生成第一扫描线集,在第一扫描线集的基础上获得孔的轮廓点集,使得轮廓点集扫描准确,进而提高所获得的孔的形状参数的准确度。因此,采用孔检测装置100执行上述检测孔的方法可提高所获得的孔的形状参数的准确度。
在一实施方式中,存储器110可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在一实施方式中,孔检测装置100可以为一个微型计算机,微型计算机包括处理器120,处理器120用于加载上述指令以执行上述检测孔的方法。其中,处理器可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。
请参见图11,本申请一实施例还提供一种孔检测设备200,包括图像获取装置210,图像获取装置210用于获取孔10的图像,示例性的,孔检测设备200还可包括上述孔检测装置100,与图像获取装置210耦接。
孔检测设备200中的孔检测装置100可执行上述检测孔的方法,上述检测孔的方法中通过确定第一扫描区域,在第一扫描区域内生成第一扫描线集,在第一扫描线集的基础上获得孔的轮廓点集,使得轮廓点集扫描准确,进而提高所获得的孔的形状参数的准确度。因此,采用孔检测设备200通过图像获取装置210获取孔的图像并通过孔检测装置100执行上述检测孔的方法可提高所获得的孔的形状参数的准确度。
在一实施方式中,图像获取装置210可以为手机或CCD相机等能够拍摄图像的设备。
请参见图12,指令111包括调节程序1111、识别程序1112及拟合程序1113。处理器120用于加载并执行调节程序1111以调整第一扫描区域35的大小和覆盖范围,处理器120用于加载并执行识别程序1112以控制识别模型形成孔的轮廓,处理器120用于加载并执行拟合程序1113完成轮廓拟合并确定孔的形状参数。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。