基于HALCON的视频对象分割及跟踪方法总结

合集下载

Halcon标定文件资料地生成及标定板规格

Halcon标定文件资料地生成及标定板规格

Halcon标定文件的生成Halcon标定文件的生成图一Halcon标定文件的生成,需要有以下几个步骤:1.创建一个标定数据模板,由create_calib_data算来完成。

2.指定相机的类型,初始化相机内部参数,由set_calib_data_cam_param算子来完成。

3.指定标定板的描述文件,由set_calib_data_calib_object算子完成。

4.收集观察数据,有算子set_calib_data_observ_points完成。

也就是收集标定板上圆点的中心坐标,跟各个校正板的位置姿态。

5.配置校正过程。

由算子set_calib_data完成。

6.将数据整合进行标定计算。

calibrate_cameras7.获得标定参数。

get_calib_data8.记录标定参数,write_cam_parStartCamPar :=[0.016, 0, 0.0000074, 0.0000074, 326, 247, 652,494]解释一下这个数组的意思。

面阵相机有14或18个参数(根据想相机的畸变模式),对于线阵相机有17个参数。

这些参数可以分开为内部相机参数、外部相机参数。

面阵相机(division模式):Focus(焦距):远焦镜头镜头焦距的长度Kappa:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高面阵相机(polynomia模式):Focus(焦距):远焦镜头镜头焦距的长度K1, K2, K3, P1,P2:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高线阵相机不做具体介绍Halcon标定板规格2011-12-23 12:56 68人阅读评论(1) 收藏举报图一:30*30 规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 30mm*30mm内边框长度: 28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径(0.9375)黑色圆点半径: 0.9375mm圆点中心间距: 3.75mm裁剪宽度: 30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm 边角:由黑色外边框向内缩进一个中心边距的长度40*40 规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 40mm*40mm内边框长度: 37.5mm*37.5mm 即:黑色边框线宽为一个圆点半径(0.125)黑色圆点半径: 0.125mm圆点中心间距: 5mm裁剪宽度: 21mm*21mm 即:由黑色边框向外延伸0.5mm边角:由黑色外边框向内缩进一个中心边距的长度50*50 规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 50mm*50mm内边框长度: 46.875mm*46.875mm 即:黑色边框线宽为一个圆点半径(1.5625)黑色圆点半径: 1.5625mm圆点中心间距: 6.25mm裁剪宽度: 51.25mm*51.25mm 即:由黑色边框向外延伸0.625mm 边角:由黑色外边框向内缩进一个中心边距的长度60*60 规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 60mm*60mm内边框长度: 56.25mm*56.25mm 即:黑色边框线宽为一个圆点半径(1.875)黑色圆点半径: 1.875mm圆点中心间距: 7.5mm裁剪宽度: 61.5mm*61.5mm 即:由黑色边框向外延伸0.75mm边角:由黑色外边框向内缩进一个中心边距的长度Halcon如何制作标定板分类:Halcon 2011-12-23 12:51 151人阅读评论(2) 收藏举报图1上图即为我自行制作的标定板的图样。

如何应用计算机视觉技术进行视频分割与标注

如何应用计算机视觉技术进行视频分割与标注

如何应用计算机视觉技术进行视频分割与标注视频分割与标注是计算机视觉技术的重要应用之一。

通过视频分割与标注,可以将视频中的物体或场景进行分割,并进行详细的标注,为后续的视频处理和分析提供基础。

本文将介绍如何应用计算机视觉技术进行视频分割与标注,并探讨其在各个领域的应用。

首先,我们来了解一下视频分割与标注的基本概念。

视频分割是指将视频序列按照时间和空间的特征进行划分,将其分割成不同的区域或物体。

而视频标注则是对视频中的每个区域或物体进行详细的描述和标记,例如位置、形状、颜色等信息。

计算机视觉技术在视频分割和标注中发挥关键作用。

首先,视频分割可以通过计算机视觉技术中的目标检测、图像分割和实例分割算法实现。

目标检测算法可以在视频中识别出感兴趣的物体,图像分割算法可以将图像中的像素划分成不同的区域,而实例分割算法则可以将图像中的每个物体都分割出来。

然后,通过对分割结果进行标注,可以为每个区域或物体赋予相应的标签和属性。

在实际应用中,视频分割与标注可以应用在许多领域。

首先是视频编辑和剪辑领域。

通过对视频进行分割和标注,可以方便地对视频进行剪辑和处理,去除不需要的部分或者合并不同视频段落。

其次是视频监控和安防领域。

通过对监控视频进行分割和标注,可以准确地检测和识别出监控区域中的物体或人员,实现智能化的监控和报警系统。

此外,视频分割与标注还可以应用在医学影像分析、交通监管、智能驾驶等领域。

针对视频分割与标注的具体实现,可以采用多种计算机视觉技术和算法。

首先是目标检测算法,如基于深度学习的目标检测算法YOLO、Faster R-CNN等。

