第14章二维运动估计
《视觉SLAM十四讲》笔记(ch7)

《视觉SLAM⼗四讲》笔记(ch7)ch7 视觉⾥程计1本章⽬标:1.理解图像特征点的意义,并掌握在单副图像中提取出特征点及多副图像中匹配特征点的⽅法2.理解对极⼏何的原理,利⽤对极⼏何的约束,恢复出图像之间的摄像机的三维运动3.理解PNP问题,以及利⽤已知三维结构与图像的对应关系求解摄像机的三维运动4.理解ICP问题,以及利⽤点云的匹配关系求解摄像机的三维运动5.理解如何通过三⾓化获得⼆维图像上对应点的三维结构本章⽬的:基于特征点法的vo,将介绍什么是特征点,如何提取和匹配特征点,以及如何根据配对的特征点估计相机运动和场景结构,从⽽实现⼀个基本的两帧间视觉⾥程计。
特征点:⾓点、SIFT(尺度不变特征变换,Scale-Invariant Feature Transform)、SURF、、ORB(后三个是⼈⼯设计的特征点,具有更多的优点)特征点的组成:1.关键点:指特征点在图像⾥的位置2.描述⼦:通常是⼀个向量,按照某种⼈为设计的⽅式,描述了该关键点周围像素的信息。
相似的特征应该有相似的描述⼦(即当两个特征点的描述⼦在向量空间上的距离相近,认为这两个特征点是⼀样的)以ORB特征为代表介绍提取特征的整个过程:ORB特征:OrientedFAST关键点+BRIEF关键⼦提取ORB特征的步骤:1.提取FAST⾓点:找出图像中的“⾓点”,计算特征点的主⽅向,为后续BRIEF描述⼦增加了旋转不变特性FAST⾓点:主要检测局部像素灰度变化明显的地⽅特点:速度快缺点:1).FAST特征点数量很⼤且不确定,但是我们希望对图像提取固定数量的特征2).FAST⾓点不具有⽅向信息,并且存在尺度问题解决⽅式:1).指定要提取的⾓点数量N,对原始FAST⾓点分别计算Harris响应值,然后选取前N个具有最⼤响应值的⾓点作为最终的⾓点集合2).添加尺度和旋转的描述 尺度不变性的实现:构建图像⾦字塔,并在⾦字塔的每⼀层上检测⾓点(⾦字塔:指对图像进⾏不同层次的降采样,以获得不同分辨率的图像)特征旋转的实现:灰度质⼼法(质⼼:指以图像块灰度值作为权重的中⼼)2.计算BRIEF描述⼦:对前⼀步提取出的特征点周围图像区域进⾏扫描特点:使⽤随机选点的⽐较,速度⾮常快,由于使⽤了⼆进制表达,存储起来也⼗分⽅便,适⽤于实时的图像匹配在不同图像之间进⾏特征匹配的⽅法:1.暴⼒匹配:浮点类型的描述⼦,使⽤欧式距离度量⼆进制类型的描述⼦(⽐如本例中的BRIEF描述⼦),使⽤汉明距离度量缺点:当特征点数量很⼤时,暴⼒匹配法的运算量会变得很⼤2.快速近似最近邻(FLANN):适合匹配特征点数量极多的情况实践部分:1.OpenCV的图像特征提取、计算和匹配的过程:演⽰如何提取ORB特征并进⾏匹配代码: 1 #include <iostream>2 #include <opencv2/core/core.hpp>3 #include <opencv2/features2d/features2d.hpp>4 #include <opencv2/highgui/highgui.hpp>56using namespace std;7using namespace cv;89int main(int argc,char** argv)10 {11if(argc!=3)12 {13 cout<<"usage:feature_extraction img1 img2"<<endl;14return1;15 }1617//读取图像18 Mat img_1=imread(argv[1],CV_LOAD_IMAGE_COLOR);19 Mat img_2=imread(argv[2],CV_LOAD_IMAGE_COLOR);2021//初始化22 vector<KeyPoint> keypoints_1,keypoints_2;//关键点,指特征点在图像⾥的位置23 Mat descriptors_1,descriptors_2;//描述⼦,通常是向量24 Ptr<ORB> orb=ORB::create(500,1.2f,8,31,0,2,ORB::HARRIS_SCORE,31,20);2526//第⼀步:检测OrientFAST⾓点位置27 orb->detect(img_1,keypoints_1);28 orb->detect(img_2,keypoints_2);2930//第2步:根据⾓点位置计算BRIEF描述⼦31 orb->compute(img_1,keypoints_1,descriptors_1);32 orb->compute(img_2,keypoints_2,descriptors_2);3334 Mat outimg1;35 drawKeypoints(img_1,keypoints_1,outimg1,Scalar::all(-1),DrawMatchesFlags::DEFAULT);36 imshow("1.png的ORB特征点",outimg1);37 Mat outimg2;38 drawKeypoints(img_2,keypoints_2,outimg2,Scalar::all(-1),DrawMatchesFlags::DEFAULT);39 imshow("2.png的ORB特征点",outimg2);4041//第3步:对两幅图像中的BRIEF描述⼦进⾏匹配,使⽤Hamming距离42 vector<DMatch> matches;43//特征匹配的⽅法:暴⼒匹配44 BFMatcher matcher(NORM_HAMMING);45 matcher.match(descriptors_1,descriptors_2,matches);46// for(auto it=matches.begin();it!=matches.end();++it)47// {48// cout<<*it<<" ";49// }50// cout<<endl;5152//第4步:匹配点对筛选53 distance是min_dist5455double min_dist=10000,max_dist=0;5657//找出所有匹配之间的最⼩距离和最⼤距离,即最相似的和最不相似的和最不相似的两组点之间的距离58for(int i=0;i<descriptors_1.rows;++i)59 {60double dist=matches[i].distance;61// cout<<dist<<endl;62if(dist<min_dist) min_dist=dist;63if(dist>max_dist) max_dist=dist;64 }6566 printf("--Max dist:%f\n",max_dist);67 printf("--Min dist:%f\n",min_dist);6869//当描述⼦之间的距离⼤于两倍的最⼩距离时,即认为匹配有误70//但有时候最⼩距离会⾮常⼩,设置⼀个经验值作为下限71 vector<DMatch> good_matches;72for(int i=0;i<descriptors_1.rows;++i)73 {74if(matches[i].distance<=max(2*min_dist,30.0))75 {76 good_matches.push_back(matches[i]);77 }78 }7980//第5步:绘制匹配结果81 Mat img_match;82 Mat img_goodmatch;83 drawMatches(img_1,keypoints_1,img_2,keypoints_2,matches,img_match);84 drawMatches(img_1,keypoints_1,img_2,keypoints_2,good_matches,img_goodmatch);85 imshow("所有匹配点对",img_match);86 imshow("优化后匹配点对",img_goodmatch);87 waitKey(0);8889return0;90 }实验结果:1.png中提取到的特征点2.png中提取到的特征点匹配结果: 所有点对匹配结果 优化后的匹配点对结果(筛选依据是Hamming距离⼩于最⼩距离的两倍)结果分析:尽管在这个例⼦中利⽤⼯程经验优化筛选出正确的匹配,但并不能保证在所有其他图像中得到的匹配都是正确的,所以,在后⾯的运动估计中,还要使⽤去除误匹配的算法。
第三章二维运动估计之一PPT课件

