文档库 最新最全的文档下载
当前位置:文档库 › 基于均值漂移—连通域标记的多目标跟踪算法

基于均值漂移—连通域标记的多目标跟踪算法

基于均值漂移—连通域标记的多目标跟踪算法
基于均值漂移—连通域标记的多目标跟踪算法

二值图像连通域标记算法与代码

二值图像连通域标记算法与代码 这里列举二值图像连通域标记算法包括直接扫描标记算法和二值图像连通域标记快速算法 一、直接扫描标记算法把连续区域作同一个标记,常见的四邻域标记算法和八邻域标记算法。 1、四邻域标记算法: 1)判断此点四邻域中的最左,最上有没有点,如果都没有点,则表示一个新的区域的开始。 2)如果此点四邻域中的最左有点,最上没有点,则标记此点为最左点的值;如果此点四邻域中的最左没有点,最上有点,则标记此点为最上点的值。 3)如果此点四邻域中的最左有点,最上都有点,则标记此点为这两个中的最小的标记点,并修改大标记为小标记。 2、八邻域标记算法: 1)判断此点八邻域中的最左,左上,最上,上右点的情况。如果都没有点,则表示一个新的区域的开始。 2)如果此点八邻域中的最左有点,上右都有点,则标记此点为这两个中的最小的标记点,并修改大标记为小标记。 3)如果此点八邻域中的左上有点,上右都有点,则标记此点为这两个中的最小的标记点,并修改大标记为小标记。 4)否则按照最左,左上,最上,上右的顺序,标记此点为四个中的一个。代码实现: #include #include #include //连通区域属性结构 typedef struct tagMarkRegion { std::list MarkPointList;//点列表 RECT rect; }MarkRegion; //定义MarkMap 结构,用来存放等价对 typedef struct tagEqualMark { int MarkValue1; //标记值 int MarkValue2; //标记值 } EqualMark; //定义MarkMapping 结构,用来存放标记映射关系 typedef struct tagMarkMapping

多目标跟踪

多目标跟踪的基本理论 所谓多目标跟踪,就是为了维持对多个目标当前状态的估计而对所接收到的量测信息进行处理的过程。 目标模型不确定性 是指目标在未知的时间段内可能作己知的或未知的机动。一般情况下,目标的 非机动方式及目标发生机动时的不同的机动形式都可以通过不同的数学模型来加 以描述。在进行目标跟踪过程中,采用不正确的目标运动模型会导致跟踪系统跟踪 性能的严重下降。因而在目标跟踪过程中,运动模型采用的正确与否对目标的跟踪 性能是至关重要的。 观测不确定性 是指由传感器系统提供的量测数据可能是外部的干扰数据,它有可能是由杂波、虚警和相邻的目标所引起的,也可能是由被跟踪目标的对抗系统所主动发出来的虚假信息。这种不确定性在本质上显然是离散的,给目标跟踪问题提出了极大的挑战,相应地也就产生了数据关联的问题。 数据关联 数据关联的作用主要有:航迹保持、航迹建立和航迹终结。 数据关联算法主要有:“最近邻”方法,“全邻”最优滤波器方法、概率数据关联滤波器方法、多模型方法、相互作用多模型一概率数据关联滤波器方法、联合概率数据关联滤波器方法、多假设方法、航迹分裂方法。 1.“最近邻”方法的思想是:在落入跟踪波门中的所有量测中,离目标跟踪预测位置最近的量测认为是有效量测。“最近邻”方法的好处是算法最简单,但是精度差,抗杂波干扰的能力差。“最近邻”方法因为简单,算法易实现,因此也是目前广泛采用的一种数据关联算法. 2 .“全邻”最优滤波器 Singer,Sea和Housewright发展了一类“全邻”滤波器,这种滤波器不仅考虑了所有候选回波(空间累积信息),而且考虑了跟踪历史,即多扫描相关(时间累积信息)假定多余回波互不相关并且均匀分布于跟踪门内,则任何跟踪门的体积V内多余回波的数目Cx服从均值为βV的泊松分布。假定在K-1时刻,轨迹a′正确的概率为Pa(k-1)。关键问题是计算k时刻轨迹的正确概率Pa(k)。

均值漂移跟踪算法

