当前位置:文档之家› 第6章 非刚性人脸跟踪

第6章 非刚性人脸跟踪

第6章 非刚性人脸跟踪
第6章 非刚性人脸跟踪

第六章:非刚性人脸跟踪

非刚性人脸跟踪,是视频流的每一帧的面部特征的准密度的估计,也是一个困难的问题,因为现代方法从很多相关领域借鉴了思想,相关领域包括:计算机视觉,计算几何学,机器学习,和图像处理。这里的非刚性涉及到面部特征在面部表情交叉式的变化的相关距离。并且区别于人脸检测和跟踪,人机检测和跟踪的目的仅是在每一帧图像中找到人脸的位置,而不是面部特征的结构。非刚性人脸跟踪是一个流行的研究热点,已经进行了20年之久,但是仅在不久之前,各种各样的方法开始变的足够的鲁棒性,并且处理足够快,这奠定了可能商业化应用的基础。

尽管商业级人脸跟踪可能高度复杂并且甚至对经验丰富的计算机视觉科学家提出了一个挑战。在这一章我们将看到一个人脸跟踪器,在约束的环境下运行的相当的好,该环境的设计使用了适中的数学工具和OpenCV大量的功能,例如线性代数,图像处理和可视化。这是特征的情况下,当被跟踪的人事先已知并且用图像作为训练数据,标记注释是可用的。今后描述的技术将作为一个有用的起点和进一步追求更复杂人脸跟踪系统的向导。

本章概要如下:

1、复习:这个部分涉及到简短的人脸跟踪历史。

2、有用的东西:这部分概述了本章使用的普通结构和规矩。它包括面向对象设计,数据存储和表示以及数据收集和注释的工具。

3、几何限制:这一部分描述表面几何和它的变化是如何从学习训练数据和在跟踪中如何利用来限制解决的。这涉及到把人脸模型作为一个线性形状模型和全面的转换是如何统一到它的表现的。

4、人脸特征检测器:这部分描述怎样学习面部特征的外观,以用来在将要跟踪的人脸图像中检测他们。

5、人脸检测和初始化:这一步讲述如何使用人脸建仓期来初始化跟踪过程。

6、人脸跟踪:这一部分通过图像队列的处理来组合先前描述的所有成分到一个跟踪系统。讨论了一个好的系统能够运行的环境。

下面的块状图表阐述了系统不同成分之间的关系:

注释:

注意本章使用的方法遵循一个数据驱动的范例,所用使用的模型都是从数据学得,而不是基于一定的规则环境而手工设计的。本身,系统的每个成分将要包含两个要素:训练和测试。训练是从数据中建立模型,测试将这些模型应用到未知的数据。

回顾:

非刚性人脸跟踪首先流行于的90年代中期,伴随着Cootes 和Taylor的ASM的出现。从那时起,大量的研究投身于解决基于ASM提出的原始方法的改进的类人脸跟踪的困难问题。第一个里程碑是在2001年,Coote和Taylor将ASM扩展到AAM。这个方法后来被正式化了,虽然在世纪中叶Baker和学院进行了图像扭曲的原则性处理。沿着这些方向的另外一向工作是Blanz和Vetter进行的3DMM。不光模拟图像纹理,反对像ASM中的沿着轮廓的边缘,而且进一步通过使用从激光扫描人脸学习的高密度3D数据来表示模型。从中期到20世纪末,人脸跟踪研究的焦点从如何人脸参数化转向了如何跟踪算法任务的提出和最优化。来至机器学习社区的各种各种的技术以不同的成功程度被应用到。自从世纪交替时,焦点再一次转移,这次转向了联合参数和目标设计策略,即保证全局的解决。

尽管不断的强烈的研究进入到人脸跟踪,然而相比较有很少的商业应用使用到它。尽管对于许多一般方法有许多可以免费利用源代码包,对嗜好者和热情者举起(发扬)仍然是一个滞后。尽管如此,在过去的两年,在公众领域的人脸跟踪的潜在使用兴趣的复兴,并且商业级的产品也开始出现。

有用的东西

在投入人脸跟踪这个复杂的事物之前,许多标记任务和约定通常所有的人脸跟踪方法必须首先被介绍。这部分剩下的是处理这些问题。一个感兴趣的读者可能希望首先跳过这个部分的

阅读并且直接到几何限制部分。

面向对象设计

正如人脸检测和人脸识别,计划性地,人脸跟踪有两个要素组成:数据和算法。算法通常通过参考存储数据(即离线)作向导来对输入的数据(即在线)执行某中操作。例如,一个将算法和他们依靠的数据连接在一起的面向对象设计是一个方便的设计选择。

在OpenCV v2.x,一个方便的XML/YAML文件存储类被引进,极大的简化了为算法使用组织离线数据的任务。为了利用特征,本章描述的所有类将实现读、写序列化功能。用一个假象的类foo作为一个例子,如下:

#include

using namesapce cv;

class foo

{

public:

Mat a;

type_b b;

void write(FileStorgae &fs) const {assert(fs.isOpened());

fs<<”{“<<”a”<

void read(const FileNode&node)

{

assert(node.type()==FileNode::MAP);

node[“a”]>>a,node[“b”]>>b;

}

};

这里,Mat是OpenCV的矩阵类,type_b是一个用户定义的类,对它同样定义了序列化的功能。I/O函数read和writer现实序列化。FileStorage类支持两个类型数据结构的序列化。为了简化,本章所有的类将只利用映射,即每一个存储变量创造一个类型为FileNode::Map类型的FileNode对象。这里需要唯一的键分配到每一个元素。尽管这个键的选择是随意的,因为前后一致,我们将使用变量的名字作为标签。像先前阐述的代码小片段,read和write 功能呈现一个特别简单的形式,通过使用流操作符(<>)来插入数据到FileStorage对象和从FileStorage对象中提取数据。大部分OpenCV类有read和write功能的实现,允许他们轻松的处理包含的存储的数据。

除定义序列化功能之外,我们还必须在FileStorage类中为序列化定义两个附加的功能来工作,如下:

void writer(FileStorage &fs,const string &,const foo&x)

{

x.wirter(fs);

}

void read(const FileNode &node,foo& x,const foo&default)

{

if(node.empty()) x=d;else x.read(node);

}

同时本部分描述的所有类中,这两个函数的功能是保持一样的,他们模版化和定义在ft.hpp 头文件内,可以在附属于本章的源代码中找到。最后,为了简单地保存和导入用户定义的类,利用序列化功能,模版化的函数同样在头文件中实现,如下:

template T load_ft(const char *fname)

{

T x;

FileStorage f(fname,FileStorage::READ);

f[“ft object”]>>x,f.release();return x;

}

template void save_ft(const char *fname,const T&x)

{

FileStorage f(fname,FileStorage::WRITE);

f<<”ft object”<

f.release();

}

注意和对象一起的标签总是一样的(即,ft object)。采用这些定义的函数,保存和导入对象数据是一个轻松的过程。通过下面的例子展示:

#include “opencv_hotshots/ft/ft.hpp”

#incldue “foo.hpp”

int main()

{

.....

foo A;

save_ft(“fool.xml”,A);

foo B=load_ft(“foo.xml”);

....

}

注意.xm扩展名表示采用XML_格式化数据文件,对于任何其他的扩展名默认采用YAML 格式。

数据收集:图像和视频的注释

现在的人脸跟踪技术几乎完全是数据驱动的,即,算法通常依靠人脸面部特征外观和从一系列例子得到的他们的相对位置的几何依赖性形成的模型,来检测图像中面部特征的位置。更大的样本集,算法表现更好的鲁棒性,因为他们能够更好的意识到人脸可以表现的变化性的全局性。因此,建立人脸跟踪算法的第一步是创建一个图像/视频注释工具,用户可以通过该工具指定每一个样本图像中希望得到的面部特征的位置。

训练数据类型

用来训练人脸跟踪算法的数据一般由四个成分组成:

1、图像:这个成分是一个包含全部人脸的图像集(静的图像或者视频帧)。为了得到最好的效果,这个集应当详细说明环境的类型(即,统一性,光照,到相机的距离,捕捉设备,以及其他),跟踪器过会在该环境中展开进行。集合中的人脸呈现我们应用所期望的头部姿势和面部表情也是重要的。

2、注释:这个成分调整每一个图像的手动标记,以使相应的每一个人脸特征被跟踪。

更多的人脸特征经常导致更好的鲁棒性的跟踪器,因为跟踪算法可以是使用这些度量来加固彼此。普通的跟踪算法在计算上的花费典型地与人脸特征的数量成线性关系。

3、对称目录:这个成分有每个面部特征点的索引,这个成分定义了它的双边地对称特征。这可以用来镜像训练图像,有效的双倍训练集大小和使数据沿着y轴对称。

4、连通性目录:这个成分包含一个注释对的索引集,用来定义面部特征的语义的解释。这些连接多可视化跟踪结果是有用的。

下面的图像是四个成分可视化的一个展示,从左到右分别是,原始图像,面部特征注释,彩色编码双边对称点,镜像图像,和注释和人脸特征联通。

为了更方便地使用这些数据,用一个类来实现存储和访问的功能是非常有用的。OpenCV的ml模块中的CvMLData类处理一般数据的功能,通常用于机器学习问题。然而,它缺少访问人脸跟踪数据的功能。同样地,在这章,我们将使用ft_data类,该类声明在ft_data.hpp 头文件中,专门为记住人脸跟踪数据的特性而设计的。所有的数据成员定义为类的public 成员,如下:

class ft_data{

public:

vector symmetry;

vector connections;

vector imnames;

vector > points;

}

Vec2i和Point2f类型是OpenCV的类,分别为两个整形的容器和2D浮点型坐标。对称的容器拥有和人脸特征点(同样地是用户定义)一样多的成分。每一个connections定义为连通的面部表情的基于0的索引对(以0开始)。因为训练集可能很大,而不是直接的存储图像,这个类通过imnames成员变量来存储每一个图像的文件名(注意为了是文件名有效,我们需要将图像放在同样的相对位置)。最终,对于每一个训练的图像,面部特征位置的集合被作为一个浮点型坐标的容器存储,用points成员变量表示。

ft_data类实现了很多便利的方法用来访问数据。为了在数据集中访问每一个图像,get_image 函数通过指定的索引idx导入图像,并且可选择地围绕y轴进行镜像图像。如下:

Mat ft_data::get_image(const int idx,const int flag)

{

//const int idx;//图像的索引用来从文件导入

//const int flag;//0=gray,1=gray+flip,2=rgb,3=rgb+flip;//flip镜像翻转

Mat img,im;

if(flag<2) img=imread(imnames[idx],0);

esle img=imread(imnames[idx],1);

if(flag%2!=0) flip(img,im,1);else im=img;

return im;

}

将(0,1)标志传递给OpenCV的imread函数用来指按3通道彩色图像的形式的导入还是按单通道灰色图像导入。标志位传递给OpenCV的flip函数用来指定绕在y轴进行镜像。

为了用特殊的索引访问对应与图像的点集,get_points函数一个存储浮点型坐标的容器,带有可选的镜像索引,如下:

ft_data::get_points(cosnt int idx,const bool flipped)

{

//const int idx相应点的图像索引

//const bool flipped;是否将图像绕在Y轴进行旋转

if((idx<0)||idx>=(int)imnames.size())))

return vector();//如果访问的图像不存在,返回空的容器

vector p=ponts[idx];

if(flipped)

{

Mat im=this->get_image(idx,0);int n=p.size();

vector q(n);//初始化N个空的对象

for(int i=0;i

{

q[i].x=im.cols-1-p[symmerty[i]].x;//n为点的个数。

q[i].y=p[symmetry[i]].y;

}return q;

return p;

}

}

}