运动参数,但是投影会造成信息丢失(不可逆),导致估计误差。
.
3
特征对应:运动物体上的特征与其在二维平面上的投影坐标的对应关系。 见下图示:
设t1→t2时,物体由P运动至P’,即: 空 间:P(X,Y,Z) → P’(X’,Y’,Z’) 像平面: p(x,y) → p’(x’,y’) 二维位移(△x, △y )称为二维运动矢量,
❖ 映射函数: w(x, a) = x + d(x, a) , x
❖ 运动参数矢量: a 存在问. 题:遮挡
14
.
15
2.2 运动估计的一般方法
❖ 两种主要的方法:
– 基于特征(常用在物体跟踪上,从2D构建出3D) – 基于亮度(基于恒定亮度假设或光流方程,常用在
运动补偿预测,视频编码和插值方面) -> 重点
v vnen vtet
vn ||
||
t
0
.
13
2.2 运动估计的一般方法
后向运动估计
Time t
Time t +t
Time t - t x
d(x, t - t) 当前帧
x 参考帧
d(x, t + t) x
当前帧 前向运动估计
❖ 参考帧: 1(x, t1) ❖ 当前帧: 2(x, t2)
❖ 前向运动估计 /后向运动估计: t2 > t1 / t2 < t1 ❖ 运动场: d(x, a), x
一致。如计算机视觉、目标跟踪、工业监视。
非真实运动估计:在不被察觉的情况下允许有估计误差,
从而最大限度降低信息量和传输带宽。如广播电视中的视
运动估计与运动补偿