在无人驾驶车辆测试平台上利用均值漂移跟踪算法实现移 动图像的实时跟踪 Benjamin Gorry, Zezhi Chen, Kevin Hammond, Andy Wallace, and Greg Michaelson 摘要:本文描述了一种用来跟踪移动目标的新型计算机视觉算法,该算法是作为 无人驾驶车辆长期研究的一部分而被发展的。我们将介绍在视频序列中利用变量核 进行跟踪的研究结果。其中,均值漂移目标跟踪算法是我们工作的基础;对于一个 移动目标,该算法通常用来在初始帧中确定一个矩形目标窗口,然后利用均值漂移 分离算法处理该窗口中的数据,将跟踪目标从背景环境中分离出来。我们并没有使 用标准的Epanechnikov内核,而是利用一个倒角距离变换加权内核来提升目标表 示和定位的精度,利用Bhattacharyya系数使RGB色彩空间中两个分布之间的距离 最小化。实验结果表明,相对于标准算法,本算法在跟踪能力和通用性上有一定的 提升。这些算法已经运用在机器人试验平台的组成部分中,并证明了这些算法的有 效性。 关键词:Hume,函数程序设计,无人驾驶车辆,先驱者机器人,视觉 I.引言 本文比较和对比了在视觉序列中跟踪移动目标的三种计算机视觉算法。对于很多无人驾驶车辆(A V)来说,在复杂背景中检测和跟随移动目标的应用是至关重要的。例如,这可以让一个全尺寸无人驾驶车辆跟踪行人或者移动车辆并避免与之相撞。同时对于机器人而言,这项技术也可以提升导航性能和增强安全性。对单个移动目标的良好隔离,将便于我们针对感兴趣的目标进行应用开发。而所有的这些应用都要求我们能够实时的处理全彩色的视频序列。 我们的工作是在基于先驱者P3-AT全地形机器人的无人驾驶车辆测试平台上进行的,它是一个英国项目的一部分。这个庞大的项目是由国防科学技术中心(DTC)下辖的无人系统工程(SEAS)为了开发新型无人驾驶车辆传感器技术而建立的。国防科学技术中心的无人系统工程是由英国工业联盟操作管理,旨在通过采取系统工程的方法在整个系统和子系统

基于FPGA的二值图像连通域标记快速算法实现

基于FPGA的二值图像连通域标记快速算法实现 摘要:在图像自动目标识别和跟踪过程中,首先对图像目标进行阈值分割提取,得到的二值图像通常包含多个连通区域,系统利用图像目标的形状特性对可疑高威胁的飞行目标进行自动识别。因此,需要对各连通区域块进行分别检测判断,本文采用改进的适合FPGA实现的快速标记算法对各连通域进行检测提取。 关键词:FPGA,二值图像连通域,快速标记算法,可编程逻辑 贺明 1 引言 在图像自动目标识别和跟踪过程中,首先对图像目标进行阈值分割提取,得到的二值图像通常包含多个连通区域,系统利用图像目标的形状特性对可疑高威胁的飞行目标进行自动识别。因此,需要对各连通区域块进行分别检测判断,本文采用改进的适合FPGA实现的快速标记算法对各连通域进行检测提取。 实现二值图像连通体检测通常采用的方法有下几种[1] [2] [3]:区域生长法:首先对图像进行逐行(列)扫描,每遇到一个未标记的“1”像素点,就分配其一个未使用过的标号,然后对其领域进行检测,如有未标记过的“1”像素,则赋予相同的标号。反复进行这一操作.直到不存在应该传播标号的“1”像素。然后继续图像行(列)扫描,如检测判未标记的“1”像素则赋予其新的标号,并进行与以上相同的处理。整个图像扫描结束,算法也就终止。这种方法可准确地检测出各种类型的连通体.但处理时间也较长.因为要逐一检测每一“1”像素的邻域,且出现“1”像素的重复扫描。跟踪算法:二值图像中每个取值为“1”的像素被标记一个与其坐标相关的标号,如由n,m串构成的数。热后,扫描标记后的图像,并将每十像素的标号改为其邻域内的最小标号。反复执行这个过程,直到不需要作标记更改为止。用这种方法处理小而凸的目标时,收敛速度较慢。 本文以适合FPGA实现为目的,提出一种具有计算规则性的快速二值图像连通域标记算法。与传统的二值图像标记算法相比,该算法具有运算简单性、规则性和可扩展性的特点,适合以FPGA实现。选用在100MHz工作时钟下,处理384×288像素的红外图像能够达到400帧/秒以上的标记速度,足够满足实时目标识别系统的要求。处理速度可以满足大部分实时目标识别系统的要求。该算法同样可以软件编程方式应用于嵌入式DSP系统中。 2 算法描述 首先,在进行标记算法以前,利用硬件开辟独立的图像标记缓存和连通关系数组,接着在视频流的采集传输过程中,以流水线的方式按照视频传输顺序对图像进行逐行像素扫描,然后对每个像素的邻域分别按照逆时针方向和水平方向进行连通性检测和等价标记关系合并,检测出的结果对标记等价数组和标记缓存进行更新,在一帧图像采集传输结束后,得到图像的

(整理)MATLAB 标注连通域.