这些算法可以在视频中实时检测出多个物体并跟踪它们的位置。

其次是图像分割算法,如GrabCut、MeanShift等。

这些算法可以将图像中的像素进行分割,形成感兴趣的区域。

最后是实例分割算法,如Mask R-CNN。

该算法不仅可以分割出物体,还可以准确地标记出物体的轮廓和边界。

此外,视频分割与标注还可以结合其他计算机视觉技术进行进一步的处理和分析。

视频目标跟踪和分割汇报总结

视频目标跟踪和分割汇报总结

SiamMask的refinemodule网络
SharpMask网络结构: 可以看到自下而上的过程是传统的前向CNN网络输出 一个粗略的mask,然后需要逐层融合low-level的特征 来找到精确的物体边缘等信息。 refinement模块的作用是逆转pooling的作用,输入上 层传下来的mask encoding和自下而上传递过来的匹配 的features map,并且融合两个过程的信息来生成一个 新的mask encoding,有着两倍的空间分辨率。这个过 程一直持续到patch的全部分辨率被恢复,然后最后的 输出就是精细的object mask。
YOLACT 是实例分割中最快的算法(即FPS最大)。
网络结构
典型的基于anchor的目标检测器 有预测c个类别的置信分数和预测 bb的4个坐标两个分支,而这里的 需要增加k个mask系数,每个系数 对应每个模版,要预测4+c+k个数。
为了产生实例的 mask将两个分支 使用线性组合的 方法进行融合,之 后对组合结果使用 sigmoid非线性化 获得最终的mask。
high-to-low process的目标是生成低分辨 率和高分辨率的表征,low-to-high process 的目标是生成高分辨率的表征。
网络结构
(1)并行连接高分辨率到低分辨率的 子网,而不是像大多数现有解决方 案那样串行连接。因此,能够保持 高分辨率,而不是通过一个低到高 的过程恢复分辨率,预测的热图可 能在空间上更精确。
并与预测的b-box进行裁剪。 1)网络学会自行定Y位O实LA例CmT:asYk,ou视On觉ly、L空oo间k A和t 语Co义eff上ic相ien似Ts的实例将在模版中呈现不同; 模版mask的数量不依赖于类别数量,YOLACT学习的是一种分布式表示,每个实例有多个模版原型组合分割, 且在不同类别之间共享; 2)分布式表示导致M模S R版-C出N现N应一该些是情实况例:分一割些m模A版P在最空高间的上算划法分;开了图像,一些定位实例,一些检测实例的轮廓, 一些编码对位置敏感的方向图谱,可能同时也会划分图像。

模板匹配,ncc

模板匹配,ncc

竭诚为您提供优质文档/双击可除模板匹配,ncc篇一:ncc计算公式ncc是基于相似度度量的匹配算法,因为对线性光照不敏感,在目标识别和工业检测领域得到了广泛的应用。

传统的ncc算法计算公式如下:{[i(x+i,y+j)-i(x,y)][t(i,j)-t]}mnncc(x,y)=其中i为目标图像;t为模板图像,模板大小为m*n篇二:基于halcon的模板匹配方法总结基于halcon的模板匹配方法总结分类:halcon学习20xx-06-2616:0247人阅读评论(0)收藏举报德国mVtec公司开发的halcon机器视觉开发软件,提供了许多的功能,在这里我主要学习和研究了其中的形状匹配的算法和流程。

hdevelop开发环境中提供的匹配的方法主要有三种,即component-based、gray-Value-based、shape-based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配。

这三种匹配的方法各具特点,分别适用于不同的图像特征,但都有创建模板和寻找模板的相同过程。

这三种方法里面,我主要就第三种-基于形状的匹配,做了许多的实验,因此也做了基于形状匹配的物体识别,基于形状匹配的视频对象分割和基于形状匹配的视频对象跟踪这些研究,从中取得较好的效果,简化了用其他工具,比如Vc++来开发的过程。

在Vc下往往针对不同的图像格式,就会弄的很头疼,更不用说编写图像特征提取、模板建立和搜寻模板的代码呢,我想其中间过程会很复杂,效果也不一定会显著。

下面我就具体地谈谈基于halcon的形状匹配算法的研究和心得总结。

1.shape-basedmatching的基本流程halcon提供的基于形状匹配的算法主要是针对感兴趣的小区域来建立模板,对整个图像建立模板也可以,但这样除非是对象在整个图像中所占比例很大,比如像视频会议中人体上半身这样的图像,我在后面的视频对象跟踪实验中就是针对整个图像的,这往往也是要牺牲匹配速度的,这个后面再讲。

Halcon基础知识总结(一文学会halcon基础操作,总结自超人视觉)

Halcon基础知识总结(一文学会halcon基础操作,总结自超人视觉)

