工业缺陷检测中数据标注需要注意的几个事项

这段时间帮朋友做了一个电容检测的项目,他们是第一次接触深度学习,自然也是第一次自己打标签。很多人总觉得会搞网络才是大牛,实际上,在工业场景中,网络结构决定了下限,数据决定着上限,要想模型有好的表现,数据是至关重要的。下面就这个项目来说一说,工业缺陷检测在标注数据时需要注意的几个事项:

1、离得比较近的缺陷就合并在一个框里

工业缺陷检测中数据标注需要注意的几个事项_第1张图片
工业缺陷检测中数据标注需要注意的几个事项_第2张图片

以上两个图里的缺陷都是可以合并的,一是为了保持缺陷的完整性,同一个缺陷被标注成好多个,会给神经网络造成误解,同时也避免出现多个小目标。

2、尽量不要有太细长的目标

神经网络的卷积基本上都是3*3的,而且先验框anchor在设计宽高比时一般也是在1左右,回归非常细长的目标,需要比较大的感受野和宽高比,不一定能做得很好。如图左边那块目标,可以合并一下,稍微标大一点,把长宽比例搞得居中一点。
工业缺陷检测中数据标注需要注意的几个事项_第3张图片

2、不要打太小的目标,比如低于10x10像素的

模型一般都对小目标不敏感,除非采用比较好的trick,就拿YOLOv4来说,到第三次下采样的特征图才拿去后面做检测,也就是在原图上最小都有8个像素,才能在特征图上体现为1个像素。有人会杠了,那我的目标就是小目标啊,小哥,我说了,另外还有很多trick的,不在本文讨论范围,打标签这个环节你要么打大点,要么不要打,或者把局部区域放大成大图,再打标签,不然送到模型里头,也是没用的。这跟严谨不严谨没有任何关系。
工业缺陷检测中数据标注需要注意的几个事项_第4张图片
YOLOv4网络结构图

3、不要标注特别不明显的特征

这一条相信都能理解,特征连人都认不出来,哪个网络都不好识别吧。
像这种框,恐怕谁都不好认吧。
工业缺陷检测中数据标注需要注意的几个事项_第5张图片

4、框的位置尽量准确一点,把缺陷部分刚好框进去

像右下角那个框,完全可以打大点吧。
工业缺陷检测中数据标注需要注意的几个事项_第6张图片

5、需要检测的缺陷在训练集中至少要出现一次相似的

另外,需要多说一句,跟标注无关的。就是虽然都是缺陷,但实际上也分很多种的,如果训练集里都没有出现过相似的,就基本上别指望测试时能够检测出来了。比如下图中,虽然只划分了一类缺陷,但是从特征的角度来说,实际上已经是好几类了,比如划痕、凸起、裂开。还是回到开头那句话:网络结构决定了下限,数据决定上限。目前的技术,不靠大量的数据喂,是训练不出很好的模型的。
工业缺陷检测中数据标注需要注意的几个事项_第7张图片

经过一番调整,涨点还是蛮明显的,应该还有别的地方需要注意,水平有限,讲得不到位的欢迎留言批评指正哈,技术要靠交流。

你可能感兴趣的:(目标检测,深度学习)