资讯动态

PCB目标检测3——验证集推理

发布时间:2026/10/13 9:12:37 来源:尧图企业网站定制
接上文《PCB目标检测2——数据继续分析》3.2 验证集推理1代码import ultralytics.data as yolo_data from pcb_yolo_dataset import PCB_YOLODataset from ultralytics import YOLO # 1. 应用验证专用补丁 _original_build yolo_data.build_yolo_dataset def _patched_build_val(opt, img_path, batch_size, augmentFalse, hypNone, rectFalse, cacheFalse, stride32, pad0.5, prefix): return PCB_YOLODataset( img_pathimg_path, img_sizeopt.imgsz, # ← 从配置对象中安全获取尺寸 batch_sizebatch_size, augmentaugment, # val模式下YOLO会自动传False hyphyp, rectrect, # val模式下YOLO会自动传True cachecache, stridestride, padpad, prefixprefix, dataopt.data if hasattr(opt, data) else {}, ) yolo_data.build_yolo_dataset _patched_build_val print(验证补丁已应用) # 2. 运行验证 model YOLO(rD:\我的\5.机器视觉\PCB缺陷检测系统\runs\detect\train-8\weights\best.pt) results model.val( datarD:\pcb\PCB_DATASET\yolo11_data\pcb.yaml, imgsz960, # 必须与训练时的960严格一致 batch4, # 与训练batch一致避免padding策略差异 cacheram, # 与训练一致 workers0, # 与训练一致 devicecpu, # 与训练一致 conf0.001, # 默认阈值除非训练时改过 iou0.7, # 默认阈值除非训练时改过 plotsTrue, verboseTrue, ) print(f\nmAP50:95 {results.box.map:.4f})2结果评估总的来看mAP50-95精度较低与mAP50差距达0.395说明当预测框和真实框的重叠度IoU≥0.5时就算检测对了的精度较高能确定大概位置但是当IoU 阈值从0.5到0.95每隔0.05取一个值共10个阈值分别计算mAP后取平均值的结果较低模型不能精准地框住缺陷之前在训练集上这个指标就不太好怀疑是标注太松。epoch不用增加了3优化方向换yolov8s、重新标注4. 进一步优化4.1 换yolov8s1有提升但不多。训练集验证集4.2 重新标注1下载X-AnyLabeling软件可以先通过best.pt进行自动标注然后再人为去修改下载网址Releases · CVHub520/X-AnyLabeling · GitHub2软件需要导入best.onnx格式的数据和yaml文件这个yaml文件需要根据官方案例去修改X-AnyLabeling/docs/zh_cn/model_zoo.md at main · CVHub520/X-AnyLabeling · GitHub我选的是yolov8s对应的yaml文件。from ultralytics import YOLO model YOLO(rC:\D\我的\5.机器视觉\PCB缺陷检测系统\runs\detect\train-9\weights\best.pt) model.export(formatonnx)3软件左侧垂直工具栏里点自动标注的按钮中间左上角界面 no model的按钮点击后选自定义模型导入上面做的那个yaml文件。然后左上角打开文件夹选中训练集与验证集在一起的文件夹右下角就可以自由选图片显示了。4出来图片后点击上面蓝色的运行按钮就会自动标注了然后自己放大缩小去调整边框就行挺好用的就是图太多了...开干~~~5导出的时候要保证界面右侧的修改之后的标注框对象都勾选上了工具箱里有标签管理器选上visible就能自动默认是勾选的然后自己生成一个类别文件比如classes.txt这样才能知道每个类别对应的编号第一行就是0依次类推的然后点击菜单栏的导出选第一个YOLO HBB方形框选择calsses.txt文件新建一个文件夹保存好标注框信息就是之前json转换好的那种txt文件。再去用之前的代码将新的标注画出来看了看效果是好了紧致了。标注的时候开着原始标注框的图片对应看因为自动标注可能会少标或者错标。6重新标注思路仅个人感觉missing_hole没有紧贴金属外框留了一点阴影的区域mouse_bite尽量贴合留一点点点的缓冲区open_circuit和mouse_bite一样的也是尽量贴合了留了一点缓冲区short蓝色框区域内感觉要把拐角显示出来多留一些缓冲区spur和short一样的思路spurious_copper尽量贴合留一点点缓冲区。4.3 重新训练与推理1根据新的数据标注重训的各指标结果2根据新的数据标注重推理的各指标结果3大模型给的解释确实重新标注的框更贴合了精细定位能力应该提升了至于之前的是不是虚高不是很确定。5. 可下载新标注http://通过网盘分享的文件labels.rar 链接: https://pan.baidu.com/s/1MPQgsxTe44ZTNcReKSu0Bw 提取码: e3a66. 感想1数据标注感觉就是ai时代农民工太累了这个数据集的检测先告一段落前几天在阿里云天池上又找到了新的pcb数据集后面可以再把流程走一遍看看有没有其他问题然后再工程化一下。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