Halcon基础知识总结(⼀⽂学会halcon基础操作,总结⾃超⼈视觉)此⽂根据《超⼈视觉 halcon启蒙班》写成,结合图⽚和例程,直观简单地介绍halcon的最基本操作基础知识光学:⼏何光学,物理光学数学:导数为主的⾼等数学,矩阵论五种需求:1.识别定位2.符号识别:⼀⼆维码,OCR3.测量需求4.缺陷需求(最常见,难度最⼤)5.⼿眼标定和抓取(结合运动控制)图像处理⼀般思路1.采集2.预处理拉开灰度⼏何变换去噪:中值滤波,均值滤波,⾼斯滤波抠图3.图像分割⼆值化形态学特征选择ps:Halcon⾥区域和图像是不同概念4.识别显⽰5.通信三⼤数据类型图像,区域,XLD灰度直⽅图勾选“阈值”将灰度值在”绿线和红线之间”的以选定颜⾊进⾏填充将把圈定的阈值范围内的直⽅图均匀拉伸释放到整个直⽅图轴上数组语法* Simple tuple operationsTuple1 := [1,2,3,4,5]Number := |Tuple1|SingleElement := Tuple1[3]Part := Tuple1[1:3]Copy := Tuple1[0:|Tuple1| - 1]运⾏结果读取图⽚的四种⽅法1. ⽂件 -> 读取图⽚2. Image Acquisition -> ⾃动检测接⼝(刷新设备)-> Direct show,从摄像头直接读图3. Image Acquisition -> 选择⽂件,从图像⽂件中读取4. Image Acquisition -> 选择路径,结合正则表达式读取路径下的图⽚PS:⽤Image Acquisition读取时记得点击代码⽣成摄像头抓取模式:在可视化 -> 更新窗⼝中调整同步采集:实时抓取,⼀直抓取异步采集:只等图⽚处理完后,grab_image才开始抓取PS:更多信息包括双相机采集,可以在案例 -> ⽅法 -> 图像采集设备中学习ROI(感兴趣区域)特征检测PS:⼆值化之后的区域虽然不连通,但仍然认为是⼀个区域。

5-HALCON_各种定位方法

5-HALCON_各种定位方法

模板参数-Optimization
相同环境下,Optimization取值不同时的运行时 间对比
◆ ◆ ◆ ◆ none point_reduction_low point_reduction_medium point_reduction_high 14.53 12.53 11.39 10.67 ms ms ms ms
◆ set_system('pregenerate_shape_models','true'/'false')
如果没有设置,默认为
◆ set_system('pregenerate_shape_models','false')
模板参数-Optimization
相同环境下,Optimization第二个参数取值不同时的运行时间对比
对比图太低
合适的对比度
对比度太高
模板参数-Contrast
参数Contrast不仅仅是对比度,根据数组元素数量不 同,其意义不同
◆ 1个元素时:128,对比度,直接提取边缘 ◆ 2个元素时:[100, 128],表示使用磁滞分割来提取边缘 ◆ 3个元素时:[100, 128, 10],前两个参数同2,最后一个参数表 示所提取边缘的最小长度为10.
multiple_scales.dev
print_check.dev
96ms
113ms
13s
1.1s
40ms
13ms
44ms
13ms
因此,建议当内存较大,就选预创建的方式,如 果CPU速度快,就可以选另外方式。
模板参数-Metric
照明与成像
背景白色

基于HALCON的机器人视觉系统标定方法研究

基于HALCON的机器人视觉系统标定方法研究

基于HALCON的机器人视觉系统标定方法研究宋岳秦;卢军;孙姝丽【摘要】本文提出一种基于HALCON,可以较准确地求出斜切角的工业机器人视觉系统的标定方法.首先对摄相机采集的图片进行标定,从而获取摄像机的参数和位资;其次通过机械手标定得到图像坐标系与机械坐标系可进行相互换算的对应关系;最后将图像坐标系对应的点经过旋转平移转换到机械坐标系,可根据识别得到的像素位置去引导机械手抓取,实验结果表明该标定方法能够提高工业机器人视觉系统的精度、实用性强.【期刊名称】《南方农机》【年(卷),期】2018(049)020【总页数】3页(P46-48)【关键词】机器人标定;斜切角;机器视觉【作者】宋岳秦;卢军;孙姝丽【作者单位】陕西科技大学机电工程学院,陕西西安 710021;陕西科技大学机电工程学院,陕西西安 710021;陕西科技大学机电工程学院,陕西西安 710021【正文语种】中文【中图分类】TP242机器视觉标定是工业机器人的关键技术之一[1]。

摄像机标定是准确测量目标物体的必要过程,通过机器人视觉系统的标定,得到世界坐标系与图像坐标系之间的转换关系,从而可将被检测物体的像素坐标换算成物理坐标,并把结果传给机器设备使其能进行对应的移动。

机器人视觉系统的关键部分是图像处理,HALCON是德国Mvtec公司开发的图像处理软件[2],具有完善的图像处理库和机器视觉集成开发环境,提供了大量的函数库,包括Blob分析、形态学、几何定位、三维目标识别定位和立体视觉等。

