这篇内容是关于焊接缺陷的检测,涉及的内容比较少,其中有些思路值得借鉴,作一下记录。
关于网络
作者使用的是最简单的全连接网络,并且实验了两种网络,分别是包含两个隐含层的网络和包含三个隐含层的网络。
关于数据集
GDXray数据集。
关于图片预处理
首先,将焊接部分从整个x-ray图片中截取出来,分为两个步骤:(1)使用Nobuyuki Otsu的方法将灰度图像转变为二值图像。(2)从二值图像中切出来一个矩形区域,以便于后面从这个区域中来获取训练样本。
关于训练样本
从得到的矩形区域中,截取出一系列32*32的图片来作为训练样本,并标记为0(no-defect)或者1(defect)。
关于inference
在inference阶段,输入的是一整张x-ray图片。由于,网络需要的输入的维度是32*32,这里采取的方法是:用一个32*32的窗口在x-ray图片上进行滑动,步长为2。这样每次滑动截取出来的图片就是我们所需要的维度了。然后,将截取出的图片放入网络进行inference,得到的结果为0或者1。接下来,根据得到的结果,将一整个32*32图片中的所有像素都标记为0或者1。
由于我们的滑动方向包括水平方向和垂直方向,可以想象一下,每一个像素会出现在256个截取出来的图片中,那么每一个像素的取值范围是:[0, 256]。然后,我们指定一个阈值,如果某个像素最终的取值大于阈值,那么就把这个像素判定为:defect。(注:在论文中,作者并没有给出这个阈值是多少)
ps:作者在inference阶段使用的方法值得借鉴,这种方法可以从像素级别上进行目标的识别和检测,也算是值得尝试的一种思路。
网友评论