融合YOLO与DeepSeek大模型的钢铁表面缺陷智能检测系统|工业视觉质检全栈项目
2026/6/26 15:04:06 网站建设 项目流程

融合YOLO与DeepSeek大模型的钢铁表面缺陷智能检测系统|工业视觉质检全栈项目

当前钢铁制造产线表面质检普遍依赖人工肉眼巡检,存在三大核心行业痛点:1. 人工长期目视疲劳,微小裂纹、细微划痕漏检率常年高于22%,批量工件质检一致性极差;2. 传统机器视觉仅输出缺陷框坐标,无法自动给出缺陷成因、工艺整改建议,仍需资深工程师人工研判;3. 现有检测工具仅支持单张图片离线分析,不兼容工业摄像头实时流、视频批量文件夹自动化处理,难以对接产线流水线。
本项目打通目标检测深度学习+大模型工业诊断全链路,基于标准NEU-DET钢材缺陷数据集训练YOLO检测模型,配套前后端完整Web管理平台,实现6类钢材表面缺陷实时识别、批量自动化处理、大模型智能质检分析、缺陷数据可视化统计,一站式解决钢铁行业表面质量智能化升级需求,适配钢厂质检车间、材料实验室、智能制造产线多场景落地。

一、项目核心概述

本项目命名NEU-DET钢铁裂纹智能检测系统,是一套端到端工业视觉缺陷检测全栈解决方案。底层采用YOLO深度学习目标检测框架完成钢材表面6大类缺陷定位识别,上层接入DeepSeek大语言模型对检测结果做专业工业诊断分析;后端采用Python Flask算法推理服务+Java SpringBoot业务管理双服务架构,前端基于Vue3+Element-Plus搭建可视化管理平台,支持图片/视频/工业摄像头实时多路检测、批量文件夹自动化推理、多角色权限管控、缺陷数据图表统计、界面自定义个性化配置。
整套项目交付包含完整标注数据集、预训练模型权重、全注释源码、一键部署文档,可直接二次开发适配铝、铜、板材等其他金属表面检测场景。

1.1 可识别6类钢材表面缺陷清单

缺陷英文名称中文缺陷释义工业场景危害
Crazing表面微裂纹轧制后应力开裂,成品报废
Inclusion内部夹杂物材质杂质,降低钢材力学性能
Patches表面斑块氧化、锈蚀形成局部色差缺陷
Pitted Surface麻面凹点酸洗/轧制产生密集点状凹陷
Rolled-in Scale轧入氧化皮高温轧制氧化皮压入板材表层
Scratches表面划痕输送、辊道摩擦产生线性损伤

二、技术全栈架构分层说明

2.1 深度学习推理层(Python)

  • 检测框架:YOLO系列(Pytorch实现)
  • 大模型接口:DeepSeek API对接,缺陷智能诊断
  • Web推理服务:Flask 轻量图像推理接口
  • 数据处理:OpenCV、PIL、Numpy、Albumentations数据增强

2.2 后端业务服务层(Java)

  • 核心框架:SpringBoot 2.7、MyBatis-Plus
  • 数据库:MySQL 8.0(存储用户、检测记录、缺陷统计数据)
  • 权限模块:RBAC多角色权限控制、操作日志持久化

2.3 前端可视化层

  • 基础框架:Vue3 + TypeScript
  • UI组件库:Element-Plus
  • 可视化图表:ECharts(缺陷类型统计、月度质检报表)
  • 网络请求:Axios封装全局请求拦截器

三、核心功能模块详解

3.1 多模式图像缺陷检测模块(四大推理模式)

  1. 单张图片上传检测:支持本地图片拖拽上传,实时返回缺陷标注图、置信度、缺陷类别坐标
  2. 批量文件夹批量推理:上传本地文件夹压缩包,自动遍历全部图片批量检测,生成汇总统计报表
  3. 视频流离线分析:上传工业监控视频,逐帧抽取画面完成缺陷检测,输出缺陷出现时间戳
  4. 工业摄像头实时在线监测:对接USB/工业千兆相机,网页端实时渲染检测画面,缺陷实时弹窗告警

3.2 DeepSeek大模型智能诊断模块(核心创新点)

传统视觉检测仅输出坐标框,本系统将YOLO检测输出的缺陷类型、数量、置信度、缺陷尺寸数据封装结构化Prompt传入DeepSeek大模型,自动输出:

  • 当前缺陷产生工艺成因分析
  • 轧制、酸洗、热处理工序整改建议
  • 同类缺陷批量出现的产线风险预警
  • 行业标准下缺陷等级判定(合格/待复检/报废)

3.3 数据可视化与统计模块

  • ECharts渲染缺陷类型分布饼图、每日缺陷数量折线图、缺陷尺寸区间直方图
  • 按用户、时间、缺陷类型多维度筛选检测历史记录
  • 支持检测报表Excel导出,用于车间质量台账归档

