第5期 彭刚,等:一种基于Mak点的点胶机器人视觉目标定位方法 ·731· 如式(7)、(8)所示。因为旋转包括两种相反方向 3实验结果对比 的旋转状态,所以对应的旋转角也有两个值。 T= 3.1 实验条件 (7) 图11为本文实验使用的样本,(a)是待检测 (TM =±arccosL) (8) 图,大小为522×391;(b)是Mark点模板图,大小 根据得到的缩放比例与旋转角,对标准 为160×160。 Mak点进行相应的缩放和旋转变换校正,从而得 到与结果集中Mark点有着相同缩放和旋转状态 的Mark点模板图。由于标准Mark点大圆以外的 冗余图像部分具有不确定性,故只截取并保留校 正变换后Mark点的大圆内接正方形部分,并将 该部分作为Mark点的新匹配模板,如图9所示。 (a)待检测图 (b)Mark点模板图 图11待检测图和模板图 Fig.11 Test image and template image 在主频2.53GHz的CPU,4GB内存,Windows7 系统的电脑上,使用基于MFC和OpenCV2.4.9开 图9。新匹配模板 发的图像识别软件,进行以下实验测试。 Fig.9 New matching template 3.2Sift和Surf算法对Mark点的识别效果 依次将结果集中的疑似Mark点元素与新的 根据前面引言部分所述,Sift和Surf算子都 Mark匹配模板进行传统模板匹配操作,疑似 可用于Mark点识别,本文为了清晰地展现各种 Mark点元素的匹配区域是Mark点的大圆内接正 算法的优劣,特别对Mark点特征图像在缩放和 方形部分。不断重复Mark点模板校正、截取及 旋转变换条件下使用Sif和Surf两种算法进行识 模板匹配步骤,计算并保存各个结果集元素的匹 别实验,实验数据如表1和表2所示。 配值。最后对匹配结果进行比较,选取最佳匹配 表1缩放对比实验结果 结果,具体的Mark点搜索流程如图l0所示。 Table 1 Comparsion of image scaling experiment 开始 参数类型 匹配点对数 匹配时间/ms Mark点坐标 Sift 21 1732 (276,193) 在PCB测试图中遍历像素点并 0.6倍 寻找特定几何特征 Surf 0 812 (268.199) 82 1903 Mark点结果集 1.0倍 Sift (268,196) Surf 51 921 (268,196) 取出一个结果集元素 1.5倍 Sift 473 2106 (269,196) 并计算其伸缩比例和旋转角度 Surf 141 998 (269,196) 标准Mark点模板图的 表2旋转对比实验结果 伸缩旋转校正 Table 2 Comparsion of image rotation experiment 参数类型匹配点对数 匹配时间/ms Mark点坐标 模板匹配 Sift 164 1810 (268.196) 450 Surf 结果集是否 Y 76 967 (192,175) 有未匹配元素 Sift 136 2013 (268,196) 60° Surf 102 951 (192,176) 比较匹配结果 Sift 163 2056 (268,196) 120° 最佳匹配结果 Surf 85 920 (192.176) 图10Mark点搜索流程图 从表中数据可以分析出:Sft算法匹配用时 Fig.10 Mark point search flowchart 是Surf的2~3倍,Sift在图像缩小变换后的匹配θ 如式 (7)、(8) 所示。因为旋转包括两种相反方向 的旋转状态,所以对应的旋转角 也有两个值。 T= r R (7) θ=±arc cos( T M L ) (8) 根据得到的缩放比例与旋转角,对标 准 Mark 点进行相应的缩放和旋转变换校正,从而得 到与结果集中 Mark 点有着相同缩放和旋转状态 的 Mark 点模板图。由于标准 Mark 点大圆以外的 冗余图像部分具有不确定性,故只截取并保留校 正变换后 Mark 点的大圆内接正方形部分,并将 该部分作为 Mark 点的新匹配模板,如图 9 所示。 图 9 新匹配模板 Fig. 9 New matching template 依次将结果集中的疑似 Mark 点元素与新的 Mark 匹配模板进行传统模板匹配操作,疑似 Mark 点元素的匹配区域是 Mark 点的大圆内接正 方形部分。不断重复 Mark 点模板校正、截取及 模板匹配步骤,计算并保存各个结果集元素的匹 配值。最后对匹配结果进行比较,选取最佳匹配 结果,具体的 Mark 点搜索流程如图 10 所示。 在 PCB 测试图中遍历像素点并 寻找特定几何特征 开始 取出一个结果集元素 并计算其伸缩比例和旋转角度 标准 Mark 点模板图的 伸缩旋转校正 模板匹配 最佳匹配结果 比较匹配结果 结果集是否 Y 有未匹配元素 N Mark 点结果集 图 10 Mark 点搜索流程图 Fig. 10 Mark point search flowchart 3 实验结果对比 3.1 实验条件 图 11 为本文实验使用的样本,(a) 是待检测 图,大小为 522×391;(b) 是 Mark 点模板图,大小 为 160×160。 (a) 待检测图 (b) Mark点模板图 图 11 待检测图和模板图 Fig. 11 Test image and template image 在主频 2.53 GHz 的 CPU,4 GB 内存,Windows7 系统的电脑上,使用基于 MFC 和 OpenCV2.4.9 开 发的图像识别软件,进行以下实验测试。 3.2 Sift 和 Surf 算法对 Mark 点的识别效果 根据前面引言部分所述,Sift 和 Surf 算子都 可用于 Mark 点识别,本文为了清晰地展现各种 算法的优劣,特别对 Mark 点特征图像在缩放和 旋转变换条件下使用 Sift 和 Surf 两种算法进行识 别实验,实验数据如表 1 和表 2 所示。 表 1 缩放对比实验结果 Table 1 Comparsion of image scaling experiment 参数 类型 匹配点对数 匹配时间/ms Mark 点坐标 0.6 倍 Sift 21 1 732 (276,193) Surf 19 812 (268,199) 1.0 倍 Sift 82 1 903 (268,196) Surf 51 921 (268,196) 1.5 倍 Sift 473 2 106 (269,196) Surf 141 998 (269,196) 表 2 旋转对比实验结果 Table 2 Comparsion of image rotation experiment 参数 类型 匹配点对数 匹配时间/ms Mark 点坐标 45° Sift 164 1 810 (268,196) Surf 76 967 (192,175) 60° Sift 136 2 013 (268,196) Surf 102 951 (192,176) 120° Sift 163 2 056 (268,196) Surf 85 920 (192,176) 从表中数据可以分析出:Sift 算法匹配用时 是 Surf 的 2~3 倍,Sift 在图像缩小变换后的匹配 第 5 期 彭刚,等:一种基于 Mark 点的点胶机器人视觉目标定位方法 ·731·