1 视觉系统介绍机器视觉系统是利用机器代替人眼来做各种测量和判断,它是计算及科学的一个重要分支,综合了光学、机械、电子、计算机软硬件等方面的技术,涉及到计算机、图像处理、模式识别、人工智能、信号处理、光机电一体化等多个领域。

图像处理和模式识别等技术的快速发展,也大大地推动了机器视觉的发展[3],视觉系统的硬件主要由镜头、摄像机、图像采集卡、输入输出单元、控制装置构成。

halcon阈值分割后选取像素点最多的区域

halcon阈值分割后选取像素点最多的区域

一、介绍Halcon是一种广泛应用于机器视觉领域的软件工具,其强大的图像处理功能被许多行业广泛使用。

在图像处理过程中,阈值分割是一种常用的技术,它可以将图像中的目标物体与背景进行有效分离。

在阈值分割后,通常需要对分割后的区域进行进一步处理,本文将介绍如何利用Halcon软件选取阈值分割后像素点最多的区域。

二、阈值分割1.阈值分割原理阈值分割是将图像的灰度值转换为黑白像素的一种方法。

通过设定一个阈值,将原图像的灰度值与该阈值进行比较,大于阈值的灰度值设为白色,小于阈值的灰度值设为黑色,从而实现对图像的分割。

2.Halcon软件的阈值分割Halcon软件提供了丰富的图像处理工具,其中包括了灰度图像的阈值分割,用户可以自定义阈值或根据图像特性自动设定阈值。

通过Halcon软件的阈值分割工具,用户可以方便快捷地对图像进行分割操作。

三、选取像素点最多的区域1.获取区域像素数量在进行阈值分割后,图像将被分割为多个区域,每个区域都包含一定数量的像素点。

通过Halcon软件提供的区域处理工具,用户可以方便地获取每个区域的像素数量。

2.选取像素点最多的区域根据用户需求,可以通过编写Halcon脚本或使用Halcon提供的交互式工具,选取像素点最多的区域。

这一步是非常重要的,因为像素点最多的区域往往包含着图像中最主要的目标物体,例如产品零件、文档文字等。

3.区域特征分析选取像素点最多的区域后,可以进行进一步的区域特征分析,例如计算区域的面积、周长、中心坐标等。

这些特征分析结果将对后续的图像处理、物体识别等工作提供重要参考。

四、应用实例在电子制造业中,常常需要对芯片、电路板等产品进行质量检测。

通过Halcon软件的阈值分割和选取像素点最多的区域功能,可以有效地实现对产品表面的缺陷检测。

另外,在智能交通领域,利用Halcon软件对车载摄像头拍摄的道路图像进行阈值分割和区域分析,可以实现车辆和行人的识别与跟踪。

五、总结Halcon软件提供了强大的图像处理工具,阈值分割和选取像素点最多的区域是其中的重要功能之一。

Halcon中轮廓分割segment

Halcon中轮廓分割segment

Halcon中轮廓分割segment在用Halcon进行图像处理的过程中,经常需要对提取出的轮廓进行分割,将轮廓分为直线段、圆(或圆弧)、椭圆弧不同的段,轮廓分割最常用的算子是segment_contours_xld。

segment_contours_xld——Segment XLD contours into line segments and circular or elliptic arcs(将一个XLD轮廓分割为直线段、圆(圆弧)、椭圆弧。

)signature(语法):segment_contours_xld(Contours: ContoursSplit: Mode, SmoothCont, MaxLineDist1, MaxLineDist2 : )参数说明:Contours 需要进行分割的轮廓。

ContoursSplit 分割后的轮廓tuple。

Mode 分割轮廓的方式,可以选择'lines'(使用直线段分割), 'lines_circles'(使用直线段和圆(弧)分割), 'lines_ellipses'(使用直线段和椭圆弧分割)。

SmoothCont 轮廓平滑的参数,可以抑制在折线逼近过程中过短的线段,能更加鲁棒的逼近圆和椭圆。

MaxLineDist1 第一次用Ramer算法(即用直线段递进逼近轮廓)时的MaxLineDist,在逼近完成之后,再用圆弧或椭圆弧对相邻分割线段进行拟合,如果拟合圆弧到轮廓的距离小于逼近线段到轮廓的距离,就用圆弧替代逼近线段,这个过程一致迭代直到所有的线段拟合完毕。

MaxLineDist2 第二次逼近轮廓时的MaxLineDist,只有当MaxLineDist2这种两步逼近算法效率较高,因为在第一次逼近过程中,递进逼近的直线段较少,因此较大直径的圆弧能够被高效的分割出来。

在第二次逼近过程中,能够被小直径圆弧逼近的轮廓被找到,同时大直径圆弧的末端被重新定义。

基于HALCON的模板匹配方法总结(转)