3.4 用户权限管理系统

  • 管理员账号:全量检测记录查看、用户新增/禁用、系统参数配置、日志全量查询
  • 普通质检账号:仅查看本人上传检测任务,无用户管理权限
  • 全操作行为日志记录:登录、图片上传、批量推理、系统配置修改全程留痕

3.5 前端个性化界面定制

  • 多套主题色自由切换
  • 页面布局拖拽调整、组件尺寸自定义
  • 检测结果展示面板可自定义显示字段(置信度、缺陷面积、大模型分析文本)

四、核心深度学习代码片段(带场景注释)

4.1 NEU-DET数据集标签转换脚本(XML转YOLO TXT)

# 场景注释:工业钢材缺陷数据集专用坐标转换,适配NEU-DET原始XML标注,解决小裂纹坐标越界问题importosimportxml.etree.ElementTreeasETdefconvert_xml_to_yolo(img_size,box):""" img_size: (图片宽, 图片高) box: [xmin, xmax, ymin, ymax] 原始像素坐标 return: YOLO归一化中心坐标 x,y,w,h [0~1] """dw=1.0/img_size[0]dh=1.0/img_size[1]x_center=(box[0]+box[1])/2.0y_center=(box[2]+box[3])/2.0w=box[1]-box[0]h=box[3]-box[2]# 归一化x=x_center*dw y=y_center*dh w=w*dw h=h*dh# 边界截断,防止微小裂纹标注超出画面x=max(min(x,1.0),0.0)y=max(min(y,1.0),0.0)w=max(min(w,1.0),0.0)h=max(min(h,1.0),0.0)return(x,y,w,h)# NEU-DET固定6类缺陷映射class_mapping={"crazing":0,"inclusion":1,"patches":2,"pitted_surface":3,"rolled-in_scale":4,"scratches":5}defbatch_convert(xml_dir,output_label_dir):ifnotos.path.exists(output_label_dir):os.makedirs(output_label_dir)forxml_fileinos.listdir(xml_dir):ifnotxml_file.endswith(".xml"):continuetree=ET.parse(os.path.join(xml_dir,xml_file))root=tree.getroot()img_w=int(root.find("size/width").text)img_h=int(root.find("size/height").text)txt_name=xml_file.replace(".xml",".txt")withopen(os.path.join(output_label_dir,txt_name),"w",encoding="utf-8")asf:forobjinroot.findall("object"):cls_name=obj.find("name").textifcls_namenotinclass_mapping:continuecls_id=class_mapping[cls_name]bndbox=obj.find("bndbox")xmin=float(bndbox.find("xmin").text)xmax=float(bndbox.find("xmax").text)ymin=float(bndbox.find("ymin").text)ymax=float(bndbox.find("ymax").text)yolo_box=convert_xml_to_yolo((img_w,img_h),[xmin,xmax,ymin,ymax])f.write(f"{cls_id}{yolo_box[0]}{yolo_box[1]}{yolo_box[2]}{yolo_box[3]}\n")if__name__=="__main__":batch_convert(xml_dir="./neu_det/xml",output_label_dir="./neu_det/labels/train")

4.2 YOLO推理Flask接口(对接前端图片检测请求)

# 场景注释:工业Web推理服务,GPU加速推理,返回缺陷坐标+类别+置信度,同步调用DeepSeek生成诊断文本fromflaskimportFlask,request,jsonifyimporttorchimportbase64fromPILimportImageimportiofromultralyticsimportYOLOimportrequests app=Flask(__name__)# 全局预加载模型,避免重复初始化耗时(工业并发场景性能优化)DEVICE="cuda"iftorch.cuda.is_available()else"cpu"MODEL_PATH="./weights/neu_det_best.pt"model=YOLO(MODEL_PATH).to(DEVICE)# DeepSeek大模型接口配置DEEPSEEK_API_KEY="xxx"DEEPSEEK_URL="https://api.deepseek.com/v1/chat/completions"CLASS_NAME=["微裂纹","夹杂物","斑块","麻面","轧入氧化皮","划痕"]defllm_analysis(detect_result_list):"""将YOLO检测结果传入大模型,生成工业质检分析建议"""prompt=f"""你是资深钢铁工艺工程师,根据以下钢材表面缺陷检测数据给出成因、整改方案与质检判定: 检测缺陷列表:{detect_result_list}输出要求:1.缺陷成因 2.产线整改措施 3.质量等级判定(合格/复检/报废)"""headers={"Authorization":f"Bearer{DEEPSEEK_API_KEY}","Content-Type":"application/json"}payload={"model":"deepseek-chat","messages":[{"role":"user","content":prompt}],"temperature":0.3}resp=requests.post(DEEPSEEK_URL,json=payload,headers=headers)returnresp.json()["choices"][0]["message"]["content"]@app.route("/api/detect/image",methods=["POST"])defdetect_image():if"file"notinrequest.files:returnjsonify({"code":400,"msg":"未上传检测图片"}),400file=request.files["file"]img_bytes=file.read()pil_img=Image.open(io.BytesIO(img_bytes)).convert("RGB")# YOLO推理results=model(pil_img,conf=0.25)res=results[0]detect_data=[]forboxinres.boxes:cls_idx=int(box.cls.cpu().numpy()[0])conf=float(box.conf.cpu().numpy()[0])xyxy=box.xyxy.cpu().numpy()[0].tolist()detect_data.append({"defect_type":CLASS_NAME[cls_idx],"confidence":round(conf,4),"box_xyxy":xyxy})# 调用大模型生成诊断llm_report=llm_analysis(detect_data)iflen(detect_data)>0else"未检测到钢材表面缺陷,质检合格"# 编码检测标注图返回前端buf=io.BytesIO()res.save(buf)buf.seek(0)img_base64=base64.b64encode(buf.read()).decode("utf-8")returnjsonify({"code":200,"data":{"detect_list":detect_data,"llm_analysis":llm_report,"result_img_base64":img_base64}})if__name__=="__main__":# 工业部署关闭debug,host开放局域网访问app.run(host="0.0.0.0",port=5000,debug=False)

