
DL00618:基于YOLOv5的钢材表面缺陷检测与NEU数据集处理
# DL00618 - 基于YOLOv5的钢材表面缺陷检测含数据集处理
最近在研究钢材表面缺陷检测,用到了东北大学(NEU)表面缺陷数据集,感觉很有意思,来和大家分
享一下。
这个数据集收集了热轧带钢6种典型的表面缺陷,分别是轧内垢(RS)、斑块(Pa)、裂纹(Cr)、点蚀面(
PS)、夹杂物(In)和划痕(Sc)。一共有1800张灰度图像,每种缺陷各300个样本。每张图像原始分辨率是200
×200像素。
从这些样本图像中能明显看出一些有趣的情况。比如说类内缺陷在外观上差异很大,就像划痕,有
水平的、垂直的还有倾斜的。这给缺陷检测带来了不小的挑战,因为模型得能准确识别出不同形态的同一
种缺陷。
```python
# 这里可以简单示意一下读取图像的代码
import cv2
img = cv2.imread('defect_image.jpg', 0) # 以灰度模式读取图像
```
代码分析:这里使用`cv2.imread`函数读取图像,第二个参数`0`表示以灰度模式读取。这样读取出
来的图像就是我们数据集中的那种灰度图,方便后续处理。
再看类间缺陷,它们又有相似的特征,像滚积垢、裂纹和坑状表面。这就需要模型能够精准区分不同
类别的缺陷特征。
而且,由于光照和材料变化的影响,类内缺陷图像的灰度也会发生变化。这也是一个头疼的问题,会
干扰模型对缺陷的准确判断。
总的来说,NEU表面缺陷数据库包含两个大难题,一是类内缺陷存在较大外观差异,二是类间缺陷具
有相似方面,同时缺陷图像还受到光照和材料变化的影响。不过通过不断探索和优化基于YOLOv5的检测方
法,相信能逐步攻克这些难题,实现更精准的钢材表面缺陷检测!后续我也会继续和大家分享在这个过程
中的更多发现和经验。
钢材表面缺陷检测是工业质检的硬骨头,东北大学的NEU数据集直接把难度拉满——六个缺陷类别有
的像双胞胎(比如轧内垢和裂纹),有的自己跟自己长得都不像(比如形态各异的划痕),再叠加上车间里真
实的光照干扰和材料反光,这活可不好干。不过实战派工程师最擅长把学术级难题拆成可落地的代码步骤
,咱们今天就用YOLOv5来盘它!
先解决数据集这个"刺头"。原图是200x200的灰度图,但YOLOv5默认吃的是RGB三通道,这里有个小
技巧:直接复制灰度通道到三个维度。别小看这个操作,我们在消融实验中发现,相比强行转伪彩色,这种
方法在保持灰度特征的同时让模型收敛更快。
```python
# 灰度图转三通道的两种姿势