matlab 标注连通域 clear; clc; f=imread('c:\1.jpg'); gray_level=graythresh(f); f=im2bw(f,gray_level); [l,n]=bwlabel(f,8) imshow(f) hold on for k=1:n [r,c]=find(l==k); rbar=mean(r); cbar=mean(c); plot(cbar,rbar,'Marker','o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10); plot(cbar,rbar,'Marker','*','MarkerEdgecolor','w'); end 主要概念: 1. 2.4连接 8连接 0 1 0 1 p 1 ===> 4连接,p为当前像素点。 0 1 0 1 1 1 1 p 1 ====》8连接,p为当前像素点。 1 1 1 3.bwlabel()函数 语法: [ L, num]=bwlabel(f,conn) 其中f是一副二值图像,conn用来指定期望的连接(不是4就是8),默认为8,输出L称为标记矩阵,参数num给出所找到连接分量的总数。 4.find()函数 该函数非常有用,会返回指定条件的索引值,在标记矩阵中的作用是返回对应对象的索引。 I = FIND(X) returns the linear indices corresponding to the nonzero entries of the array X. X may be a logical expression. Use IND2SUB(SIZE(X),I) to calculate multiple subscripts from the linear indices I. find(bwlabel(bw)==2)表示的意思是连通域2中的数值所在向量的位置。

TLD目标跟踪算法

TLD目标跟踪算法 一、算法的背景 TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生Zdenek 出的一种新的单目标长时间(long term tracking)跟踪算法。该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加稳定、鲁棒、可靠。 对于长时间跟踪而言,一个关键的问题是:当目标重新出现在相机视野中时,系统应该能重新检测到它,并开始重新跟踪。但是,长时间跟踪过程中,被跟踪目标将不可避免的发生形状变化、光照条件变化、尺度变化、遮挡等情况。传统的跟踪算法,前端需要跟检测模块相互配合,当检测到被跟踪目标之后,就开始进入跟踪模块,而此后,检测模块就不会介入到跟踪过程中。但这种方法有一个致命的缺陷:即,当被跟踪目标存在形状变化或遮挡时,跟踪就很容易失败;因此,对于长时间跟踪,或者被跟踪目标存在形状变化情况下的跟踪,很多人采用检测的方法来代替跟踪。该方法虽然在某些情况下可以改进跟踪效果,但它需要一个离线的学习过程。即:在检测之前,需要挑选大量的被跟踪目标的样本来进行学习和训练。这也就意味着,训练样本要涵盖被跟踪目标可能发生的各种形变和各种尺度、姿态变化和光照变化的情况。换言之,利用检测的方法来达到长时间跟踪的目的,对于训练样本的选择至关重要,否则,跟踪的鲁棒性就难以保证。 考虑到单纯的跟踪或者单纯的检测算法都无法在长时间跟踪过程中达到理想的效果,所以,TLD方法就考虑将两者予以结合,并加入一种改进的在线学习机制,从而使得整体的目标跟踪更加稳定、有效。 简单来说,TLD算法由三部分组成:跟踪模块、检测模块、学习模块;如下图所示 其运行机制为:检测模块和跟踪模块互补干涉的并行进行处理。首先,跟踪模块假设相邻视频帧之间物体的运动是有限的,且被跟踪目标是可见的,以此来估计目标的运动。 如果目标在相机视野中消失,将造成跟踪失败。检测模块假设每一个视帧都是彼此独立的,并且根据以往检测和学习到的目标模型,对每一帧图片进行全图搜索以定位目标可能出现的区域。同其它目标检测方法一样,TLD中的检测模块也有可能出现错误,且错误无非是错误的负样例和错误的正样例这两种情况。而学习模块则根据跟踪模块的结果对检测模块的这两种错误进行评估,并根据评估结果生成训练样本对检测模块的目标模型进行更新,同时对跟踪模块的“关键特征点”进行更新,以此来避免以后出现类似的

基于均值漂移的视觉目标跟踪方法综述

基于均值漂移的视觉目标跟踪方法综述 齐 飞,罗予频,胡东成 (清华大学自动化系,北京 100084) 摘 要:基于均值漂移的视觉目标跟踪方法具有模型简洁实用、能够处理目标形变及部分遮挡等复杂情形的优点,算法高效且易于模块化实现。各种改进的模型及方法针对目标的尺度变化、特征分布等核心问题进行了系统研究,跟踪性能得到了进一步提高。该文从基本的均值漂移跟踪方法出发,系统介绍了此类方法的发展过程与最新成果。 关键词:均值漂移;视觉目标跟踪;核函数;相似性度量 Overview on Visual Target Tracking Based on Mean Shift QI Fei, LUO Yu-pin, HU Dong-cheng (Department of Automation, Tsinghua University, Beijing 100084) 【Abstract 】Mean-shift-based visual target tracking is one of the hotspots in the field of computer vision. The model of the algorithm is simple,efficient and easy-to-implement, and it can handle the complex cases such as deformations and partial occlusions. Recent researches on scale adaptation of the tracking window and distributions of features improve the performance of such trackers. This paper introduces the development and the state of such kind of the algorithms. 【Key words 】mean shift; visual target tracking; kernel functions; similarity measurement 计 算 机 工 程Computer Engineering 第33卷 第21期 Vol.33 No.21 2007年11月 November 2007 ·博士论文· 文章编号:1000—3428(2007)21—0024—04 文献标识码:A 中图分类号:TP311 视觉目标跟踪在安全监控、汽车辅助驾驶、人体运动分析以及视频压缩等领域有着广泛应用。由于视觉目标本身及周边环境复杂多变,因此获得鲁棒而高效的跟踪算法目前仍旧是计算机视觉中一个极具挑战性的研究课题。 典型的视觉跟踪算法通常包括2个核心模块:数据关联和目标定位。前者根据先验知识如目标的动力学特征,将检测结果与目标状态关联起来,并对跟踪轨迹进行滤波。这方面的研究已经比较成熟,常用方法有卡尔曼滤波器、粒子滤波器及概率数据关联。后者是对被跟踪目标建模并据此在图像序列各帧中定位目标。在视觉目标跟踪中,目标建模及定位更为重要,常用的方法有色块模型和活动轮廓模型。均值漂移方法[1~2]提供了一种新的目标描述与定位的框架,将目标特征与空间信息有效地结合起来,避免了使用复杂模型描述目标的形状、外观及其运动。 1 均值漂移方法介绍 均值漂移(mean shift)是Fukunaga 等人提出的一种非参 数概率密度梯度估计算法[1],在统计相似性计算与连续优化方法之间建立了一座桥梁。该方法直到Cheng 的研究成果[2]发表之后,才受到较多的关注。此后均值漂移被广泛应用到诸多相关领域,如模式分类、图像分割以及目标跟踪等方面。 核函数在均值漂移方法中起了非常重要的作用,核函数的概念、构造方法及常用形态如下文所述。 1.1 核函数 考虑d 维实欧氏空间d R ,向量,d R ∈x y 的内积定义为 T ,=i i i x y ??=∑x y x y ,向量的模可由内积导出1/2=,??x x x 。 对给定的函数:d K R R →,若存在一元函数:[0,)k R ∞→使得 2 ()=()K k x x 成立,其中,()k r 在区间[0,)∞上非负、有界、 单调减、分段连续并且积分0 ()d k r r ∞ ∫有界,则称函数() K x 为核函数,)(r k 为相应的剖面函数。因为函数)(r k 分段连续,不可导点集的Lebesgue 测度为0,所以在不可导点集上补充定义后,函数)(r k 在其定义域内处处可导,即)(r k ′存在。常见的剖面函数见表1。 表1 常见的剖面函数 给定核函数()K ?和()H ?,对应的剖面函数为)(r k 和 ()h r ,若存在常数c ,使得()=()k r ch r ′?,则称()H ?为()K ?的 影子核。 给定核函数()K x 和()K x 及正实数σ,由下列各式定义的函数也是核函数: 1()(/)()()()()() ()()()K K P K K K K S K K σσ?====+?x x x x x x ?x x x x 其中,矩阵?是d d ×维实正定对称矩阵。若记单位矩阵为 I ,当取=σ?I 时,()=()K K σ?x x 。通常称σ为核函数 ()K σx 的窗宽,称?为核函数()K ?x 的窗宽矩阵。 作者简介:齐 飞(1977-),男,博士研究生,主研方向:模式识别,计算机视觉;罗予频、胡东成,教授、博士生导师 收稿日期:2006-11-20 E-mail :qfei00@https://www.wendangku.net/doc/7318625077.html,

基于meanshift的目标跟踪算法——完整版

基于Mean Shift的目标跟踪算法研究 指导教师:

摘要:该文把Itti视觉注意力模型融入到Mean Shift跟踪方法,提出了一种基于视觉显著图的Mean Shift跟踪方法。首先利用Itti视觉注意力模型,提取多种特征,得到显著图,在此基础上建立目标模型的直方图,然后运用Mean Shift方法进行跟踪。实验证明,该方法可适用于复杂背景目标的跟踪,跟踪结果稳定。 关键词:显著图目标跟踪Mean Shift Mean Shift Tracking Based on Saliency Map Abstract:In this paper, an improved Mean Shift tracking algorithm based on saliency map is proposed. Firstly, Itti visual attention model is used to extract multiple features, then to generate a saliency map,The histogram of the target based on the saliency map, can have a better description of objectives, and then use Mean Shift algorithm to tracking. Experimental results show that improved Mean Shift algorithm is able to be applied in complex background to tracking target and tracking results are stability. 1 引言 Mean Shift方法采用核概率密度来描述目标的特征,然后利用Mean Shift搜寻目标位置。这种方法具有很高的稳定行,能够适应目标的形状、大小的连续变化,而且计算速度很快,抗干扰能力强,能够保证系统的实时性和稳定性[1]。近年来在目标跟踪领域得到了广泛应用[2-3]。但是,核函数直方图对目标特征的描述比较弱,在目标周围存在与目标颜色分布相似的物体时,跟踪算法容易跟丢目标。目前对目标特征描述的改进只限于选择单一的特征,如文献[4]通过选择跟踪区域中表示目标主要特征的Harris点建立目标模型;文献[5]将初始帧的目标模型和前一帧的模型即两者的直方图分布都考虑进来,建立混合模型;文献[6]提出了以代表图像的梯度方向信息的方向直方图为目标模型;文献[7-8]提出二阶直方图,是对颜色直方图一种改进,是以颜色直方图为基础,颜色直方图只包含了颜色分布信息,二阶直方图在包含颜色信息的前提下包含了像素的均值向量和协方差。文献[9]提出目标中心加权距离,为离目标中心近的点赋予较大的权值,离目标中心远的点赋予较小的权值。文献[4-9]都是关注于目标和目标的某一种特征。但是使用单一特征的目标模型不能适应光线及背景的变化,而且当有遮挡和相似物体靠近时,容易丢失目标;若只是考虑改进目标模型,不考虑减弱背景的干扰,得到的效果毕竟是有限的。 针对上述问题,文本结合Itti 提出的视觉注意模型[5],将自底向上的视觉注意机制引入到Mean Shift跟踪中,提出了基于视觉显著图的Mean Shift跟踪方法。此方法在显著图基础上建立目标模型,由此得到的目标模型是用多种特征来描述的,同时可以降低背景对目标的干扰。 2 基于视觉显著图的Mean Shift跟踪方法

目标跟踪算法的分类

目标跟踪算法的分类

主要基于两种思路: a)不依赖于先验知识,直接从图像序列中检测到运动目标,并进行目标识别,最终跟踪感兴趣的运动目标; b)依赖于目标的先验知识,首先为运动目标建模,然后在图像序列中实时找到相匹配的运动目标。 一.运动目标检测 对于不依赖先验知识的目标跟踪来讲,运动检测是实现跟踪的第一步。运动检测即为从序列图像中将变化区域从背景图像中提取出来。运动目标检测的算法依照目标与摄像机之间的关系可以分为静态背景下运动检测和动态背景下运动检测 (一)静态背景 1.背景差 2.帧差 3.GMM 4.光流 背景减算法可以对背景的光照变化、噪声干扰以及周期性运动等进行建模,在各种不同情况下它都可以准确地检测出运动目标。因此对于固定

