CN111862196A - 检测平板物体的通孔的方法、装置和计算机可读存储介质 - Google Patents
检测平板物体的通孔的方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111862196A CN111862196A CN201910359027.2A CN201910359027A CN111862196A CN 111862196 A CN111862196 A CN 111862196A CN 201910359027 A CN201910359027 A CN 201910359027A CN 111862196 A CN111862196 A CN 111862196A
- Authority
- CN
- China
- Prior art keywords
- image
- neural network
- location
- determining
- perspective transformation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000009466 transformation Effects 0.000 claims abstract description 107
- 238000003062 neural network model Methods 0.000 claims description 126
- 238000012549 training Methods 0.000 claims description 48
- 230000001131 transforming effect Effects 0.000 claims description 29
- 239000011159 matrix material Substances 0.000 claims description 25
- 238000013527 convolutional neural network Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 abstract description 58
- 238000013135 deep learning Methods 0.000 abstract description 10
- 238000013528 artificial neural network Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 24
- 238000003709 image segmentation Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 8
- 230000005484 gravity Effects 0.000 description 7
- 238000005286 illumination Methods 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30141—Printed circuit board [PCB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Robotics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本公开的实施例涉及检测平板物体的通孔的方法、装置和计算机可读存储介质。该方法包括获取平板物体的第一图像;确定第一透视变换;通过第一透视变换确定多个第一通孔的第一位置;基于第一位置确定第一通孔的第二位置;确定第二透视变换;通过第二透视变换确定多个第二通孔的第三位置;以及基于第三位置确定第四位置。本公开的方案通过使用透视变换和神经网络的深度学习并且仅进行一次图像拍摄,可以更快、更准确地完成对象的检测。
Description
技术领域
本公开一般涉及对象检测领域,特别地,涉及检测平板物体的通孔的方法、装置和计算机可读存储介质。
背景技术
自动光学检查(AOI)广泛在诸如工厂的组装生产线上用于在平板物体上的通孔检测,例如在电路板组装生产线上自动安装螺钉的螺钉孔检测。在自动螺钉驱动过程中,使用摄像机基于传统的计算机视觉方法检测由电路板的定位销坐标表示的精确位置,然后计算螺钉孔的坐标,其中螺钉孔的坐标与定位销坐标具有预先设置的偏移量。在多次拍摄获得所有定位销的准确坐标后,基于预先设置的偏移量计算螺钉孔的坐标,然后机械臂移动到螺钉孔的坐标处安装螺钉孔。
但是,如果定位销不存在、存在缺陷或变形、摄像机过度曝光或环境光照的变化而导致无法检测定位销,则不能获取定位销的准确位置。如果电路板的螺钉孔与定位销的预定偏移量不是恒定或准确的,这例如可能由于每个电路板存在螺钉孔误差造成,则无法通过定位销与螺钉孔的偏移量获得螺钉孔的准确位置。在对定位销和螺钉孔的多次拍摄过程中,不能保证恒定的光照环境和背景也将影响对定位销和螺钉孔的识别。另外,对定位销和螺钉孔的图像的多次拍摄和识别,导致检测过程时间过长而影响检测性能。
因此,需要对现有的检测平板物体的通孔的方案进行改进。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的实施例旨在提供一种检测平板物体的通孔的方法、装置和计算机可读存储介质,其可以采用与传统的基于计算机视觉的检测方法不同的方式更精确地检测平板物体的通孔的位置,适用于各种光照环境和背景,并且能够有效提高检测速度,获得更优的检测性能。
根据本公开的一方面,提出一种用于检测平板物体的通孔的方法,所述平板物体的表面具有多个通孔,所述方法包括:
获取所述平板物体的第一图像;
确定用于将所述平板物体的参考图像变换为所述第一图像的第一透视变换,其中,所述参考图像包括多个参考通孔;
通过所述第一透视变换确定所述第一图像中的与所述多个参考通孔中的多个第一参考通孔对应的所述多个通孔中的多个第一通孔的第一位置;
基于所述第一位置确定所述第一通孔的第二位置;
基于所述第一通孔的第二位置以及与所述第一通孔对应的所述第一参考通孔的参考位置确定用于将所述参考图像变换为所述第一图像的第二透视变换;
通过所述第二透视变换确定所述第一图像中的与所述第二参考通孔对应的所述多个通孔中的多个第二通孔的第三位置;以及
基于所述第三位置确定所述第二通孔的第四位置。
根据本公开的另一方面,提出一种用于检测平板物体的通孔的电子设备,所述平板物体的表面具有多个通孔,该电子设备包括:
至少一个处理器;以及
存储器,用于存储用于所述至少一个处理器的可执行指令;
其中,所述可执行指令被所述至少一个处理器执行时使所述至少一个处理器实施如下步骤:
获取所述平板物体的第一图像;
确定用于将所述平板物体的参考图像变换为所述第一图像的第一透视变换,其中,所述参考图像包括多个参考通孔;
通过所述第一透视变换确定所述第一图像中的与所述多个参考通孔中的多个第一参考通孔对应的所述多个通孔中的多个第一通孔的第二位置;
基于所述第一位置确定所述第一通孔的第二位置;
基于所述第一通孔的第二位置以及与所述第一通孔对应的所述第一参考通孔的参考位置确定用于将所述参考图像变换为所述第一图像的第二透视变换;
通过所述第二透视变换确定所述第一图像中的与所述第二参考通孔对应的所述多个通孔中的多个第二通孔的第三位置;以及
基于所述第三位置确定所述第二通孔的第四位置。
根据本公开的又一方面,提出一种用于检测平板物体的通孔的装置,所述平板物体的表面具有多个通孔,所述装置包括:
图像获取单元,被设置为获取所述平板物体的第一图像;
第一透视变换单元,被设置为确定用于将所述平板物体的参考图像变换为所述第一图像的第一透视变换,其中,所述参考图像包括多个参考通孔;以及通过所述第一透视变换确定所述第一图像中的与所述多个参考通孔中的多个第一参考通孔对应的所述多个通孔中的多个第一通孔的第一位置;
第一位置确定单元,被设置为基于所述第一位置确定所述第一通孔的第二位置;
第二透视变换单元,被设置为基于所述第一通孔的第二位置以及与所述第一通孔对应的所述第一参考通孔的参考位置确定用于将所述参考图像变换为所述第一图像的第二透视变换,以及通过所述第二透视变换确定所述第一图像中的与所述第二参考通孔对应的所述多个通孔中的多个第二通孔的第三位置;以及
第二位置确定单元,被设置为基于所述第三位置确定所述第二通孔的第四位置。
根据本公开的再一方面,提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令在至少一个处理器执行时,使所述至少一个处理器实施上述的方法。
在本公开的方案中,可以基于通过对诸如电路板的平板物体进行一次拍摄所获得的图像进行区域分割和对象检测,采用直接检测通孔的方式取代传统的基于定位销的位置间接检测通孔的方式,对不同批次的平板物体的误差和图像的光照环境和背景等因素具有更稳健的适应能力;由于使用透视变换和卷积神经网络的深度学习和仅进行一次图像拍摄,可以更快、更准确地完成对象的检测,同时对图像采集设备和***的计算能力要求更低,在降低成本的同时提高效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例性实施例,本公开的上述和其它特征及优点将变得更加明显。
图1为根据本公开的实施例检测平板物体的通孔的方法的示意性流程图;
图2为用于本公开的实施例神经网络模型的训练阶段和检测阶段的示意性过程;
图3为根据本公开的实施例使用UNet网络模型从图像中分割对象的示例性流程图;
图4为根据本公开的实施例使用YOLO网络模型从图像中检测对象边界框的示例性流程图;
图5为根据本公开的实施例从电路板的原始图像中分割电路板的第一图像的示意图;
图6为根据本公开的实施例从电路板的轮廓中检测轮廓点的示意图;
图7为根据本公开的实施例从电路板的参考图像和测试图像之间的对应轮廓点确定透视变换的单应性矩阵的示意图;
图8为根据本公开的实施例基于第一透视变换确定与关键参考通孔对应的第一通孔的粗略的第一位置的示意图;
图9为根据本公开的实施例使用第一神经网络模型基于第一通孔的第一位置计算包括第一通孔的边界框的示意图;
图10为根据本公开的实施例使用第二神经网络模型基于第一通孔的边界框计算第一通孔的精确的第二位置的示意图;
图11为根据本公开的实施例基于第二透视变换确定与第二参考通孔对应的第二通孔的粗略的第三位置的示意图;
图12为根据本公开的实施例使用第三神经网络模型基于第二通孔的搜索片计算第二通孔的精确的第四位置的示意图;
图13为根据本公开的实施例使用第三神经网络模型基于第二通孔的搜索片计算所有第二通孔的精确的第四位置的示意图;
图14为根据本公开的实施例的检测方法检测存在位移、旋转、模糊和不同曝光值的图像中的通孔的示意图;
图15为根据本公开的实施例的检测方法检测存在模糊和不同曝光值的图像中的通孔的细节示意图;
图16为根据本公开的实施例的用于检测平板物体的通孔的装置的示意性结构图;以及
图17为根据本公开的实施例的用于检测平板物体的通孔的电子设备的示意性结构图。
具体实施方式
现在将参考附图更全面地描述本公开的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本公开将全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。在图中,为了清晰的目的,可能会调整部分元件的尺寸或加以变形。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、元件等。在其它情况下,不详细示出或描述公知结构、方法或者操作以避免模糊本公开的各方面。
首先以工厂的组装生产线的自动安装螺钉驱动过程为例,介绍本公开的实施例所应用的示例性场景。
通常使用传统的计算机视觉方法检测电路板上用于安装螺钉的螺钉孔位置的工作流程如下:首先,在生产线上设置的机器人的机械臂上安装摄像机。在进行螺钉驱动之前,需要识别位于电路板上的定位销的精确坐标。其中,将机械臂移动到存在定位销的区域的设置坐标位置,然后由摄像机拍摄图像,并使用传统的计算机视觉方法在图像中识别定位销的精确坐标,然后发送回机械臂。重复移动机械臂和拍摄图像的步骤,直到处理完所有定位销并获得这些定位销的准确坐标。最后,基于定位销的坐标以及每个螺钉孔到定位销的预定偏移量计算螺钉孔的精确坐标,并且将机械臂从当前位置移动到螺钉孔的精确位置以安装螺钉。
这种基于定位销识别螺钉孔位置的方法实际上是一种间接定位的螺钉孔检测方法。但是,在实际生产实践中的自动化生产线上存在一些缺陷。
-由于多种原因(例如定位销不存在,相机过度曝光,定位销缺陷/变形)而无法检测定位销的坐标。作为间接确定螺钉孔的参照,如果无法检测定位销的坐标,将无法获得螺钉孔的精确位置。
-螺钉孔与定位销的偏移量不恒定或者不准确。螺钉孔与定位销的预定义偏移量基于电路板的参考布局,但是由于不同批次的电路板之间存在误差(诸如螺钉孔误差、定位销误差等),所以参考布局中的预定义偏移量与每个电路板中的实际偏移量不同。
-不适应复杂条件,需要恒定的光照环境和背景。在机器人的机械臂上安装的摄像机拍照范围较小,因此需要在检测步骤中多次拍摄电路板的图像。由于实际环境不断变化,因此每个图像的光照环境和背景很可能存在不同。基于计算机视觉的方法对不同的环境参数(例如照明变化)敏感,因此计算机视觉识别方法可能在某些图像中工作得很好但在其它图像中效果很差。
-性能低下。由于需要针对每个定位销拍摄一个图像,因此需要获取多个图像以用于图像识别,导致检测时间很长。多个图像的图像识别工作量大,并且加上复杂光照环境和背景对计算机视觉方法的负面影响,导致***计算量巨大并且检测速度和精度难以达到更高的要求。
为克服上述缺陷,根据本公开的实施例提出了一种检测平板物体的通孔的方法、装置、计算机可读存储介质和电子设备。该方案不仅可以应用于生产线的电路板的螺钉驱动过程中的螺钉孔检测,还可以应用于任何具有通孔,特别是在表面上具有通孔的平板状物体的通孔检测。例如,在具有用于固定的通孔的板型建筑构件上检测这些通孔,并通过在通孔中放入固定件以将板型建筑构件安装在预定位置。还存在其它平板物体的安装场景,例如车辆制造、货物运输等。
在根据本公开的实施例的通孔检测方案中,引入神经网络模型,通过在原始图像中的平板物体分割和通孔检测中使用深度学***板物体的图像使用创新的透视变换,获得相比计算机视觉方法更稳健、更快速和更准确的检测性能。下文将以检测电路板上的螺钉孔为例详述本公开的内容,其中电路板即本文中的平板物体,螺钉孔即平板物体上的通孔。本领域技术人员将理解,电路板的应用场景仅仅是示例性而不是限制性的。
图1为根据本公开的实施例检测平板物体的通孔的方法的示意性流程图。该检测方法包括如下步骤:
S100:获取平板物体的第一图像;
S200:确定用于将平板物体的参考图像变换为第一图像的第一透视变换;
S300:通过第一透视变换确定第一图像中的与多个参考通孔中的多个第一参考通孔对应的多个通孔中的多个第一通孔的第一位置;
S400:基于第一位置确定第一通孔的第二位置;
S500:基于第一通孔的第二位置以及与第一通孔对应的第一参考通孔的参考位置确定用于将参考图像变换为第一图像的第二透视变换;
S600:通过第二透视变换确定第一图像中的与第二参考通孔对应的多个通孔中的多个第二通孔的第三位置;
S700:基于第三位置确定第二通孔的第四位置;以及
以虚线示出的可选的步骤S800:将第二位置和第四位置转换为世界坐标系中的位置。
首先,在步骤S100中获取平板物体的第一图像。在根据本公开的实施例的检测方法中,在使用摄像机获取图像之前,可以通过调节拍摄图像的对焦、失真等相关的参数对摄像机实施校准。可以仍然使用机器人或机器人的机械臂上设置的现有摄像机,也可以使用独立于机器人或机械臂的摄像机。使用现有摄像机时,可以对其进行升级或调整以满足所需图像的要求。单独的摄像机例如可以安装在生产线上的固定位置处或者位于平板物体的上方,使得其能够拍摄到包括整个平板物体的原始图像。
原始图像的涵盖范围不仅包括平板物体,还包括平板物体之外的背景图像。在读取摄像机的图像作为输入获取原始图像后,需要从原始图像中将平板物体从背景中分割出来,获得平板物体的第一图像。
根据本公开的实施例,使用神经网络模型从原始图像中提取平板物体的第一图像。神经网络模型相比传统的计算机视觉方法,可以更快更准确地完成图像分割和提取。在深度学***板物体的第一图像的步骤细节。本领域技术人员将理解,还可以采用其它神经网络模型完成图像分割的任务。
与所有使用神经网络模型进行深度学习的方法类似,使用UNet网络模型进行图像分割任务,包括检测阶段和检测前的训练阶段。
图2示出用于本公开的实施例的神经网络模型的训练阶段和检测阶段的示意性过程。训练阶段200可以周期性(例如每天、每周或每月等)运行以提高神经网络模型的识别速度和精度。
在训练阶段200中,首先在步骤201中检索训练数据。训练数据来自由摄像机拍摄的包含的平板物体的原始图像,例如由生产线上的摄像机拍摄的包含电路板的图像。在每个周期,在平板物体上检测通孔的成功和失败的图像都可以用于训练。检测失败的图像用于训练可以获得更好的效果,例如,每个周期中检索生产线的机器人的螺钉驱动失败的图像。
完成训练图像的选择后,在步骤202标记训练数据。取决于神经网络模型的训练目的,需要标记的待检测对象可以是图像中对象的轮廓和/或区域、对象的关键点、对象的重心和/或几何中心等。可以对应用图像增强以生成更多训练数据。
基于步骤201和202获得的经标记的训练数据,在步骤203中训练神经网络模型,直至其进行例如图像分割的任务的准确性达到设定要求。在步骤204中存储经训练的模型。模型可以存储为诸如H5(hdf5)形式的文件以在检测阶段210中被加载和执行以便完成相应的图像分割或对象识别的任务。
在检测阶段210中,首先在步骤211中获取包括平板物体的原始图像,然后使用在训练阶段200中保存的神经网络模型在步骤212中对原始图像进行分割以获得平板物体的第一图像。
图3示出根据本公开的实施例的使用UNet网络模型从图像中分割对象的训练过程。首先在步骤310中检索图像(例如,包括平板物体的原始图像)并标记所要分割的对象(例如,平板物体)的轮廓。可以使用LabelMe标注工具(例如参见https://github.com/wkentaro/labelme),其中UNet网络输出的掩膜由多边形生成,因此以多边形轮廓生成的掩膜用作训练数据的标签。标记完成后开始UNet网络模型的训练,其目的在于使用UNet模型拟合标记的图像处理(分割)结果。在训练中,在步骤321中使用二元交叉熵测量损失。训练结果达到设定要求后停止训练。在步骤322中可以当验证损失不减少时应用提前停止以减轻过度拟合。经训练的UNet网络模型在步骤330中存储为H5文件以备检测过程使用。
图5示出根据本公开的实施例的从电路板的原始图像中分割电路板的第一图像的示意图。通过根据在图3中示出的过程训练的UNet网络模型,从摄像机拍摄的原始图像600中分割出以多边形表示的电路板601的掩膜,然后检测电路板601的轮廓602。
在步骤S100中通过UNet网络模型获得平板物体的掩膜后,可以在第一图像中检测平板物体的轮廓以获得第一轮廓信息,并使用例如多边形拟合的方法找到平板物体的轮廓上的至少一个点作为第一轮廓点。第一轮廓信息可以包括平板物体的轮廓上的任何第一轮廓点的位置信息。如图6所示,通过多边形拟合找到电路板601的第一轮廓602上的四个第一轮廓点603形成第一轮廓信息。在图6中,第一轮廓点603为电路板601的四个角点。
回到图1,在获得平板物体的第一图像之后,进行根据本公开的实施例的透视变换过程。透视变换过程包括步骤S200至S300的第一透视变换过程和S500至S600的第二透视变换过程。
在步骤S200中,确定用于将平板物体的参考图像变换为第一图像的第一透视变换。在本公开的实施例中,透视变换指将一个图像的像素点变换到另一个图像中的对应像素点的过程。从另一个图像的像素点变换回先前图像的对应像素点的过程称为透视变换的逆变换,也可以称为逆透视变换。透视变换通过单应性矩阵H表征。
平板物体的参考图像可以是平板物体的标准化图像。参考图像可以使用图7中所示的取向以便于查看。由于参考图像是平板物体的参考模板的图像,因此参考图像与从原始图像中提取的平板物体的第一图像之间具有对应关系,参考图像中具有的参考通孔的数量与平板物体的通孔相同,并且参考通孔在参考图像中的参考位置与通孔在平板物体的第一图像中的位置对应。参考通孔的参考位置与通孔在第一图像中的位置都可以采用二维坐标的方式。
对于第一图像中的第一轮廓点,可以在参考图像中的平板物体的参考轮廓中找到与第一轮廓点对应的参考轮廓点,并由参考轮廓点形成参考轮廓信息。假设第一图像中的像素点A的坐标为(x,y),对应的参考图像中的参考像素点A0的坐标为(x0,y0),则基于单应性矩阵将参考像素点透视变换为第一图像中的像素点的定义,得到A=H*A0,其中A=[x,y,z]-1,A0=[x0,y0,1]-1,A为3x3阶矩阵这是从二维点A0变换到三维点A的转换过程。当A为二维点时,可以将A表示为[x/z,y/z,1]-1。令a33=1,可以得到关于x和y的两个方程构成的二元方程组。当使用4组点对(即8个点)时,可以得到8个方程构成的方程组,从而计算出A中的所有元素。
在此,使用第一轮廓点A10(x10,y10)和参考轮廓点A00(x00,y00)的坐标形成轮廓点坐标对,则基于轮廓点坐标对可以解出第一透视变换的第一单应性矩阵H1。如果第一单应性矩阵H1为3x3阶矩阵,则第一单应性矩阵中存在8个未知参数,需要4个轮廓点对才能求解矩阵的所有参数。因此,可以根据选择的单应性矩阵H的大小在第一图像中的平板物体的轮廓上选择相应数量的多个第一轮廓点,并与对应的参考轮廓点形成的轮廓点对确定第一单应性矩阵H1,从而确定第一透视变换。
如图7所示,参考图像700经过顺时针旋转90度和透视变形可以变换为第一图像600,第一透视变换可以认为是二者之间以第一单应性矩阵表征的线性变换。在参考图像700中找到分别与四个第一轮廓点6031、6032、6033和6034对应的参考轮廓点7031、7032、7033和7034,则轮廓点对(6031,7031)、(6032,7032)、(6033,7033)和(6034,7034)的坐标可以解出第一单应性矩阵H1。
由于在第一图像中确定的第一轮廓点的坐标并不是轮廓点的精确位置,因此在步骤S200中确定的第一透视变换为仅能获得第一图像中的像素点的粗略位置的粗略透视变换。
在此,精确位置指能够准确确定对象位置的位置信息。当对象为点时,精确位置可以是点的坐标,也可以是能够表征点的位置的其它形式。当对象为区域时,精确位置可以是区域的轮廓,也可以是区域的几何中心、重心或质心的坐标,还可以是能够表征区域的位置的其它形式。
为了获得第一图像中的像素点的精确位置,需要确定从参考图像到第一图像的精确的第二透视变换。通过第二透视变换,可以将参考像素点的精确的参考坐标变换为第一图像中的对应像素点的精确坐标,从而确定第一图像中的像素点的精确位置。
在步骤S300中,通过第一透视变换确定第一图像中的与多个参考通孔中的多个第一参考通孔对应的多个通孔中的多个第一通孔的第一位置。第一参考通孔也称为关键参考通孔。在参考图像中选择关键参考通孔采用如下标准:
1)关键参考通孔不能共线;
2)关键参考通孔之间不太接近。
根据本公开的实施例,不接近的标准可以以能够使用神经网络模型在搜索片(patch)的覆盖范围内仅覆盖一个关键参考通孔为准。
然后,使用第一透视变换的第一单应性矩阵H1将关键参考通孔的参考坐标位置变换为第一图像中的平板物体的对应通孔(以下称为第一通孔)的坐标。根据本公开的实施例,第一位置可以是以第一参考通孔经第一透视变换后获得的对应位置的坐标为中心的搜索片,该片表征第一通孔的粗略位置。例如,片可以是具有200像素*200像素的大小的正方形。
图8示出基于第一透视变换确定的与关键参考螺钉孔对应的第一图像中的第一螺钉孔6041、6042、6043和6044的粗略的第一位置6051、6052、6053和6054,其中第一位置例如是以200像素*200像素的正方形搜索框形式的搜索片。
步骤S400用于基于第一位置确定第一通孔的第二位置。第二位置为第一通孔的精确位置。根据本公开的实施例,采用第一组神经网络模型基于深度学习通过第一位置确定第二通孔的精确的第二位置。第一组神经网络模型可以至少包括第一神经网络模型,也可以包括第一神经网络模型和第二神经网络模型。两种神经网络模型可以采用卷积神经网络CNN模型,也可以进一步采用全卷积神经网络FCN模型。当第一组神经网络模型仅包括第一神经网络模型时,第一神经网络模型完成在搜索片中定位小对象的边界并确定对象轮廓的功能。当第一组神经网络模型包括第一神经网络模型和第二神经网络模型时,第一神经网络模型可以主要完成在搜索片中定位小对象的边界(即缩小进行图像分割的范围),第二神经网络模型可以主要完成在图像中分割对象的功能。根据实际情况,也可以使用至少一个第一神经网络模型和/或至少一个第二神经网络模型以诸如串联等方式组成第一组神经网络模型,获得更好的通孔检测性能。
Redmon等人分别在2015年6月(参见“You Only Look Once:Unified,Real-TimeObject Detection”)、2016年12月(参见“YOLO9000:Better,Faster,Stronger”)和2018年4月(参见“YOLOv3:An Incremental Improvement”)提出三个版本的YOLO(You Only LookOnce,只看一次)网络模型。YOLO的核心思想为利用整张图像作为网络模型的输入,直接在输出层回归(也称为预测)边界框的位置并附带预测置信度值及其所属的类别。因此YOLO网络模型是一种很好的确定图像中的对象边界的目标检测工具,可以快速缩小图像识别的区域并切识别对象的类别。YOLOv3比YOLO和YOLOv2速度更快,可以进行多尺度预测,具有更好的基础分类网络和分类器以进行类别预测。YOLO的缺点在于,对相互靠的很近的物体和很小的群体检测效果不好。因此,本公开的实施例中可以选择YOLO网络模型作为第一神经网络模型。虽然YOLOv3已经可以较好地克服相对近的问题,但是在本公开的实施例中,对关键参考通孔的选择仍然可以选择遵循不共线和不接近的标准以获得更优的性能。本领域技术人员将理解,还可以使用其它目标检测神经网络作为第一神经网络模型,这些模型包括但不限于RCNN,fast-RCNN,faster-RCNN,SSD等。
YOLO网络模型与在步骤S100中使用的UNet网络类似,在对象检测过程中也包括检测阶段和检测前的训练阶段。
同样以图2为例,介绍YOLO网络模型的训练阶段和检测阶段。相比S100中的UNet网络,YOLO网络在步骤202对训练数据标记通孔的边界框,并在检测阶段210的确定第二位置的步骤214中基于表示第一通孔的粗略位置的第一位置(搜索片)计算输出通孔的边界框,该边界框可以是比第一位置的覆盖面积更小的正方形搜索框。
图4则示出根据本公开的实施例使用YOLO网络模型从图像中检测对象边界框的示例性训练流程。首先在步骤410中检索图像(例如,包括平板物体的原始图像)并标记所要检测或预测的对象(例如,平板物体的通孔)的边界框。可以使用LabelImg注释工具(参见https://github.com/tzutalin/labelImg),其中YOLO网络输出为多边形的边界框,因此以多边形标记要检测的对象的边界框用作训练数据的标签。标记完成后开始YOLO网络模型的训练,其目的在于使用YOLO模型拟合标记的图像处理(边界预测和分类)结果。在训练中,在步骤421中使用损失函数作为评价函数。训练结果达到设定要求后停止训练。在步骤422中可以当验证损失不减少时应用提前停止以减轻过度拟合。经训练的YOLO网络模型在步骤430中存储为H5文件以备检测过程使用。
YOLO网络模型的训练阶段和检测阶段的其它部分与步骤S100中的UNet网络类似的部分将不再详述。
参考图9,可以看到在第一图像600内,经过YOLO网络模型的深度学习,将图8中的电路板601的轮廓602中的200像素*200像素大小的搜索片缩小为64像素*64像素大小的包括第一螺钉孔6041、6042、6043和6044的边界框6051、6052、6053和6054。
由于YOLO网络模型有利于在诸如搜索片的图像区域内定位小对象,因此可用于在步骤S300中确定的200像素*200像素的搜索片的图像区域内找到包括第一通孔的边界框(例如64像素*64像素大小或更大的区域)。YOLO的优点在于其快速性。但是,由于第一图像中的通孔的尺寸一般为8像素*8像素的图像区域,因此YOLO网络模型的输出还不足以获取第一通孔的精确的第二位置。
根据本公开的实施例,在YOLO网络模型后串联使用第二神经网络模型在边界框标识的图像区域内进行图像分割以获得通孔的第二位置。第二神经网络模型仍然可以采用例如UNet网络的适用于图像分割任务的神经网络模型。下面以UNet网络模型为例介绍在第一组神经网络模型中的第二神经网络模型的训练过程。
作为第二神经网络模型的UNet网络模型与在步骤S100中使用的分割平板物体的UNet网络类似,在对象检测过程中也包括检测阶段和检测前的训练阶段。
再次以图2为例,介绍作为第二神经网络模型的UNet网络模型的训练阶段和通孔检测阶段。相比S100中的UNet网络,第二神经网络模型UNet网络仅在训练数据上存在不同,训练过程基本一致。第二神经网络模型UNet网络在步骤202对训练数据标记在YOLO网络模型生成的通孔的边界框所限定的图像区域中的通孔的掩膜。通孔的掩膜代表从图像区域中分割出的通孔轮廓。在检测阶段210中,此时训练的第二神经网络模型UNet网络用于在确定第二位置的步骤214中与YOLO网络组合基于表示第一通孔的粗略位置的第一位置(搜索片)计算通孔的精确的第二位置。
虽然步骤S100中使用的UNet网络和步骤S400中使用的第一组神经网络模型中的第二神经网络模型UNet网络都用于图像分割,但是前者用于从原始图像中分割平板物体,后者用于从搜索区域(搜索片或边界框)中分割通孔,因此二者需要以不同的训练数据训练并存储为不同的UNet网络模型文件。
在此介绍了使用YOLO网络与UNet网络的组合以从基于第一透视变换获得的关键参考通孔生成的搜索片中计算确定第一通孔的精确的第二位置,这种使用两种神经网络模型分阶段检测并识别通孔的边界框和轮廓(精确位置)的方式可以减少数据不平衡问题并提高精度。但是,根据本公开的实施例,根据对通孔定位精度的不同要求,也可以仅使用诸如YOLO网络的第一神经网络模型完成通孔位置的检测。
由于可能存在通孔不是纯圆形的情况,因此在第二神经网络模型UNet网络的训练和使用时,基于生成的第一通孔的掩膜所代表的轮廓计算出通孔的几何中心、重心或质心的坐标并且以该坐标表示第一通孔的精确的第二位置。相应地,在参考图像中与第一通孔对应的关键参考通孔(第一参考通孔)的参考坐标位置也采用关键参考通孔的几何中心、重心或质心的坐标。根据本公开的实施例,可以对于所有参考通孔和平板物体中的通孔都使用其几何中心、重心或质心的坐标表示其位置。
图10示出使用第二神经网络模型UNet网络分别基于四个螺钉孔6041、6042、6043和6044的边界框6061、6062、6063和6064,计算出四个螺钉孔的精确的第二位置(例如为直径为8像素的圆的圆心)6071、6072、6073和6074。
获得第一通孔的第二位置后,在步骤S500中基于第一通孔的第二位置以及与第一通孔对应的第一参考通孔的参考位置确定用于将参考图像变换为第一图像的第二透视变换。类似于第一透视变换,第二透视变换可以通过第二单应性矩阵H2表征。假设关键参考通孔的参考位置为A01,与之对应的第一通孔的粗略的第一位置为A11,在步骤S400中计算得到的与之对应的第一通孔的精确的第二位置为A12,则有A11=H1*A01,以及A12=H2*A01。可见第一透视变换和第二透视变换分别为将参考通孔的(精确的)参考位置分别变换为第一图像中的对应通孔的(粗略的)第一位置和(精确的)第二位置的粗略透视变换和精确透视变换。应注意的是,精确透视变换的概念仅相对于粗略透视变换,即前者比后者精度更好。但是,使用第二透视变换将参考通孔的参考位置变换得到的对应通孔的位置仍然不能满足对于检测和定位通孔的精度要求,因此在本公开的实施例中,还需要使用神经网络模型对变换得到的通孔位置深度学习以计算出满足精度要求的精确位置。
通过上文所述的方程组可以解出第二单应性矩阵H2。如果选择第一单应性矩阵H1为3x3阶矩阵,则第二单应性矩阵H2也是3x3阶矩阵,其中存在8个未知参数,需要4个关键参考通孔和第一通孔的点对才能求解矩阵的所有参数。如在图5-10中的电路板601所示,选择了四个螺钉孔6041、6042、6043和6044。
接下来,在步骤S600通过上文中的第二透视变换确定第一图像中的与第二参考通孔对应的多个通孔中的多个第二通孔的第三位置。第二参考通孔是在参考图像中与关键参考通孔(第一参考通孔)不同的其它参考通孔。第二通孔是在第一图像中的所有通孔中与第一通孔不同的其它通孔,并且与第一通孔类似,第二通孔与第二参考通孔对应。
假设第二参考通孔的参考位置为A02,与之对应的第二通孔的第三位置为A23,则通过A23=H2*A02,可以计算得出经过第二透视变换后的粗略的第三位置。第二通孔的第三位置已经比在步骤S300中得到的第一通孔的第一位置更准确了,但是还没有达到足够精确的要求。
参见图11,示出使用所确定的第二透视变换将参考图像700中的四个第二参考螺钉孔的位置7101、7102、7103和7104变换为第一图像600中的电路板601上的对应第二螺钉孔的粗略的第三位置6101、6102、6103和6104。
步骤S700用于基于第三位置确定第二通孔的第四位置。第四位置为第二通孔的精确位置。根据本公开的实施例,使用第二组神经网络模型基于深度学习通过第三位置确定精确的第四位置。由于第二透视变换已经相比第一透视变换精确,因此第二组神经网络模型可以不需要诸如在第一组神经网络模型中包含的用于在搜索片中定位小对象边界的神经网络模型(例如YOLO网络)。根据本公开的实施例,第三位置可以是以第二参考通孔经第二透视变换后获得的对应位置的坐标为中心的搜索片,该片表征第二通孔的粗略位置。在第一透视变换生成第一通孔的第一位置时,搜索片例如具有200像素*200像素的大小。在第二透视变换生成第二通孔的第三位置时,可以不再采用上述大小的搜索片,而将其缩小为64像素*64像素大小。由于第二透视变换的结果已经非常接近第二通孔的精确位置,因此如此小的搜索片仍然能够覆盖第二通孔。通过将搜索片缩小为与第一神经网络模型YOLO网络输出的边界框大小的搜索区域,可以进一步降低计算量而不会导致性能劣化。
根据实际情况,也可以使用至少一个第三神经网络模型以串联等方式组成第二组神经网络模型,获得更好的通孔检测性能。
第二组神经网络模型可以仅使用用于完成图像分割的第三神经网络模型,例如采用步骤S100中和步骤S400中所使用的UNet网络。第三神经网络模型UNet网络与第二神经网络模型UNet网络类似,都是用于在搜索图像区域内进行图像分割以获得通孔的精确位置,其区别仅在于第二神经网络模型UNet网络使用边界框作为搜索区域,第三神经网络模型UNet网络使用步骤S600中确定的粗略的第三位置标识的搜索片作为搜索区域。因此,二者的训练过程类似,其训练数据的搜索区域从来自第一神经网络模型YOLO网络输出的第二神经网络模型UNet网络的边界框,调整为来自第二透视变换输出的第三位置表征的搜索片,其它训练参数和过程基本一致。
回到图2,第三神经网络模型UNet网络的对象检测过程中也包括通孔检测阶段和检测前的训练阶段。在检测阶段210中用于确定第四位置的步骤216中,第三神经网络模型UNet网络单独基于表示第二通孔的粗略位置的第三位置计算输出第二通孔的精确的第四位置。
与步骤S400类似,在第三神经网络模型UNet网络的训练和使用时,基于生成的第二通孔的掩膜所代表的轮廓计算出通孔的几何中心、重心或质心的坐标并且以该坐标表示第二通孔的精确的第四位置。相应地,在参考图像中与第二通孔对应的第二参考通孔的参考坐标位置也采用第二参考通孔的几何中心、重心或质心的坐标。
根据本公开的实施例,可以将第二神经网络模型UNet网络和第三神经网络模型UNet网络整合为一个神经网络模型使用,仅在使用时输入不同的搜索图像区域。
在图11中已经示出针对四个第二参考螺钉孔进行第二透视变换获得对应的第二螺钉孔的粗略第三位置。在使用步骤S700计算出四个第二螺钉孔的精确的第四位置后,可以如图12所示对其余第二参考螺钉孔进行第二透视变换获得对应第二螺钉孔的第三位置6105(未示出其余的所有第二螺钉孔),并再次使用步骤S700计算出所有第二螺钉孔的精确的第四位置6106(未示出其余的所有第二螺钉孔),如图13所示。
根据本公开的实施例的检测平板物体的通孔的方法,使用摄像机一次性拍摄平板物体的图像并且检测平板物体上的所有通孔,避免多次拍摄造成的耗时、效率低下以及图像光照环境和背景差异导致的高适应要求。在通孔的检测和识别过程中,取代传统的基于计算机视觉的方法,引入多次透视变换和基于深度学***板物体的批次误差也有更好的容错能力,可应用于更多场景。
例如,在从拍摄的原始图像中进行电路板的图像分割时,传统的基于计算机视觉方法(例如SIFT算法)在检测电路板位置及其4个角点时需要几秒钟,而基于神经网络模型的深度学习方法的解决方案耗时为100-200毫秒,检测时间显著减少。
而根据本公开的实施例的方法则具有更高的精度和稳健性。图14则示出根据本公开的实施例的方法在不同的角度和环境光下的通孔检测结果,对于存在位移、偏转、模糊和不同曝光值(过曝和欠曝)的区域仍能够准确检测通孔。图15进一步示出这些模糊和曝光不同区域的通孔检测结果细节。
根据本公开的实施例的方法,还具有很好的成本效益。相比传统计算机视觉方法,本方法对诸如摄像机的图像采集设备的成像质量、环境适应能力和计算处理能力的需求更低。
根据本公开的实施例,用于检测平板物体的通孔的方法还可以包括如图1中用虚线所示的步骤S800,将第一通孔的第二位置和第二通孔的第四位置转换为世界坐标系中的位置。第二位置和第四位置即平板物体中的所有通孔的精确位置。在例如工厂的生产线或安装现场使用本公开的方法时,需要将基于拍摄的第一图像和参考图像所使用的坐标系变换为诸如机器人(机械臂)、安装设备等能够识别的世界坐标系。这样,机器人和安装设备等可以基于这些通孔在世界坐标系中的坐标完成定位驱动。本领域技术人员将理解,本公开的实施例中的机器人和/或机械臂在电路板的螺钉孔驱动过程中用于作螺钉安装单元,也可以使用诸如滑轨、数控机床、阵列式安装单元等其它形式的螺钉孔安装单元完成螺钉孔驱动。
根据本公开的另一方面,提出一种如图16所示的用于检测平板物体的通孔的装置800。该装置800包括如下组成部分:
图像获取单元810,用于基于第一位置确定第一通孔的第二位置;
第一透视变换单元820,用于确定用于将平板物体的参考图像变换为第一图像的第一透视变换,以及通过第一透视变换确定第一图像中的与多个参考通孔中的多个第一参考通孔对应的多个通孔中的多个第一通孔的第一位置;
第一位置确定单元830,用于基于第一位置确定第一通孔的第二位置;
第二透视变换单元840,用于基于第一通孔的第二位置以及与第一通孔对应的第一参考通孔的参考位置确定用于将参考图像变换为第一图像的第二透视变换,以及通过第二透视变换确定第一图像中的与第二参考通孔对应的多个通孔中的多个第二通孔的第三位置;以及
第二位置确定单元850,用于基于第三位置确定第二通孔的第四位置。
图像获取单元810还可以用于获取包括平板物体的原始图像,以及从原始图像中提取第一图像。其中,从原始图像中提取第一图像包括使用第四神经网络模型从原始图像中提取所述第一图像。
第一透视变换单元820还可以通过对多个第一参考通孔的参考位置进行第一透视变换来确定第一图像中的与多个参考通孔中的多个第一参考通孔对应的多个通孔中的多个第一通孔的第一位置。其中,确定用于将平板物体的参考图像变换为第一图像的第一透视变换包括:确定第一图像中的平板物体的第一轮廓信息;从参考图像获取平板物体的参考轮廓信息;以及基于第一轮廓信息和参考轮廓信息确定第一透视变换。其中,第一轮廓信息包括多个第一轮廓点,参考轮廓信息包括与多个第一轮廓点对应的多个参考轮廓点,基于第一轮廓信息和参考轮廓信息确定第一透视变换包括确定第一单应性矩阵,第一单应性矩阵用于将参考轮廓点的位置变换为与参考轮廓点对应的第一轮廓点的位置。
第一位置确定单元830还可以使用第一组神经网络模型基于第一位置确定第一通孔的第二位置。其中,第一组神经网络模型至少包括第一神经网络模型,则可以使用第一神经网络模型基于第一位置确定第一通孔的第二位置。第一组神经网络模型还可以包括第一神经网络模型和第二神经网络模型,则可以使用第二神经网络模型基于第一位置确定包括第一通孔的第一搜索区域,以及使用第一神经网络模型在第一搜索区域中确定第一通孔的第二位置。
第二透视变换单元840还可以通过对参考通孔中不同于第一参考通孔的第二参考通孔的参考位置进行第二透视变换确定第一图像中的与第二参考通孔对应的多个通孔中的多个第二通孔的第三位置。其中,确定用于将参考图像变换为第一图像的第二透视变换包括确定第二单应性矩阵,第二单应性矩阵用于将第一参考通孔的参考位置变换为第一图像中的与第一参考通孔对应的第一通孔的第二位置。
第一位置确定单元850还可以使用第二组神经网络模型基于第三位置确定第二通孔的第四位置。其中,第二组神经网络模型至少包括第三神经网络模型,则可以使用第三神经网络模型基于第三位置确定第二通孔的第四位置。
根据本公开的实施例,上述第一至第四神经网络模型可以是卷积神经网络模型。进一步,第一、第三和第四神经网络模型可以是UNet网络,十二神经网络模型可以使YOLO网络。这些神经网络模型在使用前可以使用第一图像和通孔的位置的标记数据进行训练。
装置800还可以包括坐标转换单元,用于将通孔的第二和第四位置转换为世界坐标系中的对应位置,以便由使用通孔的安装设备等其它设备识别和使用。
应当注意,尽管在上文详细描述中提及了用于检测平板物体的通孔的装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序包括可执行指令,该可执行指令被例如处理器执行时可以实现上述任意一个实施例中所述用于检测平板物体的通孔的方法的步骤。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书用于检测平板物体的通孔的方法中描述的根据本公开各种示例性实施例的步骤。
根据本公开的实施例的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中的用于检测平板物体的通孔的方法的步骤。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图17来描述根据本公开的这种实施方式的电子设备1600。图17显示的电子设备1600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图17所示,电子设备1600以通用计算设备的形式表现。电子设备1600的组件可以包括但不限于:至少一个处理单元1610、至少一个存储单元1620、连接不同***组件(包括存储单元1620和处理单元1610)的总线1630、显示单元1640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1610执行,使得所述处理单元1610执行本说明书用于用于检测平板物体的通孔的方法中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1610可以执行如图1中所示的步骤。
所述存储单元1620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)16201和/或高速缓存存储单元16202,还可以进一步包括只读存储单元(ROM)16203。
所述存储单元1620还可以包括具有一组(至少一个)程序模块16205的程序/实用工具16204,这样的程序模块16205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1600也可以与一个或多个外部设备1700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1600交互的设备通信,和/或与使得该电子设备1600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1650进行。并且,电子设备1600还可以通过网络适配器1660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器1660可以通过总线1630与电子设备1600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的用于检测平板物体的通孔的方法。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (33)
1.一种用于检测平板物体的通孔的方法,所述平板物体的表面具有多个通孔,所述方法包括:
获取所述平板物体的第一图像;
确定用于将所述平板物体的参考图像变换为所述第一图像的第一透视变换,其中,所述参考图像包括多个参考通孔;
通过所述第一透视变换确定所述第一图像中的与所述多个参考通孔中的多个第一参考通孔对应的所述多个通孔中的多个第一通孔的第一位置;
基于所述第一位置确定所述第一通孔的第二位置;
基于所述第一通孔的第二位置以及与所述第一通孔对应的所述第一参考通孔的参考位置确定用于将所述参考图像变换为所述第一图像的第二透视变换;
通过所述第二透视变换确定所述第一图像中的与所述第二参考通孔对应的所述多个通孔中的多个第二通孔的第三位置;以及
基于所述第三位置确定所述第二通孔的第四位置。
2.根据权利要求1所述的方法,其中,每个所述参考通孔具有参考位置,通过对所述多个第一参考通孔的参考位置进行所述第一透视变换,确定所述第一图像中的与所述多个参考通孔中的多个第一参考通孔对应的所述多个通孔中的所述多个第一通孔的第一位置。
3.根据权利要求1或2所述的方法,其中,通过对所述参考通孔中不同于所述第一参考通孔的第二参考通孔的参考位置进行所述第二透视变换确定所述第一图像中的与所述第二参考通孔对应的所述多个通孔中的所述多个第二通孔的第三位置。
4.根据权利要求1至3中任一项所述的方法,其中,使用第一组神经网络模型基于所述第一位置确定所述第一通孔的第二位置。
5.根据权利要求1至4中任一项所述的方法,其中,使用第二组神经网络模型基于所述第三位置确定所述第二通孔的第四位置。
6.根据权利要求4所述的方法,其中,所述第一组神经网络模型至少包括第一神经网络模型,使用第一组神经网络模型基于所述第一位置确定所述第一通孔的第二位置包括:
使用所述第一神经网络模型基于所述第一位置确定所述第一通孔的第二位置。
7.根据权利要求4所述的方法,其中,所述第一组神经网络模型包括第一神经网络模型和第二神经网络模型,使用第一组神经网络模型基于所述第一位置确定所述第一通孔的第二位置包括:
使用所述第二神经网络模型基于所述第一位置确定包括所述第一通孔的第一搜索区域;
使用所述第一神经网络模型在所述第一搜索区域中确定所述第一通孔的第二位置。
8.根据权利要求5所述的方法,其中,所述第二组神经网络模型至少包括第三神经网络模型,使用第二组神经网络模型基于所述第三位置确定所述第二通孔的第四位置包括:
使用所述第三神经网络模型基于所述第三位置确定所述第二通孔的第四位置。
9.根据权利要求1至8中任一项所述的方法,其中,获取所述平板物体的第一图像包括:
获取原始图像,所述原始图像包括所述平板物体;以及
从所述原始图像中提取所述第一图像。
10.根据权利要求9所述的方法,其中,从所述原始图像中提取所述第一图像包括:
使用第四神经网络模型从所述原始图像中提取所述第一图像。
11.根据权利要求1至10中任一项所述的方法,其中,确定用于将所述平板物体的参考图像变换为所述第一图像的第一透视变换包括:
确定所述第一图像中的所述平板物体的第一轮廓信息;
从所述参考图像获取所述平板物体的参考轮廓信息;以及
基于所述第一轮廓信息和所述参考轮廓信息确定所述第一透视变换。
12.根据权利要求11所述的方法,其中,所述第一轮廓信息包括多个第一轮廓点,所述参考轮廓信息包括与所述多个第一轮廓点对应的多个参考轮廓点,基于所述第一轮廓信息和所述参考轮廓信息确定所述第一透视变换包括确定第一单应性矩阵,所述第一单应性矩阵用于将所述参考轮廓点的位置变换为与所述参考轮廓点对应的所述第一轮廓点的位置。
13.根据权利要求1至12中任一项所述的方法,其中,确定用于将所述参考图像变换为所述第一图像的第二透视变换包括确定第二单应性矩阵,所述第二单应性矩阵用于将所述第一参考通孔的参考位置变换为所述第一图像中的与所述第一参考通孔对应的所述第一通孔的第二位置。
14.根据权利要求4所述的方法,其中,所述第一组神经网络模型中的神经网络模型为卷积神经网络。
15.根据权利要求5所述的方法,其中,所述第二组神经网络模型中的神经网络模型为卷积神经网络。
16.根据所述权利要求6或7所述的方法,其中,所述第一神经网络模型为UNet网络。
17.根据权利要求7所述的方法,其中,所述第二神经网络模型为YOLO网络。
18.根据权利要求8所述的方法,其中,所述第三神经网络模型为UNet网络。
19.根据权利要求10所述的方法,其中,所述第四神经网络模型为卷积神经网络。
20.根据权利要求19所述的方法,其中,所述卷积神经网络为UNet网络。
21.根据权利要求4或5所述的方法,其中,所述方法还包括:
在使用所述第一组神经网络模型之前,使用所述第一图像和所述通孔的位置的标记数据训练所述第一组神经网络模型中的至少一个的神经网络模型。
22.根据权利要求6所述的方法,其中,所述方法还包括:
在使用所述第二组神经网络模型之前,使用所述第一图像和所述通孔的位置的标记数据训练所述第二组神经网络模型中的至少一个的神经网络模型。
23.根据权利要求10所述的方法,其中,所述方法还包括:
在使用所述第四神经网络模型之前,使用所述第一图像的位置的标记数据训练所述第四神经网络模型。
24.根据权利要求1至23中任一项所述的方法,其中,所述平板物体为电路板,所述通孔为所述电路板上的螺钉孔。
25.根据权利要求24所述的方法,其中,所述方法还包括:
将所述第一通孔的第二位置和所述第二通孔的第四位置转换为在用于螺钉安装单元的世界坐标系中的位置。
26.一种用于检测平板物体的通孔的电子设备,所述平板物体的表面具有多个通孔,该电子设备包括:
至少一个处理器;以及
存储器,用于存储用于所述至少一个处理器的可执行指令;
其中,所述可执行指令被所述至少一个处理器执行时使所述至少一个处理器实施如下步骤:
获取所述平板物体的第一图像;
确定用于将所述平板物体的参考图像变换为所述第一图像的第一透视变换,其中,所述参考图像包括多个参考通孔;
通过所述第一透视变换确定所述第一图像中的与所述多个参考通孔中的多个第一参考通孔对应的所述多个通孔中的多个第一通孔的第二位置;
基于所述第一位置确定所述第一通孔的第二位置;
基于所述第一通孔的第二位置以及与所述第一通孔对应的所述第一参考通孔的参考位置确定用于将所述参考图像变换为所述第一图像的第二透视变换;
通过所述第二透视变换确定所述第一图像中的与所述第二参考通孔对应的所述多个通孔中的多个第二通孔的第三位置;以及
基于所述第三位置确定所述第二通孔的第四位置。
27.根据权利要求26所述的电子设备,其中,所述可执行指令被所述至少一个处理器执行时使所述至少一个处理器进一步实施根据权利要求2至25中任一项所述的方法的步骤。
28.一种用于检测平板物体的通孔的装置,所述平板物体的表面具有多个通孔,所述装置包括:
图像获取单元,被设置为获取所述平板物体的第一图像;
第一透视变换单元,被设置为确定用于将所述平板物体的参考图像变换为所述第一图像的第一透视变换,其中,所述参考图像包括多个参考通孔;以及通过所述第一透视变换确定所述第一图像中的与所述多个参考通孔中的多个第一参考通孔对应的所述多个通孔中的多个第一通孔的第一位置;
第一位置确定单元,被设置为基于所述第一位置确定所述第一通孔的第二位置;
第二透视变换单元,被设置为基于所述第一通孔的第二位置以及与所述第一通孔对应的所述第一参考通孔的参考位置确定用于将所述参考图像变换为所述第一图像的第二透视变换,以及通过所述第二透视变换确定所述第一图像中的与所述第二参考通孔对应的所述多个通孔中的多个第二通孔的第三位置;以及
第二位置确定单元,被设置为基于所述第三位置确定所述第二通孔的第四位置。
29.根据权利要求28所述的装置,其中,所述装置进一步被设置为执行根据权利要求2至25中任一项所述的方法。
30.根据权利要求28或29所述的装置,其中,所述平板物体为电路板,所述通孔为所述电路板上的螺钉孔。
31.根据权利要求30所述的装置,其中,所述装置还包括位置转换单元,被设置为将所述第一通孔的第二位置和所述第二通孔的第四位置转换为在用于螺钉安装单元的世界坐标系中的位置。
32.一种用于在电路板的螺钉孔上安装螺钉的设备,其中,该设备包括如权利要求30或31所述的装置。
33.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令在至少一个处理器执行时,使所述至少一个处理器实施根据权利要求1至25中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910359027.2A CN111862196A (zh) | 2019-04-30 | 2019-04-30 | 检测平板物体的通孔的方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910359027.2A CN111862196A (zh) | 2019-04-30 | 2019-04-30 | 检测平板物体的通孔的方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111862196A true CN111862196A (zh) | 2020-10-30 |
Family
ID=72965474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910359027.2A Pending CN111862196A (zh) | 2019-04-30 | 2019-04-30 | 检测平板物体的通孔的方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111862196A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112700499A (zh) * | 2020-11-04 | 2021-04-23 | 南京理工大学 | 一种辐照环境下基于深度学习的视觉定位仿真方法及*** |
CN113280737A (zh) * | 2021-05-14 | 2021-08-20 | 惠州中京电子科技有限公司 | 高阶hdi印制电路板盲孔偏移检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09204527A (ja) * | 1996-01-29 | 1997-08-05 | Dainippon Screen Mfg Co Ltd | パターン検査装置およびパターン検査方法 |
US20180314918A1 (en) * | 2015-11-09 | 2018-11-01 | Fuji Corporation | Lead tip position image recognition method and lead tip position image recognition system |
-
2019
- 2019-04-30 CN CN201910359027.2A patent/CN111862196A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09204527A (ja) * | 1996-01-29 | 1997-08-05 | Dainippon Screen Mfg Co Ltd | パターン検査装置およびパターン検査方法 |
US20180314918A1 (en) * | 2015-11-09 | 2018-11-01 | Fuji Corporation | Lead tip position image recognition method and lead tip position image recognition system |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112700499A (zh) * | 2020-11-04 | 2021-04-23 | 南京理工大学 | 一种辐照环境下基于深度学习的视觉定位仿真方法及*** |
CN112700499B (zh) * | 2020-11-04 | 2022-09-13 | 南京理工大学 | 一种辐照环境下基于深度学习的视觉定位仿真方法及*** |
CN113280737A (zh) * | 2021-05-14 | 2021-08-20 | 惠州中京电子科技有限公司 | 高阶hdi印制电路板盲孔偏移检测方法 |
CN113280737B (zh) * | 2021-05-14 | 2023-08-29 | 惠州中京电子科技有限公司 | 高阶hdi印制电路板盲孔偏移检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111986178B (zh) | 产品缺陷检测方法、装置、电子设备和存储介质 | |
WO2022170844A1 (zh) | 一种视频标注方法、装置、设备及计算机可读存储介质 | |
CN108648194B (zh) | 基于cad模型三维目标识别分割和位姿测量方法及装置 | |
US20120148145A1 (en) | System and method for finding correspondence between cameras in a three-dimensional vision system | |
JP6483168B2 (ja) | ビジョンシステムで画像内のプローブを効率的に採点するためのシステム及び方法 | |
CN107895377B (zh) | 一种前景目标提取方法、装置、设备及存储介质 | |
CN111160477B (zh) | 一种基于特征点检测的图像模板匹配方法 | |
WO2024002187A1 (zh) | 缺陷检测方法、缺陷检测设备及存储介质 | |
CN109816634B (zh) | 检测方法、模型训练方法、装置及设备 | |
CN111862196A (zh) | 检测平板物体的通孔的方法、装置和计算机可读存储介质 | |
CN115131596A (zh) | 缺陷分类装置、方法以及程序 | |
KR20220036803A (ko) | 인쇄회로기판 인식마크 검출 장치 및 방법 | |
Mukhopadhyay et al. | PCB inspection in the context of smart manufacturing | |
CN113705564B (zh) | 一种指针式仪表识别读数方法 | |
CN114863129A (zh) | 仪表数值分析方法、装置、设备及存储介质 | |
JP2022009474A (ja) | ビジョンシステムでラインを検出するためのシステム及び方法 | |
Collins et al. | Site model acquisition and extension from aerial images | |
JP2012123631A (ja) | 注目領域検出方法、注目領域検出装置、及びプログラム | |
CN112053401B (zh) | 一种芯片拼接方法、装置、设备及存储介质 | |
CN116977341A (zh) | 一种尺寸测量方法及相关装置 | |
Frangione et al. | Multi-step approach for automated scaling of photogrammetric micro-measurements | |
Weng et al. | Development of an adaptive template for fast detection of lithographic patterns of light-emitting diode chips | |
Si et al. | A fast and robust template matching method with rotated gradient features and image pyramid | |
CN113405644B (zh) | 非接触的振动测量方法、装置和存储介质 | |
CN117690846B (zh) | 太阳能硅片视觉检测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |