基于yolov8的工业零件缺陷检测系统
这是一套工业视觉缺陷检测专用代码核心逻辑先检测定位零件 → 再对每个零件做缺陷分割 → 自动判断是否合格 → 可视化输出结果专门解决工业质检场景整体功能一句话总结输入一张工业零件图片 → 自动框出所有零件 → 识别每个零件是什么瓶子 / 螺丝 / 线缆等→ 检测是否有缺陷破损 / 划痕 / 变形等→ 输出标注好的图片合格绿框缺陷黑框 红色轮廓。效果对比图关注私我领取源码和model模型一、核心模块总览配置区模型路径、类别名称、阈值参数工具函数IoU 计算 NMS 去重框解决重复检测主流程加载检测 分割双模型全局检测找到所有零件位置局部分割对每个零件单独做缺陷检测后处理去重框 缺陷优先逻辑画图保存结果二、逐段代码解析1. 导入库python运行import cv2 import numpy as np from ultralytics import YOLOcv2图像处理、画框、画轮廓、保存图片numpy数组运算处理掩码 / 坐标YOLO目标检测 分割模型推理2. 配置参数python运行# 模型/图片路径 det_model_path 检测模型路径 seg_model_path 分割模型路径 img_path 输入图片 save_path 输出图片 # 检测类别5类零件 det_class_names [bottle, cable, metal_nut, screw, transistor] # 分割缺陷类别25类缺陷1类合格 seg_class_names [...] GOOD_CLASS 0 # 0合格 IOU_THRESHOLD 0.5 # 重叠超过50%算重复框✅作用检测模型找零件在哪里、是什么零件分割模型看零件有没有缺陷、缺陷在哪GOOD_CLASS 0你的分割模型里0 代表合格无缺陷3. 工具函数IoU 交并比python运行def box_iou(box1, box2): # 计算两个框重叠比例作用判断两个框是否重叠重叠比例就是 IoU用于去重。4. 工具函数NMS 非极大值抑制python运行def nms(boxes, iou_thresholdIOU_THRESHOLD): # 保留置信度最高的框删除重叠重复框工业场景必备解决模型重复框选同一个零件的问题。5. 加载模型python运行det_model YOLO(det_model_path) # 检测模型找零件 seg_model YOLO(seg_model_path) # 分割模型找缺陷 img cv2.imread(img_path) # 读取图片6. 第一步全局检测找到所有零件python运行det_results det_model.predict(img, imgsz640, conf0.25, devicecuda:0)输出所有零件的坐标框 类别瓶子 / 螺丝等 置信度7. 第二步局部分割python运行# 截取每个零件区域 → 送入分割模型查缺陷 crop img[y1:y2, x1:x2] seg_res seg_model.predict(crop, imgsz640, conf0.1, devicecuda:0)缺陷判断逻辑python运行if cid ! GOOD_CLASS: # 不是0有缺陷 has_defect True defect_name 缺陷名称分割输出0→合格good输出 1~25 →对应缺陷破损 / 划痕 / 错位等同时会拿到缺陷掩码mask用于画红色缺陷轮廓。8. 第三步NMS 去重消除重复框python运行all_boxes nms(all_boxes)一张零件只保留一个最准确的框。9. 第四步缺陷优先逻辑python运行defect_boxes 有缺陷的框 good_boxes 合格框 # 规则只要和缺陷框重叠合格框直接删掉 final_boxes 缺陷框 不重叠的合格框✅工业质检核心规则宁可误报缺陷不可漏报缺陷只要一个区域检测出缺陷就不承认它是合格的保证质检安全性。10. 第五步画图可视化python运行# 合格 → 绿色框 cv2.rectangle(..., (0,255,0), 2) # 缺陷 → 黑色框 红色缺陷轮廓 cv2.rectangle(..., (0,0,0), 2) cv2.drawContours(..., 红色轮廓)合格绿框 零件名: good缺陷黑框 缺陷名 红色轮廓标出缺陷位置11. 保存结果python运行cv2.imwrite(save_path, img_show)输出一张完整标注好的质检图片。三、代码运行完整流程读取图片用检测模型找到所有零件位置 类型逐个截取零件图片用分割模型检查是否有缺陷 缺陷类型去掉重复框缺陷优先重叠区域只保留缺陷画图合格绿框缺陷黑框 红轮廓保存质检结果四、代码亮点先检测后分割精度极高专门针对小目标缺陷NMS 去重解决工业检测常见的重复框问题缺陷优先逻辑保证不漏检工业质检生命线局部裁剪推理比整张图分割更快更准缺陷轮廓可视化直观看到缺陷位置GPU 加速速度快适合产线使用