使用官方预训练模型YOLOv8 进行天池铝材表面缺陷数据集的训练及应用 铝材缺陷检测数据集的训练及应用 构建深度学习铝材缺陷检测系统
文章目录
- 使用官方预训练模型YOLOv8 进行天池铝材表面缺陷数据集的训练及应用 铝材缺陷检测数据集的训练及应用 构建深度学习铝材缺陷检测系统
- 不导电(budaodian)、擦花(cahua)、角位漏底(jiaoweiloudi)、桔皮(jupi)、漏底(loudi)、喷流(penliu)、漆泡(qipao)、起坑(qikeng)、杂色(zase)、脏点(zangdian),图像分辨率为 2560×1920。不导电,390 擦花,128 角位漏底,346 桔皮,173 漏底,538 喷流,86 漆泡,82 起坑,407 杂色,365 脏点,261
- 多瑕疵,229 无瑕疵,1351
- 🧰 一、环境搭建(CUDA驱动 + Anaconda + Python虚拟环境)
- 1. 安装 CUDA 驱动
- 2. 安装 Anaconda
- 3. 创建 Python 虚拟环境
- 4. 安装必要依赖
- 📁 二、数据集格式与目录结构
- 编写 `data.yaml` 文件
- 🏋️♂️ 三、YOLOv8 训练流程(调用官方预训练模型)
- 1. 下载官方预训练模型(YOLOv8s)
- 2. 开始训练(命令行方式)
- 📌 四、Python API 方式训练(可选)
- 🔍 五、推理与结果可视化
- 1. 单张图像推理(命令行)
- 2. 视频或摄像头推理
- 3. 可视化代码(Python 示例)
- 📊 六、性能评估(验证集上测试 mAP)
- 1. 命令行评估
- 2. Python API 评估示例
天池铝材表面缺陷数据集
数据集描述:
不导电(budaodian)、擦花(cahua)、角位漏底(jiaoweiloudi)、桔皮(jupi)、漏底(loudi)、喷流(penliu)、漆泡(qipao)、起坑(qikeng)、杂色(zase)、脏点(zangdian),图像分辨率为 2560×1920。不导电,390
擦花,128
角位漏底,346
桔皮,173
漏底,538
喷流,86
漆泡,82
起坑,407
杂色,365
脏点,261
多瑕疵,229
无瑕疵,1351
合计,4356
1
天池铝材表面缺陷数据集是用 YOLOv8 进行目标检测任务的数据集。以下是完整的环境配置 → 数据准备 → 模型训练 → 推理部署指南,包含详细的训练代码 + 推理代码 + 评估代码,帮助你快速构建铝材表面缺陷检测系统。仅供参考学习使用。
🧰 一、环境搭建(CUDA驱动 + Anaconda + Python虚拟环境)
1. 安装 CUDA 驱动
确保你的 NVIDIA 显卡驱动已更新,并安装合适的CUDA Toolkit(如 CUDA 11.8 或 12.1),推荐使用 NVIDIA Driver Download 下载并安装。
2. 安装 Anaconda
从官网下载并安装 Anaconda
3. 创建 Python 虚拟环境
conda create-naluminum_defectpython=3.9conda activate aluminum_defect4. 安装必要依赖
pipinstalltorch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 pipinstallultralytics opencv-python matplotlib numpy✅
ultralytics是 YOLOv8 的官方库,支持检测、分割、姿态估计等多种任务。
📁 二、数据集格式与目录结构
你的数据集已经划分好训练集、验证集、测试集(比例 8:1:1),格式为 YOLOv5/YOLOv8 标准格式:
aluminum_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── data.yaml编写data.yaml文件
train:./images/trainval:./images/valtest:./images/testnc:10# 共10类缺陷names:-budaodian# 不导电-cahua# 擦花-jiaoweiloudi# 角位漏底-jupi# 桔皮-loudi# 漏底-penliu# 喷流-qipao# 漆泡-qikeng# 起坑-zase# 杂色-zangdian# 脏点🏋️♂️ 三、YOLOv8 训练流程(调用官方预训练模型)
1. 下载官方预训练模型(YOLOv8s)
# 下载YOLOv8s预训练权重wgethttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s.pt2. 开始训练(命令行方式)
yolo traindata=data.yamlmodel=yolov8s.ptepochs=100imgsz=640batch=8device=0参数说明:
data: 数据配置文件路径model: 使用的预训练模型epochs: 训练轮数(建议100-200)imgsz: 输入图像大小(建议640或1024)batch: 批次大小(根据显存调整)device: GPU编号(例如0)或 cpu
训练完成后,模型会保存在runs/detect/train/weights/best.pt
📌 四、Python API 方式训练(可选)
fromultralyticsimportYOLO# 加载预训练模型model=YOLO('yolov8s.pt')# 开始训练results=model.train(data='data.yaml',epochs=100,imgsz=640,batch=8,device=0,name='aluminum_train')🔍 五、推理与结果可视化
1. 单张图像推理(命令行)
yolo predictmodel=runs/detect/train/weights/best.ptsource=path/to/test_image.jpgsave=True2. 视频或摄像头推理
# 视频yolo predictmodel=runs/detect/train/weights/best.ptsource=path/to/video.mp4save=True# 摄像头yolo predictmodel=runs/detect/train/weights/best.ptsource=03. 可视化代码(Python 示例)
fromultralyticsimportYOLOimportcv2 model=YOLO('runs/detect/train/weights/best.pt')image_path='path_to_test_image.jpg'results=model(image_path)forrinresults:im_array=r.plot()# 绘制带标签的图像im=cv2.cvtColor(im_array,cv2.COLOR_RGB2BGR)cv2.imshow('Aluminum Defect Detection',im)cv2.waitKey(0)cv2.destroyAllWindows()📊 六、性能评估(验证集上测试 mAP)
1. 命令行评估
yolo valmodel=runs/detect/train/weights/best.ptdata=data.yaml输出指标包括:
- mAP50/mAP50-95:目标检测精度
- Precision / Recall:精确率与召回率
2. Python API 评估示例
fromultralyticsimportYOLO# 加载训练好的模型model=YOLO('runs/detect/train/weights/best.pt')# 在验证集上评估模型性能metrics=model.val(data='data.yaml')# 输出评估结果print("mAP50:",metrics.box.map50)print("mAP50-95:",metrics.box.map)print("Precision:",metrics.box.precision)print("Recall:",metrics.box.recall)以上文字及代码仅供参考学习使用。