《基于halcon的模板匹配方法总结--蓝云杨的机器视觉之路》由会员分享,可在线阅读,更多相关《基于halcon的模板匹配方法总结--蓝云杨的机器视觉之路(10页珍藏版)》请在金锄头文库上搜索。
1、基于基于 HALCONHALCON 的模板匹配方法总结的模板匹配方法总结-蓝云杨的机器视觉之路蓝云杨的机器视觉之路蓝云杨的机器视觉之路 http:/www.china- 相册 标签机器视觉(64)图像处理(11)视频压缩(12)小波分析(5)三峡(3)生活随笔(32)HALCON(7)编程感悟(18)哲思慧语(32)基于 HALCON 的模板匹配方法总结2006-8-16 16:34:004推荐很早就想总结一下前段时间学习 HALCON 的心得,但由于其他的事情总是抽不出时间。去年有过一段时间的集中学习,做了许多的练习和实验,并对基于 HDevelop 的形状匹配算法的参数优化进行了研究,写了
2、一篇基于 HDevelop 的形状匹配算法参数的优化研究文章,总结了在形状匹配过程中哪些参数影响到模板的搜索和匹配,又如何来协调这些参数来加快匹配过程,提高匹配的精度,这篇 paper 放到了中国论文在线了,需要可以去下载。德国 MVTec 公司开发的 HALCON 机器视觉开发软件,提供了许多的功能,在这里我主要学习和研究了其中的形状匹配的算法和流程。HDevelop 开发环境中提供的匹配的方法主要有三种,即 Component-Based、Gray-Value-Based、Shape-Based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配。这三种匹配的方法各具特
3、点,分别适用于不同的图像特征,但都有创建模板和寻找模板的相同过程。这三种方法里面,我主要就第三种基于形状的匹配,做了许多的实验,因此也做了基于形状匹配的物体识别,基于形状匹配的视频对象分割和基于形状匹配的视频对象跟踪这些研究,从中取得较好的效果,简化了用其他工具,比如 VC+来开发的过程。在 VC 下往往针对不同的图像格式,就会弄的很头疼,更不用说编写图像特征提取、模板建立和搜寻模板的代码呢,我想其中间过程会很复杂,效果也不一定会显著。下面我就具体地谈谈基于 HALCON 的形状匹配算法的研究和心得总结。1. Shape-Based matching 的基本流程HALCON 提供的基于形状匹配
4、的算法主要是针对感兴趣的小区域来建立模板,对整个图像建立模板也可以,但这样除非是对象在整个图像中所占比例很大,比如像视频会议中人体上半身这样的图像,我在后面的视频对象跟踪实验中就是针对整个图像的,这往往也是要牺牲匹配速度的,这个后面再讲。基本流程是这样的,如下所示: 首先确定出 ROI 的矩形区域,这里只需要确定矩形的左上点和右下点的坐标即可,gen_rectangle1()这个函数就会帮助你生成一个矩形,利用 area_center()找到这个矩形的中心; 然后需要从图像中获取这个矩形区域的图像,reduce_domain()会得到这个 ROI;这之后就可以对这个矩形建立模板,而在建立模板之
5、前,可以先对这个区域进行一些处理,方便以后的建模,比如阈值分割,数学形态学的一些处理等等; 接下来就可以利用 create_shape_model()来创建模板了,这个函数有许多参数,其中金字塔的级数由 Numlevels指定,值越大则找到物体的时间越少,AngleStart 和 AngleExtent决定可能的旋转范围,AngleStep 指定角度范围搜索的步长;这里需要提醒的是,在任何情况下,模板应适合主内存,搜索时间会缩短。对特别大的模板,用 Optimization 来减少模板点的数量是很有用的;MinConstrast 将模板从图像的噪声中分离出来,如果灰度值的波动范围是 10,则
6、MinConstrast 应当设为 10;Metric 参数决定模板识别的条件,如果设为use_polarity ,则图像中的物体和模板必须有相同的对比度;创建好模板后,这时还需要监视模板,用inspect_shape_model()来完成,它检查参数的适用性,还能帮助找到合适的参数;另外,还需要获得这个模板的轮廓,用于后面的匹配,get_shape_model_contours()则会很容易的帮我们找到模板的轮廓; 创建好模板后,就可以打开另一幅图像,来进行模板匹配了。这个过程也就是在新图像中寻找与模板匹配的图像部分,这部分的工作就由函数 find_shape_model()来承担了,它也拥
7、有许多的参数,这些参数都影响着寻找模板的速度和精度。这个的功能就是在一幅图中找出最佳匹配的模板,返回一个模板实例的长、宽和旋转角度。其中参数 SubPixel 决定是否精确到亚像素级,设为interpolation ,则会精确到,这个模式不会占用太多时间,若需要更精确,则可设为least_square,lease_square_high ,但这样会增加额外的时间,因此,这需要在时间和精度上作个折中,需要和实际联系起来。比较重要的两个参数是 MinSocre 和Greediness,前一个用来分析模板的旋转对称和它们之间的相似度,值越大,则越相似,后一个是搜索贪婪度,这个值在很大程度上影响着搜索
8、速度,若为 0,则为启发式搜索,很耗时,若为 1,则为不安全搜索,但最快。在大多数情况下,在能够匹配的情况下,尽可能的增大其值。 找到之后,还需要对其进行转化,使之能够显示,这两个函数 vector_angle_to_rigid()和affine_trans_contour_xld()在这里就起这个作用。前一个是从一个点和角度计算一个刚体仿射变换,这个函数从匹配函数的结果中对构造一个刚体仿射变换很有用,把参考图像变为当前图像。其详细的流程图和中间参数,如下图所示:(无法上传)2. 基于形状匹配的参数关系与优化在 HALCON 的说明资料里讲到了这些参数的作用以及关系,在上面提到的文章中也作了介
9、绍,这里主要是重复说明一下这些参数的作用,再强调一下它们影响匹配速度的程度;在为了提高速度而设置参数之前,有必要找出那些在所有测试图像中匹配成功的设置,这时需考虑以下情况: 必须保证物体在图像边缘处截断,也就是保证轮廓的清晰,这些可以通过形态学的一些方法来处理; 如果 Greediness 值设的太高,就找不到其中一些可见物体,这时最后将其设为 0 来执行完全搜索; 物体是否有封闭区域,如果要求物体在任何状态下都能被识别,则应减小 MinScore 值; 判断在金字塔最高级上的匹配是否失败,可以通过 find_shape_model()减小 NumLevels 值来测试; 物体是否具有较低的对
10、比度,如果要求物体在任何状态下都能被识别,则应减小 MinContrast 值; 判断是否全局地或者局部地转化对比度极性,如果需要在任何状态下都能被识别,则应给参数 Metric 设置一个合适的值; 物体是否与物体的其他实例重叠,如果需要在任何状态下都能识别物体,则应增加 MaxOverlap 值; 判断是否在相同物体上找到多个匹配值,如果物体几乎是对称的,则需要控制旋转范围;如何加快搜索匹配,需要在这些参数中进行合理的搭配,有以下方法可以参考: 只要匹配成功,则尽可能增加参数MinScore 的值; 增加 Greediness 值直到匹配失败,同时在需要时减小 MinScore 值; 如果有
11、可能,在创建模板时使用一个大的 NumLevels,即将图像多分几个金字塔级; 限定允许的旋转范围和大小范围,在调用 find_shape_model()时调整相应的参数; 尽量限定搜索 ROI 的区域;除上面介绍的以外,在保证能够匹配的情况下,尽可能的增大 Greediness 的值,因为在后面的实验中,用模板匹配进行视频对象跟踪的过程中,这个值在很大程度上影响到匹配的速度。当然这些方法都需要跟实际联系起来,不同图像在匹配过程中也会有不同的匹配效果,在具体到某些应用,不同的硬件设施也会对这个匹配算法提出新的要求,所以需要不断地去尝试。在接下来我会结合自己做的具体的实验来如何利用 HALCON
12、 来进行实验,主要是在视频对象分割和视频对象的跟踪方面。待续_蓝云杨 | 阅读全文(1753) | 回复(6) | 引用通告(0) | 编辑标签:HALCON 模板匹配 上一篇:暑假编程总结(下) 下一篇:从指甲推断你是否健康 Re:基于 HALCON 的模板匹配方法总结2007-4-16 12:12:00偶然看到您的文章,我现在也在做这方面,刚刚接触,还很陌生,对您的这篇文章基于 hdevelop 的形状匹配算法参数的优化研究很感兴趣,能否发到我邮箱里,谢谢! yongsing | 个人主页 | 引用 | 返回 | 删除 | 回复Re:基于 HALCON 的模板匹配方法总结2006-12-2
13、6 11:11:00文章写得还行,有一点要说明,halcon 中三种匹配方法,component-based 和 shape matching 用的都是一个模板匹配方法,只不过模板匹配策略不一样,前面得适用于多个目标具有一定得空间位置关系,halcon 博大精深,很多东西需要实战才能真正体会得到,希望呢再接再厉,顺便说一下,有什么 halcon 得问题可以发信到我得邮箱 ,大恒得那些所谓 halcon 技术支持人员都不是学图像处理出身得,他们自己都用得不是很熟。mvtec(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复Re:基于 HALCON 的模板匹配方法总结2006-10-2
14、3 22:34:00我们公司正准备往机器视频方向发展,所以很希望能和各位交流.我的 MSN:QQ:26914633希望能结识大家肖(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复Re:基于 HALCON 的模板匹配方法总结2006-8-22 11:29:00对您的这篇文章基于 HDevelop 的形状匹配算法参数的优化研究很感兴趣,能否发到我邮箱里,谢谢!涟漪(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复Re:基于 HALCON 的模板匹配方法总结2006-8-22 11:28:00您好,无意中看到您的 blog,发现我们的研究内容很相近,希望有机会得到您的指教,
15、我在北航做机器视觉。还有楼上那位武大的研究生,希望能共同探讨问题,已经加你 msn 啦,我的 qq:545570175。涟漪(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复Re:基于 HALCON 的模板匹配方法总结2006-8-16 17:16:00你好,我是武汉大学计算机系的博士研究生,目前也在做图像与视频的研究,当前关注的是 2D 图像的分割,以及matting ,composition , 希望做到一定阶段能够将图像的方法应用到视频上我们实验室与浙大 CAD&CG 国家重点实验室有一定联系,希望能够与你交流对了,忘了说一句,我也是宜昌人,呵呵我的 MSN: 清玄(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复发表评论:昵称:密码: 主页:标题:公告欢迎您走进我的博客,图像处理与计算机视觉是我的研究方向,成为机器视觉领域的专家是我的理想,机器视觉的进步源于孜孜不倦地追求,愿与您携手共进! fusen_ 时间记忆日一二三四五六12345678910111213141516171819202122232425262728293031最新日志高速自动光学检测(AOI)系统的先进这 16 句话应该看看最大化