4.3 摄像头实时检测核心推理循环

# 场景注释:工业相机实时流处理,每帧推理,缺陷置信度阈值告警,适配钢厂产线连续采集importcv2fromultralyticsimportYOLO model=YOLO("./weights/neu_det_best.pt")# 工业相机ID,USB相机填0,千兆网口相机填RTSP地址cap=cv2.VideoCapture(0)cap.set(cv2.CAP_PROP_FRAME_WIDTH,1280)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,720)CONF_THRESHOLD=0.3print("工业摄像头实时检测启动,按Q退出")whilecap.isOpened():ret,frame=cap.read()ifnotret:break# 单帧推理pred=model(frame,conf=CONF_THRESHOLD)[0]plot_frame=pred.plot()# 存在缺陷弹窗提示iflen(pred.boxes)>0:cv2.putText(plot_frame,"DEFECT DETECTED",(30,60),cv2.FONT_HERSHEY_SIMPLEX,2,(0,0,255),3)cv2.imshow("Steel Surface Real-Time Detect",plot_frame)ifcv2.waitKey(1)&0xFF==ord("q"):breakcap.release()cv2.destroyAllWindows()

五、项目完整交付清单

  1. 标准化NEU-DET钢材缺陷数据集:1800张标注图像,6类缺陷完整YOLO格式标签
  2. 训练完成YOLO预训练权重best.pt,针对钢材微小裂纹优化训练
  3. 全栈源码:Pytorch推理代码、Flask算法服务、SpringBoot后端、Vue3前端完整工程
  4. 全套部署文档:Windows/Linux环境依赖安装、CUDA显卡加速配置、MySQL初始化脚本、前后端联调步骤
  5. 多模式检测完整实现代码:单图、批量、视频、摄像头实时检测全套逻辑
  6. DeepSeek大模型对接封装代码,可快速替换其他LLM接口

六、适配落地场景

  1. 钢铁热轧/冷轧车间表面在线质检流水线
  2. 金属材料实验室板材缺陷抽样检测
  3. 制造业质量管控部门离线批量工件抽检
  4. 高校深度学习工业视觉课题实验平台
  5. 有色金属(铝、铜、合金)表面缺陷检测二次开发

七、增值付费定制服务

  1. 远程服务器环境部署、模型调试优化
  2. 完整模型训练全流程线上讲解(数据增强、调参、损失优化、精度提升)
  3. 定制化功能开发:缺陷尺寸测量、产线PLC对接、缺陷自动分拣联动
  4. 模型性能调优:轻量化推理、TensorRT加速、小目标裂纹检测精度提升
  5. 多系统集成:MES生产管理系统、工厂看板大屏对接开发

八、项目拓展优化方向(深度思考)

  1. 多尺度特征融合:引入CFPNet上下文特征金字塔,提升微小裂纹检出率,解决钢材低对比度缺陷漏检问题
  2. 模型轻量化:导出ONNX/TensorRT模型,适配边缘工控机、嵌入式设备离线检测
  3. 时序缺陷分析:对视频流缺陷做时序统计,识别持续性产线故障,提前预警设备磨损
  4. 多模态大模型升级:接入图像理解大模型,直接输入缺陷图片完成图文同步诊断
  5. 缺陷分割拓展:新增Mask分割分支,精准计算缺陷面积、破损占比,完善量化质检指标

#深度学习 #YOLO目标检测 #工业视觉 #钢材缺陷检测 #NEU-DET #大模型DeepSeek #智能制造 #质检系统 #Pytorch #SpringBoot #Vue3 #计算机视觉 #裂纹检测 #工业AI #全栈项目

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询