基于HALCON的模板匹配方法总结(转)

基于HALCON的模板匹配⽅法总结(转)很早就想总结⼀下前段时间学习HALCON的⼼得,但由于其他的事情总是抽不出时间。

去年有过⼀段时间的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配的参数优化进⾏了研究,写了⼀篇《基于HDevelop的形状匹配算法参数的优化研究》⽂章,总结了在形状匹配过程中哪些参数影响到模板的搜索和匹配,⼜如何来协调这些参数来加快匹配过程,提⾼匹配的精度,这篇paper放到了中国论⽂在线了,需要可以去下载。

德国MVTec公司开发的HALCON机器视觉开发软件,提供了许多的功能,在这⾥我主要学习和研究了其中的形状匹配的算法和流程。

HDevelop开发环境中提供的匹配的⽅法主要有三种,即Component-Based、Gray-Value-Based、Shape-Based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配。

这三种匹配的⽅法各具特点,分别适⽤于不同的图像特征,但都有创建模板和寻找模板的相同过程。

这三种⽅法⾥⾯,我主要就第三种-基于形状的匹配,做了许多的实验,因此也做了基于形状匹配的物体识别,基于形状匹配的视频对象分割和基于形状匹配的视频对象跟踪这些研究,从中取得较好的效果,简化了⽤其他⼯具,⽐如VC++来开发的过程。

在VC下往往针对不同的图像格式,就会弄的很头疼,更不⽤说编写图像特征提取、模板建⽴和搜寻模板的代码呢,我想其中间过程会很复杂,效果也不⼀定会显著。

下⾯我就具体地谈谈基于HALCON的形状匹配算法的研究和⼼得总结。

1. Shape-Based matching的基本流程HALCON提供的基于形状匹配的算法主要是针对感兴趣的⼩区域来建⽴模板,对整个图像建⽴模板也可以,但这样除⾮是对象在整个图像中所占⽐例很⼤,⽐如像视频会议中⼈体上半⾝这样的图像,我在后⾯的视频对象跟踪实验中就是针对整个图像的,这往往也是要牺牲匹配速度的,这个后⾯再讲。

面向智能视频监控系统的运动对象分割和跟踪方法研究的开题报告

面向智能视频监控系统的运动对象分割和跟踪方法研究的开题报告

面向智能视频监控系统的运动对象分割和跟踪方法研究的开题报告一、研究背景与意义智能视频监控系统作为一种有效的安全监控手段,已经得到了广泛的应用。

其中的关键技术是对视频中的运动对象进行分割和跟踪,从而对其进行实时的监控和分析,提高系统的监控效能和安全性能。

目前,运动对象分割和跟踪技术已经取得了一定的成果,但仍存在许多问题,例如运动对象分割精度低、跟踪稳定性差等,需要进一步研究和改进。

因此,本研究旨在针对智能视频监控系统的运动对象分割和跟踪问题,提出一种基于深度学习和视觉注意力机制的新方法,以提高运动对象分割精度和跟踪稳定性,为智能视频监控系统的应用提供支持。

二、研究内容和方案1.研究内容(1)深度学习算法在运动对象分割中的应用,设计并实现基于卷积神经网络和循环神经网络的运动对象分割算法。

(2)视觉注意力机制在运动对象跟踪中的应用,提出一种基于空间变换网络和对抗生成网络的新方法,实现高效稳定的运动对象跟踪。

(3)将运动对象分割和跟踪算法相结合,设计并实现一套完整的智能视频监控系统。

2.研究方案(1)运动对象分割算法采用基于卷积神经网络的语义分割模型,对视频帧进行分割。

为了考虑时间维度信息,引入循环神经网络,并采用自编码器进行特征重建。

实现高效准确的视频运动对象分割。

(2)运动对象跟踪算法结合空间变换网络和对抗生成网络,提出一种视觉注意力机制的运动对象跟踪方法。

通过对运动对象进行空间变换,实现对目标特征的增强和稳定。

同时对抗生成网络实现对运动对象的鲁棒跟踪。

(3)智能视频监控系统的设计与实现将运动对象分割和跟踪算法相结合,设计并实现一套完整的智能视频监控系统。

实现对目标的多通道监控和分析,提高系统的监控效能和安全性能。

三、论文结构安排第一章绪论1.1 研究背景和意义1.2 国内外研究现状及进展1.3 研究目标和内容1.4 研究方法与流程第二章运动对象分割算法研究2.1 基于卷积神经网络的语义分割模型2.2 循环神经网络的时间维度特征提取2.3 自编码器模型的特征重建2.4 实验分析与结论第三章运动对象跟踪算法研究3.1 视觉注意力机制在目标跟踪中的应用3.2 空间变换网络的特征增强3.3 对抗生成网络的鲁棒跟踪3.4 实验分析与结论第四章智能视频监控系统设计与实现4.1 系统架构设计4.2 基于运动对象分割和跟踪的多通道监控与分析4.3 实验分析与结论第五章总结与展望5.1 主要工作和贡献5.2 不足与展望四、主要研究内容和创新点本研究的主要研究内容是智能视频监控系统中的运动对象分割和跟踪方法。

