框架
YOLO(You Only Look Once) 高效目标检测算法框架 与传统目标检测方法不同 可以同时识别出图中多个物体的类别和位置
通常我们获取某个主流实现,如Ultralytics YOLOv8 其提供了多种安装方案、命令、API等
一键安装Ultralytics YOLO工具箱
1 | pip install -U ultralytics |
上述命令下载安装包括
- YOLO算法的调用代码 包含了 YOLOv5, YOLOv8, YOLOv11 等不同版本模型的定义、训练、验证和推理的全部 Python 代码。
- 相关依赖如Pytorch NumPy OpenCV等
- CLI工具 以支持在终端直接调用yolo命令
使用Ultralytics YOLO几乎不需要编写代码
训练项目形如:
1 | my_dataset/ |
data.yaml配置:
1 | train: my_dataset/images/train |
yolo命令
1 | # 训练 |
其中yolov8n.pt是预训练模型的标志符 也可以是路径;data.yaml传入数据集 100轮训练 图片尺寸640*640
训练完成生成.pt文件 如best.pt
1 | # 验证 |
python api:
1 | from ultralytics import YOLO |
实践:钢铁缺陷检测
项目目录
1 |
EDA数据分析
在钢铁缺陷检测实践中 需识别图像中是否存在龟裂、夹杂、点蚀、划痕、斑块、氧化铁皮压入6种缺陷,在导入模型训练前,对样本标记结果进行如下分析
- 类别分布
- 标注框尺寸分布
- 缺陷面积箱线图
- 类别不均衡程度
根据数据分析结果做特定的数据增强操作
数据增强
- Pillow 做图像旋转、翻转
- 亮度 对比度调整
- 噪声(NumPy)
- Albumentations
YOLO训练中自动开启的数据增强:
- Mosaic
- MixUp
- 几何变换
- 色彩变换