1. 项目背景与核心需求在机械制造领域齿轮作为传动系统的核心部件其质量直接影响整个设备的运行效率和使用寿命。而端面作为齿轮的关键工作面之一常见的划痕、凹陷、锈蚀等缺陷往往会导致传动精度下降、噪音增大甚至设备故障。传统的人工检测方式不仅效率低下每小时仅能检测20-30个齿轮且受人员疲劳影响漏检率高达15%-20%。这个项目要解决的核心痛点在于实现齿轮端面缺陷的自动化检测Detection对缺陷类型进行准确分类Classification适应工业现场复杂的光照条件和多变的缺陷形态我们选择DINO-4Scale作为基础框架主要基于三个考量其多尺度特征提取能力特别适合处理齿轮端面这种具有明显层级结构的对象自监督预训练机制对工业场景小样本数据友好Transformer架构在边缘设备上的推理速度能满足产线节拍要求实测在Jetson Xavier NX上可达23FPS2. 技术方案设计详解2.1 整体架构设计项目采用两阶段检测分类的混合架构Raw Image → DINO-4Scale Backbone → Defect Detection → ROI Align → ResNet18 Classifier → Output关键设计决策输入分辨率保持原始图像1024×1024尺寸避免下采样导致小缺陷丢失数据增强策略针对工业场景特别添加模拟油渍污染的随机斑点噪声金属反光模拟使用OpenCV的flair增强随机机械阴影模拟设备遮挡损失函数配置loss 0.5*DETR_Loss 0.3*FocalLoss 0.2*SSIM_Loss2.2 DINO-4Scale的改造点原始DINO框架主要针对自然图像设计我们做了以下工业适配多尺度特征融合改进在原有4个尺度[8,16,32,64]下采样基础上增加跨尺度注意力模块CSAMCross-Scale Attention Moduleclass CSAM(nn.Module): def __init__(self, channels): super().__init__() self.query nn.Conv2d(channels, channels//8, 1) self.key nn.Conv2d(channels, channels//8, 1) def forward(self, feats): # feats: list of multi-scale features queries [self.query(f) for f in feats] keys [self.key(f) for f in feats] # 跨尺度注意力计算...位置编码优化将原始正弦位置编码替换为可学习的极坐标编码更适合齿轮的环形结构特征表达解码器结构调整将6层解码器缩减为4层每层增加局部窗口注意力Window Attention计算量降低37%精度仅下降0.8%3. 数据集构建与标注规范3.1 数据采集方案我们使用Basler ace acA2000-50gc工业相机搭建采集系统分辨率2048×2048光源环形红色LED波长625nm拍摄距离30cm每个齿轮采集8张不同角度的端面图像最终构建的数据集包含训练集12,458张图像8类缺陷验证集1,562张图像测试集2,000张图像3.2 标注标准示例采用COCO标注格式但增加了工业特有字段{ defect_type: pitting, severity: 2, area_ratio: 0.15, bbox: [x,y,w,h], contour_points: [[x1,y1],...] }关键标注规则划痕类缺陷标注整个连续痕迹点蚀缺陷当相邻蚀坑间距2mm时合并标注锈蚀区域标注最小外接矩形4. 模型训练实战细节4.1 训练环境配置硬件配置GPUNVIDIA RTX 3090 × 2内存128GB DDR4存储2TB NVMe SSD软件环境# 关键依赖版本 torch1.12.1cu113 mmdetection2.25.0 timm0.6.124.2 超参数设置训练分为两个阶段第一阶段预训练epochs: 50batch_size: 16lr: 1e-4 (cosine decay)optimizer: AdamWwarmup_iters: 500第二阶段微调epochs: 100batch_size: 8lr: 5e-5 (linear decay)augmentation: Heavy4.3 关键训练技巧渐进式分辨率训练前10epoch512×51210-30epoch768×76830epoch后1024×1024困难样本挖掘def hard_example_mining(losses, ratio0.2): k int(len(losses)*ratio) hard_idx torch.topk(losses, k).indices return hard_idx分类头冻融策略前30epoch冻结分类头后70epoch联合训练5. 部署优化与实测效果5.1 TensorRT加速方案导出ONNX时的关键设置torch.onnx.export( model, dummy_input, gear_dino.onnx, opset_version13, input_names[images], output_names[outputs], dynamic_axes{ images: {0: batch, 2: height, 3: width}, outputs: {0: batch} } )TensorRT优化参数FP16精度模式最大workspace size4GB优化profile设置3个典型输入尺寸(512,768,1024)5.2 实测性能指标在Jetson Xavier NX上的测试结果指标数值推理速度23.4 FPS内存占用2.1GB检测mAP0.50.892分类准确率94.7%典型缺陷检测效果对比正常齿面 → [OK] 置信度0.98 轻微划痕 → [Scratch] 置信度0.91 重度点蚀 → [Pitting] 置信度0.89 锈蚀区域 → [Corrosion] 置信度0.936. 常见问题与解决方案6.1 反光干扰处理方案当遇到强反光干扰时在预处理阶段使用基于HSV空间的反射分量抑制hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV) hsv[:,:,2] cv2.medianBlur(hsv[:,:,2], 5)在模型层面增加对抗样本训练时随机添加高光区域模拟6.2 小缺陷漏检优化对于直径3mm的小缺陷在ROI Align阶段采用更密集的采样点从7×7改为9×9在损失函数中增加小目标权重loss base_loss * (1 2*(1 - area/max_area))6.3 类别混淆问题常见于划痕(scratch)与加工纹路(machining mark)的混淆特征工程解决方案增加局部二值模式(LBP)特征作为辅助输入数据层面解决方案收集更多过渡样本进行针对性训练7. 工程落地经验7.1 产线集成要点触发同步使用PLC的I/O信号触发相机拍摄确保齿轮停在预设角度位置±2°公差结果反馈通过Modbus TCP协议将结果传回PLC不良品分类结果映射到不同分拣口异常处理设置超时机制单次检测超时500ms自动跳过开发心跳包监控进程7.2 持续改进方案建立数据闭环系统每天自动收集10%的检测结果存入待审核池质检人员复核后自动加入训练集每周进行一次增量训练fine-tune 10 epoch关键经验在产线部署时一定要给相机加装防震支架我们曾因设备振动导致图像模糊使误检率临时上升了8个百分点。
基于DINO-4Scale的齿轮端面缺陷检测技术实践
1. 项目背景与核心需求在机械制造领域齿轮作为传动系统的核心部件其质量直接影响整个设备的运行效率和使用寿命。而端面作为齿轮的关键工作面之一常见的划痕、凹陷、锈蚀等缺陷往往会导致传动精度下降、噪音增大甚至设备故障。传统的人工检测方式不仅效率低下每小时仅能检测20-30个齿轮且受人员疲劳影响漏检率高达15%-20%。这个项目要解决的核心痛点在于实现齿轮端面缺陷的自动化检测Detection对缺陷类型进行准确分类Classification适应工业现场复杂的光照条件和多变的缺陷形态我们选择DINO-4Scale作为基础框架主要基于三个考量其多尺度特征提取能力特别适合处理齿轮端面这种具有明显层级结构的对象自监督预训练机制对工业场景小样本数据友好Transformer架构在边缘设备上的推理速度能满足产线节拍要求实测在Jetson Xavier NX上可达23FPS2. 技术方案设计详解2.1 整体架构设计项目采用两阶段检测分类的混合架构Raw Image → DINO-4Scale Backbone → Defect Detection → ROI Align → ResNet18 Classifier → Output关键设计决策输入分辨率保持原始图像1024×1024尺寸避免下采样导致小缺陷丢失数据增强策略针对工业场景特别添加模拟油渍污染的随机斑点噪声金属反光模拟使用OpenCV的flair增强随机机械阴影模拟设备遮挡损失函数配置loss 0.5*DETR_Loss 0.3*FocalLoss 0.2*SSIM_Loss2.2 DINO-4Scale的改造点原始DINO框架主要针对自然图像设计我们做了以下工业适配多尺度特征融合改进在原有4个尺度[8,16,32,64]下采样基础上增加跨尺度注意力模块CSAMCross-Scale Attention Moduleclass CSAM(nn.Module): def __init__(self, channels): super().__init__() self.query nn.Conv2d(channels, channels//8, 1) self.key nn.Conv2d(channels, channels//8, 1) def forward(self, feats): # feats: list of multi-scale features queries [self.query(f) for f in feats] keys [self.key(f) for f in feats] # 跨尺度注意力计算...位置编码优化将原始正弦位置编码替换为可学习的极坐标编码更适合齿轮的环形结构特征表达解码器结构调整将6层解码器缩减为4层每层增加局部窗口注意力Window Attention计算量降低37%精度仅下降0.8%3. 数据集构建与标注规范3.1 数据采集方案我们使用Basler ace acA2000-50gc工业相机搭建采集系统分辨率2048×2048光源环形红色LED波长625nm拍摄距离30cm每个齿轮采集8张不同角度的端面图像最终构建的数据集包含训练集12,458张图像8类缺陷验证集1,562张图像测试集2,000张图像3.2 标注标准示例采用COCO标注格式但增加了工业特有字段{ defect_type: pitting, severity: 2, area_ratio: 0.15, bbox: [x,y,w,h], contour_points: [[x1,y1],...] }关键标注规则划痕类缺陷标注整个连续痕迹点蚀缺陷当相邻蚀坑间距2mm时合并标注锈蚀区域标注最小外接矩形4. 模型训练实战细节4.1 训练环境配置硬件配置GPUNVIDIA RTX 3090 × 2内存128GB DDR4存储2TB NVMe SSD软件环境# 关键依赖版本 torch1.12.1cu113 mmdetection2.25.0 timm0.6.124.2 超参数设置训练分为两个阶段第一阶段预训练epochs: 50batch_size: 16lr: 1e-4 (cosine decay)optimizer: AdamWwarmup_iters: 500第二阶段微调epochs: 100batch_size: 8lr: 5e-5 (linear decay)augmentation: Heavy4.3 关键训练技巧渐进式分辨率训练前10epoch512×51210-30epoch768×76830epoch后1024×1024困难样本挖掘def hard_example_mining(losses, ratio0.2): k int(len(losses)*ratio) hard_idx torch.topk(losses, k).indices return hard_idx分类头冻融策略前30epoch冻结分类头后70epoch联合训练5. 部署优化与实测效果5.1 TensorRT加速方案导出ONNX时的关键设置torch.onnx.export( model, dummy_input, gear_dino.onnx, opset_version13, input_names[images], output_names[outputs], dynamic_axes{ images: {0: batch, 2: height, 3: width}, outputs: {0: batch} } )TensorRT优化参数FP16精度模式最大workspace size4GB优化profile设置3个典型输入尺寸(512,768,1024)5.2 实测性能指标在Jetson Xavier NX上的测试结果指标数值推理速度23.4 FPS内存占用2.1GB检测mAP0.50.892分类准确率94.7%典型缺陷检测效果对比正常齿面 → [OK] 置信度0.98 轻微划痕 → [Scratch] 置信度0.91 重度点蚀 → [Pitting] 置信度0.89 锈蚀区域 → [Corrosion] 置信度0.936. 常见问题与解决方案6.1 反光干扰处理方案当遇到强反光干扰时在预处理阶段使用基于HSV空间的反射分量抑制hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV) hsv[:,:,2] cv2.medianBlur(hsv[:,:,2], 5)在模型层面增加对抗样本训练时随机添加高光区域模拟6.2 小缺陷漏检优化对于直径3mm的小缺陷在ROI Align阶段采用更密集的采样点从7×7改为9×9在损失函数中增加小目标权重loss base_loss * (1 2*(1 - area/max_area))6.3 类别混淆问题常见于划痕(scratch)与加工纹路(machining mark)的混淆特征工程解决方案增加局部二值模式(LBP)特征作为辅助输入数据层面解决方案收集更多过渡样本进行针对性训练7. 工程落地经验7.1 产线集成要点触发同步使用PLC的I/O信号触发相机拍摄确保齿轮停在预设角度位置±2°公差结果反馈通过Modbus TCP协议将结果传回PLC不良品分类结果映射到不同分拣口异常处理设置超时机制单次检测超时500ms自动跳过开发心跳包监控进程7.2 持续改进方案建立数据闭环系统每天自动收集10%的检测结果存入待审核池质检人员复核后自动加入训练集每周进行一次增量训练fine-tune 10 epoch关键经验在产线部署时一定要给相机加装防震支架我们曾因设备振动导致图像模糊使误检率临时上升了8个百分点。