HALCON形状匹配讲解

HALCON形状匹配讲解

HALCON形状匹配讲解楼主#更多只看楼主倒序阅读发布于:2013-07-21 22:29保存该帖是加密帖,需要10金币及以上的积分才能浏览以下内容:很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间。

去年有过一段时间的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配算法的参数优化进行了研究,写了一篇《基于HDevelop的形状匹配算法参数的优化研究》文章,总结了在形状匹配过程中哪些参数影响到模板的搜索和匹配,又如何来协调这些参数来加快匹配过程,提高匹配的精度,这篇paper放到了中国论文在线了,需要可以去下载。

德国MVTec公司开发的HALCON机器视觉开发软件,提供了许多的功能,在这里我主要学习和研究了其中的形状匹配的算法和流程。

HDevelop开发环境中提供的匹配的方法主要有三种,即Component-Based、Gray-Value-Based、Shape-Based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配。

这三种匹配的方法各具特点,分别适用于不同的图像特征,但都有创建模板和寻找模板的相同过程。

这三种方法里面,我主要就第三种-基于形状的匹配,做了许多的实验,因此也做了基于形状匹配的物体识别,基于形状匹配的视频对象分割和基于形状匹配的视频对象跟踪这些研究,从中取得较好的效果,简化了用其他工具,比如VC++来开发的过程。

在VC下往往针对不同的图像格式,就会弄的很头疼,更不用说编写图像特征提取、模板建立和搜寻模板的代码呢,我想其中间过程会很复杂,效果也不一定会显著。

下面我就具体地谈谈基于HALCON的形状匹配算法的研究和心得总结。

1. Shape-Based matching的基本流程HALCON提供的基于形状匹配的算法主要是针对感兴趣的小区域来建立模板,对整个图像建立模板也可以,但这样除非是对象在整个图像中所占比例很大,比如像视频会议中人体上半身这样的图像,我在后面的视频对象跟踪实验中就是针对整个图像的,这往往也是要牺牲匹配速度的,这个后面再讲。

Halcon标定文件的生成及标定板规格

Halcon标定文件的生成及标定板规格

Halcon标定文件的生成Halcon标定文件的生成图一Halcon标定文件的生成,需要有以下几个步骤:1.创立一个标定数据模板,由create_calib_data算来完成。

2.指定相机的类型,初始化相机部参数,由set_calib_data_cam_param算子来完成。

3.指定标定板的描述文件,由set_calib_data_calib_object算子完成。

4.收集观察数据,有算子set_calib_data_observ_points完成。

也就是收集标定板上圆点的中心坐标,跟各个校正板的位置姿态。

5.配置校正过程。

由算子set_calib_data完成。

6.将数据整合进展标定计算。

calibrate_cameras7.获得标定参数。

get_calib_data8.记录标定参数,write_cam_parStartCamPar := [0.016, 0, 0.0000074, 0.0000074, 326, 247, 652, 494]解释一下这个数组的意思。

面阵相机有14或18个参数〔根据想相机的畸变模式〕,对于线阵相机有17个参数。

这些参数可以分开为部相机参数、外部相机参数。

面阵相机〔division模式〕:Focus〔焦距〕:远焦镜头镜头焦距的长度Kappa:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高面阵相机〔polynomia模式〕:Focus〔焦距〕:远焦镜头镜头焦距的长度K1, K2, K3, P1,P2:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高线阵相机不做具体介绍Halcon标定板规格2011-12-23 12:5668人阅读评论(1)收藏举报图一:30*30 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:30mm*30mm边框长度:28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径〔0.9375〕黑色圆点半径:0.9375mm圆点中心间距: 3.75mm裁剪宽度:30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm边角:由黑色外边框向缩进一个中心边距的长度40*40 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:40mm*40mm边框长度:37.5mm*37.5mm 即:黑色边框线宽为一个圆点半径〔0.125〕黑色圆点半径:0.125mm圆点中心间距:5mm裁剪宽度:21mm*21mm 即:由黑色边框向外延伸0.5mm边角:由黑色外边框向缩进一个中心边距的长度50*50 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:50mm*50mm边框长度:46.875mm*46.875mm 即:黑色边框线宽为一个圆点半径〔1.5625〕黑色圆点半径: 1.5625mm圆点中心间距: 6.25mm裁剪宽度:51.25mm*51.25mm 即:由黑色边框向外延伸0.625mm边角:由黑色外边框向缩进一个中心边距的长度60*60 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:60mm*60mm边框长度:56.25mm*56.25mm 即:黑色边框线宽为一个圆点半径〔1.875〕黑色圆点半径: 1.875mm圆点中心间距:7.5mm裁剪宽度:61.5mm*61.5mm 即:由黑色边框向外延伸0.75mm边角:由黑色外边框向缩进一个中心边距的长度Halcon如何制作标定板分类:Halcon2011-12-23 12:51151人阅读评论(2)收藏举报图1上图即为我自行制作的标定板的图样。