个关键技术: a)匹配法则,如最大相关、最小误差等 b)搜索方法,如三步搜索法、交叉搜索法等。 c) 块大小的确定,如分级、自适应等。 光流法 光流估计的方法都是基于以下假设:图像灰度分布的变化完全是目标或者场景的运动引起的,也就是说,目标与场景的灰度不随时间变化。这使得光流方法抗噪声能力较差,其应用范围一般局限于目标与场景的灰度保持不变这个假设条件下。另外,大多数的光流计算方法相当复杂,如果没有特别的硬件装置,其处理速度相当慢,达不到实时处理的要求。 二.目标跟踪 运动目标的跟踪,即通过目标的有效表达,在图像序列中寻找与目标模板最相似候选目标区位置的过程。简单说,就是在序列图像中为目标定位。运动目标的有效表达除了对运动目标建模外,目标跟踪中常用到的目标特性表达主要包括视觉特征 (图像边缘、轮廓、形状、纹理、区域)、统计特征 (直方图、各种矩特征)、变换系数特

第7章 边沿检测与提取,轮廓跟踪

第7章边沿检测与提取,轮廓跟踪 我们在第三章介绍平滑与锐化时引入了模板操作,今天还要用到它。 7.1边沿检测 我们给出一个模板和一幅图象。不难发现原图中左边暗,右边亮,中间存在着一条明显的边界。进行模板操作后的结果如下: 。 可以看出,第3、4列比其他列的灰度值高很多,人眼观察时,就能发现一条很明显的亮边,其它区域都很暗,这样就起到了边沿检测的作用。 为什么会这样呢?仔细看看那个模板就明白了,它的意思是将右邻点的灰度值减左邻点的灰度值作为该点的灰度值。在灰度相近的区域内,这么做的结果使得该点的灰度值接近于0;而在边界附近,灰度值有明显的跳变,这么做的结果使得该点的灰度值很大,这样就出现了上面的结果。 这种模板就是一种边沿检测器,它在数学上的涵义是一种基于梯度的滤波器,又称边沿算子,你没有必要知道梯度的确切涵义,只要有这个概念就可以了。梯度是有方向的,和边沿的方向总是正交(垂直)的,例如,对于上面那幅图象的转置图象,边是水平方向的,我们可以用 梯度是垂直方向的模板检测它的边沿。 例如,一个梯度为45度方向模板,可以检测出135度方向的边沿。 1.Sobel算子

在边沿检测中,常用的一种模板是Sobel算子。Sobel算子有两个,一个是检测水平边沿的 ;另一个是检测垂直平边沿的。与和 相比,Sobel算子对于象素的位置的影响做了加权,因此效果更好。 Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边 沿的,另一个是检测垂直平边沿的。各向同性Sobel 算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。 下面的几幅图中,图7.1为原图;图7.2为普通Sobel算子处理后的结果图;图7.3为各向同性Sobel算子处理后的结果图。可以看出Sobel算子确实把图象中的边沿提取了出来。 图7.1原图 图7.2普通Sobel算子处理后的结果图

轮廓特征和拓扑关系的图像检索方法

902008,44(5)Computer-EngineeringandApplications计算机工程与应用 一种基于轮廓特征和拓扑关系的图像检索方法 曾接贤,毕东格 ZENGJie-xian,BIDong-ge 南昌航空大学无损检测技术教育部重点实验室,南昌330063 KeyLaboratoryofNondestructiveTest,MinistryofEducation,NanchangHangkongUniversity,Nanchang330063,China E-mail:zengjx58@163.com ZENGJie-xian,BIDong-ge.Imageretrievalmethodbasedoncontourcharacterandspatialtopology.ComputerEngi-neeringandApplications,2008。44(5):90-92. Abstract:AnewmethodforCBIRbasedonshapeFourierdescriptorispresented.Thefirststepofthismethodispre-processingtheimage,thencarryingtheimagesegmentationbasedontopologyrelationship,andthenusecontourtrackingmethodtoobtainthecontourfeaturewhichlaterdescribedbyFourierdescriptorusingFFT,atlast,usingblockdistancetomeasurethesimilaritybetweentheoriginalpictureandtargetpicture.Inordertoverifytheeffectivenessofthemethod,weexperimentedunderMATLABandVC++environment.Byseveralexperiments,theresultsshowthatthismethodiseffectiveandalsobyalgorithmanalysis,weconcludethatthemethodisrationalforimageretrieval. Keywords:shapedescribing;Fourierdescriptor;spatialtopology;comparability 摘要:提出了一种利用轮廓特征和拓扑关系的图像检索方法。首先对图像进行预处理,然后根据空间拓扑关系进行区域分割,再对各个区域进行轮廓跟踪,并用傅立叶描述子对所提取区域的轮廓进行描述,最后用街区距离进行相似度的判定。为了验证该算法的有效性,在MATL^.B和VC++环境下进行了实验,通过实验结果和算法分析,证明了该方法的合理性和有效性。 关键词:形状描述;傅立叶描述子;空间拓扑关系;相似度 文章编号:1002—8331(2008)05—0090—03文献标识码:A中图分类号:TP391.3 1引言 在计算机视觉中,形状特征属于图像的中间层特征。形状特征作为刻画图像中物体和区域特点的重要特征,是描述高层视觉特征(如目标、对象等)的重要手段,而目标、对象对获取图像语义尤为重要。利用形状特征进行检索可提高检索的准确性和效率fl】。但是基于形状特征的图像检索,主要存在有四个问题:一是图像分割算法还不能做到自适应;二是形状描述子难于提取[21。三是特征空间的相似性与人视觉系统感受到的相似性也有差别,四是由于视点的变化可能会产生各种失真。所以,基于形状的图像检索还缺乏比较完善的数学模型,目标变形时检索结果也不可靠;另外,要全面描述形状对计算和存储都有较高的要求。 基于空间关系的查询,其主要优点是能比较完整地表达图像各部分的信息,并能比较方便地无示例或用自然语言查询。空间位置关系的特征还可加强对图像内容的描述区分能力t3]。空间关系是图像内部目标的重要特征131,但是如果单独用空间关系描述物体的特征就显得模糊,常常很难用一个确定的表达式描述清楚,它们常由一组互相联系又有矛盾的条件所限定,每个条件在具体情况下得到不同程度的满足。常用的空间关系一般包括朝向关系和拓扑关系,它们都可以通过自然语言来描述。由于空间关系的模糊性,根据空间关系来确定检索对象的相似性是一个复杂的工作。 物体的形状及其空间关系既是图像中的核心内容,也是人们识别图像、分类图像的重要依据。但是目前基于形状和空间关系的图像检索还仅处于研究二值商标图像。在文献【1]提出了.利用小波分解技术的形状和空间关系的图像检索方法,但是小波分解的多分辨率和小波分解的方向性,使得该描述子不具有旋转和尺度变换的不变性。如果检索的图像内容包括运动的物体,则不能得到好的检索结果。 鉴于此,提出了一种基于轮廓特征和拓扑关系的图像检索方法。首先利用空间拓扑关系进行图像分割;然后提取区域轮廓特征,并用傅立叶描述子进行描述;最后再把该描述子应用于基于形状的图像检索中。通过实验验证了该算法的有效性和合理性。 基金项目:国家自然科学基金(theNational‘NaturalScienceFoundationofChinaunderGrantNo.60675022);江西省自然科学基金(theNaturalScienceFoundationofJiangxiProvinceofChinaunderGrantNo.0311019);江西省教育厅资助科研课题(theResearchPmjectofDe一 ● partment ofEducationofJiangxiProvince)。 作者简介:曾接贤(1958一),男,教授,主要从事工程图学、计算机图形学和计算机视觉等方面的研究;毕东格(1981一),女,硕士研究生,主要研究方向为计算机视觉与图像处理。 收稿日期:2007-06—27修回13期:2007—09—07

多目标跟踪算法

多目标跟踪算法 先来回顾下卡尔曼滤波器: 假定k k x |表示当前k 时刻目标的状态,k 1k x |+表示下一个时刻目标的状态,k z 则表示k 时刻的实际观测。一般地模型都假定为线性的: 这里的1k x +为k+1时刻目标的状态,k x 为k 时刻的状态,为状态转移矩阵,而是服从均值为0方差为的正态分布,表示由噪声等引起的干扰。卡尔曼滤波采取初步估 计: 这里的估计只是初步的估计,状态估计与实际状态的误差矩阵等于状态1k x +的的方差,即: 更新(修正): 这里已知了实际观察,同样是假定观测与状态的似然关系是线性的,即满足: 服从一个均值为0方差为 的正态分布。 卡尔曼滤波器给出了经过更新后得到的比较合理的k+1时刻的估计为: 相应地得到了更新后方差的估计: 这里: 其实这些都是通过最小二乘法推出来的,即使得误差: 最小,而初步估计也是通过最小二乘法获得,即使得: 最小。有了上述估计方程后,便可以获得一个估计流程:

下面再介绍下贝叶斯公式 先看一个定义 马氏链: 设{} ,,,k j i E =为有限集或可列集,称()0n n X ≥为定义在概率空间()P F,,Ω上,取值于空间E 的马氏链,如果满足下面的马氏性:对一切n 10i i i ,,, 有 [][]1n 1n n n 1n 1n 00n n i X i X P i X i X i X P ----======|,,| 若左边的条件概率有定义,则称[]i X j X P 1n n ==-|为在n-1时刻状态为i,在n 时刻在j 的转移概率函数,若它与n 无关,则记为ij p ,并称为时齐的或齐次的。显然这里的马氏性接近于独立性,在一定程度上可以称为无记忆性或无后效性。 下面我们来推导贝叶斯公式: 容易由条件概率公式定义知 而 ()()()()()()( ) ()() ()( ) ()() ( )() ()()() 1 k 1 k 1k k k 1 k k 1k k k 1k k 1k k k 1k k k k k 1k 1k 1k k k 1k k k k k 1k 1k 1k k k 1k 1k 1k k k 1k 1k 1k 1k 1k z x f dx x f x z f x f x z f z f dx x f x z f x z f z f x f x z f x z f dx z x f x z f z x f x z f x f +++++++++++++++++++++++== ? == ?? ?||||||||||||||||||||||||| 就得到了更新后的公式如下: 这里记 于是就可以得到贝叶斯滤波器跟踪流程如下: 实际上可以证明,卡尔曼滤波器是贝叶斯滤波器的一种特殊形式,由于假定噪声服从正态分布,同样地观测与状态估计的误差也是服从正态分布,那么不难得:

