论文题目:Automatic Metallic Surface Defect Detection and Recognition with Convolutional Neural Networks
看完了这篇论文,这篇论文就是讲的缺陷检测,但是跟一般的目标检测不一样的是,这里是使用的自动编码器来进行一系列操作的,直接讲一讲里面的网络结构。
先看一看总的网络结构:
整个网络结构就是这样,在这个网络结构里面涉及到AE Network,这一块的网络结构如下:
这一块就是一个编码器和解码器的一个变化版本,每次的变化,图片的右下角都有标注。
对于AE Network,这里面涉及到一个atrous conv,这一块,作者给的解释是:
损失函数如下:
对于这个函数,我的理解是当我们进行AE Network之后,输出的数据的大小在0到1之间,就是代表当前像素是缺陷的概率,这个函数的pk(xij)那一部分就是某个像素的输出值。我们用于训练的图片都是打好标签了的,这些标签里面的像素就代表为缺陷,而在yij=k的意思就是原图像中某个像素为背景或者为缺陷的可能性,具体看上面照片,说的已经很详细了。
处理好AE Network这部分后,我们第一张图可以看见一个predict_mask,这里面就是对AE Network的输出数据进一步处理的,处理原则如下:
处理原则其实就是输出的每一个数据如果大于GS,就将这个值变为1,否则变为0.
上面就是用于找到缺陷的部分,然后将这些缺陷部分切割出来,然后对这些切割出来的部分进行分类,分类的网络如下:
这张图也很详细了,就不再累述了,至于损失函数,直接用目标检测里面经常用的那几个分类函数就行。
经过以上分析,我们已经知道了网络结构,损失函数,没有像yolo,fater_rcnn,ssd这些还要用到nms这些比较繁杂的东西,知道以上内容之后,我们就可以搭建网络然后找到数据集进行训练了,看作者的结论,这里效果还不错,大家有兴趣可以看看原论文再去复现代码试一下最后效果。
2020 6.9