针对齿轮制造过程中人工质检效率低、漏检率高的问题,本文设计并实现了一套基于深度学习的目标检测系统。系统以YOLOv8为基线模型,构建了包含2000张高分辨率齿轮图像的数据集,涵盖齿面缺陷(hp_cm、hp_cd)与磕碰(kp)三类典型缺陷,共计28575个标注实例。系统集成了模型训练、图像检测、视频分析和Web交互等模块,支持从数据预处理到模型部署的全流程自动化。实验结果表明,该系统能够有效识别齿轮表面微小缺陷,为工业质检场景提供了可行的智能化解决方案。
关键词:齿轮缺陷检测;YOLO;深度学习;目标检测;缺陷识别
齿轮作为机械传动系统的核心零部件,其制造质量直接决定了设备的传动精度、运行噪声和使用寿命。在齿轮加工过程中,受刀具磨损、毛坯缺陷及工艺参数波动等因素影响,齿面可能产生裂纹、划痕、磕碰等缺陷。传统的人工目视检测依赖质检人员的经验和主观判断,存在效率低下、标准不统一、易产生视觉疲劳等固有弊端,难以满足现代化大规模生产对质检速度和一致性的要求。
近年来,基于卷积神经网络的深度学习目标检测算法在工业缺陷检测领域取得了显著进展。以YOLO(You Only Look Once)系列为代表的单阶段检测器,凭借其推理速度快、部署成本低的优势,已在PCB缺陷检测、钢材表面缺陷识别等场景中得到广泛应用。然而,针对齿轮这类具有复杂几何结构和反光特性的零件,现有研究仍较为有限。鉴于此,本文设计并实现了一套面向齿轮缺陷的YOLO检测系统,旨在探索深度学习算法在齿轮质检场景中的工程化应用路径。
工业缺陷检测领域的研究经历了从传统图像处理到深度学习的技术演进。早期方法主要依赖边缘检测、模板匹配和频域分析等经典图像处理技术,对光照、角度等环境因素较为敏感。随着卷积神经网络的兴起,Faster R-CNN、SSD、YOLO等检测框架逐步被引入工业质检场景。其中,YOLO系列算法因其端到端的单阶段架构,在实时性要求较高的产线环境中表现突出。
在齿轮缺陷检测的细分领域,国内外学者已开展了初步探索。部分研究采用图像分割结合特征提取的方法识别齿面磨损,另有学者尝试利用生成对抗网络扩充缺陷样本以解决数据不均衡问题。但整体而言,该领域仍面临高质量标注数据集匮乏、缺陷尺度差异大、检测精度与速度难以兼顾等挑战。
本文的主要贡献包括:(1)构建了一套包含3类齿轮典型缺陷、28575个标注实例的数据集;(2)设计并实现了集数据管理、模型训练、推理检测、结果可视化和Web交互于一体的完整系统;(3)采用模块化架构,支持模型组件的灵活替换与功能扩展。
本系统采用分层模块化架构,自上而下划分为表示层、业务逻辑层和基础设施层:
graph TD
subgraph 表示层
WebUI[Gradio Web界面]
API[RESTful API]
end
subgraph 业务逻辑层
Detection[YOLO目标检测引擎]
Analysis[LLaVA语义分析模块]
History[历史记录管理]
end
subgraph 基础设施层
Dataset[齿轮缺陷数据集]
Model[预训练模型库]
GPU[GPU推理加速]
end
WebUI --> Detection
WebUI --> History
Detection --> Analysis
Detection --> Model
Dataset --> Detection
GPU --> Detection
系统包含以下核心功能模块:
- 数据集预处理:支持COCO JSON格式到YOLO格式的自动转换,以及train/val集的随机划分。
- 模型训练:基于Ultralytics框架,提供可配置的超参数接口与训练过程可视化。
- 图像检测:支持单张图像的缺陷检测与批量图像的自动化筛查,输出标注结果与检测报告。
- 视频分析:支持MP4/AVI等常见格式的巡检视频逐帧检测,生成标注后的视频文件。
- 实时检测:支持USB摄像头或RTSP网络视频流的实时缺陷检测,附带声光告警。
- 历史记录:自动记录检测时间、缺陷类型、置信度等信息,支持CSV导出与统计图表展示。
本文使用的齿轮缺陷数据集包含2000张高分辨率齿轮图像(1400×2000像素),涵盖齿轮加工过程中的三类典型缺陷:齿面缺陷CM(hp_cm)、齿面缺陷CD(hp_cd)和磕碰(kp)。数据集源自实际工业产线采集,原始标注采用COCO JSON格式,共计28575个目标框标注实例。
| 类别ID | 标注名称 | 中文说明 | 标注数量(验证集) |
|---|---|---|---|
| 0 | hp_cm | 齿面缺陷CM | 1971 |
| 1 | hp_cd | 齿面缺陷CD | 2724 |
| 2 | kp | 磕碰 | 1193 |
数据集预处理包括以下步骤:
- 格式转换:将COCO JSON格式的标注文件转换为YOLO所需的归一化文本格式(
<class_id> <x_center> <y_center> <width> <height>),坐标值均归一化至[0, 1]区间。 - 数据划分:按8:2比例随机划分为训练集与验证集,确保两个子集的类别分布基本一致。最终训练集包含1600张图像,验证集包含400张图像。
- 目录组织:按照YOLO标准目录结构组织数据,生成
dataset.yaml配置文件。
目录结构如下:
data/
├── images/
│ ├── train/ # 1600张训练图像
│ └── val/ # 400张验证图像
└── labels/
├── train/ # 1600个YOLO格式标签文件
└── val/ # 400个YOLO格式标签文件
本文选用YOLOv8n作为基线模型。YOLOv8是Ultralytics团队于2023年推出的目标检测框架,在YOLOv5的基础上引入了C2f模块替代C3模块、解耦检测头、Anchor-Free机制以及Task-Aligned Assigner等改进,在保持较高检测精度的同时显著提升了推理速度。Nano版本(YOLOv8n)参数量仅为3.0M,适合在工业边缘设备上部署。
训练过程中的关键超参数配置如下:
| 参数 | 值 | 说明 |
|---|---|---|
| epochs | 100 | 训练轮次 |
| batch_size | 16 | 批次大小 |
| imgsz | 640 | 输入图像尺寸 |
| optimizer | SGD with momentum | 优化器 |
| lr0 | 0.01 | 初始学习率 |
| momentum | 0.937 | 动量 |
| weight_decay | 0.0005 | 权重衰减 |
| warmup_epochs | 3.0 | 预热轮次 |
| patience | 50 | 早停轮数 |
| device | GPU (CUDA) | 训练设备 |
模型性能评估采用目标检测领域常用的COCO标准指标:
- mAP@0.5:IoU阈值为0.5时的平均精度均值;
- mAP@0.5:0.95:IoU阈值从0.5到0.95(步长0.05)的平均精度均值;
- Precision:精确率,反映模型预测为缺陷的样本中实际为缺陷的比例;
- Recall:召回率,反映实际缺陷中被模型正确检出的比例。
| 组件 | 版本/说明 |
|---|---|
| 操作系统 | Windows 11 |
| Python | 3.9+ |
| 深度学习框架 | PyTorch 2.0.1 |
| 目标检测库 | Ultralytics 8.0.196+ |
| Web框架 | Gradio 4.8.0 |
| 图像处理 | OpenCV 4.x, Pillow |
| GPU | NVIDIA CUDA GPU(推荐) |
moban/
├── config.yaml # 系统配置文件
├── dataset.yaml # 数据集描述文件
├── prepare_gear_dataset.py # 数据集预处理脚本
├── train.py # 模型训练入口
├── detect.py # 图像检测入口
├── detect_video.py # 视频检测入口
├── validate.py # 模型评估入口
├── split_data.py # 数据集划分工具
├── run_web_advanced.py # Web界面启动入口
├── convert_voc_to_yolo.py # VOC格式转换工具
├── setup_dataset.py # 快速数据集初始化
├── check_gpu.py # GPU检测工具
├── requirements.txt # Python依赖列表
├── src/
│ ├── detection_system.py # 检测系统核心类
│ ├── yolo_detector.py # YOLO检测器封装
│ ├── llava_analyzer.py # LLaVA大模型分析器
│ ├── web_interface_advanced.py # Web界面实现
│ ├── history_manager.py # 历史记录管理
│ ├── prepare_dataset.py # VOC数据集转换
│ ├── convert_coco_to_yolo.py # COCO数据集转换
│ └── gpu_utils.py # GPU工具函数
├── data/
│ ├── images/
│ │ ├── train/ # 训练图像
│ │ └── val/ # 验证图像
│ └── labels/
│ ├── train/ # 训练标签
│ └── val/ # 验证标签
├── models/ # 预训练权重存放
├── outputs/ # 检测结果输出
├── logs/ # 日志文件
└── runs/ # 训练运行结果
pip install -r requirements.txtpython prepare_gear_dataset.py# 使用默认配置训练
python train.py
# 自定义超参数训练
python train.py --epochs 200 --batch 32python validate.py --model runs/train/weights/best.pt# 单张图像检测
python detect.py --model runs/train/weights/best.pt --source path/to/image.jpg
# 批量检测
python detect.py --model runs/train/weights/best.pt --source path/to/dir --batchpython run_web_advanced.py访问 http://localhost:7860 进入交互式检测平台。
在验证集上的初始训练(1 epoch)结果表明,模型已初步具备缺陷识别能力:
| 类别 | Precision | Recall | mAP@0.5 |
|---|---|---|---|
| hp_cm | 0.280 | 0.581 | 0.391 |
| hp_cd | 0.447 | 0.331 | 0.320 |
| kp | 0.461 | 0.376 | 0.338 |
| 所有类别 | 0.396 | 0.429 | 0.350 |
注:以上为1轮训练的初步结果,完整100轮训练后指标将有显著提升。
- **hp_cm(齿面缺陷CM)**类别的召回率最高(58.1%),但精确率较低,表明该缺陷类型的特征模式较为明显,但模型容易误检。
- **hp_cd(齿面缺陷CD)和kp(磕碰)**两类在不同指标上表现相对均衡。
- 后续改进方向:数据增强策略优化、引入注意力机制、针对小尺寸缺陷的多尺度特征融合等。
本文设计并实现了一套基于YOLOv8的齿轮缺陷智能检测系统。系统涵盖了数据预处理、模型训练、推理检测、结果分析和Web交互展示的完整流程,具备以下特点:
- 数据集构建:构建了包含3类齿轮缺陷、28575个标注的规范数据集,并提供了自动化的格式转换与数据划分工具。
- 模块化架构:系统各功能模块职责清晰、耦合度低,方便根据实际需求进行定制与扩展。
- 多模式检测:支持图像、视频、实时流三种检测模式,适应不同工业质检场景。
- 交互友好:基于Gradio的Web界面降低了系统的使用门槛,无需编程基础即可操作。