轮廓跟踪

轮廓跟踪 (2009-05-25 15:10:14) 转载▼ 标签: 杂谈 在识别图象中的目标时,往往需要对目标边缘作跟踪处理,也叫轮廓跟踪。顾名思义,轮廓跟踪就是通过顺序找出边缘点来跟踪边界的。若图象是二值图象或图象中不同区域具有不同的象素值,但每个区域内的象素值是相同的,则如下算法可完成基于4连通或8连通区域的轮廓跟踪。 步骤1:首先按从上到下,从左到右的顺序扫描图象,寻找没有标记跟踪结束记号的第一个边界起始点A0,A0是具有最小行和列值的边界点。定义一个扫描方向变量dir,该变量用于记录上一步中沿着前一个边界点到当前边界点的移动方向,其初始化取值为(1)对4连通区域取dir=3; (2)对8连通区域取dir=7; 步骤2:按逆时针方向搜索当前象素的3*3邻域,其起始搜索方向设定如下: (1)对4连通区域取(dir+3)mod 4; (2)对8连通区域,若dir为奇数取(dir+7)mod 8;若dir为偶数去(dir+6)mod 8; 在3*3邻域中搜索到的第一个与当前像素值相同的像素便为新的边界点An,同时更新变量dir为新的方向值。 步骤3:如果An等于第二个边界点A1且前一个边界点An-1等于第一个边界点A0,则停止搜索,结束跟踪,否则重复步骤2继续搜索。 步骤4:由边界点A0、A1、A2、……、An-2构成的边界便为要跟踪的边界。 上述算法是图象轮廓跟踪最基本的算法,它只能跟踪目标图象的内边界(边界包含在目标点集内),另外,它也无法处理图象的孔和洞 轮廓跟踪问题 [m,n]=size(yy); U=zeros(m,n); for i=1:m for j=1:n if yy(i,j)==255 U(i,j)=yy(i,j); break; end; end; end; figure,imshow(U); [m,n]=size(yy); V=zeros(m,n);

二值图像连通域标记算法与代码 收藏

二值图像连通域标记算法与代码收藏 10:19:42二值图像连通域标记算法与代码 这里列举二值图像连通域标记算法包括直接扫描标记算法和二值图像连通域标记快速算法 一、直接扫描标记算法把连续区域作同一个标记,常见的四邻域标记算法和八邻域标记算法。 1、四邻域标记算法: 1)判断此点四邻域中的最左,最上有没有点,如果都没有点,则表示一个新的区域的开始。 2)如果此点四邻域中的最左有点,最上没有点,则标记此点为最左点的值;如果此点四邻域中的最左没有点,最上有点,则标记此点为最上点的值。 3)如果此点四邻域中的最左有点,最上都有点,则标记此点为这两个中的最小的标记点,并修改大标记为小标记。 2、八邻域标记算法: 1)判断此点八邻域中的最左,左上,最上,上右点的情况。如果都没有点,则表示一个新的区域的开始。 2)如果此点八邻域中的最左有点,上右都有点,则标记此点为这两个中的最小的标记点,并修改大标记为小标记。 3)如果此点八邻域中的左上有点,上右都有点,则标记此点为这两个中的最小的标记点,并修改大标记为小标记。 4)否则按照最左,左上,最上,上右的顺序,标记此点为四个中的一个。 代码实现: #include #include #include //连通区域属性结构 typedef struct tagMarkRegion