运动估计与运动补偿运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。
运动估计是从视频序列中抽取运动信息的一整套技术。
运动估计与运动补偿技术MPEG-4采用I-VOP、P-VOP、B-VOP三种帧格式来表征不同的运动补偿类型。
它采用了H.263中的半像素搜索(half pixel searching)技术和重叠运动补偿(overlapped motion compensation)技术,同时又引入重复填充(repetitive padding)技术和修改的块(多边形)匹配(modified block(polygon)matching)技术以支持任意形状的VOP区域。
此外,为提高运动估计算法精度,MPEG-4采用了MVFAST(Motion Vector Field Adaptive Search Technique)和改进的PMVFAST(Predictive MVFAST)方法用于运动估计。
对于全局运动估计,则采用了基于特征的快速顽健的FFRGMET(Feature-based Fast and Robust Global Motion Estimation Technique)方法。
编解码器用来减少视频序列中的空域冗余。
它也可以用来进行去交织(deinterlacing)的操作。
定义运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。
分类包括全局运动补偿和分块运动补偿两类。
运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧(相邻在这里表示在编码关系上的前面,在播放顺序上未必在当前帧前面)的每个小块怎样移动到当前帧中的某个位置去。
这种方法经常被视频压缩/视频编解码器用来减少视频序列中的空域冗余。
它也可以用来进行去交织(deinterlacing)的操作。
《人工智能概论》课程笔记

《人工智能概论》课程笔记第一章人工智能概述1.1 人工智能的概念人工智能(Artificial Intelligence,简称AI)是指使计算机具有智能行为的技术。
智能行为包括视觉、听觉、语言、学习、推理等多种能力。
人工智能的研究目标是让计算机能够模拟人类智能的某些方面,从而实现自主感知、自主决策和自主行动。
人工智能的研究领域非常广泛,包括机器学习、计算机视觉、自然语言处理、知识表示与推理等。
1.2 人工智能的产生与发展人工智能的概念最早可以追溯到上世纪50 年代。
1950 年,Alan Turing 发表了著名的论文《计算机器与智能》,提出了“图灵测试”来衡量计算机是否具有智能。
1956 年,在达特茅斯会议上,John McCarthy 等人首次提出了“人工智能”这个术语,并确立了人工智能作为一个独立的研究领域。
人工智能的发展可以分为几个阶段:(1)推理期(1956-1969):主要研究基于逻辑的符号操作和自动推理。
代表性成果包括逻辑推理、专家系统等。
(2)知识期(1970-1980):研究重点转向知识表示和知识工程,出现了专家系统。
代表性成果包括产生式系统、框架等。
(3)机器学习期(1980-1990):机器学习成为人工智能的重要分支,研究如何让计算机从数据中学习。
代表性成果包括决策树、神经网络等。
(4)深度学习期(2006-至今):深度学习技术的出现,推动了计算机视觉、自然语言处理等领域的发展。
代表性成果包括卷积神经网络、循环神经网络等。
1.3 人工智能的三大学派人工智能的研究可以分为三大学派:(1)符号主义学派:认为智能行为的基础是符号操作和逻辑推理。
符号主义学派的研究方法包括逻辑推理、知识表示、专家系统等。
(2)连接主义学派:认为智能行为的基础是神经网络和机器学习。
连接主义学派的研究方法包括人工神经网络、深度学习、强化学习等。
(3)行为主义学派:认为智能行为的基础是感知和行动。
行为主义学派的研究方法包括遗传算法、蚁群算法、粒子群算法等。
《计算机视觉》课程教学大纲.

