机器视觉实验报告(精选).docx
20页研 究 生 课 程 论 文机器视觉应用实验报告成绩评定:分任课教师签名:年月日提交日期:学号课程编号学院课程名称机械与汽车工程学院机器视觉应用学位类别教师评语:工程硕士任课教师《机器视觉应用实验报告》仪器仪表工程姓 名学 号院 系专 业指导教师华南理工大学实验报告机械与汽车工程学院系仪器仪表工程专业姓名廖帆实验名称机器视觉应用实验日期指导老师课程名称:机器视觉应用一、 实验目的自行搭建机器视觉测量系统, 采集标定板、 工件图像, 利用图像处理软件进行标定、工件尺寸测量、工件缺陷检测主要目的有:1、根据被测工件,搭建机器视觉测量系统,选择成像系统软件,进行图像采集等实验掌握常规机器视觉测量原理、实验平台搭建、图像采集步骤;2、掌握成像系统软件常用操作,能够对图像进行简单处理,并编写简单相关程序尺寸测量、缺陷检测判定;3、对测量结果进行误差分析,进一步加深理解机器视觉测量过程中的关键因素二、 实验原理机器视觉主要是利用机器实现代替人眼来做测量和判断等目的, 因此机器视觉可以看作是使用计算机及相关设备对生物视觉的一种模拟 该实验就是通过对选取的工件进行图像采集和图像分析处理以获得所需物体的尺寸、缺陷等信息, 一个典型的机器视觉系统包括:相机 (包括 COMS 相机和 CCD 相机)、光源、镜头、图像获取单元(图像采集卡等) 、显示器、图像处理软件、通讯设备、输入输出单元等。
本次实验借助 HALCON 机器视觉软件, 它是德国 MVtec 公司开发的一套完善的标准的机器视觉算法包, 拥有应用广泛的机器视觉集成开发环境, 在欧洲以及日本的工业界已经是公认具有最佳效能的 MachineVision 软件它源自学术界, 是一套图像处理库, 由一千多个各自独立的函数, 以及底层的数据管理核心构成其中包含了各类滤波、色彩分析以及几何、数学变换、形态学计算分析、校正、分类、辨识、形状搜索等等基本的几何以及图像计算功能 HALCON 支持Windows,Linux 和 MacOS X 操作环境, 函数库可以用 C,C++,C#,Visual Basic 和 Delphi 等多种普通编程语言开发,为工业检测上提供了高速、高精度、强有力的方法本实验包括对被测工件进行圆孔中心尺寸测量、工件螺母焊接位置缺陷检测本次实验基于 HALCON 平台,工件圆孔中心尺寸测量涉及 ROI、特征提取(圆)、外接圆形算法,在传统边缘检测方法里,基于一阶导数的边缘检测算子 有 Robert 算子、 Sobel 算子、 Prewitt 算子、 canny 算子等;工件螺母焊接正反位置缺陷检测涉及阈值处理、特征提取。
三、 实验器材光源:背光源,面光源硬件: MER-500-7UM 相机、相机架、标定板( 4848mm)、计算机,焦距 12mm、最大光圈 1.4的镜头一个软件: Daheng MER-Series Viewer(x64)驱动、 HALCON工件: OK件、缺陷件地点:暗室四、 实验内容1. 实验内容:(1) 根据所检测的内容分析所需的光源; (2)根据工件尺寸、光源等搭建视觉系统平台(3)标定板制作;(4) 采集标定板和工件图像;(5) 本次实验利用 HALCON 软件进行相机标定;(6) 利用HALCON 软件对工件进行缺陷判定,并测量中心圆孔的尺寸2. 待测对象描述:本实验的试验工件为冲压件, 缺陷检测为工件的螺母是否焊反, 即参照OK件检测工件的螺母位置是否焊反工件如图所示:图 4.13、初步拟定方案通过阅读图像, 可知道, 若是 OK 件,从指定面可观察到两个焊接的螺母,若是缺陷件,即螺母焊反的工件,进行处理在指定面观察的话没有焊接螺母,因此拟采用阈值法对所采集到的图像至于中心圆孔的尺寸测量可以将工件放置在背光源之上, 背面打光即可获得质量较好的图像五、实验步骤1. 相机选择:工件尺寸为80mm*116mm,要求最小误差为 0.5mm,现在假设将最小的理论像素值定为 0.05mm,计算相机分辨率的公式为:所 以 相 机 分 辨 率 要 大 于 1600*2320 。
大 恒1944*2592,所以该相机可以满足要求2. 镜 头选 择: 拍摄 最小 工作 距离 定为2.9mm*2.9mm*2.9mm MER-500-7UM 相机 分辨 率 为80mm , CMOS传感器尺寸为所以焦距大于 4.87 即可 ,而我所采用的镜头焦距为 12mm,因此镜头满足要求3. 根据现场环境及工件尺寸大小,选择合适的机架安放地点和支架的高度4. 利用扳手等工具,将三脚架、相机和镜头组装好其中尽量保持相机 —— 镜头的中心线与测量平面 (底面)垂直;5. 启动计算机, 打开大恒图像采集软件 通过 USB 线将相机与计算机连接6. 在测量平面上放置白色背景 (白纸),将标定板放在白色背景上,调整标定 板的位置,使得标定板完全落在相机视场内部, 转动相机的对焦环, 使图像清晰, 可局部放大观察对焦是否满足要求 在图像采集软件的界面中操作, 保存所得图像到计算机中7. 改变标定板的位置,重复步骤 4,直至完成 16 次标定板图像采集工作,采集得到标定板图像如图 5.1 所示图 5.18. 保持相机物距不变,放置好待测工件 ,打开背光源,得到工件图像实验装置如图 5.2 所示图 5.29.利用 HALCON 软件编写工件的冲压件圆孔检测流程如图5.3 所示。
图 5.310.重新搭建实验平台进行工件缺陷检测,搭建试验平台如图 5.4 所示图 5.411 在搭建好实验平台之后,先采集 OK 件的图像,作为匹配标准,之后采集缺陷件的图像12 利用 HALCON 软件编写工件冲压件的缺陷检测流程如图 5.5 所示图 5.513 整理实验器材六、数据记录1. 标定板制作 (30*30mm)1) 打开 HALCON 软件,输入 gen_caltab(),填入对应参数2) 将生成的 .ps文件转换成为 pdf 格式,并彩印出3) 将彩印出的标定纸粘贴至一定厚度的平板上固定,制成标定板2. 摄像机标定利用拍摄到的标定板图像进行标定1) 打开 HALCON 软件;2) 点击“助手”—“打开新的 Calibration 创”建新的 Calibration,加载描述文件(注意文件路径不含中文字符) ,设置标定板厚度是 2.46mm,单个像元的宽和高都是 2.2um,焦距 12um,如图 6.2.1 所示;图 6.2.1图 6.2.23) 加载标定板图像,如图 6.2.2 所示,(注意文件路径不能够包含中文字符, 默认为软件图片所在文件夹 )只要“状态”中没有出现 “错误”字样,说明该标定板图片可以使用。
如果出现了 “错误”提示, 将对应的图片移除即可;4) 点击“标定”,得到对应相机的内外参数,如图 6.2.3 所示;图 6.2.35) 点击图 6.2.3 中的“代码生成 ”,并插入代码3. 圆孔尺寸测量1) 加载工件标准工件原始图像 ,将图像直接拖入 HELCON 图形窗口2) 进行亚像素边缘提取,结果如图 6.3.1 所示edges_sub_pix(Image00, Edges, canny, 1, 20, 40)3) 对获得图像进行轮廓连接处理,结果如图 6.3.2 所示union_adjacent_contours_xld(Edges, UnionContours, 10, 1, attr_keep)4) 选取需要的圆孔轮廓,结果如图 6.3.3 所示sort_contours_xld(UnionContours, SortedContours, upper_left, true, row)select_obj(SortedContours, ObjectSelected, 3)5) 求取轮廓的最小闭合圆smallest_circle_xld(ObjectSelected, Row, Column, Radius)6) 将相机坐标系转换为世界坐标系,获取圆心等参数的世界坐标系坐标,结果如图 6.3.4 所示。
对应算子为:contour_to_world_plane_xld (ObjectSelected, ContoursTrans, CameraParameters, CameraPose, mm)图 6.3.1图 6.3.2图 6.3.3图 6.3.44. 冲压件螺母焊接正反的判断1) 加载工件原始图像 ,将图像直接拖入 HELCON 图形窗口2) 提取感兴趣区域 ROI,点击“编辑 ROI :ROI” —“绘制感兴趣区域”—“插入代码” ,如图 6.4.1 所示对应算子为: gen_circle (ROI_0, 312.7, 364.643, 200.81)gen_circle (ROI_0, 312.7, 364.643, 200.81)gen_circle (TMP_Region, 1236.1, 2257.21, 180.291) union2 (ROI_0, TMP_Region, ROI_0) reduce_domain(Image1, ROI_0, ImageReduced)3) 对 ROI 图像进行阈值处理,结果如图 6.4.2 所示对应算子为:threshold (ImageReduced, Regions, 53, 237) 4)对上述的结果滤除其它噪声。
对应算子为: dilation_circle(Regions, RegionDilation, 3.5) connection (RegionDilation, ConnectedRegions)select_shape(ConnectedRegions, SelectedRegions, area, and, 8000, 99999) 5)统计当前图像中获得的螺母数,作为后续判断的依据对应算子为: count_obj(SelectedRegions, Number)6)对结果进行匹配判断,并显示结果结果如图 6.4.3 所示6.4.3a)是螺母没有焊反的判断结果。