注意当指定了镜像标记时,这个函数调用get_image函数。这需要判断图像的宽度,以用来纠正镜像人脸特征坐标。一个更有效的设计是传递图像的宽度作为一般变量。最后,在这个函数中symmerty成员变量的用法被阐述。一个特殊索引的镜像特征位置仅仅是symmetry 变量的索引指定的位置和它的x坐标的翻转和偏移。

如果指定的索引在数据集中不存在,get_image和get_points函数均返回空的结构体。同样

可能的是,并不是集合中的所有图像都被注释。人脸跟踪算法可以设计来处理缺失的数据,然而,这些实现通常相当的复杂并且超出了本章的范围。ft_data函数实现了从集合中移除哪些没有相应注释的样本的功能,如下:

void ft_data::rm_incomplete_samples()//rm =rremove

{

int n=ponts[0].size(),N=ponts.size();

for(int i=0;i

for(int i=0;i

{

if(int(points[i].size())!=n)

{

points.erase(points.begin()+i);

imnames.erase(imnames.begin()+i);i--;

}else

{

int j=0;

for(;j

{

if((points[i][j].x<=0||(points[i][j].y<=0)) break;

}

if(j

{

points.erase(points.begin()+i);

imnames.erase(imnames.begin()+i);i--;

}

}

}

}

简单的例子是,大多数量的注释被假定为是权威的样本。拥有点集少于许多数量的点的数据实例将采用容器的erase函数将其从集合中移除。同时也注意到带有(x,y)坐标小于0的点被认为在其相应的图像上缺失(可能是由于遮挡,差的可见度,或者模糊性)。

ft_data类实现序列化函数read和write,并且因此可以简单地存储和导入。例如,保存一个数据集的简单做法如下:

ft_data D;//示例数据结构

..//填充数据

save_ft(“mydata.xml”,D);//保存数据

为了可视化数据集,ft_data函数实现了一些画图功能。他们的用法在visualize_annotations.cpp 文件中阐述。这个程序导入用命令行指定的文件中的注释数据,移除不完全的样本,并且显

示带有相应注释的、对称,连接叠加的训练图像。OpenCv的highgui模块的一些显著的特征在这里示范。尽管相当基本并且不适合复杂用户接口。OpenCV的highgui模块的功能在计算机视觉应用中对于导入和可视化数据和算法输出非常有用。与其他的计算机视觉库相比,这可能是Opencv的品质。

注释工具:

为了用本章的代码产生注释,一个基本的注释工具可以在annotate.cpp文件中找到。这工具用视频流或者文件或者相机作为输入。使用这个工具的程序的四个步骤如下列出:

1、捕捉图像:在这第一步中,图像流显示在屏幕上,用户通过按S键选择图像用来注释。用来注释的最好的特征集是哪些最大的跨度面部行为的范围,这些面部行为是人脸跟踪系统需要跟踪的。

2、注释第一个图像:在第二步中,将第一阶段捕获,选择的图像提供给用户。然后用户接着点击图像上需要跟踪的附属于面部特征的位置。

3、注释连通性:在第三步,为了更好的可视化一个模型,需要定义点的连通性结构。这里,提供给用户先前阶段同样的图像,现在的任务是点击一些点对集,一个接一个的,用来为人脸模型建立连通结构。

4、注释对称性:在这一步,任然使用同样的图像,用户选择展现双边对称性的点对。

5、注释剩下的图像:在最后一步,这里的过程类似与步骤2,除此之外用户可以浏览图像集和异步地注释他们。

有兴趣的读者可能想通过改善他们的有用性来改善这些工具,或者甚至整合一个增加的学习过程,凭借一个跟踪模型的更新,该更新通过每个增加的注释的图像和随后的用来初始化的这些点来减少注释的负担。

尽管一些公开地可以利用的数据集可以为本章开发的代码利用。(例如接下来的描述)。注释工具可以被用来建立指定人脸跟踪模型,通常该模型比一般的,单独的人,相对应的人执行更好的结果。

预注释数据(MUCT数据集)

开发人脸跟踪系统的一个障碍因素是乏味的和易于出错的手动地注释大量图片集的过程,这些图像带有大量的点。为了为本章接下来的工作的目的减轻这个过程,公开地可以利用的MUCT数据集可以通过下面的连接下载:

http://www/https://www.doczj.com/doc/a714716428.html,/muct.

数据集由3755个注有67个特征点人脸图像组成。数据集的主题在年龄和种族,和许多不同光照环境和头的姿势情况下捕捉中变化。。

为了用本章的代码使用MUCT数据集,执行下面的步骤:

1、下载数据集。在这一步,数据集中所用的图像可以通过下载文件muct-a-jpg-v1.tar.gz到muct-e-jpg-v1.tar.ga,并且解压他们来获得。这将产生包含所有图像的新的文件夹。

2、下载注释:在这一步,下载文件包含注释muct-landmarks-v1.tar.gz保存。解压到和先图片的同样的文件夹呀。

3、利用注释工具定义连接和对称:在这一步,来至命令行,发布命令./annotate -m $mdir -d $odir,这里$mdir指示MUCT数据集保存的路径文件夹,$ofir指示annotaion.yaml文件夹,包含数据以ft_data对象的形式被写入存储。

注释:MUCT数据的使用促进在本章对人脸跟踪代码功能描述有一个快速的入门。

几何约束

在人脸跟踪,几何引用了预定义点集的空间配置,这些点集对应于人脸上物理连续位置。(例如眼角,鼻尖和眼毛边缘)。这些点的特殊选择是应用依赖的,一些应用需要超过100个点的稠密集,并且其他仅需要一个稀疏选择。然而人脸跟踪算法的的鲁棒性通常伴随着点数目的更加而改善,因为他们分开的测量值可以通过他们相关空间依赖性来增强彼此。例如,知道一个眼角的位置是对于期待鼻子在哪里定位是一个好的指示。然而通过增加点的数目来获得鲁棒性的改善是有限制的,典型地100个点之后性能停滞。而且,增加用来描述人脸的点集带有计算复杂度的线性增加。因此,带有计算负载严格限制的应用可能带有更少的点集进展的更好。

同样也有这样的情况,在在线环境下更快的跟踪经常导致更精确的跟踪。这是因为,当帧被抛弃时,两帧之间的增加察觉到的运动,以及用来在每一帧图像上寻找人脸配置的最优算法必须搜索可能的特征点配置的更大的空间。当两个帧之间的位移变大时,这个过程经常失败。总的来说,尽管怎样最好的设计面部特征带你的选择有一个一般的指导方针,为了得到最优的性能,这一章应当专业到应用领域。

面部几何通常参数化为两个元素的组成:一个全局(刚性)转换和一般局部(非刚性)变形。全局转换解释为图像中人脸的整体布局,通常允许没有约束的改变(即,人脸可以在图像上的任何地方显示)。这包括每张图像人脸的x,y坐标,面内头部旋转,和图像中人脸的大小。另一方面,局部变形解释为面部形状交叉身份之间的不同和表情之间的不同。与全局转换相对照,这些局部变形通常有更多的限制,约束,主要是由于人脸特征的更高地结构化参数。全局转换是2D坐标的一般功能,适用于任何类型的对象,然而局部变形是特定对象并且必须从训练集中学习。

在这一部分,我们描述面部结构几何模型的构造,因此成为形状模型。取决于应用,它可以捕捉单个个体的表情变化,和交叉不同的人脸形状或者两者的混合。这个模型用shape_model 类实现,可以在shape_model.hpp和shape_mode.cpp文件中找到。下面的代码片段是shape_model类的头的一部分,用来说明它的基本的功能。

class shape_model{//2d线性模型

public:

Mat p;//参数矢量k*1 CV_32F

Mat V;//线性子空间(2n*k) CV_32F

Mat e;//参数变化(k*1) CV_32F

Mat C;//连通性(c*2) CV_32S

...

void calc_params(

const vector&pts;//用来计算参数的点

const Mat &weight=Mat() //weight/point N*1 CV_32F

const float c_factor=3.0)//clamping factor夹因素

.....

vector //用参数描述的形状

calc_shape();

....

void train(

const vector >&p,//N个样本形状

const vector &con=vector()//连通性

const float frac=0.95;//用来保留的变化的分数

const int kmax=10)//用来保留的模型的最大数量

..

}

用人脸的形状代表变化的模型用子空间矩阵V和方差e进行编码。参数矢量P存储表示模型的形状的编码。连通性矩阵C同时也存储在这个类,因为它仅术语人脸形状的可视化示例。在这个类中基础兴趣的三个函数是calc_params,calc_shape,和train。calc_params函数投影一个点集到似乎可信的人脸形状的空间。calc_shape函数通过使用人脸模型(用v和e编码)解码参数矢量p来产生一个点集。train函数用人脸形状数据集学习编码模型,每一个模型由同样数量的点组成。参数frac和kmax是训练过程的参数,可以为眼前的数据特化该参数。

这个类的功能将在接下来的部分进行详细的描述,那里我们通过Procrustes分析开始,它是用来严格地登记一个点集的方法。接下来通过用通常代表局部变形的线性模型。train_shape_model.cpp和visulize_shape_model.cpp文件中的程序分别的训练和可视化模型。他们的使用将在本部分的结束进行概括。

Procrustes分析

为了建立人脸形状的一个变化模型,我们首先必须处理为加工注释的数据来移除附属于全局刚性的运动的成分。当我们用2D模型化几何时,一个刚性的运动通常代表为一个类似的转换。这包括尺度,面内旋转和平移。下面的图像阐述了在一个类似的转换下的一套允许的动作类型。从一个点集中移除全局刚性运动的过程被成为Procrustes分析.

数学上地,Procrusters分析的目的是同时找到一个权威的形状并且类似转换每一个数据实例,用这个权威的形状将他们对齐。这里,对齐的测量是用采用了权威形状的两个转换形状的最小二乘距离。为了完成这个目标,一个重复的过程在shape_model类中实现,如下:

#define fl at

Mat shape_mode::procruster(交错未加工的数据,按列(作为列)const Mat &X;//

const int itol ,//尝试迭代的最大次数

const float ftol)//收敛公差

{

int N=X.cols,n=X.rows/2;

Mat Co,P=X.clone();//复制

for(int i=0;i

{

Mat p=P.col(i);//第i个形状

float mx=0,my=0;//计算块的中心

for(int j=0;j

{

mx+=p.fl(2*j);

my+=p.fl(2*j+1);

}

mx/=n;my/=n;

}

for(int j=0;j

{

p.fl(2*j)-=mx;p.fl(2*j+1)-=my;

}

}

for(int iter=0;iter

{

Mat C=P*Mat::ones(N,1,CV_32F)/N;//计算归一化

normlize(C,C);//权威形状

if(iter>0) {if(norm(C,Co)

Co=C.clone();//记住当前的估计

for(int i=0;i

{

Mat R=this->rot_scale_align(P.col(i),C);

for(int j=0;j

{

float x=P.fl(2*j,i),y=P.fl(2*j+1,i);

P.fl(2*j,i)=R.fl(0,0)*x+R.fl(0,1)*y;

P.fl(2*j+1,i)=R.fl(1,0)*x+R.fl(1,1)*y;

}

}

}return P;//返回procruste对齐的形状

}

这个算法开始通过每一个形状示例块的中心,接着通过一个迭代处理,即交替的计算权威的形状,因为所有图像的归一化均值,并且旋转和尺度化到最佳匹配的权威形状。估计的权威形状的标准化步骤需要固定尺度问题和防止将所有的形状缩小到0.这个尺度的选择是随意的,这里精选来迫使权威形状矢量C的长度到1.0,因为这个OpenCV的normalize函数的默认行为。计算面内旋转和尺度,最好通过下面的rot_scale_align函数使每一个形状的示例和当前估计的权威形状相一致。:

Mat shape_model::rot_scale_align(

cosnt Mat &src,//[x1;y1;,,,,xn;yn]原形状示例

const Mat &dst//目的形状

{

//构造线性系统

int n=src.rows/2;float 1=0,b=0,d=0;

for(int i=0;i

{

d+=src.fl(2*i)*src.fl(2*i)+src.fl(2*i+1)*src.fl(2*i+1);

a+= src.fl(2*i)*dst.fl(2*i )+src.fl(2*i+1)*dst.fl(2*i+1);

b+= src.fl(2*i)*dst.fl(2*i+1)-src.fl(2*i+1)*dst.fl(2*i );

}

a/=d;b/=d;//解决线性系统

return (Mat_float(2,2)<

}

这个函数最小化下面的旋转和权威形状的不同的最小二乘。数学上可以表示如下:

这里最小二乘问题的解决采用闭合形式的解决,在下面的图像等式的右手边。注意而不是用来解决尺度和面内旋转的,在尺度化2D选择矩阵中他们是非线性的关系(尺度和面内选择),我们解决变量(a,b)。这个变量与尺度和旋转矩阵相关,如下:

Procureste对原始注释形状数据分析的可视化效果在下面的图像中阐述。每一个面部特征用唯一的颜色显示。转换标准化之后,人脸的结构开始显现出来,这里人脸特征簇的位置围绕他们均值的位置。迭代尺度和旋转标准化过程之后,特征簇变的更加紧凑并且他们的分布变

的由面部变形导致的变化更具有代表性。最后一点是重要的,因为这些变形我们将在接下来的部分尝试模型化。因此,Procruster分析的角色可以被认为是对原始数据的操作,这个操作将得到更好的人脸局部变形模型用来学习。

线性形状模型

面部变形模型的目的是找到一个紧凑的参数化代表,即人脸的形状在交叉身份和表情之间是怎么样变化的。采用不同复杂度水平,有很多方法可以达到这个目的。这些方法中最简单的是使用一个面部几何的线性表示。尽管它简单,特别地,当数据集中的人脸大部分是前向姿势时,它已经展示了精确地捕获面部变形的空间。它与它的非线性部分相比还有个优点是推断它表示的参数是一个非常简单和廉价的操作。这在跟踪期间,通过配置它来约束搜索过程是很重要的。

线性地模型化面部形状的主要思想在下面的图像阐述。这里,一个人脸形状,它有N个人脸特征组成,在2N维空间模型化为一个单点。线性模型化的目标是找到嵌入在这个2N维空间的低维超平面,所有人脸形状的点都位于2N维空间(即图像中绿色的点)。因为这个超平面仅跨度完整2N维空间的一个子集,它通常被称为子空间。子空间维数越低,人脸表示更加紧凑并且约束更加强,这个约束强加于跟踪过程。这经常导致鲁棒性更高的跟踪。然而,子空间维度的选择上要注意,以使有足够的容量张成所有人脸空间,但在张成的空间里又没有太多的非人脸形状(即图像中红色的点)。当从单个人模型化数据时,这应当被标识。获得人脸变化性的子空间通常比模式化多个身份有更高的紧凑性。这就是为什么指定人跟踪器的执行效果要比一般人好。

寻找最低维子空间(张成一个数据集)的过程成为主成份分析(PCA)。OpenCV实现了计算PCA的类,然而,它需要预先指定保留的子空间维数。因为这往往是很难确定的先验,常见的启发式是基于它所占的总的变化的分数比例来选择它。在shape_model::train函数中,PCA的实现如下:

SVD svd(dY*dY.t());

int m=min(min(kmax,N-1),n-1);

float vsum=0;

for(int i=0;i

vsum+=svd.w.fl(i);

float v=0;int k=0;

for(k=0;k

{

v+=svd.w.fl(k);

if(v/vsum>=frac){k++;break;}

}

if(k>m) k=m;

Mat D=svd.u(Rect(0,0,k,2*n));

这里,dy变量的每一列表示减去均值的Procrustes对齐形状。因此,奇异值分解SVD有效的应用到形状数据的协方差矩阵(即,dY.t()*dY)。OpenCV的SVD类的w成员存储着数据变化性的主要方向的变量,从最大到最小排序。一个选择子空间维数的普通方法是选择保存数据总能量分数frac的方向最小集(即占总能量的比例为frac),这是通过svd.w.记录表示的,因为这些记录是从最大的到最小的排序的,它充分地用来评估子空间,通过用变化性方向的最大值k来评估能量。他们自己的方向存储在SVD类的u成员内。svd.w和svd.u成分一般分别被成为特征谱和特征矢量。这两个成分的可视化如下图表:

注释:

注意特征谱的迅速下降表明,包含在数据中的主要变化可以用低维子空间进行模型化。

局部——全局的组合表示

图像帧中形状是通过局部变形和全局转换组合产生的。数学上,这个参数化是不确定的,因为这种转变的组成导致一个非线性的函数,该函数没有闭合形式的解。绕过这个问题的一个普通的方法是把全局转换模型为一个线性子空间并且把它添加到变形子空间。为了得到一个固定的形状,可以用一个子空间模式化一个类似的转换。如下:

在shape_model类中,这个子空间的通过calc_rigid_basis函数产生,来至产生这个子空间的形状(即前面等式中x和y成分)是Procuses对齐形状值(即,权威的形状)。另外用前面提到的形式构造子空间,矩阵的每一列归一化为单位长度。在shape_model::train函数中,先前部分描述的dy是通过映射附属于刚性运动数据成分计算得到的。如下:

Mat R=this->calc_rigid_basis(Y);//计算刚性子空间

Mat P=R.t()*Y;Mat dy=Y-R*P//产生出的刚性

注意这个投影是通过简单的矩阵乘法实现的。这可能是因为刚性子空间列已经进行了长度归一化。这并没有改变模型张开的空间,并且仅意味着R.t()*R等价与单位矩阵。

因为源于刚性转换的变化性的方向已经从先前先前学习变形模型的数据中去掉,作为结果变形的子空间将正交与刚性转换的子空间。因此,连接两个子空间将导致一个组合局部-全局线性面部形状的表示,这同样也正交。这里联合可以利ROI抽取机制,排列两个矩阵到混合子空间矩阵的子矩阵来现实。ROI的抽取可以用OpenCV的Mat类来实现。如下:

V.create(2*n,4+k,CV_32F);//组合子空间

Mat Vr=V(Rect(0,0,4,2*n));R.copyTo(Vr);//刚性子空间

Mat vd=V(Rect(4,0,k,2*n));D.copyTo(Vd);//非刚性子空间

结构模型的正交性意味着描述一个形状的参数可以简单地被计算,就像shape_model::calc_param函数做的:

p=V.t()*s;

这里的s是一个矢量化的人脸形状,并且p存储着表示它的人脸子空间的坐标。

最后一点注意的是线性化模型人脸形状是怎样约束子空间的坐标,例如使用它产生的形状任然有效。在下面的图像中,位于子空间的人脸形状示例被展示,用来表现坐标的一个增加值,用变量的一个方向值和4个标准差的增加。注意对于小的值,结果形状保持的像人脸,但是随着值变大开始恶化。

阻止这种变化的一个简单的方法是固定住子空间坐标的值,使当用子空间的数据决定时位于允许的区域。对于这个一个普遍的选择是用+-3数据标准差约束的框,这占数据变化的99.7比例。这些固定的值通过shape_model::train函数,在找到子空间后,计算得到的。如下: Mat Q=Vt()*X;//将原始数据投影到子空间

for(int i=0;i

{

float v=Q.fl(0,i); Mat q=Q.col(i);q/=v;

}

e.create(4+k,1,CV_32F);

multiply(Q,Q,Q);

for(int i=0;i<4+k;i++)

{

if(i<4) e.fl(i)=-1;//对于刚性稀疏不固定

else e.fl(i)=Q.row(i).dot(Mat::ones(1,N,CV_32F))/(N-1);

}

注意方差是在子空间标准化后的坐标上计算的,标准化是关于第一维的坐标(即尺度)。这样可以阻止相对大尺度的样本数据主导估计。也注意到一个负值被分配到刚性子空间坐标的方差(即V的前四列)。用来固定的函数shape_model::clamp来检测是否一个特殊方向的方差是负值,如果不是负值则应用固定,如下:

void shape_model::clamp(

const float c)//固定作为标准方差的分数

{

double scale=p.fl(0);//提取尺度

for(int i=0;i

{

if(e.fl(i)<0)continue;//忽略刚性成分

float v=c*sqrt(e.fl(i))//c*标准化框

if(fabs(p.fl(i)/scale)>v)//保存坐标符号

{

if(p.fl(i)>0) p.fl(i)=v*scale;//正阈值

else p.fl(i)=-v*scale;//负阈值

}

}

这样做的理由是训练数据通常是在人为的环境下获取的,在这种环境下,人脸是竖直的并且以一个特殊的尺度位于图像的中心。依赖于训练集中的配置的形状模型的刚性成分是非常受限制的。最终,随着每一个可变形坐标的方差在尺度化的帧中被计算,在固定时,同样的尺度化必须应用于坐标。

训练和可视化

用标记的数据训练一个形状模型的例程可以在train_shape_model.cpp中找到。带有包含标记数据路径的命令行参数argv[1],训练通过导入数据到内存开始,并且移除不完全的样本,如下:

ft_data data=load_ft(argv[1]);

data.rm_imcomlete_samples();

对于每个例子的标记和可选的他们的镜像部分,在传输到训练函数之前被存储在一个容器中,如下:

vetctor >points

for(int i=0;i

{

points.push_back(data.get_points(i,false));

if(mirro) points.push_back(data.get_points(i,true));

}

然后形状模型通过调用一个函数shape_model::train()来训练,如下:

shape_model smodel ;smodel.train(points,data.connections,frac,kmax);

这里frac(即用来保留的变化分数)和kmax(即用来保持的最大特征矢量的数目)通过命令行选项可以有选择的设置,默认设置为0.95和20,分别地,(这两个参数)在大部分情况下趋向于工作好。最后采用包含保存训练形状模型路径的命令行参数argv[2],保存可以通过调用一个函数来执行,如下:

save_ft(argv[2],smodel);

这部的简单性是由于为shape_model类定义了read和write序列化函数。

为了可视化训练模型,visualize_shape_model.cpp程序生动化地轮流显示每个方向的非刚性变形。通过导入形状模型到存储器开始,如下:

shape_model smodel=load_ft(argv[1]);

用来置于显示窗口的中心的模型的刚性参数的计算如下:

int n=smodel.V.rows/2;

float scale=calc_scale(smodel.V.col(0),200);

float tranx=n*150.0/smodel.V.col(2).dot(Mat::onews(2*n,1,CV_32F));

float trainy=n*150.0/smodel.V.col(2).dot(Mat::onews(2*n,1,CV_32F));

这里calc_scale函数寻找尺度化系数,该系数可以产生带有200像素宽的人脸形状。平移成分通过找到系数(用来产生150像素的平移)来计算(即,这里的模型均值中心化并且用大小为300*300的窗口显示)。

注释

注意shape_model::V的第一列对应于尺度并且第三列和第四列分别对应于x和y的平移。

然后参数值的轨道被产生,该轨道从0开始,移动到正的极端,移动到负的极端,然后回到0,如下:

vector val;

for(int i=0;i<50;i++)val.push_back(float(i)/50);

for(int i=0;i<50;i++)val.push_back(float(50-i)/50);

for(int i=0;i<50;i++)val.push_back(-float(i)/50);

for(int i=0;i<50;i++)val.push_back(-float(50-i)/50);

这里,每一个动画的相位由50个增值组成。然后这个轨道被用于在显示窗口上动画人脸模型和给于(渲染)结果。如下:

Mat img(300,300,CV_8UC3); namedWindow(“shape model”);

while(1)

{

for(int k=4;k

{

for(int j = 0; j < int(val.size()); j++){

Mat p = Mat::zeros(smodel.V.cols,1,CV_32F);

p.at(0) = scale;

p.at(2) = tranx;

p.at(3) = trany;

p.at(k) = scale*val[j]*3.0*

sqrt(smodel.e.at(k));

p.copyTo(smodel.p); img = Scalar::all(255);

vector q = smodel.calc_shape();

draw_shape(img,q,smodel.C);

imshow("shape model",img);

if(waitKey(10) == 'q')return 0;

}

}

}

注释

注意刚性系数(即,这些对应于shape_model::V的前四列)通常设置为先前计算得到的值,用来将人脸显示在屏幕的中心。

面部特征检测器

检测图像中的面部特征和一般目标检测很相似。OpenCV有一组精细的函数来建立一般目标检测,其中最知名就是基于Haar特征级联检测器,它采用的是著名的Viola-Jones人脸检测器实现的。然而,有些可以可区分的因素,这些因素使得面部检测唯一,他们如下:

1、精度对鲁棒性:在一般的目标检测,目的是为了寻找图像中目标的大致位置。面部检测器需要得到特征位置的高精度的估计。一种错误是:在目标检测中少量像素被认为不重要,但是在通过特征检测进行人脸表情估计时它可能意味着微笑和皱眉的之间的差异。

2、来至有限空间支持的歧义:一个很常见的假设是用一般目标检测器检测感兴趣的目标表现出充分的图像结构,这样,它可以可靠的区分不包含目标的图像区域。对于面部特征来说这不是常见的情况,它典型地限制了空间支持。这是因为不包含目标的图像区域通常表现出和面部特征非常相似的结构。例如,人脸边缘的一个特征,从中心位于该特征点的小边界框来看,很容易和任何其他的包含有明显边缘的图像块混淆。

3、计算的复杂度:一般目标检测的目的是寻找图像中所有目标的实体。另一方面,人脸跟踪需要得到所有面部特征的位置,这通常包含有大约20到100个特征。因此,有效地评估每一个特征检测器性能,最主要的在于能够建立一个实时的人脸跟踪器。

由于这些的差异,用于人脸跟踪的面部特征检测器通常专门的设计。当然,在人脸跟踪中,有很多一般目标检测器技术应用到面部特征人脸器。然而,在关于谁表现的更能适合解决面部特征跟踪问题上,没有一个一致的说法。

在这一部分,我们将使用被认为是最简单的模型——线性图像块来建立面部特征检测。尽管它简单,在设计它的学习过程时应关注一下,我们将看到事实上用在人脸跟踪算法上,它可以给出面部特征位置的合理估计。而且,他们的简单些使得估计速度非常快,使实时的人脸跟踪成为可能。由于他们表现的像一个图像块,因此,面部特征检测器称为块模型。这个模型通过patch_model类来实现,该类可以在patch_model.hpp和patch_model.cpp文件中找到。下面的代码片段给出了path_model类的头部分,强调该类的基本功能:

class patch_model{

public:

Mat P; //normalized patch//归一化的块

...

Mat //response map //映射

calc_response(

const Mat &im, //image patch of search region//搜索区域的图像块

const bool sum2one = false); //normalize to sum-to-one?

...

void

train(const vector &images, //training image patches//训练图像块

const Size psize, //patch size//块大小

const float var = 1.0, //ideal response variance //实响应方差

const float lambda = 1e-6, //regularization weight//规则化权重

const float mu_init = 1e-3, //initial step size//初始化的步长大小

const int nsamples = 1000, //number of samples//样本的数量

人脸识别技术的应用背景及研究现状

人脸识别技术的应用背景及研究现状 1.人脸识别技术的应用 随着社会的不断进步以及各方面对于快速有效的自动身份验证的迫切要求,生物特征识别技术在近几十年中得到了飞速的发展。作为人的一种内在属性,并且具有很强的自身稳定性及个体差异性,生物特征成为了自动身份验证的最理想依据。当前的生物特征识别技术主要包括有:指纹识别,视网膜识别,虹膜识别,步态识别,静脉识别,人脸识别等。与其他识别方法相比,人脸识别由于具有直接,友好,方便的特点,使用者无任何心理障碍,易于为用户所接受,从而得到了广泛的研究与应用。除此之外,我们还能够对人脸识别的结果作进一步的分析,得到有关人的性别,表情,年龄等诸多额外的丰富信息,扩展了人脸识别的应用前景。当前的人脸识别技术主要被应用到了以下几个方面:(1)刑侦破案公安部门在档案系统里存储有嫌疑犯的照片,当作案现场或通过其他途径获得某一嫌疑犯的照片或其面部特征的描述之后,可以从数据库中迅速查找确认,大大提高了刑侦破案的准确性和效率。 (2)证件验证在许多场合(如海口,机场,机密部门等)证件验证是检验某人身份的一种常用手段,而身份证,驾驶证等很多其他证件上都有照片,使用人脸识别技术,就可以由机器完成验证识别工作,从而实现自动化智能管理。 (3)视频监控在许多银行,公司,公共场所等处都设有24小时的视频监控。当有异常情况或有陌生人闯入时,需要实时跟踪,监控,识别和报警等。这需要对采集到的图像进行具体分析,且要用到人脸的检测,跟踪和识别技术。 (4)入口控制入口控制的范围很广,既包括了在楼宇,住宅等入口处的安全检查,也包括了在进入计算机系统或情报系统前的身份验证。 (5)表情分析根据人脸图像中的面部变化特征,识别和分析人的情感状态,如高兴,生气等。此外,人脸识别技术还在医学,档案管理,人脸动画,人脸建模,视频会议等方面也有着巨大的应用前景。 2.人脸识别技术在国外的研究现状 当前很多国家展开了有关人脸识别的研究,主要有美国,欧洲国家,日本等,著名的研究机构有美国MIT的Media lab,AI lab,CMU的Human-Computer I nterface Institute,Microsoft Research,英国的Department of Engineerin g in University of Cambridge等。综合有关文献,目前的方法主要集中在以下几个方面:

人脸识别技术的应用背景及研究现状

1.人脸识别技术的应用 随着社会的不断进步以及各方面对于快速有效的自动身份验证的迫切要求,生物特征识别技术在近几十年中得到了飞速的发展。作为人的一种内在属性,并且具有很强的自身稳定性及个体差异性,生物特征成为了自动身份验证的最理想依据。当前的生物特征识别技术主要包括有:指纹识别,视网膜识别,虹膜识别,步态识别,静脉识别,人脸识别等。与其他识别方法相比,人脸识别由于具有直接,友好,方便的特点,使用者无任何心理障碍,易于为用户所接受,从而得到了广泛的研究与应用。除此之外,我们还能够对人脸识别的结果作进一步的分析,得到有关人的性别,表情,年龄等诸多额外的丰富信息,扩展了人脸识别的应用前景。当前的人脸识别技术主要被应用到了以下几个方面:(1)刑侦破案公安部门在档案系统里存储有嫌疑犯的照片,当作案现场或通过其他途径获得某一嫌疑犯的照片或其面部特征的描述之后,可以从数据库中迅速查找确认,大大提高了刑侦破案的准确性和效率。 (2)证件验证在许多场合(如海口,机场,机密部门等)证件验证是检验某人身份的一种常用手段,而身份证,驾驶证等很多其他证件上都有照片,使用人脸识别技术,就可以由机器完成验证识别工作,从而实现自动化智能管理。 (3)视频监控在许多银行,公司,公共场所等处都设有24小时的视频监控。当有异常情况或有陌生人闯入时,需要实时跟踪,监控,识别和报警等。这需要对采集到的图像进行具体分析,且要用到人脸的检测,跟踪和识别技术。 (4)入口控制入口控制的范围很广,既包括了在楼宇,住宅等入口处的安全检查,也包括了在进入计算机系统或情报系统前的身份验证。 (5)表情分析根据人脸图像中的面部变化特征,识别和分析人的情感状态,如高兴,生气等。此外,人脸识别技术还在医学,档案管理,人脸动画,人脸建模,视频会议等方面也有着巨大的应用前景。 2.人脸识别技术在国外的研究现状 当前很多国家展开了有关人脸识别的研究,主要有美国,欧洲国家,日本等,著名的研究机构有美国MIT的Media lab,AI lab,CMU的Human-Computer I nterface Institute,Microsoft Research,英国的Department of Engineerin g in University of Cambridge等。综合有关文献,目前的方法主要集中在以下几个方面: (1)模板匹配 主要有两种方法,固定模板和变形模板。固定模板的方法是首先设计一个或几个参考模板,然后计算测试样本与参考模板之间的某种度量,以是否大于阈值来判断测试样本是否人脸。这种方法比较简单,在早期的系统中采用得比较

目标跟踪的研究背景意义方法及现状

目标跟踪的研究背景意义方法及现状 1目标跟踪的研究背景及意义 (1) 1.1电视监控 (2) 1.2视频压缩编码 (2) 1.3智能交通系统 (2) 1.4人机交互 (3) 2研究现状及研究面临的问题 (3) 2.1研究现状 (3) 2.2研究面临的难题 (4) 3目标跟踪的主要方法 (4) 3.1基于检测的方法 (5) 3.2基于识别的方法 (5) 1目标跟踪的研究背景及意义 感觉是人类与外界联系的窗口和交流的桥梁,它的主要任务是识别周边物体,判断与这些物体之间的联系,使人类的思维与周围世界建立某种对应的关系。而视觉系统是人类感觉的最主要来源,是获取外界信息的最主要途径,它是一种高清晰度的媒介,为人类提供着丰富的外界资源信息。据统计,大约有80%的外界信息是通过眼睛被人接收的。然而,由于人类的精力毕竟是有限的,人类的视野也是有限的,所以人类的视觉在各种领域的应用都受到很大限制甚至是低效的。 因而,随着数字计算机技术的飞速发展,让计算机能够处理视觉信息、完善人类视觉上的诸多短板就成了一项非常诱人的研究课题,也因此推动了计算机视觉这一学科的产生和发展。计算机视觉是融合了图像处理、计算机图形学、模式识别、人工智能、人工神经网络、计算机、心理学、物理学和数学等领域的一门交叉性很强的学科。计算机视觉研究的目的是使计算机感知环境中的物体的几何信息,包括它的形状、位置、姿态、运动等,并对其进行描述、存储、识别与理解,因此成为当今最热门的课题之一。 运动目标跟踪属于视频分析的内容,而视频分析则融合了计算机视觉研究领域的中层和高层处理阶段,即对图像序列进行处理,从而研究运动目标的规律,或者为系统的决策报警提供语义和非语义的信息支持,包括运动检测、目标分类、目标跟踪、行为理解、事件检测等。视频目标跟踪方法的研究和应用作为计算机视觉领域的一个重要分支,正日益广泛地应用到科学技术、国防建设、航空航天、医药卫生以及国民经济的各个领域,因而研究目标跟踪技术有着重大的实用价值

视频中的人脸检测定位与跟踪识别毕业论文

毕业论文声明 本人郑重声明: 1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。 2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。 3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。 4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。 学位论文作者(签名): 年月

关于毕业论文使用授权的声明 本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。本人完全了解大学有关保存,使用毕业论文的规定。同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据 库和收录到《中国学位论文全文数据库》进行信息服务。在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 论文作者签名:日期: 指导教师签名:日期:

目标跟踪算法的分类

目标跟踪算法的分类

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

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

开题报告-人脸检测与识别

t 开题报告 1. 研究背景 各种智能系统在生活中的应用越来越普遍。智能系统中经常需要身份识别以便提供 个性化服务。身份识别是一个很棘手的的问题,传统方法中主要是通过一些具有个人身 份特征的事物来鉴别,比如证件、钥匙等身份标识物品,或者是用户名和密码之类的身 份标识知识。在一些要求比较高的系统中,一般将这两方法结合起来使用,例如我们在 使用ATM机时,只有ATM卡和密码都正确才能访问特定的用户并进行一些列操作。但是 传统的身份鉴别方法缺点是相当明显的:身份标识物品容易丢失或被伪造,身份标识知 识容易遗忘或被盗取。这个时候身份鉴别就是天方夜谭了。如果利用每个人本身的生物 特征如人脸特征,指纹等等就能达到相当好的效果。这使得生物特征识别技术焕发光彩。 由于微电子和机器视觉方面取得了新进展,高性能自动识别的技术可行性越来越高。近 年来兴起的人脸识别在众多生物识别方法中应用最为广泛。在国外,人脸识别技术早已 被大量使用在国家重要部门以及军警等安防部门。在国内,对于人脸识别技术的研究始 于上世纪90年代,目前主要应用在公安、金融、网络安全、物业管理以及考勤等领域。 2. 研究意义 人脸识别是机器视觉和模式识别领域最富有挑战性的课题之一,同时也具有较为广 泛的应用意义。人脸识别技术是一个非常活跃的研究领域,它覆盖了数字图像处理、模 式识别、计算机视觉、神经网络、心理学、生理学、数学等诸多学科的内容。如今,虽 然在这方面的研究已取得了一些可喜的成果,但是FRT在实用应用中仍面临着很严峻的问 题,因为人脸五官的分布是非常相似的,而且人脸本身又是一个柔性物体,表情、姿态或 发型、化妆的千变万化都给正确识别带来了相当大的麻烦。如何能正确识别大量的人并 满足实时性要求是迫切需要解决的问题。 基于人脸生物特征的身份鉴别具有以下优点: (1)用户易接受:操作简单,身份识别度高,识别速度快。 (2)防伪性能好:人脸特征被伪造或被盗可能性很低。 (3)使用方便:不用担心丢失或遗忘,随时随地可用。

目标追踪基础知识

静态背景:只动目标 动态背景:动目标和camera;复杂相对运动 静态背景: 1.背景差分:先获得背景后根据差值取阈得图像(背景影响较大) 背景获得:(1)时间平均 (2)参数建模 阴影消除:色度值代替亮度值; 2.帧间差分:相邻两幅图差值进行计算获得运动物体位置与形状(部分信息,不适用于运动缓慢物体) 3.光流法:带有灰度的像素点在图像平面上运动产生的瞬时速度场(最复杂,不适于实时估计,抗噪性差) 动态背景: 基于块的运动估计与补偿:假定同一图像块上运动矢量相同,通过像素域搜索得到最佳运动 矢量估算。 关键技术:(1)匹配法则:最大相关,最小误差 (2)搜索方法:三步搜索,交叉搜索 (3)块大小确定:分级,自适应 Tracking:通过目标有效表达寻找最佳相似目标。 目标特征:(1)视觉特征:边缘,轮廓,形状,纹理,区域 (2)统计特征:直方图,各种矩特征 (3)变化系数特征:傅里叶描绘子,自回归模型 (4)代数特征:图像矩阵的奇异值分解 相似度度量算法(匹配法则):欧氏距离,街区距离,棋盘距离,加权距离,巴特查理亚系 数,Hausdorff距离。(欧氏距离最简单) 搜索算法:预测下一帧物体可能存在的位置。kalman滤波,扩展的Kalman滤波,粒子滤波。Kalman算法:线性最小方差估计。通过状态方程和观测方程来预估。无偏,稳定,最优。粒子滤波算法:非线性,非高斯系统。递归方式进行处理,节省空间,有较好鲁棒性。均值漂移算法(Meanshift):梯度优化,非刚性目标,非线性运动目标,变形,旋转均可。连续自适应均值漂移算法(Camshift):基于Meanshift,结合色彩信息。可有效解决变形 和遮挡问题。 分类:(1)基于主动轮廓追踪(Snake模型):定义可变形Snake曲线,通过对其能量函数最小化,使其轮廓逐渐变成与目标轮廓一致。跟踪可靠性增加,但计算量较大,并 且对快速运动或形变较大物体跟踪情况不理想。 (2)基于特征的跟踪: 特征提取:特征:有直观意义,有分类意义,计算相对简单,有图像平 移旋转尺度变换等不变性。主要有颜色,纹理边缘, 块特征,光流特征,周长面积,质心,角点。 特征匹配:基于二值化、边缘特征、角点特征、灰度、颜色特征匹配。 对尺度、形变、亮度变化不敏感。只要有一部分特征能被提 取就可以。但对噪声敏感,连续帧间关系难以确定。 (3)基于区域的追踪:得到人为或图像分割的矩形或不规则图形模版,再用算法跟 踪目标。费时,未被遮挡时精度很高,目标变形或有遮挡精 度下降。

人脸识别背景及其方法

浅谈人脸识别技术的现状与发展 宋磊卞迪白杰文范益彪李主南 摘要 人脸识别技术以其独特性、直接性、方便性等特点,在涉及身份特征识别的领域里被广为应用。本文主要介绍人脸识别技术(FRT)的研究内容、研究背景价值及研究现状。通过分析当前人脸识别技术的现状,总结了人脸识别的应用前景,提出了人脸识别技术的未来发展要求。 关键词:人脸识别,研究现状,发展趋势 Abstract Face Recognition Technology,characterized by its uniqueness,direct and convenience,is widely used in the identification of identity.This paper mainly introduces the research content,study background value,and research status of the Face Recognition Technology.Through the analysis of the present situation of Face Recognition Technology,the application prospect of Face Recognition is summarized and the future development of Face Recognition Technology is proposed. Key words: Face Recognition,Research status,Developing trend 引言 随着现代信息技术的快速发展,进行身份认证的技术转到了生物特征层面。现代生物识别技术主要是通过计算机与高科技手段密切结合,利用人体固有的生理特性和行为特征来进行个人身份的鉴定。其中人脸识别是指人的面部五官以及轮廓的分布,这些分布特征因人而异,与生俱来。 人脸是一个包含着丰富信息的模式的集合,是人类互相辩证和识别的主要标志之一,也是图像和视频中视觉感兴趣的对象之一。与指纹、虹膜、语音等其他人体生物特征相比,人脸识别更加直接、友好,无需干扰人们的正常行为就能较好地达到识别效果。在身份识别、访问控制、视频会议、档案管理、电子相册、基于对象的图像和视频检索等方面有着广泛的应用,是当前模式识别和人工智能领域的一个研究热点。由于采用人脸识别技术的设备可以随意安放,设备的安放隐蔽性非常好,能远距离非接触快速锁定目标识别对象,因此人脸识别技术被国外广泛应用到公众安防系统中,应用规模庞大。人脸识别技术的研究肇始于20

目标跟踪相关研究综述

Artificial Intelligence and Robotics Research 人工智能与机器人研究, 2015, 4(3), 17-22 Published Online August 2015 in Hans. https://www.doczj.com/doc/a714716428.html,/journal/airr https://www.doczj.com/doc/a714716428.html,/10.12677/airr.2015.43003 A Survey on Object Tracking Jialong Xu Aviation Military Affairs Deputy Office of PLA Navy in Nanjing Zone, Nanjing Jiangsu Email: pugongying_0532@https://www.doczj.com/doc/a714716428.html, Received: Aug. 1st, 2015; accepted: Aug. 17th, 2015; published: Aug. 20th, 2015 Copyright ? 2015 by author and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). https://www.doczj.com/doc/a714716428.html,/licenses/by/4.0/ Abstract Object tracking is a process to locate an interested object in a series of image, so as to reconstruct the moving object’s track. This paper presents a summary of related works and analyzes the cha-racteristics of the algorithm. At last, some future directions are suggested. Keywords Object Tracking, Track Alignment, Object Detection 目标跟踪相关研究综述 徐佳龙 海军驻南京地区航空军事代表室,江苏南京 Email: pugongying_0532@https://www.doczj.com/doc/a714716428.html, 收稿日期:2015年8月1日;录用日期:2015年8月17日;发布日期:2015年8月20日 摘要 目标跟踪就是在视频序列的每幅图像中找到所感兴趣的运动目标的位置,建立起运动目标在各幅图像中的联系。本文分类总结了目标跟踪的相关工作,并进行了分析和展望。

人脸识别技术的应用背景及研究现状图文稿

人脸识别技术的应用背景及研究现状 文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]

人脸识别技术的应用背景及研究现状1.人脸识别技术的应用 随着社会的不断进步以及各方面对于快速有效的自动身份验证的迫切要求,生物特征识别技术在近几十年中得到了飞速的发展。作为人的一种内在属性,并且具有很强的自身稳定性及个体差异性,生物特征成为了自动身份验证的最理想依据。当前的生物特征识别技术主要包括有:指纹识别,视网膜识别,虹膜识别,步态识别,静脉识别,人脸识别等。与其他识别方法相比,人脸识别由于具有直接,友好,方便的特点,使用者无任何心理障碍,易于为用户所接受,从而得到了广泛的研究与应用。除此之外,我们还能够对人脸识别的结果作进一步的分析,得到有关人的性别,表情,年龄等诸多额外的丰富信息,扩展了人脸识别的应用前景。当前的人脸识别技术主要被应用到了以下几个方面: (1)刑侦破案公安部门在档案系统里存储有嫌疑犯的照片,当作案现场或通过其他途径获得某一嫌疑犯的照片或其面部特征的描述之后,可以从数据库中迅速查找确认,大大提高了刑侦破案的准确性和效率。 (2)证件验证在许多场合(如海口,机场,机密部门等)证件验证是检验某人身份的一种常用手段,而身份证,驾驶证等很多其他证件上都有照片,使用人脸识别技术,就可以由机器完成验证识别工作,从而实现自动化智能管理。

(3)视频监控在许多银行,公司,公共场所等处都设有24小时的视频监控。当有异常情况或有陌生人闯入时,需要实时跟踪,监控,识别和报警等。这需要对采集到的图像进行具体分析,且要用到人脸的检测,跟踪和识别技术。 (4)入口控制入口控制的范围很广,既包括了在楼宇,住宅等入口处的安全检查,也包括了在进入计算机系统或情报系统前的身份验证。 (5)表情分析根据人脸图像中的面部变化特征,识别和分析人的情感状态,如高兴,生气等。此外,人脸识别技术还在医学,档案管理,人脸动画,人脸建模,视频会议等方面也有着巨大的应用前景。 2.人脸识别技术在国外的研究现状 当前很多国家展开了有关人脸识别的研究,主要有美国,欧洲国家,日本等,着名的研究机构有美国MIT的Media lab,AI lab,CMU的Human-Compute r Interface Institute,Microsoft Research,英国的Department of Engine ering in University of Cambridge等。综合有关文献,目前的方法主要集中在以下几个方面: (1)模板匹配 主要有两种方法,固定模板和变形模板。固定模板的方法是首先设计一个或几个参考模板,然后计算测试样本与参考模板之间的某种度量,以是否大于阈值来判断测试样本是否人脸。这种方法比较简单,在早期的系统中采用得比较多。但是由于人脸特征的变化很大,很难得到有效的模板来表示人脸的共性。变形模板在原理上与固定模板相同,但其中包含一些非固定的元素,一种方法是手工构造参数化的曲线和曲面以表征人脸中的某些非固定特征,如眼

Kinect人脸跟踪KinectFaceTrackingSDK

Kinect人脸跟踪Kinect Face Tracking SDK 相关资料免积分下载 目录: 1.前言 2.人脸跟踪概念 (1)软件硬件配置 (2)face tracking参数 (3)具体技术 (4)函数和结构 (5)人脸跟踪简易流程 3.更多人脸跟踪细节介绍 (1)线程问题 (2)人脸特征点 (3)人脸旋转 4.程序配置与说明 5.参考资源 6.程序源代码 ----------------------------------------------------------------------------------- 1.前言 自上篇Kinect SDK 1.5 Face Tracking文章出现后(2012-5-27),许多人阅读到了(CSDN,博客园,百度文库),相关代码也被上百次下载(百度文库、csdn)。 之所以Kinect中的Face Tracking没有得到很多的关注,我想主要原因还是这个方法必须使用Kinect硬件(真不便宜啊,普通摄像头几十块ok了),只适合开发Kinect室内应用。其次这个Face Tracking也是很耗CPU的,一般的双核电脑一旦运行经常会占用90%多的CPU。题外话,微软有许多强大的算法,比如人脸跟踪(基于普通彩色摄像头),但是他们只给了Windows Phone下的API,却不给出PC下的。我也去天津参加过Kinect的会议,遇到一些微软的产品,确实做得很强大很稳健,人脸检测用改进的特征进行Adaboost,之后用AAM进行面部特征点跟踪,十分稳健。去年参加了不少面试,国内的很多公司都在做人脸识别,但真正有实力的只有大公司弄的好。但如果说你想靠这个Kinect的人脸识别混饭吃,有点困难,除非你研究AAM人脸跟踪算法再去研究人脸识别、表情识别、三维建模等算法才会有饭吃。 鉴于之前没有对Kinect的Face Tracking进行详细描述和探讨,直接暴力的给出相关代码,有必要给出更详细的文章和更好的代码。 ------------------------------------------------------------------------------------ 2.人脸跟踪概念 首先现在大部分开发都针对Kinect for windows(目前1900RMB,还是有点贵的)了,但这个face tracking SDK在xbox版的Kinect依旧可以运行,自然精度会不好。Kinect for windows的深度数据是640*480的,而xbox的是320*240。而彩色的RGB摄像头也清晰不少,这点官方没有具体介绍,但实际效果好很多。如果要做研究,自然使用贵很多的Kinect for windows了(这样也导致了个人一般不会去玩这个传感器),不过对于学校、公司这点钱不多。下面默认使用Kinect for windows,但代码稍加修改在xbox的kinect上也能运作。 --------------------------------------------------

基于水平集运动目标检测与跟踪方法

收稿日期:2010-09-21 基金项目:国家自然科学基金资助项目(60874103);辽宁省教育厅资助项目(L2010202). 作者简介:徐 杨(1981-),女,辽宁鞍山人,东北大学博士研究生,辽宁科技大学讲师;吴成东(1960-),男,辽宁沈阳人,东北大 学教授,博士生导师. 第32卷第11期2011年11月东北大学学报(自然科学版)Journal of Northeastern U niversity(Natural Science)Vo l.32,No.11N o v.2011 基于水平集运动目标检测与跟踪方法 徐 杨1 ,吴成东1 ,陈东岳1 ,赵 骥 2 (1.东北大学信息科学与工程学院,辽宁沈阳 110819; 2.辽宁科技大学软件学院,辽宁鞍山 114051) 摘 要:针对目前常采用的运动分析检测方法存在的缺点,提出了基于水平集理论的测地线活动轮廓模型与背景差分相结合的运动目标检测方法.该方法使水平集函数免重新初始化,大大减少了曲线演化迭代的次数和运行时间,得到准确的运动目标轮廓.通过与粒子滤波和mean shift 跟踪方法的比较,最终采用效率最高、最优的K alman 滤波预测物体的运动轨迹.实验结果表明,该方法对刚性和非刚性两类目标都具有较好的检测与跟踪效果. 关 键 词:运动检测;目标跟踪;水平集;K alman 滤波;测地线活动轮廓 中图分类号:T P 391.41 文献标志码:A 文章编号:1005-3026(2011)11-1534-04 Moving Object Detection and Tracking Using Level Set X U Yang 1,W U Cheng -dong 1,C H EN Dong -yue 1,Z H AO Ji 2 (1.School of Info rmation Science &Engineer ing ,No rtheastern U niv ersity,Shenyang 110819,China; 2.School of Software,U niversity o f Science and T echnolog y L iaoning ,Anshan 114051,China.Corresponding author:XU Y ang ,E -mail:x uyang -1981@https://www.doczj.com/doc/a714716428.html,) Abstract :According to the disadvantages of the moving detection methods w hich w ere used commouly,the moving object detection method of combination of geodesics active contour model and background subtraction based on the principle of level set proposed.T he level set function is used in the improved method w ithout re -initialization,the number of iteration in the curve evolution and the execution time are significantly reduced,the ex act moving object contour is obtained.Through comparison w ith the particle filtering and mean shift tracking methods,finally the hig hest efficiency and optimal Kalman filtering w as used to predict the mov ing trajectory of objects.Experimental results showed that the method has better detection and tracking effect on the tw o kinds of rig id and non -rig id objects. Key words:motion detection;object tracking;level set;Kalman filtering;GAC(geodesic active contours) 视频序列中的运动目标检测和跟踪一直是计算机视觉研究领域中的难点和热点,在视频监控、视频编码、机器人等方面有着重要作用.目标检测得到的是最底层的信息,检测结果直接影响后续处理如目标跟踪、目标分类、目标行为分析的鲁棒性. 归纳出目标检测的常用方法可以分为两类:一类以时序属性为检测依据,它是根据视频的时序属性来检测运动目标,主要有背景差法、帧差法、光流法[1],这些算法实时性好,但存在目标分 割不完整等缺点;另一类以空间属性为检测依据,它是根据图像的区域或是边缘信息来检测运动目标,主要有活动轮廓模型方法.测地线活动轮廓模型是基于边缘的图像分割方法,算法简单,计算量 小,在局部图像处理中能够实时有效地分割目标. 本文采用的是基于水平集理论的测地线活动轮廓GAC(geodesic active contours)矢量模型 [2-3] 与背景差分相结合的运动目标检测方法,实现在摄像机静止条件下实际环境监控中刚体或非刚体运动目标检测.然后以初始轮廓作为曲线演变的

开题报告-人脸识别系统的研究与实现(可编辑修改word版)

武汉理工大学本科生毕业设计(论文)任务书 学院:自动化学院专业班级:自动化1005 班 姓名:王建华学号: 0121011360501 毕业设计(论文)题目:人脸识别系统的研究与实现 任务书含以下方面的内容: (一)设计(论文)主要内容: OpenCV 是一个开源的跨平台计算机视觉库,可实现图像处理和计算机视觉方面的很多通用算法。OpenCV 给人脸识别提供了一整套图像处理以及图像与模式分析函数,可迅速完成人脸的识别和检测。本研究希望利用OpenCV 库,开发一个人脸识别系统,能够辨认出6-8 个人脸,并有相应的反应。 (二)要求完成的主要任务: 1、查阅不少于15 篇的相关资料,其中英文文献不少于2 篇,完成开题报告。 2、通过对资料的阅读,深入了解OpenCV 库以及人脸检测与识别的相关算法。 3、利用OpenCV 库实现人脸检测与识别算法。 4、完成不少于2 万英文(5000 汉字)印刷符的英文文献翻译。 5、完成毕业论文(设计说明书和相关图纸)。 (三)进度安排 第1-2 周:查阅相关文献资料,明确研究内容,了解研究所需硬件和软件。确定方案,完成开题报告。 第3-4 周:安装软件,学习熟练应用软件OpenCV。 第5-7 周:学习OpenCV 库中的相关函数。 第8-10 周:利用VS2010 软件编程,熟练掌握OpenCV 的各种相关功能。 第10-12 周:OpenCV 程序的修改,调试。 第13-14 周:修改并完成毕业论文。 第15 周:准备论文答辩。 (四) 必读参考资料及主要参考文献 [1](美)布拉德斯基(Bradski G.),(美)克勒(Kaehler A.),于仕琪,刘瑞祯.学习OpenCV(中文版)[M].清华大学出版社,2009:601.

跟踪算法的基本流程

4.1.跟踪算法的基本流程 在本文的智能视频监控系统中,运动目标跟踪的基本流程如图4.1所示。 主要包括以下几个部分: (1)运动目标检测部分:在视频图像中定位、检测运动目标; (2)建立目标模板部分:根据检测到的目标,提取其特征建立跟踪模板; (3)目标运动预测部分:利用预测算法预测目标可能出现的位置; (4)运动目标跟踪部分:在预测范围内,利用跟踪算法搜索匹配的运动目标; 如果在预测范围内找到与目标模板匹配的目标,则更新该模板;否则建立 一个新的模板。 运动目标检测 图4.1本文的目标跟踪算法结构框图 4.2.Mean Shift算法 Mean Shifl这_个概念最早是有Fukunaga和Hostetle于1975年提出的一种无参嚣;| 一板]l_]一 ~ 一竺竺~~模一皈I| 一 王一目|! 离一 估计算法,其主要思想是沿着概率梯度上升的方向找到分布的峰值,即寻找极 值【61】;1 995年,Yizong Cheng等人定义了一簇核函数,并且设定了权重系数,这大大扩展了该算法的适用范围并使得其逐渐被不同领域所应用;自1 998年开 始,该算法被Bradski应用于人脸跟踪,其在目标跟踪领域的优势显现出来,并 不断被应用在目标跟踪的各个领域中‘621。 在Mean shift算法中非常重的一个概念就是核函数。其定义为:若函数K: 当X—R,存在剖面函数k:【0,叫一R,即式4.1: K(x)=k(㈣x 2) (4.1) 核函数必须是一个非负非增函数,并且是分段连续的,同时满足式4.2: 【k(r)dr

结合人眼非均匀采样特性和曲线演化的红外目标跟踪方法

第37卷 第3期2010年3月计算机科学Comp uter Science Vol.37No.3Mar 2010 到稿日期:2009204220 返修日期:2009208203 本文受国家自然科学基金(60575013),航天支撑基金(N7CH0009)和西北工业大学研究生创新实验中心资助。 陈 义(1980-),男,博士生,主要研究方向为计算机视觉与图像处理,E 2mail :cchyi @https://www.doczj.com/doc/a714716428.html, ;孙小炜(1979-),男,博士,主要研究方向为成像制导;李言俊(1944-),男,教授,博士生导师,主要研究方向为计算机视觉和视频与图像处理。 结合人眼非均匀采样特性和曲线演化的红外目标跟踪方法 陈 义1 孙小炜2 李言俊1 (西北工业大学航天学院 西安710072)1 (西安应用光学研究所 西安710100)2   摘 要 在成像制导过程中需要实时处理大量信息。为了尽可能在保留有效信息情况下降低计算量,提出了一种基 于人眼非均匀采样特性和水平集曲线演化方法相结合的红外目标跟踪方法。首先利用对数极坐标模型的旋转、缩放及灰度分布不变性来压缩信息量,以提高计算速度。然后采用基于目标灰度和边缘特征的水平集曲线演化方法来抑制目标的非刚性形变,从而实现对非刚性变形目标的稳健跟踪。与传统的Mean Shift 跟踪方法和粒子滤波跟踪方法相比,该方法具有跟踪稳定、精度高等优点。实验结果表明,该方法能够有效抑制目标的非刚性形变。关键词 非均匀采样,对数极坐标变换,非刚性形变,曲线演化,粒子滤波,水平集  Infrared Object T racking Method Using H um an Eye Non 2uniform S ampling Characteristic and Curves Evolving CH EN Y i 1 SUN Xiao 2wei 2 L I Yan 2jun 1 (College of Astronautics ,Nort hwestern Polytechnical University ,Xi ’an 710072,China )1 (Xi ’an Institute of Applied Optics ,Xi ’an 710100,China )2   Abstract Large quantity information needs to be dealt during image guidance.In order to compress calculation quanti 2ty ,a novel method for tracking inf rared target based on curves evolving theory and human eye non 2uniform sampling characteristic was proposed.First ,log 2polar coordinate transform model was used to compress calculation quantity and increase calculating speed.And then ,level sets curves evolving method based on target intensity and edge features was presented to suppress local deformation ,thus achieving non 2rigid deformed target https://www.doczj.com/doc/a714716428.html,pared with traditional Mean Shift tracking method ,this method is stable and efficient.Experimental results show the proposed method is ef 2fective for suppress non 2rigid deformed. K eyw ords Non 2uniform sampling ,Log 2polar transform ,Non 2rigid deformed ,Curve evolving ,Particle filtering ,Level sets 目标的成像跟踪技术是计算机视觉领域中一个重要的研究课题,它广泛应用于成像制导、侦查和安检等领域。常用的成像跟踪方法主要有模板匹配法、光流法、卡尔曼滤波等[123]。早期的对象跟踪技术主要是针对一些特征点进行跟踪,由于跟踪的目标往往是整个对象对应的区域,因此只有对被跟踪区域的形状和运动规律有一定的先验知识,才能使特征点跟踪法获得比较好的结果,而这在自然环境下是无法实现的。人们感兴趣的跟踪对象在运动过程中往往会发生形状的改变。于是,一种基于边界信息的动态轮廓(Snake )的跟踪技术被广泛研究[427],该技术不关心整个区域的形状,只关心区域边界上的特征(如梯度大小)。目前工程上采用的成像跟踪算法一般都是基于模板匹配方法。而如果存在目标的旋转、尺度变化、目标的非刚性形变、目标部分被遮挡等情况,则应采样抗变形的模板匹配方法。因此,通过研究人眼视觉的非均匀特性,考虑到基于边缘信息和基于区域信息对目标描述不完全的情况,本文研究了一种基于人眼非均匀采样特性同时利用目标图像区域边缘信息和区域内部信息对目标进行跟踪的方法。在跟踪过程中,通过计算模型区域与当前帧图像区 域匹配最优所得的轮廓作为下一帧区域跟踪的初始轮廓。此方法能够较好地克服目标发生旋转、缩放所带来的几何畸变, 并且能够稳健跟踪非刚性形变的目标,同时降低成像跟踪的计算代价。 1 对数极坐标变换 人眼对场景感兴趣区域进行高分辨率描述,对周边区域进行粗略表达,使得要处理数据量得到压缩,系统传输带宽、计算量、能耗都会大大降低。这样,人眼在具有宽视野的同时又具有局部的高分辨能力。这种机制是人眼视觉信息获取、处理高效性的保证,显然此机制为解决红外成像制导中视场、分辨率、实时性三者矛盾提供了一条有价值的途径。 Daniel 和Whitteridge ,Schwartz ,Hubel 和Wise 等人[8210] 通过研究,得到了视网膜与脑皮层的关系描述,提出了Log 2polar 映射模型 ξ=ln ((x 2+y 2))η=arctan (y/x ) (1) 其中,(x ,y )表示在笛卡尔坐标系下像素的位置,(ξ,η )表示

相关主题
文本预览
相关文档 最新文档