《计算机视觉》课程教学大纲课程编号:50420031课程名称:计算机视觉英文名称:Computer Vision课程类别:专业限选课学分:2学时:40开课学期:二开课周次:11-20开课教研室:自动化系计算机控制教研室任课教师及职称:刘禾教授先修课程:图像处理与分析适用专业:模式识别与智能系统、控制理论与控制工程课程目的和基本要求:课程设置的目的使硕士研究生掌握介绍计算机视觉的基本理论和基本方法。
通过课程学习要求学生觉掌握的计算机视觉基本理论与方法以及计算机视觉的一些典型应用,了解国内外最新研究成果。
通过本课程学习使学生掌握计算机视觉的基本概念、基本理论和方法,初步具有运用相应理论解决实际问题的能力。
课程主要内容:全部课程内容分九章,各章具体内容、学时分配如下:第一章概述(2 学时)内容:计算机视觉的基本概念,Marr视觉计算理论,成像几何基础,计算机视觉的应用。
第二章人类视觉(2 学时)内容:人类视觉简介,视觉信息的多层处理。
第三章边缘检测(4 学时)内容:经典微分算子的边缘检测、LOG滤波器与马尔-希尔德累思边缘检测算子、多灰度图像的边缘聚焦法、坎尼边缘检测算子和基于梯度信息的自适应平滑滤波。
第四章明暗分析(2 学时)内容:图像辐射图,表面方向,反射图,由图像明暗恢复形状。
第五章深度分析(4 学时)内容:三维感知基本理论和方法,立体成像原理,被动立体测定技术和主动立体测定技术。
第六章标定问题(6 学时)内容:图像表征与摄像机标定,其中包括透视投影变换、摄像机的标定、摄像机的运动控制模型,双目立体标定。
第七章三维场景表示(4 学时)内容:三维空间曲面的表示,曲面分割等。
第八章二维运动图像分析(4 学时)内容:图像运动特征提取的基本方法,由局部光流恢复结构与运动参数估计,基于块的运动分析。
第九章三维运动估计(4 学时)内容:三维运动与结构估计、由运动与立体观测恢复3—D结构和基于生物视觉运动感知原理的多速度运动检测;基于CAD模型的三维机器视觉。
计算机视觉14 第七章Shape(Structure) From Motion I

texture,….)------第十章
第七章 基于运动视觉的场景复原
三维运动估计
三维运动估计是指从二维图象序列来估计物体三维
运动参数以及三维结构。 SFM (Shape From Motion)
Singular value decomposition (SVD)
Every matrix represents a transformation
/faculty/will/svd/index.html
Singular value decomposition
Singular value decomposition
Pseudo-inverse
三维刚体运动
x k 1 rxx y k 1 ryx z r k 1 zx rxy ryy rzy rxz x k t x xk ryz y k t y R k y k Tk z rzz z k t z k
x F
规范化焦距F=1,分子分母同除以Zk
x z y y F z
x k 1 y k 1
rxx x k rxy y k rxz t x / z k rzx x k rzy y k rzz t z / z k ryx x k ryy y k ryz t y / z k rzx x k rzy y k rzz t z / z k
xk 1 xk y k t x y k 1 y k xk t y z k
基于正交投影的三维运动估计
• Bozdagi, 1994
三维和二维平移运动估计算法分析研究