halcon

halcon

halcon:基于HALCON的视频对象分割及跟踪方法总结(..疯狂代码 / ĵ:http://DeveloperUtil/Article31476.html基于HALCON的视频对象分割及跟踪方法总结2006-9-3 22:15:00前面总结了利用HALCON进行模板匹配的一些方法,讨论了利用物体形状的轮廓进行匹配的步骤和如何来优化匹配的速度,提高匹配的精度和速度,当然这两者之间本身也存在着制约,而在这两者之间找到一个适合自己要求的结合点,正是我们要研究和实验的。

模板匹配并不是单纯的一个任务,它是一些其他工作的一个必备环节,比如物体识别、对象跟踪、检验产品、零件统计等等一些机器视觉应用。

在很多情况下,模板匹配是个不错的选择。

在前面总结模板匹配方法的基础上,利用HALCON做了一些视频对象跟踪的实验,并多次试验来调整程序参数优化跟踪过程,采用标准视频进行测试,将这些方法作了如下总结。

首先来看看HALOCN中的帧采集器(FrameGrabber),HDevelop提供这样一个函数来开启你采用的帧采集器(这里我的理解就是图像采集卡或工业摄像机)open_framegrabber(),这个函数中指定了HALCON目前支持的一些帧采集器的文件参数,主要有'BARRACUDA', 'BaumerFCAM', 'BCAM1394', 'BitFlow','DahengCAM', 'DahengFG', 'DFG-BW', 'DFG-LC', 'DirectFile', 'DirectShow', 'DT315x', 'DT3162', 'File','FireGrab', 'FirePackage', 'FlashBus', 'FlashBusMX', 'Ginga++', 'GingaDG', 'IDS', 'INSPECTA', 'Leutron', 'MatrixVision', 'MeteorII', 'mEnable3', 'MultiCam', 'Opteon', 'p3i2', 'p3i4', 'PT1000CL', 'PX', 'PXC', 'PXD', 'PXR', 'SaperaLT', 'TAG', 'TWAIN', 'uEye';除此之外,在官方网站上也在逐步推出新支持的一些采集卡,比如近期推出的支持大恒的DahengCAM的USB2.0接口(更多的信息请访问/halcon/news/)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

halcon:基于HALCON的视频对象分割及跟踪方法总结(..
疯狂代码 / ĵ:http://DeveloperUtil/Article31476.html
基于HALCON的视频对象分割及跟踪方法总结
2006-9-3 22:15:00
前面总结了利用HALCON进行模板匹配的一些方法,讨论了利用物体形状的轮廓进行匹配的步骤和如何来优化匹配的速度,提高匹配的精度和速度,当然这两者之间本身也存在着制约,而在这两者之间找到一个适合自己要求的结合点,正是我们要研究和实验的。

模板匹配并不是单纯的一个任务,它是一些其他工作的一个必备环节,比如物体识别、对象跟踪、检验产品、零件统计等等一些机器视觉应用。

在很多情况下,模板匹配是个不错的选择。

在前面总结模板匹配方法的基础上,利用HALCON做了一些视频对象跟踪的实验,并多次试验来调整程序参数优化跟踪过程,采用标准视频进行测试,将这些方法作了如下总结。

首先来看看HALOCN中的帧采集器(FrameGrabber),HDevelop提供这样一个函数来开启你采用的帧采集器(这里我的理解就是图像采集卡或工业摄像机)open_framegrabber(),这个函数中指定了HALCON目前支持的一些帧采集器的文件参数,主要有'BARRACUDA', 'BaumerFCAM', 'BCAM1394', 'BitFlow',
'DahengCAM', 'DahengFG', 'DFG-BW', 'DFG-LC', 'DirectFile', 'DirectShow', 'DT315x', 'DT3162', 'File',
'FireGrab', 'FirePackage', 'FlashBus', 'FlashBusMX', 'Ginga++', 'GingaDG', 'IDS', 'INSPECTA', 'Leutron', 'MatrixVision', 'MeteorII', 'mEnable3', 'MultiCam', 'Opteon', 'p3i2', 'p3i4', 'PT1000CL', 'PX', 'PXC', 'PXD', 'PXR', 'SaperaLT', 'TAG', 'TWAIN', 'uEye';除此之外,在官方网站上也在逐步推出新支持的一些采集卡,比如近期推出的支持大恒的DahengCAM的USB2.0接口(更多的信息请访问
/halcon/news/)。

由于实验条件有限,我在实验中只能采用标准的视频,有CIF和QCIF两种格式的。

这个当中我也在摸索,read_sequence()只是读取无格式的图像数据,因为找不到如何直接打开视频文件,所以在实验时只能采用保存好的单帧图像。

在利用模板匹配进行跟踪之前,需要对选定的初始帧或者某一帧进行分割,比如在实验中,采用标准Akiyo视频文件(352×288),我选定初始帧进行分水岭的分割,然后采用马儿可夫随机场的分类,分割出前景对象和背景;也可以直接利用watersheds_threshold()进行阈值化的分割,当然分割的方法还很多,比如基于边缘的,基于区域增长的,基于阈值的,其中基于阈值的用的较多,里面也分为二值化,自动阈值,动态阈值等,各具特点,使用针对图像特征采用不同的方法。

如果想进一步的获取精确的分割,可以采用数学形态学算子,这个可以根据具体需要选择不同的膨胀、腐蚀、开、闭操作的结合,这里就不多说了。

对已经分割好的初始帧建立模板,这里没有再确定某个区域,因为是采用已分割的图像。

也可以先确定感兴趣区域(ROI),然后在对该区域建立模板,但这样获得的模板就不怎么精确了。

接下来的步骤就更按模板匹配的方法来进行,用create_shape_model()来对初始帧创建模板,但这里要注意一点,Metric有个可选项
,use_polarity(匹配时要求有相同的对比度),ignore_global_polarity(在全局上有对比度的情况下仍可匹配),ignore_local_polarity(即使局部灰度发生变化,也可找到模板,可以应用于遮挡条件)如果在非常低对比度下找到模板,可将MinContrast设置为一个相应小的值;如果即使在严重重叠条件下,仍可以认识模板
,MinContrast应该大于噪声造成的灰度波动范围,这是为了确保模板的位置和旋转能被精确的找到。

之后获取轮廓,照样使用inspect_template()监视模板。

再接下来就是跟踪的过程,因为是对单帧图像进行匹配,所以要读取这个视频文件的所有帧。

如何自动读取多个图像文件也就成了一个问题?这里采用for循环,还是利用read_image(Image,’E:/实验图像
/Akiyo/’+k$’d’)来读取,循环当中采用find_shape_model()来匹配,这个过程跟前面介绍的一样,不再细说。

要重点总结的是如何来加速匹配以及模板更新的问题,因为考虑到由于视频对象变化过大,或者发生了非刚体的运动,这时某帧不能匹配,就需要重新针对该帧重新建立模板,便于后面帧的匹配。

当然在这之前的跟踪过程中,对象与模板之间的测量匹配需设定一个阈值,两者之差在这个阈值之内,则认为是匹配的,否则是不匹配的。

当出现不匹配时,记录下该帧;然后对这帧采用图像分割并分类,跟初始帧样建立新模板;于是继续后面的跟踪匹配。

在实验中,我采用的视频图像有对象相对于背景变化不大的,比如新闻人、视频会议等
;也有对象相对于背景变化大,但对象的运动是刚体运动;如果对于非刚体的运动,匹配过程会更复杂,考虑的问题也更多。

例如,采用claire标准视频图像序列(176×144),由于对象相对背景变化较小,在匹配中尽量不采用更新模板来匹配,这里可以放宽匹配的要求,比如在MaxOverlap参数设置中可以减小其值,将MinSocre的值尽量调小点,这样会增加匹配的时间,可以在匹配的前提下尽量增大Greediness的值,这个实验中我设置的值分别为MaxOverlap=0.3, MinSocre=0.35, Greediness=0.9,共有492帧,总共匹配的时间大约12秒左右。

当然这里的时间还更计算机配置有关。

对foreman视频序列,由于摄像机的运动,对象和背景都有较大变化,因此在这里匹配要放宽要求,在创建模板时将对比度设置大一点,而在优化过程中选取忽略局部对比度变化的参数,在找模板中将贪婪度(Greediness)设置较低值,并且匹配度也尽量设较低值,这样可以通过部分匹配来跟踪对象。

采用Vectra标准视频图像序列(352×288),汽车行走,可作为一个刚体运动,这时就需要更新模板了,因为在行走的过程中,汽车在转弯或遇到遮挡物时就无法跟踪了,这里暂时不考虑完全遮挡的情况。

在这个视频中,汽车在途中会有一些树木的遮挡,遮挡面积不大,可以完整看到汽车的轮廓。

这时在前面有转弯的地方,可以放宽匹配的要求,当遇到遮挡时,更新不能匹配的模板。

这个视频有141帧,在前面100帧以内,可以很好的跟踪,而在以后出现了较大的偏差,这跟寻找模板的参数设置有关;由于更新模板需要消耗时间,所以整个跟踪匹配的时间会较长。

在实际应用中,我们更应该考虑到跟踪的效果,即跟踪的准确性;如何提高视频对象跟踪的精确性和快速性也是需要进一步研究实验的。

[附:流程图和实验图像无法上传,所以没有一个直观的感受~!欢迎一起交 2008-12-10 11:48:44
疯狂代码 /。

相关文档
最新文档