{ std::list MarkPointList;//点列表 RECT rect; }MarkRegion; //定义MarkMap 结构,用来存放等价对 typedef struct tagEqualMark { int MarkValue1; //标记值 int MarkValue2; //标记值 } EqualMark; //定义MarkMapping 结构,用来存放标记映射关系typedef struct tagMarkMapping { int nOriginalMark; //第一次扫描的标记 int nMappingMark; //等价整理之后对应标记 } MarkMapping; /* 功能说明:八连通标记 参数说明:I,表示图像数据指针 ImageWidth,表示图像宽 ImageHeight,表示图像高

二值图像连通域标记快速算法实现

二值图像连通域标记快速算法实现 算法描述 首先,在进行标记算法以前,利用硬件开辟独立的图像标记缓存和连通关系数组,接着在视频流的采集传输过程中,以流水线的方式按照视频传输顺序对图像进行逐行像素扫描,然后对每个像素的邻域分别按照逆时针方向和水平方向进行连通性检测和等价标记关系合并,检测出的结果对标记等价数组和标记缓存进行更新,在一帧图像采集传输结束后,得到图像的初步标记结果以及初步标记之间的连通关系,最后,根据标号对连通关系数组从小到大的传递过程进行标号的归并,利用归并后的连通关系数组对图像标记缓存中的标号进行替换,替换后的图像为最终标记结果,并且连通域按照扫描顺序被赋予唯一的连续自然数。 图 1 标记算法流程 本文快速二值图像连通域标记算法分为三个环节: 1.图像初步标记:为每个像素赋予临时标记,并且将临时标记的等价关系记录在等价表中 2.整理等价表:这一环节分为两个步骤: (1)将具有等价关系的临时标记全部等价为其中的最小值; (2)对连通区域以自然数顺序重新编号,得到临时标记与最终标记之间的等价关系。 3.图像代换:对图像进行逐像素代换,将临时标记代换为最终标记.经过3个环节处理后,算法输出标记后的图像,图像中连通域按照由上到下,由左至右出现的顺序被标以连续的自然数。 1 图像初始标记 标记算法符号约定:算法在逆时钟方向检测连通域时用w1,w2表示连续两行的图像数据,在紧接着的顺时钟方向连通域检测时用k0,k表示连续两行经过

逆时钟方向标记后的图像数据。其在工作窗口的位置在图2、3中分别说明;对初始逆时针方向临时标记用Z表示。Z初始标记值为1。 二值图像连通域标记算法采用8连通判断准则,通过缩小标记范围剔除了图像的边界效应。为了简化标记处理过程,使标记处理在硬件对一帧图像传输操作时间内结束,标记处理利用中间数据缓存分为连续的两种类型,其中类型1用于直接图像序列传输,硬件发起图像序列传输时,类型1采用逆时钟顺序连通域检测,对2×3工作窗口中的二值像素进行初始标记。类型2对经过类型1初始标记过的图像数据再进行水平方向的连通域检测和归并,然后把标记结果存入图像存储区。 图像初始标记类型1: 步骤1读取像素w1(2)、w1(1)、w1(0)、w0(2)、w0(1),以及相应的二值像素值。 步骤2读取像素w0(1),按照逆时针方向依次与w1(0)、w1(1)、w1(2)、w0(2)比较,若w0(1)= w1(0),则k0(1)=k(2);若w0(1)= w1(1),则k0(1)=k(1);若w0(1)= w1(2),则k0(1)=k(0);若w0(1)= w0(2),则k0(1)=k0(0);否则(即w0(1)≠(w1(2)、w1(1)、w1(0)、w0(2)),k0(1)= Z;Z ++。 步骤3写入等价关系表,以Z为地址将Z写入等价关系数组。 图 2 逆时钟方向初始标记的工作窗 图像初始标记类型2: 步骤1判断经过逆时针方向标记后,如果w0(1)= w0(2)= 1,而标记灰度k0(1)≠k0(0),则进行下一步骤。 步骤2 假设k0(1)> k0(0),判断lab(k0(1))=k0(1)或者lab(k0(1))=k0(0),则lab(k0(1))=k0(0),否则对标记数组进行追踪置换。跳转至步骤3。 步骤3 假设k0(1)< k0(0),判断lab(k0(0))=k0(0)或者lab(k0(0))=k0(1),则lab(k0(0))=k0(1),否则对标记数组进行追踪置换。 追踪置换方法:步骤2的追踪置换令t= lab(k0(0));若lab(t)≠t,则

计算连通域的面积

计算连通域的面积 matlab函数_连通区域 1、 matlab函数bwareaopen——删除小面积对象 格式:BW2 = bwareaopen(BW,P,conn) 作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。 算法: (1)Determine the connected components. L = bwlabeln(BW, conn); (2)Compute the area of each component. S = regionprops(L, 'Area'); (3)Remove small objects. bw2 = ismember(L, find([S.Area] >= P)); 2、matlab函数bwarea——计算对象面积 格式:total = bwarea(BW) 作用:估计二值图像中对象的面积。 注:该面积和二值图像中对象的像素数目不一定相等。 3、matlab函数imclearborder——边界对象抑制 格式:IM2 = imclearborder(IM,conn) 作用:抑制和图像边界相连的亮对象。若IM是二值图,imclearborder将删除和图像边界相连的对象。默认情况conn=8。 注:For grayscale images, imclearborder tends to reduce the overall intensity level in addition to suppressing border structures. 算法: (1)Mask image is the input image. (2)Marker image is zero everywhere except along the border, where it equals the mask image. 4、matlab函数bwboundaries——获取对象轮廓 格式:B = bwboundaries(BW,conn)(基本格式) 作用:获取二值图中对象的轮廓,和OpenCV中cvFindContours函数功能类似。B是一个P ×1的cell数组,P为对象个数,每个cell 是Q×2的矩阵,对应于对象轮廓像素的坐标。 5、matlab函数imregionalmin——获取极小值区域 格式:BW = imregionalmin(I,conn) 作用:寻找图像I的极小值区域(regional maxima),默认情况conn=8。 Regional minima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a higher value. 6、matlab函数bwulterode——距离变换的极大值 格式:BW2 = bwulterode(BW,method,conn) 作用:终极腐蚀。寻找二值图像BW的距离变换图的区域极大值(regional maxima)。用于距离变换的距离默认为euclidean,连通性为8邻域。

相关文档