第 6卷 第 6期
20 0 7年 1 1月
杭州 师 范学 院学报 ( 然科 学版 ) 自
J un l f a g h uT a h r ol e N tr l c n e E io ) o r a o n z o e c e sC l g ( au a S i c d in H e e t
采 用 二 维运 动 估 计 或 三维 平 移 运 动 估计 , 高 压 缩 编 码 性 能 . 提
关键 词 : 移 运 动 估 计 ; 维 运 动 ; 维 运 动 ; 算 复 杂性 ; 2 4 平 三 二 计 H. 6
中 图分 类 号 :TP3 1 9 文献 标 志 码 :A
0 引 言
VO . I 6 NO 6 . NO . 2 07 V 0
文 章 编 号 :0 8 9 0 ( 0 7 0 —0 3 —0 10— 4320)6 45 5
三 维 和 二维 平移 运 动 估 计 算 法 分 析 研 究
陈 丽 娅
( 江 行 政 学 院 信 息 管 理 部 , 江 杭 州 30 1 ) 浙 浙 10 2
法研究 . 1 1 传 统 平移 运 动估计 算法 .
基 于块 匹配 的搜索算 法是 常用 的运动 估计 算法 , 把每 帧分 成若 干个块 , 在参 考帧 中寻 找这些 块 的最 佳 匹配 , 穷举 搜索 算法是 比较 搜索 窗 口内所有 点找 到最 小参 差 点 , 算 法虽 然 能够 找 到 窗 口内的最 佳 匹 配 , 该 便 于硬件 的并行 实现 , 但是计 算 量非 常大 , 在硬件 编码 时需要 相 当大 的功耗 . 针对 这个 问题 , 多快 速运 动 很
摘
要 :运 动 估 计 和 补 偿 预 测 编 码 是 视 频 编 码 标 准 中 的一 项 关 键 技 术 , 核 心 问 题 在 于 如 何 利 用 当前 帧 和 其
《二维激光雷达扫描系统设计与SLAM研究》

《二维激光雷达扫描系统设计与SLAM研究》一、引言随着机器人技术的快速发展,自主导航和定位技术成为了研究的热点。
其中,二维激光雷达扫描系统因其高精度、高效率的特点,在机器人导航和SLAM(同时定位与地图构建)领域得到了广泛应用。
本文将详细介绍二维激光雷达扫描系统的设计及其在SLAM领域的应用研究。
二、二维激光雷达扫描系统设计1. 系统概述二维激光雷达扫描系统主要由激光发射器、接收器、旋转机构和数据处理单元等部分组成。
其工作原理是通过激光发射器发射激光束,经物体表面反射后由接收器接收,通过旋转机构实现全方位的扫描,最终通过数据处理单元进行数据处理和解析。
2. 硬件设计硬件设计包括激光发射器和接收器的选择、旋转机构的构造以及数据传输和处理模块的集成。
激光发射器和接收器需具备高精度和高稳定性的特点,以确保扫描数据的准确性。
旋转机构的设计需考虑扫描速度、精度和稳定性等因素,以实现全方位的覆盖。
数据传输和处理模块需具备快速、高效的数据处理能力,以满足实时性的需求。
3. 软件设计软件设计包括数据采集、处理、解析和地图构建等部分。
数据采集需确保数据的完整性和准确性,数据处理和解析需具备高效率和稳定性,地图构建则需考虑地图的精度和实时性。
此外,还需进行算法优化,以提高系统的整体性能。
三、SLAM研究与应用1. SLAM原理SLAM是一种通过机器人自身的传感器信息以及环境感知信息来进行自身定位,并构建环境地图的技术。
其基本原理包括机器人的运动估计和周围环境的感知与建模。
通过二维激光雷达扫描系统获取的环境信息,结合相关算法,实现机器人的定位和地图构建。
2. SLAM在二维激光雷达扫描系统中的应用二维激光雷达扫描系统为SLAM提供了高精度、高效率的环境感知信息。
通过结合相关算法,可以实现机器人的实时定位和地图构建。
在机器人导航、无人驾驶、智能仓储等领域,二维激光雷达扫描系统与SLAM的结合应用具有广泛的前景。
3. SLAM研究的挑战与展望虽然SLAM技术已经取得了显著的进展,但仍面临诸多挑战,如环境因素的干扰、算法的复杂性和计算资源的限制等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十四章 二维运动估计早期设计的机器视觉系统主要是针对静态场景的,为了满足更高级的应用需求,必须研究用于动态场景分析的机器视觉系统.动态场景分析视觉系统一般需要较大的存储空间和较快的计算速度,因为系统的输入是反应场景动态变化的图像序列,其包含的数据十分巨大.图像动态变化可能由摄象机运动、物体运动或光照改变引起,也可能由物体结构、大小或形状变化引起.为了简化分析,通常我们假设场景变化是由摄象机运动和物体运动引起的,并假设物体是刚性的.根据摄象机和场景是否运动将运动分析划分为四种模式:摄象机静止-物体静止,摄象机静止-物体运动,摄象机运动-物体静止,摄象机运动-物体运动,每一种模式需要不同的分析方法和算法。
摄象机静止-物体静止模式属于简单的静态场景分析.摄像机静止-场景运动是一类非常重要的动态场景分析,包括运动目标检测、目标运动特性估计等,主要用于预警、监视、目标跟踪等场合。
摄象机运动—物体静止是另一类非常重要的动态场景分析,包括基于运动的场景分析、理解,三维运动分析等,主要用于移动机器人视觉导航、目标自动锁定与识别等.在动态场景分析中,摄象机运动—物体运动是最一般的情况,也是最难的问题,目前对该问题研究的还很少.图像运动估计是动态场景分析的基础,现在已经成为计算机视觉新的研究热点。
根据所涉及的空间,将图像运动估计分为二维运动估计和三维运动估计,显然,这种划分不是十分严格,因为二维运动参数的求解有时需要三维空间的有关参数引导,而许多三维参数的求解需要以二维参数为基础。
本章主要讨论二维运动估计,三维运动估计和分析将在第十五章讨论。
14.1图像运动特征检测对许多应用来说,检测图像序列中相邻两帧图像的差异是非常重要的步骤.场景中任何可察觉的运动都会体现在场景图像序列的变化上,如能检测这种变化,就可以分析其运动特性.如果物体的运动限制在平行于图像平面的一个平面上,则可以得到物体运动特性定量参数的很好估计.对于三维运动,则只能得到物体空间运动的定性参数估计.场景中光照的变化也会引图像强度值的变化,有时会引起较大的变化.动态场景分析的许多技术都是基于对图像序列变化的检测.检测图像变化可以在不同的层次上进行,如像素、边缘或区域.在像素层次上要对所有可能的变化进行检测,以便在后处理阶段或更高层次上使用.14.1.1差分图像检测图像序列相邻两帧之间变化的最简单方法是直接比较两帧图像对应像素点的灰度值.在这种最简单的形式下,帧),,(j y x f 与帧),,(k y x f 之间的变化可用一个二值差分图像),(y x f DP jk 表示:⎩⎨⎧>-=其它如果0),,(),,(1),(T k y x f j y x f y x f DP jk (14.1)式中T 是阈值.在差分图像中,取值为1的像素点被认为是物体运动或光照变化的结果.这里假设帧与帧之间配准或套准得很好.图14.1和14.2示意了两种图像变化情况,一种是由于光照变化造成的图像变化,另一种是由于物体的运动产生的图像变化.需要指出,阈值在这里起着非常重要的作用.对于缓慢运动的物体和缓慢光强变化引起的图像变化,在一个给定的阈值下可能检测不到.(a) (b) (c)图14.1 (a)和(b)是取自一个运动摄象机获取的静态场景图像序列的两帧图像,(c)是它们的差分图像(T=40)(a) (b) (c)图14.2 (a)和(b)是取自光照变化的图像序列的两帧图像,(c)是它们的差分图像(T=80)(1) 尺度滤波器在实际中,使用上述差分方法计算的差分图像经常会含有许多噪声.一个简单噪声消除方法是使用尺度滤波器,滤掉小于某一尺度的连通成分,因为这些像素常常是由噪声产生的,留下大于某一尺度阈值的4-连通或8-连通成分,以便作进一步的分析.对于运动检测,这个滤波器非常有效.但也会将一些有用的信号滤掉,比如那些来自于缓慢运动或微小运动物体的信号.在图14.3中,我们给出了图14.1、14.2图像差分图像的尺度滤波结果.(a) (b)图14.3 (a)图14.1差分图像的尺度滤波结果(b)图14.2差分图像的尺度滤波结果(2) 鲁棒检测方法为了使图象变化检测更鲁棒,可以使用统计方法或基于强度分布的局部逼近方法来比较两帧图像之间的光强特性,比如使用第三章讨论过的似然比21222121)2(2σσμμσσλ*⎥⎦⎤⎢⎣⎡-++= (14.2) 来进行两帧图像之间的比较,(式中和表示区域的平均灰度和方差),然后计算差分图像:⎩⎨⎧>=其它如果01),(T y x f DP jk λ (14.3) 式中T 是阈值.对于许多真实场景,将似然比和尺度滤波组合起来使用是非常有效的. 上面讨论的似然比测试是基于区域服从均匀二阶统计的假设.如果使用小平面和二次平面来近似这些区域,似然比测试方法的性能还能有显著的提高.注意,似然比测试是在像素层次上检测相似度,,因此只能确定所考察的区域是否有同样的灰度特征;有关区域的相对强度信息则没有得到保留.使用似然比方法检测图像序列中的运动部分可能增加计算量。
(3) 累积差分图像缓慢运动物体在图像中的变化量是一个很小的量,尺度滤波器可能会将这些微小量当作噪声滤掉.当使用鲁棒检测方法时,因为是基于区域的变化检测,因此会使得检测小位移或缓慢运动物体的问题变得更加严重.解决这一问题的一种方法是累积差分图像方法(accumulative difference picture, ADP ),其基本思想是通过分析整个图像序列的变化(而不是仅仅分析两帧之间的变化)来检测小位移或缓慢运动物体.这种方法不仅能用来可靠检测微小运动或缓慢运动的物体,也可用来估计物体移动速度的大小和方向以及物体尺度的大小.累积差分图像可分为一阶累积差分图像(FADP )和二阶累积差分图像(SADP )。
一阶累积差分图像的形成过程如下:将图像序列的每一帧图像与一幅参考图像进行比较,当差值大于某一阈值时,就在累积差分图像中加1.通常将图像序列的第一帧作为参考图像,并且置累积差分图像0FADP 的初始值为0.这样,在第k 帧图像上的累积差分图像),(y x FADP k 为:⎩⎨⎧-==-其它),(),(00),(11y x DP y x FADP k y x FADP k k k (14.4) 图14.4是利用累积差分图像检测的结果示意图.二阶差分图像的构造为:对应于第n 帧)110(>=n N n 且,,, 的二阶差分图像在),(y x 位置的值为“1”,表明在这个位置上第1-n 帧和第n 帧的一阶差分图像FADP 具有不同的符号.⎩⎨⎧>≠=-其它01),(),(1),(1k y x SADP y x SADP y x SADP k k k (14.5) 累积差分图像具有许多性质,可以用于描述物体运动的总体参数[Jain](a) (b) (c)图14.4 (a) 第一帧图像(参考图像),(b) 第三帧后的累积差分图像,(c) 最后一帧后的累积差分图像用于运动检测的差分图像的最大特点是它的简单性,但差分图像极易受噪声污染.照明和摄象机位置的改变,以及摄象机的电子噪声,都会产生很多错误数据.将似然比和尺度滤波器组合起来能消除大部分摄象机噪声.照明的改变会给所有基于光强的运动检测方法带来问题,这些问题有可能在后期的分析和理解层次上得以解决.图像序列各帧之间的错误套准也会导致错误数据,如果套准错误不十分严重,则累积差分图像还是可以消除这些错误数据的.必须强调,在像素层次上检测不相似度只能通过检测光强变化来实现.在动态场景分析中,这是最低层次的分析.在检测完像素变化以后,还需要通过其它的处理过程来解释这些变化.经验表明,差分图像最有效的应用是对图像进行概略处理,以便将解释的注意力引向场景中出现“活动”的区域.场景中事件的粗略信息也可由差分图像中的某些特征来提取.14.1.2 时变边缘检测我们知道,边缘在静态场景图像分析中起着十分重要的作用,因此有理由推测时变边缘在动态场景图像分析中也是非常重要的.在进行图像分割与匹配方法中,人们将精力主要集中在静态特征与运动特征之间的匹配.实际上,这些静态特征是运动信息提取的最大障碍.如果直接检测运动特征,那么完成匹配所需的计算量可以根本上大大减小. 一条边缘运动后仍然是一条边缘.运动边缘是通过逻辑“与”算子对时间和空间梯度进行组合来实现,其中的“与”算子可以由乘法来完成.这样,图像E x y t (,,)中一点的时变边缘由下式给出:),(),,(),,(),,(),,(y x D t y x E dtt y x dE dS t y x dE t y x E t ⋅=⋅= (14.6) 式中dS t y x dE ),,(和dtt y x dE ),,(分别是点),,(t y x 的光强在空间和时间上的梯度值. 各种传统的边缘检测方法可用于计算空间梯度,而简单的差分方法可用于计算时间梯度.在大多数情况下,边缘算法很有效.为了克服遗漏缓慢运动边缘和弱边缘的问题,可将一个阈值作用于上式的乘积,而不是一阶差分,然后使用边缘检测器或一阶检测边缘器算出它们的时间梯度[Jain],如图14.5和14.6所示.由图14.6可见,这种边缘检测方法将对有清晰边缘的缓慢运动和以适当速度运动的弱边缘响应.这种检测方法的另一个重要特点是不需要对任何位移大小作出假设.当边缘的运动非常大时,检测器的性能也是十分满意的.(a) (b) (c)图14.5 时变边缘检测器运行结果示意图图14.6 边缘检测器的性能曲线14.1.3 运动对应性已知一个图像序列,我们可以分析并确定序列中每一帧图像上的特征点.为估计图像运动特性,必须在图像各帧之间建立这些特征点的对应关系.运动图像的对应问题与立体视觉中的对应问题相似,不过立体视觉使用的约束主要是外极线约束,运动图像对应问题使用的是其它类型的约束.下面讨论一种约束传播方法来解决对应问题.(1) 松弛标记标记(labeling)是指将一组已知标记分配给场景中对应的各个物体。
标记问题可以表示为如图14.7所示的形式.每一个节点表示一个标记区域(或物体),连结节点的弧线表示区域间的关系.假定每一个节点上有一个处理器,在每一个节点上定义集合R ,C ,L 和P .集合R 包含节点间所有可能的关系(relation );集合C 表示这些关系的相容性(compatibility ),相容性将有助于对关系R 进行约束以及对图像中每个区域的标记进行约束;集合L 包含所有指定给该节点的标记;集合P 表示计算过程中赋予节点的所有可能的层次.假定在第一次迭代中,节点i 的可能的标记集合1i P 对所有的i 来说都是L ,换句话说,所有节点的初始标记是所有可能的标记.在第k 次迭代过程中,标记算法将从“ki P ”中除去无效标记,得到1+k i P .去除标记的依据建立在节点当前标记、该节点与其它节点的关系、各种约束等基础上,因此,每一个处理器都有足够的信息来独立地对其标记集合k i P 进行细化.这样,所有的处理器就有可能同步工作.需要指出,在任一时刻,处理器只使用能直接可得到的信息,这就是说,只使用从属于该节点对应区域的信息.但是,每一次迭代都通过它的邻节点或关联节点把效应传播给其它没有直接关系的节点,即每一次迭代都会增加节点的影响圈.图14.7 并行传播示意图对大多数应用来说,在标记过程开始前,有关物体的一些知识是可以得到的.分割或标记前进行的其它处理过程又常常可以提供用于细化节点初始集合P i 的知识.标记过程可以进一步细化这些标记集合,以使得每一个区域对应唯一的标记.下面考虑一种与上面所述的标记问题稍微不同的标记问题.基于某种酉关系,标记集合1i P 可以分配给一个区域。