1、 1 Sherlock 机器视觉应用软件 2 Sherlock 是什么? 功能齐全,性能优越,配置简便,多视野的视觉分析软件 Sherlock是一先进的机器视觉软件,极易配置操作,适用于各种各样自动化检测应用。其基于 Windows,点击式,可快速试验及开发的图形式环境平台提供部署了丰富的经实践证明的图像工具和处理功能。 3 通过鼠标点击,即可配置,无需传统编程 丰富的高性能机器视觉处理操作和算法 全面的图形式用户界面,开发实施迅速 接口灵活,允许算子接口定制 OPC兼容接口允许数据与其它应用分享 广泛的调试和帮助支持 Sherlock 是什么? 4 Sherlock 是什么? 多应用工具箱:
2、 各种面性和线性感兴趣区域 广泛的预处理器 先进的定位 /模式寻找 精确的测量工具 实用的标定,纠正线性 /非线性畸变 强大的分析工具: Blob分析,边缘计数等。 准确的彩色对映 /分类 可靠的读码器, OCR/一维码 /二维码 方便的脚本编辑工具 易用的算法定制 灵活的 I/O接口, PLC和 VB前端用户接口 5 Sherlock界面介绍 主菜单栏 主工具栏 打开和关闭各种图形窗口(程序窗口,监视窗口等) 控制并执行图像窗口所显示的内容 控制 Sherlock应用程序的外观及通讯设置 控制图像窗口的版面分布 创建一个新的程序 粘贴 /复制程序模块 单步 /连续运行程序 停止 /中断、调试
3、程序 控制 Sherlock应用程序的外观及通讯设置 保存或另存当前的程序 6 Sherlock界面介绍 添加 ROIs检测区域 显示选项设置对话窗 放大,还原,缩小图像 开始 /停止图象窗口中的相机采集图像 ,不进行处理功能 装载、保存图像文件 Sherlock图像窗口 7 Sherlock界面介绍 当你在图像窗口中进行了算法与预处理的添加、设置后,与之相关的详细处理过程及各种结果参数都将会在 程序窗口 中显示出来。 每一个算法的输入或输出都会通过程序窗口显示 出来。在 Sherlock中总共有五种类型的变量: Number ( N ), Boolean ( B ), String ( S
4、) , Point ( P ), Line ( L ). 每种类型的变量都有相应的数组变量: N 、 B 、 S 、 P 、 L 8 Sherlock界面介绍 程序单元的排列设置: 当你在向程序窗口中添加程序时,由于逻辑上的要求你可能要重新布置各模块 单元的位置 . 你只需通过拖拉的方式便能实现程序单元位置的调整。 要将 ROI LineA 移动到 RectA的上方 , 首先选中它 ,然后按住鼠标左键不放 拖拉它至 RectA的顶部 然后释放鼠标左键 9 Sherlock界面介绍 通过 通用指令 你可以控制程序的执行。在 Program 图形工具栏都可以选择这些指令。 调用子程序 设置程序 执
5、行的逻 辑判断条 件 在某一条件下重复执行指令 添加设置子程序 从某一执行语句跳变到程序 任意位置 指令窗口 10 Sherlock界面介绍 变量窗口快捷工具栏: 用于向程序中添加各种类型的变量 以便保存检测数据 变量窗口用于在程序运行时候,显示程序中各种类型的输入 /输出参数变量值。 参数变量的值都要随着程序的运行进行实时的更新 变量窗口 11 Sherlock界面介绍 The Monitor 监视窗口显示程序运行信息 , 例如警告,错误, 以及执行时间。如要打开监视窗口 , 选择主菜单栏 View ViewMonitor。 清除显示信息 开启 /关闭信息 保存显示信息为文档 设置显示信息内
6、容 监视窗口 12 Sherlock界面介绍 通过 IO:Reporter Print 指令我们可以将程序中的检测数据输出到报表窗口中以便查看。 当你定制需要打印的字符串内容时 , 需要在变量名两边加上个 号,以指明变量值将会被打印到报表窗口中。 你不能够打印已知读数,只能打印变量值。 IO:Reporter Clear指令用于清除报表窗口。 清除报表内容 将报表内容生成文档 报表窗口 13 Sherlock主要功能介绍 1. Landmark 位置标定 2. Calibration 刻度校准 3. Search 区域搜索 4. Color Processing 颜色处理 14 Sherloc
7、k位置标定介绍 目前一个标准的机器视觉应用都要求能够分析出一组图像中相同的特征。但是由于运动控制和图象采集设备本身 , 或者待检工件自身的因素,致使每幅所拍摄的图像不可能完全静止不动。所以当物体发生了偏移或旋转时,在对感兴趣区域进行像素统计的时候就不可能得到准确的分析数据 . 解决这个问题的唯一方法就是为 ROI进行坐标位置的自我标定。 15 Sherlock位置标定介绍 在图中我们使用了一个 矩形 ROI 结合配置 Barcode 1D 算法,用于测量图书封面所印刷的条形码。 16 Sherlock位置标定介绍 当图像向右发生移动时,矩形 ROI所检测的图像内容发生变化,这时矩形ROI便不能
8、够正确的识别出图书封面上的条形码。 17 Sherlock位置标定介绍 在图书封面条码商标左边的边界可以通过一个线形 ROI 配置First Edge算法,并将边缘强度参数设置为 100来实现探测。 18 Sherlock位置标定介绍 在图像窗口的 Options 对话窗 Alignment页面下进行校正设置 (Alignment scheme)的创建。 点击 Create alignment 按钮创建一个 alignment scheme。默认情况下 , alignment schemes被命名为alignmentA, alignmentB, etc.图中的 alignment scheme
9、我们更名为 alignLeftEdge. 将通过 First Edge 算法探测到的点从 Point readings 窗口中拖移到 alignLeftEdge下方;这个便完成了一个标定点。 19 Sherlock位置标定介绍 校准设置完成后,必须把它应用到需要标定的 ROI 上,以便ROI移动到正确的图像位置实现像素的分析。 要将校准设置应用 到 ROI, 首先打开 Edit 窗口并点击 属性 栏。在 Alignment下拉菜单中显示有程序中所有的校准设置点,选择正确的校准设置点。 20 Sherlock位置标定介绍 现在如果图书发生水平移动 , t线形 ROIs 通过 First Edge
10、 算法探测到条码商标左边界点并计算出从原始位置到新位置发生了多少偏移 . 执行 Barcode 1D 算法的矩形 ROI将会根据标定点自动调整位置。图中虚线表示出了矩形 ROI的原始位置。 21 如果目标物体发生了旋转 , 要实现标定则需要设置两个标定 alignment scheme。在商标的左下和右上角 ,各包括了 0 和 90000, 我们用两个矩形 ROIs培训其图样,配置 Search Line Based 算法。 Sherlock位置标定介绍 22 Sherlock位置标定介绍 将两个算法探测的点作为标定点,添加它们到 alignRotate中去。 23 通过为矩形条码检测 ROI
11、设置alignRotate 标定点后。如果图书发生旋转,条码检测 ROI也会根据两个标定点来实现自我位置的调整。 Sherlock位置标定介绍 24 Sherlock尺寸校准 Calibration 在我们使用机器视觉进行检测时候,相机所拍摄 的图像都是以像素作为单位,如果要获得实际的 物理尺寸单位则需要经过 Calibration 刻度校准来 实现像素单位到物理单位的转换。 Sherlock7中可 以通过以下两种方式来实现。 方法 1: 利用点坐标 使用 IO公式 :Calibration:Calibrate Using Points 方法 2 : 转换测量值 使用 IO公式 :Calibr
12、ation:Calibrate Using Transformation Values 我们主要介绍通过第一种方法来实现单位的转换。 25 以测量 PDA屏幕的宽度为例 , 用两条线形 ROIs 配置 First Edge 算法 , 将探测到的两点坐标输入到 几何算法 :PtToPtDist中。测量出的屏幕尺寸宽度如图所示为 311.58 像素。 Calibration 26 Calibration 定义四个点 在右边的图像窗口中,在四个圆上使用四个放射形 ROIs配置 First Edge算法 作为校准目标。在这幅图中,相邻圆心之间水平和垂直的距离都是 1 英尺。 实现转化第一步: 27 C
13、alibration 将每个放射形 ROI探测到的一组边缘点作为几何公式 :PtsToBestCircle 的输入。通过指令计算出相应圆环的中心点 坐标。 28 Calibration 将通过几何公式 PtsToBestCircle求出的四个圆心坐标作为IO:Calibration:Calibrate Using Points公式的输入数据。 左上圆心坐标: (0.00, 0.00) 右上圆心坐标: (4.00, 0.00) 左下圆心坐标: (0.00, 3.00) 右下圆心坐标: (4.00. 3.00) 左上圆心到右上圆心相隔四个间距单位,上下圆心相隔三个间距单位。 在实际应用中左上圆心坐标或许是 (2.125, 7.500),则其它的圆心坐标就要作到相应的调整。 29 Calibration 创建和设置校准对象 可以在任何图想窗口的 Options对话窗 Calibration面板上创建一个空的校准对象。 点击 Add按钮创建一个空白的校准对象 30 Calibration 在 IO公式 Calibrate Using Points 中 , 鼠标左键双击 HDL 弹出输入选择对话窗。 选择 (CalibrationA) 作为输入转换。