101实践项目——工业视觉质检系统搭建与应用
项目一:工业视觉质检系统搭建与应用
一、视觉的力量
二、课程知识篇
三、实操训练
四、项目实战
由锐软科技提供技术支持
-
+
首页
三、实操训练
## 3.1 产品部件外观缺陷检测 <center> <video width="200" controls> <source src="https://entsz-1300636955.cos.ap-guangzhou.myqcloud.com/101file/%E4%BB%80%E4%B9%88%E6%98%AF%E7%BC%BA%E9%99%B7%E6%A3%80%E6%B5%8B.mp4"> </video> 缺陷检测短视频讲解 </center> 在掌握基础理论后,让我们通过一个典型工业案例开启实践 —— 金属板划痕检测。在工业生产中,金属板表面的划痕检测是一个常见且关键的质量控制环节。通过视觉检测系统,我们可以快速、准确地识别出表面的各类缺陷,确保产品质量。 **【一句话概括:说明产品部件外观缺陷检测的原理】** 通过高分辨率相机捕捉表面图像,利用图像处理算法对比分析特征,实现毫米级精度的划痕自动识别。 ### 3.1.1 场景破解(需要以折叠形式) <center>  </center> 在该场景中,金属来料部分我们不需要过多关心,但在实际工厂环境,这是非常重要的一环。现在我们直接从图像采集部分开始分析。 图像采集的核心在于根据产品、物料特性,以及我们所需要识别的缺陷,精确的拍摄出符合需求的照片。这要求我们掌握物料所具备的各种特征,比如形状、材料的不同可能导致的结果。同时也要求我们掌握硬件设备的性能极限以及功能边界,比如不同的镜头所能拍摄出的照片、不同光源所能照射出物料不同的特征等。 预处理以及缺陷检测环节就主要是软件层面的工作。 预处理就好像检测系统的“美颜滤镜”,通过图像处理,让我们需要识别的缺陷部分更加明显,并尽量过滤噪声。就好比P图,我们希望只保留人脸的五官,并去除皮肤上的痘痘。其中五官可以类比为“需要识别的缺陷”,而痘痘便是“噪声”。 <center>  </center> 经过预处理后,我们有了一副“五官明确,没有痘痘”的照片。但这个照片可能会存在几个问题。比如少个鼻子或嘴巴,又或者脸部皮肤磨皮磨太过,导致人脸看起来有点假。这时候我们就需要把图片给朋友看看,分辨下图片中人脸的好坏。如果人脸清楚,痘痘也去除干净了,就通过进入下一步,发朋友圈(缺陷检测)。如果朋友觉得不好,我们就得把图片拿去重新调整P图参数。 <center>  </center> 经过漫长的重新P图操作,终于到了展示成果的一环(实际工程中的预处理速度非常快)。也就是发在朋友圈内让大家看看,如果点赞的人够多,说明这个图很好看。它就有资格保留下来,也就是成为了合格品。但假如过了很久仍然无人问津,说明图片是可能存在问题的。所以我们需要把照片下架,也就不良品下架。 <center>  </center> ### 3.1.2 系统搭建 现在我们已经基本了解整个处理过程。于是需要通过配置硬件设备编写、软件代码来完成这一系列的操作,并追踪能识别自动化处理。 根据3.1.1小节中的流程图,大致可以把处理流程分为这三段。 <center>  </center> 其中运输机构不是本课程的关心内容,故省去。这里着重介绍采集硬件和识别软件算法。 #### 1.硬件配置 在以往实际环境中,照片采集的硬件往往是繁琐且复杂的。但我们现在有了不少集成化的设备套件,我们即将操作的便是其中一种。就好比我们自己拍照片,以往都是傻大黑的单反相机和又大又重的镜头。而现在各种手机发展迅速,虽然效果不如单反相机,但胜在小巧、操作简单。普通人也可以快速上手,完成照片拍摄。 我们这套设备也同理,集成化程度高、软件配套齐全,我们可以快速搭建粗完整照片采集的硬件系统。只需要根据所需拍摄产品以及所需要检测缺陷,进行镜头、光源搭配即可。 接下来让我们根据3.1所描述需求,完成硬件的选型。 > 在这里提供一些硬件方案,让学生进行选择调试,并可以通过图片查看具体效果。在同一场景下,相机、镜头、光源与物体之间固定距离,且固定参数的情况下,让同学根据3.1中场景需要进行自我抉择、自由组合,根据图片效果选择。最后让学生讲述自己选择方案的理由。 > 大致可选择类似,需要根据实际课程需要进行细化: > 1. 相机选择 > 200万像素、400万、800万。 > 2. 镜头选择 > 12mm、24、35、50、80 > 3. 光源选择 > 点光、条光、环形光等等 > > —————— > 最后更换一个场景,让学生再选择一次。比如更换物体的材质,将金属换成玻璃。比如拉远相机与物料之间的距离。 **假设方案如下:** > * 工业相机:选用200万像素工业相机 > * 镜头:12mm定焦镜头 > * 光源:LED条形光源(45度斜射) > * 检测平台:铝型材工作台 <center>  </center> 完成硬件选型后,我需要对实际设备进行调试,以确保拍摄台符合我们的预设方案。 #### 2.设备调试步骤 ##### (1)相机安装 ① 将相机固定在支架上,保持与检测平面垂直 **<图片: 相机支架安装示意图>** ② 调整高度至400mm(可根据实际视野需求微调) **<图片: 高度调节刻度特写>** ③ 连接电源线和数据线(USB3.0接口) **<图片: 接口连接示意图>** ④ 设备调试前安全检查清单: > ✅ 支架固定螺丝是否拧紧 > ✅ 数据线是否防缠绕 > ✅ 急停按钮功能测试 ==需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!!== ##### (2)光源布置 ① 在相机两侧各安装一组LED条形光源 **<图片: 光源安装位置示意图>** ② 光源与水平面呈45度角 **<图片: 角度测量仪使用示例>** ③ 光照均匀性测试: **<图片: 光照均匀性测试效果对比图>** ==需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!!== ##### (3)连接相机并参数设置 ① 相机连接步骤: * 通过USB3.0接口连接相机到电脑 * 打开相机配套软件(如MVS) * 在设备列表中选择并打开相机 * 检查连接状态指示灯 <center>  </center> ② 相机参数配置: * 曝光时间调节(推荐范围15-25ms) > 过暗时适当增加曝光时间 > 过亮时适当减少曝光时间 <center>  </center> * 增益设置(推荐0-10db) > 增益越大,噪点越多 > 建议优先调节曝光,增益作为备选 **<图片: 增益调节界面>** * 光源亮度调节(PWM调光示意图) > 通过控制器调节占空比 > 建议从50%开始逐步调整 **<图片: 光源控制器操作面板>** * 对焦辅助工具使用: <center>  </center> ##### (4)拍摄图像 ① 图像采集参数设置: * 设置相机IP ② 采集步骤: * 点击"开始采集"按钮 * 调整工件位置至视野中心 * 点击"软触发"按钮进行拍摄 * 检查图像质量: > 亮度适中 > 对比度清晰 > 无运动模糊 > 工件完整在视野内 * 将合格图像保存至指定文件夹 <center>  </center> ##### (5)安全操作规范 - 紧急停止按钮位置示意图 **<图片: 设备急停按钮位置特写>** - 防护装置检查清单: ✅ 光幕传感器功能正常 ✅ 安全门互锁装置有效 ✅ 接地电阻 < 4Ω ==需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!!== #### 3.进行照片采集 **<图片:满足课题要求的图片>** 通过使用配套软件,成功捕捉符合要求的图片,并存储在电脑中 - 获得关键道具<照片URL> ==需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!! 需拿到设备完善内容!!!== #### 4.建立Python基本环境 > 代码需要根据实际课程需求调整,非定稿,IDE推荐VSCode,待填入图片数据。 ==需后续补充代码!!! 需后续补充代码!!! 需后续补充代码!!! 需后续补充代码!!! 需后续补充代码!!!== ##### (1)安装Python - 访问Python官网([https://www.python.org](https://www.python.org))下载最新版本 - 运行安装程序,注意勾选"Add Python to PATH" - 打开命令提示符,输入"python --version"验证安装 ##### (2)安装必要的库 打开命令提示符,依次输入以下命令: ``` python pip install opencv-python# 图像处理库 pip install numpy # 数值计算库 pip install matplotlib# 绘图库 ``` ##### (3)创建工作目录 - 新建文件夹"metal_inspection" - 在该文件夹下创建以下文件结构: > metal_inspection/ > ├── images/ # 存放测试图片 > ├── results/# 存放检测结果 > └── main.py# 主程序文件 ##### (4)验证环境 在main.py中输入以下代码测试环境: ``` python import cv2 import numpy as np import matplotlib.pyplot as plt print("OpenCV version:", cv2.__version__) print("NumPy version:", np.__version__) print("环境配置成功!") ``` #### 5.编写照片识别算法 > 每个函数都可以在网页上搭配一组测试数据或测试图片,并让学生点击查看函数运行效果;根据被代码测试出来的图像将函数作用告知学生; ``` python import cv2 def load_and_preprocess(image_path): # 读取图像 img = cv2.imread(image_path) if img is None: raise Exception("无法读取图像") # 转换为灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 高斯滤波去噪 blurred = cv2.GaussianBlur(gray, (5, 5), 0) # 自适应阈值分割 ← 排除噪点引起的误检 thresh = cv2.adaptiveThreshold( blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2 ) return img, gray, thresh print(load_and_preprocess("https://img1.baidu.com/it/u=1534302705,3044772853&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1200")) ``` 代码输出演示: ```python def test(path): return path print(test("测试输出")) ``` 以及大约五个函数,篇幅过长未放出。 ==需后续补充代码!!! 需后续补充代码!!! 需后续补充代码!!! 需后续补充代码!!! 需后续补充代码!!!== #### 6.练习: ##### (1)假如images文件下有很多张图片,比如 image_1.jpg ~ image_100.jpg, 该如何对这些图片进行批量运算? ##### (2)假如在`load_and_preprocess`中,把灰值化的代码去掉,最终结果会发生什么,为什么会这样? ##### (3)如果需要同时检测不同类型的缺陷(如划痕、凹坑、污渍等),`detect_defects`函数需要如何修改? ##### (4)尝试调整area阈值参数(50→30),观察检测结果变化,思考如何平衡误检与漏检? #### 7.解答: ##### (1)批量处理多张图片: > 使用os.listdir()或glob.glob("images/*.jpg")获取所有图片路径 > 用循环遍历每个图片路径,复用现有的处理函数 > 可以将结果保存到字典或列表中统一输出统计信息 ##### (2)去掉灰值化的影响: > 如果去掉灰值化,后续的二值化处理将直接作用于彩色图像 > 这会导致阈值分割效果变差,因为RGB三个通道的像素值会互相干扰 > 最终会降低缺陷检测的准确率,产生更多误检 ##### (3)检测不同类型缺陷: > 需要修改detect_defects函数,为每种缺陷类型设计专门的检测算法 > 可以使用字典存储不同类型的检测结果 > 每种缺陷使用不同的图像处理参数和判定标准 > 最后返回包含多种缺陷信息的综合结果 ##### (4)待添加 > ...... ### 3.1.3 技能图谱 ```mindmap # 工业视觉检测技能 - 1.设备操作技能 - (1)相机安装与调试 - (2)光源布置与调节 - (3)参数优化配置 - 2.图像采集技能 - (1)取像参数设置 - (2)图像质量评估 - (3)实时监控调整 - 3.Python编写技能 - (1)环境配置 - Python安装与配置 - OpenCV等库的安装 - 开发环境搭建 - (2)图像处理算法 - 图像预处理 - 缺陷检测算法编写 - 结果标注与输出 - (3)代码组织能力 - 函数模块化设计 - 异常处理机制 - 代码注释规范 ``` <center>  </center> ### 3.1.4 典型应用 #### (1)金属板表面划痕检测 **<视频:占位>** > - 通过高对比度光源照明,突出金属表面的划痕和凹痕 > - 使用边缘检测和形态学处理识别线性缺陷 > - 根据缺陷长度、宽度等特征进行分类判定 > - 常见应用:汽车车身板材、金属零件表面检测 #### (2)PCB板焊点检查 **<视频:占位>** > - 采用环形光源,避免焊点反光干扰 > - 结合灰度分析和轮廓特征检测焊点质量 > - 判断焊点的大小、形状、位置是否合格 > - 主要应用于电子产品制造中的PCB板质检 #### (3)手机后盖外观检验 **<视频:占位>** > - 多角度布光,解决玻璃/金属表面反光问题 > - 综合运用缺陷检测和尺寸测量算法 > - 检测划痕、污渍、气泡等多种缺陷 > - 广泛应用于手机、平板等3C产品的外观检测 ## 3.2 产品部件几何尺寸测量 ## 3.3 品部件字符与条码识别 ## 3.4 产品部件装配检测 ## 3.5 产品部件功能测试辅助
ent
2025年5月30日 17:52
转发文档
收藏文档
上一篇
下一篇
AI问答
手机扫码
复制链接
手机扫一扫转发分享
复制链接
AIChat
代码在线测试
AI问答
你好,我是AI阅读助手,我可以回答与文档内容相关的内容,帮助你快速理解文档,以下是我归纳的几个核心问题,可供您参考:
发送
输入
运行
输出
Markdown文件
分享
链接
类型
密码
更新密码