Deep-Learning-Approach-for-Surface-Defect-Detection
Deep-Learning-Approach-for-Surface-Defect-Detection copied to clipboard
秒杀 DeepLabV3+ 和Unet 的缺陷检测网络?
这篇文章秒杀 DeepLabV3+ 和Unet 的缺陷检测网络?
不应该这么起标题,文章构建了两个网络,分割和分类网络,所说的缺陷检测其实是缺陷分类,分割网络是一个辅助网络,因为缺陷样本很小,作者也没有用预训练,所以借助分割网络训练特征图,文章中提到了分割网络的标签没有那么精细,也不太影响缺陷分类的结果。 作者比较deeplabv3和unet,是把它自己的分割网络替换成上述两个网络比较,其实并没有比精细的分割结果。文章分割网络中都没上采样层,也就是说特征图已经缩小了好几倍,根本也达不到缺陷分割精细的结果。
谢谢你的看法,我的标题来自一篇公众号。赞同你的部分观点,但有些不同的意见。1. 缺陷检测是个常用术语,不同于目标检测中的狭义的检测。2.工业应用中,缺陷分割结果的精细程度并不重要,更看重检出率和检测速度,上采样反而对网络的实时性有影响,我认为并不需要加。3.作者的工作虽然理论层次不高,但都是针对工业中的实际问题出发(样本少,特征少,图像分辨率高,如何标注,分割结果不重要),对比实验验证了设计的分割网络比常规的语义分割更适合解决工业缺陷问题。4.虽然你的理解很透彻,但都没有从实际问题和工程应用方面考虑。
两位的分析都有可取和不可取的点,就我对工业的实际应用总结出来的状态来看,的确认为似有标题党的嫌疑。 工业的应用的实际情况是:1.同一批次样本数量上,特征少,环境影响大,分辨率由经费投入决定;不同批次间有明显区别,所以需要不断做样本扩容并迭代。2.像素级的分割只是为了找到和发现缺陷,而后还需要对残次的结果做分类达到定损定级的要求(比如裂纹的长度,裂纹的宽度,裂纹的面积)。3.迭代的过程中需要能接近自动化的标注工具完成样本的扩容,需要接近无监督或者半监督的手段完成。 以上的情况看横向比较此网络与DeepLabV3+和Unet而言都存在以上不能一役而毕之的问题,这样看工业的缺陷检测,主要是裂纹类检测,一定需要FPN的模式。那在此基础上比较同一分辨率模式下及几种网络的检测结果和速度才有优劣可言。 愚见,此网络的性能还需实际大量实验的检验。
@bygreencn @love6tao 谢谢你们的看法,我们大家都明白目前将深度学习应用到实际工业检测中还有很长的路要走。如果这个网络能达到实际应用的地步, 我想大家也不一定会看到这个论文或者这个开源代码了。 针对工业缺陷检测设计的的网络比较少,如果能使大家关注这个领域的研究,那么这个标题的就达到目的了。
@bygreencn Interesting point of view, may I ask if you have any network/papers to recommend when it comes to detailed defect segmentation (ie. semantic segmantation, not classification)?
你好,刚接触这块,想请教两个问题:
-
用这个算法,在做预测时, 每一张图片 普通电脑需要6-7s(I5, 8G内存 无GUP),tesla V100 16G 需要2s 。 这是我在操作过程中 出现了问题吗?或者做预测大概就是这个时间(注释了self.visualization)
-
这个算法 可以用在工厂实际产品的外观缺陷检测上吗? 或者还是只用于实验阶段
期待你的回复
- 还有就是 train-total 训练40个批次, 和训练80个批次 甚至更多。 做预测时 test , 结果都是一样。 这是正确的吗?
这是我的QQ号:1356887876 方便告知一下你的联系方式吗?
还有就是 train-total 训练40个批次, 和训练80个批次 甚至更多。 做预测时 test , 结果都是一样。 这是正确的吗?
这是我的QQ号:1356887876 方便告知一下你的联系方式吗?
大佬我加你qq一起讨论下
做预测的时候为什么要读取二值图,哪位大佬帮忙解释一下啊?
说是标题党并不为过。在看到这篇论文的时候发现分割网络结构平平无奇,又是如何秒杀unet和deeplab?在运行了论文的开源代码以后发现最终的输出结果只是二分类的准确率,这样就呵呵了。 第一,一般的分割网络都具有编解码结构,该论文并没有上采样,因此换来速度的提升,那么这本身与语义分割就是相矛盾的,unet和deeplab系列都是在优化分割的精度而不断改进,所以一切的问题都是上采样引起的,这也是研究分割的目的。但是该论文用了一个序列式的分割结构作为辅助网络从而进行二分类,并且和unet和deeplab比较分类准确率本身就是有问题的。 第二,工业实际应用如果只是考虑检查的分类准确率和速度,那为何不直接用目标检测的方式岂不是更快? 第三,关于少样本问题,难道不是过拟合了吗!真正的少样本都是靠半监督,弱监督或者元学习的方法实现,但是该论文并没有说明为何少量样本就能实现很好效果的原因 第四,如果该论文在分割精度上赶上了deeplab,并且在速度上有很大提升,才算是真正的秒杀吧!
请问有木有tf2版本的源码呀?
支持xuanlang的观点。那篇论文的分割图缩小了8倍,论文里的Fig13、Fig14是怎么跟Unet和DeepLabv3+比较分割准确性的?翻遍论文,没找到怎么把缩小8倍的分割图恢复为原图大小的说明
支持xuanlang的观点。那篇论文的分割图缩小了8倍,论文里的Fig13、Fig14是怎么跟Unet和DeepLabv3+比较分割准确性的?翻遍论文,没找到怎么把缩小8倍的分割图恢复为原图大小的说明
确实如此,所以我在复现这个文章时,分割网络部分在训练阶段,直接上采样了8倍,再进行计算loss,总感觉怪怪的。翻遍了论文,也没发现他是怎么计算loss的。
@bygreencn @xuanlang 说的有道理,我相信每个真正做DL工业检测落地人都会体会到模型迭代带来的标注困难,实际情况是分类模型优于目标检测模型,目标检测模型优于语义分割模型的。就算一个月更新一次模型,语义分割的标注过程也会相当折腾人。而目前来说自动化标注工具最多只能达到百度EasyData的水平,远远达不到无人力参与的程度,这是工业落地的一大痛点。