![]() Computer Science and Application 计算机科学与应用, 2013, 3, 30-35 http://dx.doi.org/10.12677/csa.2013.31006 Published Online February 2013 (http://www.hanspub.org/journal/csa.html) The Mechanism of Snake-Enlacing and Its Application to Visual Positioning Qiwen Yang, Shubin Wa ng, Yuncan Xue, Jidong Jin, Yan Liu College of IOT Engineering, Hohai University, Changzhou Email: qwyang2k@yahoo.com.cn Received: Nov. 21st, 2012; revised: Dec. 6th, 2012; accepted: Dec. 25th, 2012 Abstract: To solve the problem of rapid visual positioning in automatic filling system, a bionic positioning method for the filling center is proposed based on the force analysis and process simulation of snake-enlacing. In the proposed method, the image of filling barrel is firstly transferred into a binary one by means of a fast algorithm. Then the image is narrowed by simulating the way that snakes crimp their preys after the centroid of black pixels caused by the filling hole and noise is calculated. And the centroid of the narrowed image is recursively calculated inspired by the behavior of gesture adjustment of snake until the filling center is in accord with the resulting centroid. The comparison experi- ment shows that the proposed method is with less computational consuming, higher precision, robust against the noise, and high calculation speed more than 20 times than the Hough Transform method. Keywords: Snake-Enlacing; Visual Positioning; Centroid; Filling Barrel 蛇形缠绕机理及其在视觉定位中的应用 杨启文,王术彬,薛云灿,金纪东,刘 燕 河海大学物联网工程学院,常州 Email: qwyang2k@yahoo.com.cn 收稿日期:2012 年11月21 日;修回日期:2012 年12月6日;录用日期:2012 年12月25日 摘 要:为解决自动灌装系统的快速视觉定位问题,本文通过对蛇类缠绕行为中的力学分析和过程模拟,提出 了一种孔心仿生定位方法。该方法先对灌装桶图像进行快速二值化处理,并针对噪声和灌注孔形成的黑色像素, 获取其重心位置;随后,模拟蛇在缠绕猎物时的“挤压过程”,缩小图像处理范围;并通过蛇的“姿态调整” 行为,重新寻找图像重心,直至图像重心与灌注孔心完全重合。对比实验表明:本文方法计算量小,精度高, 抗干扰能力强,处理速度是Hough 变换方法的 20 余倍。 关键词:蛇形缠绕;视觉定位;重心;灌装桶 1. 引言 随着机器人技术的发展及其工业应用范围的扩 大,视觉控制逐渐成为了图像处理和自动控制领域的 应用交集。作为一种新型的传感器,图像信息虽然丰 富,但同其它类型的传感器相比,视觉信息的自动识 别和提取难度较大,从而直接影响了应用效果。 针对视觉控制中的圆心定位问题,人们已经提出 了许多方法,其中最为常用的是基于Hough 变换的圆 检测方法[1,2]。但是该方法也存在明显的缺陷,如计算 量也非常大,对于实时性要求较高场合,不得不采用 价格昂贵的高性能处理器。而RHT 算法虽然能减少 Hough 变换方法带来的无效累积,但算法效率取决于 采样条件[3]。SIFT 算法[4]是一种局部特征点匹配算法, 尽管在图像识别、目标跟踪定位中得到了广泛的应 用,但算法本身计算复杂,需要获取较多的特征点。 Copyright © 2013 Hanspub 30 ![]() 蛇形缠绕机理及其在视觉定位中的应用 利用最小二乘拟合方法[5,6]在获取圆参数方面具有较 高的精度和鲁棒性,而且能有效地避免出现一个圆被 分割为多个圆的情况,但计算量也是非常大。 自动灌装是一种常见工业生产过程[7,8]。灌装桶的 灌注孔一般为圆形,在自动灌装过程中,为了将喷枪 对准灌注孔,需要确定孔心位置。在有毒、腐蚀性强 的自动灌装生产线上,最安全和常用的方法是利用灌 注孔的图像信息,检测孔心的位置。但应用上述圆检 测算法,需要高性能的数字处理器,导致算法的硬件 成本较高。因此,开发高效运行、低成本的孔心定位 方法,具有较高的应用价值。 从自然界中获取灵感来寻找工程应用问题的解 决办法,是一种有效途径。近几十年来,最优化领域 中涌现出一大批生物启发式智能优化算法,为图像中 的圆检测和定位提供了鲁棒的优化工具[9,10]。受蛇形 缠绕机理的启发,本文提出了一种仿生优化算法,充 分利用重心算法的简易计算特点和蛇形缠绕过程,实 现灌注孔心的高精度、快速定位。 2. 灌装桶的图像特征 视觉控制的一个重要环节就是从图像中获取某 些特征信息。通常的做法是:先对图像进行预处理, 包括灰度变换、降噪等措施;然后对图像进行边缘轮 廓提取;最后在二值化处理图像基础上进行几何特征 识别。但是,几何特征识别方法会对一些无关区域、 一些无效曲线、一些冗余细节进行处理,导致计算量 大,影响定位速度。 图1所示为工业灌装桶模型。大的黑色圆孔为灌 注口,小的黑色圆孔为排气孔。由于光照和桶深的原 因,桶盖颜色一般相对较淡,而两个圆孔的图像则均 为深黑色。除此之外,在桶面还有一个表明航空用途 的工业标识以及模拟桶面划痕的两条虚线和一条随 机曲线。 从视觉效果看,灌注孔在图像中位于一个面积较 大的深黑色区域,这是视觉定位应该关注的重点区 域,而其它颜色所覆盖的图像区域则不需要考虑。如 果能够利用灌注孔的颜色特点,将图像的处理范围缩 小至黑色大圆周围,那么孔心定位就十分容易。 3. 基于蛇形缠绕机理的孔心定位算法 本节针对灌装桶的图像特征及孔心定位要求,提 出一种基于蛇形缠绕机理的灌注孔定位算法。 3.1. 蛇形缠绕及其力学模型 蛇为了能将身体固定在一个树干上或者防止猎 物逃脱,通常以缠绕的方式将目标包裹住(如图 2(a) 所示)。 蛇缠绕猎物可分为“施力挤压”和“姿态调整” 两个主要步骤。将蛇缠绕在猎物身上的附着力,分解 径向分量和轴向分量。轴向力用于防止猎物滑脱,径 Figure 1. The planform of filling barrel 图1. 灌装桶俯视示意图 (a) (b) (c) Figure 2. Force model of snake-enlacing: (a) The shape of snake-enlacing; (b) The model of suspended sand-table; (c) The force sketch map of enlacing section 图2. 蛇形缠绕的力学模型:(a) 蛇形缠绕姿态;(b) 沙盘悬挂模型;(c) 缠绕截面受力示意图 Copyright © 2013 Hanspub 31 ![]() 蛇形缠绕机理及其在视觉定位中的应用 向力可防止猎物躯体扭转。当蛇施力挤压时,会使得 猎物躯体和蛇身相对变形,能够有效增加轴向摩擦 力;当猎物能够转动躯体时,蛇则重新调整缠绕姿态, 寻找新的着力点,直至猎物不再转动为止。 我们知道,当径向压力越大时,轴向摩擦力也相 应越大。因此,蛇尽可能将猎物躯体挤压变小,也获 得较大的轴向摩擦力。 为了防止径向转动,除了施加一定量的作用力之 外,还涉及到一个力的平衡点问题。 图2(b)是沙盘悬挂模型。对于不规则的沙盘,不 论取何处悬挂(如图中的A、B、C、D点),其悬挂垂 线必经过沙盘重心O!也就是说:当力的作用线通过 重心时,物体不会发生转动(关于沙盘的力学分析已有 较多的参考文献,这里不再赘述)。 图2(c)是蛇形缠绕的截面受力示意图。图中 A、 B、C、D、E点为蛇身与目标接触的着力点,ℓa、ℓb、 ℓc、ℓd、ℓe分别是力的作用线方向。从力的平衡关系 看,当各力的作用线交于一点 O时,受力系统处于一 种最稳定状态,从而有效地防止猎物进行扭转。这就 是蛇缠绕猎物所希望达到的一种理想力学平衡状态。 显然,蛇缠绕猎物时的径向受力情况通过沙盘模 型的力学系统得到很好地解释。 蛇缠绕猎物的过程,其实也就是一个寻找动态重 心的过程。一旦力学重心O满足: 1 1 N ii i oN i i F F x x (1) (式中,为第 i个受力点的位置,Fi为第 i个受力点 处的缠绕力, N为受力点的个数)。物体达到一个稳定 的平衡状态,缠绕过程也就结束。 i x 3.2. 孔心定位仿生算法设计 在自动灌装系统中,孔心位置需要从视频图像中 进行获取。从图1所示的图像特征看,就是要获取大 块黑色像素的中心(即重心)位置。由于蛇的缠绕过程 可视为动态寻找力学重心过程,因此,可将蛇的缠绕 行为及其力学机制用于孔心定位过程。 为了便于算法描述,将蛇缠绕猎物分为“准备缠 绕”、“挤压目标”、“调整姿态”以及“判断是否成功” 四个环节(如图 3所示)。利用蛇形缠绕的四个环节进 开始 停止 目标定位? 缠绕准备 挤压目标 调整姿态 图像预处理 缩小图像区域 寻找重心 孔心定位 孔心定位 结束 Figure 3. The flow chart of snake-enlacing and positioning filling hole 图3. 蛇形缠绕与孔心定位流程图 行图像的孔心定位时,其功能和算法处理分别如下: 1) 准备缠绕——图像预处理 为尽可能少地使用乘、除、开方、指数等运算, 进行图像预处理时,直接将像素的 R、G、B三元色 求和,这样就得到了一个0~3 × 255之间的灰度值, 然后通过阈值分割,得到一个二值图像,避免了常规 灰度变换中的三个乘法运算以及二值化过程中的灰 度统计特征计算。必须指出的是:此种灰度变换方法 虽然不符合视觉效果,但却能对无效图像信息进行快 速过滤,能够确保灌注孔色彩变换后的唯一性。 2) 挤压目标——缩小图像范围 要利用重心法确定灌注孔的孔心,先必须将图像 处理范围限制在灌注孔周围。对于原始图像而言,其 黑色像素的重心并不在灌注孔的中心,因此,图像处 理范围应由最初的整幅图像范围慢慢缩小,同时伴随 着所选区域的重心位置变化,逐渐向孔心移动。 由蛇的“挤压目标”所引起的目标变形或缩小现 象,启发我们设计一个区域收缩算法,即:将原图像 进行长度和宽度压缩,并以重新计算得到的孔心位置 为几何中心,建立一个缩小的矩形图像区域(为了简化 计算,矩形可以是正方形)。新的孔心位置(或黑色像 素的重心)计算将在缩小后的图像区域内进行。 3) 调整姿态——重新计算重心 蛇进行姿态调整的目的,就是在目标身上寻找新 的受力点,使得合力通过平衡点O。当所选定的图像 区域发生改变后,其区域内的黑色像素位置也随之不 同。黑色像素的不同位置可视为蛇在目标身上的受力 点。算法将根据黑色像素的分布情况,重新计算其重 Copyright © 2013 Hanspub 32 ![]() 蛇形缠绕机理及其在视觉定位中的应用 心位置。 4) 判断是否定位成功 当重心位置不再发生改变时,可认为定位成功, 否则返回第 2环节,在新的重心位置处缩小图像范围, 重新进行孔心定位。 基于蛇形缠绕的孔心定位流程如图3所示。 为了能利用式(1)计算图像中黑色像素的重心位 置,将黑色像素所表示的“作用力”视为“1”,则在 一个迭代周期内,孔心位置计算只需使用了 N次加法 运算和一次除法运算。因此,本文算法的计算复杂性 小、耗时的运算少。 为了估算灌注孔半径,可以以黑色像素的个数 S 作为圆孔面积,则圆孔半径可用公式 πrs进行估 计。 3.3. 算法测试 为了测试本文算法的有效性和鲁棒性,以图 1所 示图片为测试对象。测试平台:HP-Compag nc4400 笔记本,内存:1 G主频:1.66 GHz,软件:Matlab(V7.8)。 在本文算法中,图像范围的缩小速度 = 0.65,算 法迭代 5次之后,计算搜索范围内的黑色像素个数, 作为圆孔面积,用于计算圆孔半径,并进行最后一次 孔心位置校正。为了测试算法的抗干扰能力,加入均 值为 0、方差 0.01 的椒盐噪声,模拟不确定因素对成 像结果的干扰,并进行对比实验。 图4是本文算法的孔心定位过程。图中蓝色虚线 方框表示每次迭代过程中的图像处理范围,红色“+” 字为搜索范围中的重心位置。由图中搜索过程可以看 出,图像处理范围逐渐缩小至灌注孔周围。 表1是孔心迭代搜索过程和孔径计算结果。由表 中结果可以看出,是否进行图像滤波并不影响本文算 法的孔心定位结果,但影响孔径的计算精度,这是因 为噪声会影响灌注口黑色像素个数,从而影响灌注孔 的面积计算,导致圆孔半径存在误差。当图像加入椒 盐噪声干扰后,如果不进行滤波处理,计算得到的孔 径有近 4%的误差;经过滤波之后,误差只有 0.4%, 精度提高了10 倍。 图像的连通标识方法是根据像素的连结关系,对 不同区域进行标识[11,12],有利于发现不同属性的图像 区域。由灌装桶的图像特征可以看出,灌注孔或排气 孔的像素均为黑色,经过二值化之后,分别形成一个 独立的特征区域,求取该区域的重心就可以得到孔心 位置。在 Matlab 软件中提供了一个Regionprops函数, 可以实现对图像标注和重心计算。 在圆的特征提取算法中,Hough 变换方法最流行 的一个图像处理算法。本文方法还将和Hough 变换方 法进行定位精度和定位速度方面的性能比较。 100 200 300 400 100 200 300 400 Figure 4. The search process of filling hole 图4. 灌注孔搜索过程 Table 1. The recursive process of centroid and the calculation of filling-hole radius 表1. 重心迭代过程及灌注孔半径计算 无噪声图像 有噪声图像 迭代序号 无滤波 有滤波 无滤波 有滤波 1 (252.4, 250.7) (253.4, 252.9) (252.5, 250.6) (256.2, 254.4) 2 (297.6, 288.4) (253.8, 253.1) (298.2, 288.2) (312.6, 301.1) 3 (330.9, 302.6) (306.7, 298.1) (331.9, 302.4) (364.8, 310.6) 4 (366.9, 310.6) (378.5, 309.6) (367.5, 310.6) (379.2, 309.5) 5 (380.8, 309.9) (380.9, 309.9) (380.9, 309.9) (380.8, 309.9) 6 (380.9, 309.9) (380.9, 309.9) (380.9, 309.9) (380.8, 309.9) 灌注孔半径 23.76 23.74 22.94 23.66 Copyright © 2013 Hanspub 33 ![]() 蛇形缠绕机理及其在视觉定位中的应用 表2给出了图 1所示图像的处理结果。三种方法 在有噪声和无噪声的条件下,定位精度均相同,但处 理速度却差异很大:Hough 变换方法处理速度最慢, Regionprops 法比 Hough 法快2.5 倍,本文方法的处理 速度则是 Regionprops 法的8倍多。 必须指出的是:利用本文方法自动定位到孔心位 置,而 Regionprops法和Hough 法得到的孔心位置往 往同时有多个。由于孔心位置难以自动识别,因此在 Regionprops 法和 Hough法中,通过人工挑选,从实 验数据提取孔心位置。实验所显示的时间不包括人工 筛选时间。 4. 灌装桶视觉定位应用实例 工业灌装桶是一种常见的容器,外形有方形、也 有圆形,但灌装口几乎都是圆形。在自动灌装环境下, 通常对灌装口进行俯视拍照,通过图像分析,提取灌 装口的孔心坐标,然后,借助于牵引装置,将灌装喷 枪移至孔心位置实施灌装作业。 为了测试本文算法在工业灌装桶上的定位性能, 图5给出了三种灌装桶俯视实拍图片。三个工业桶的 桶面图像特征各不相同:方形桶和偏心桶1的桶面纹 理清晰,有较好的色彩对比度,而偏心桶2则为一陈 旧工业桶,桶面污渍较多,色差小,图像纹理复杂。 图6是本文算法对三幅灌装桶图像的孔心定位过 程。由二值化后的黑白图像可以看出,经过图像二值 化后,桶面特征十分简单,灌注孔的黑色像素在整个 图像中占主导地位。因此,通过重心迭代计算后,黑 色像素的重心就会逐渐定位在孔心位置。 Table 2. The performance comparison of several algorithms for filling-hole positioning 表2. 几种孔心定位算法性能对比 本文方法 Regionprops法 Hough法 图像尺寸 图像类型 孔心位置 时间(s) 孔心位置 时间(s) 孔心位置 时间(s) 无噪声 (380.9, 309.9) 0.087 (380.9, 309.9) 0.717 (380.9, 309.9) 1.882 477 × 477 有噪声 (380.9, 309.9) 0.085 (380.9, 309.9) 0.727 (380.9, 309.9) 1.822 (a) (b) (c) Figure 5. The pictures of filling barrel: (a) Rectangle barrel; (b) Eccentric barrel 1; (c) Eccentric barrel 2 图5. 灌装桶实物照片:(a) 方形桶;(b) 偏心桶 1;(c) 偏心桶 2 100 200300 50 100 150 200 250 300 200400600800 1000 200 400 600 800 1000 5001000 1500 200 400 600 800 1000 1200 (a) (b) (c) Figure 6. The positioning process of the proposed method: (a) Rectangle barrel; (b) Eccentric barrel 1; (c) Eccentric barrel 2 图6. 本文方法的定位过程:(a) 方形桶;(b) 偏心桶 1;(c) 偏心桶 2 Copyright © 2013 Hanspub 34 ![]() 蛇形缠绕机理及其在视觉定位中的应用 Table 3. The performance comparison of several algorithms or filling-hole positioning f 表3. 几种孔心定位算法性能对比 本文方法 Regionprops法 Hough法 图像尺寸 孔心位置 时间(s) 孔心位置 时间(s) 孔心位置 时间(s) 方形桶:310 × 308 (217.2, 217.9) 0.042 (217.9, 217.3) 0.384 (218.4, 217.4) 0.708 偏心桶 1:1149 × 1142 (161.5, 632.8) 0.417 (161.1, 633.5) 0.645 (157.0, 633.4) 19.32 偏心桶 2:1503 × 1200 (237.6, 873.4) 0.604 (236.3, 873.0) 0.753 (239.0, 876.0) 76.61 利用连通区域标识法对上述图像进行标识时,会 因为特征区域较多而带来较长的标识时间和重心计 算时间。如果二值化后的图像纹理越简单,则二者的 处理时间越相近。在方形桶的二值化图像中,特征区 域较多,而偏心桶 1和偏心桶 2的二值化图像则相对 简单。因此,利用 Regionprops 法进行方形桶定位时, 所花时间明显要高于本文方法,而处理两个偏心桶 时,二者定位时间则相差不是太大(如表 3所示)。 Hough 变换方法在提取图像中的圆环特征时,耗 时明显高于前两种方法,而且与图像尺寸以及图像纹 理的复杂程度成正比。另外,Hough 变换方法利用的 是曲线的边缘特征,而不像重心法利用区域多像素综 合特征,因此,Hough 变换方法在计算圆半径和圆心 位置时,对像素的分布较为敏感,从而影响定位精度。 5. 结束语 在图像的圆特征提取方面,已经提出了许多算 法。但是,这些通用的图像处理方法会产生耗时的计 算过程,因而在工业应用中不得不采用成本较高的高 速处理器。 本文模仿蛇的缠绕机制,提出了一种孔心仿生定 位方法。该算法只需加、减、乘、除运算,能在 6次 迭代之后实现灌注口的孔心准确定位,计算速度极 高,对于图像噪声具有很高的鲁棒性;由于只需要设 置一个二值化阈值和收敛速度,操作简单,能方便地 在价格低廉的单片机上运行。 参考文献 (References) [1] 黄永林, 叶玉堂. 一种新的快速 Hough 变换圆检测方法[J]. 电子测量与仪器学报, 2010, 24(9): 837-841. [2] 金燕, 周勇亮, 陈彪. 随机圆检测算法的采样约束和参数校 准策略[J]. 光电工程, 2012, 39(5): 85-90. [3] X. Zhang, L. M. Zhu. Alleviating the computational load of the probabilistic algorithms for circles detection using the connec- tivity represented by graph. Machine Vision and Applications, 2011, 22(4): 651-662. [4] J. N. Liu, G. H. Zeng and J. P. Fan. Fast local self-similarity for describing interest regions. Pattern Recognition Letters, 2012, 33(9): 1224-1235. [5] 霍建亮, 曾翎, 王德胜, 曾军. 基于最小二乘法改进的随机圆 检测算法[J]. 光电工程, 2011, 38(5): 145-150. [6] K. Kanatani, P. Rangarajan. Hyper least squares fitting of circles and ellipses. Computational Statistics and Data Analysis, 2011, 55(6): 2197-2208. [7] 柳成, 崔杨. 基于 PLC和DSP 的全自动液体灌装机的设计[J]. 机床与液压, 2012, 40(8): 1-3. [8] 董树巍. 基于机器视觉的全自动定值灌装系统[J]. 衡器, 2011, 40(11): 29-32. [9] N. Dong, C.-H. Wu, W.-H. Ip, Z.-Q. Chen, C.-Y. Chan and K.-L. Yung. An opposition-based chaotic GA/PSO hybrid algorithm and its application in circle detection. Computers and Mathe- matics with Applications, 2012, 64(6): 1886-1902. [10] T.-H. Sun. Applying particle swarm optimization algorithm to roundness measurement. Expert Systems with Applications, 2009, 36(2): 3428-3438. [11] 郭晓宇, 平西建, 周林等. 基于 连通区域的传真图像版面分 割与分类算法[J]. 计算机应用研究, 2012, 29(8): 3198-3200. [12] L. F. He, Y. Y. Chao, K. J. Suzuki and K. S. Wu. Fast connected- component labeling. Pattern Recognition, 2009, 42(9): 1977-1987. Copyright © 2013 Hanspub 35 |