UCAS - AI学院 - 计算机视觉专项课 - 第9讲 - 课程笔记
分类:
文章
•
2024-12-20 21:42:16
视觉跟踪
- 跟踪
- 目标跟踪:在图像序列中持续地估计感兴趣运动目标所在区域(位置),形成运动目标的运动轨迹;有时还需要估计出运动目标某些运动参数(速度、加速度)
- 相机跟踪(定位):通过图像序列,持续地计算出相机的位置、姿态(SLAM)
- 目标跟踪问题分类
- 场景中运动目标数目:单运动目标 vs. 多运动目标
- 多目标跟踪必须考虑到多个目标在场景中会互相遮挡(Occlusion),合并(Merge),分离(Split)等情况
- 多目标跟踪中的数据关联问题(Data Association)
- 摄像机数目:单摄像机 vs. 多摄像机
- 多摄像机有望解决因相互遮挡导致的运动目标丢失问题
- 但是多摄像机信息融合也是一个关键性问题
- 摄像机是否运动:摄像机静止 vs. 摄像机运动
- 可以是支架固定,能够偏转(Pan),俯仰(Tilt)以及缩放(Zoom),也可以是装在某个移动载体上
- 摄像机的运动增加了运动目标检测的难度
- 场景中运动目标的类型:刚体 vs. 非刚体
- 传感器的种类:可见光图像 vs. 红外图像
- 难点
目标跟踪
运动目标的表示方法
- 基于点的跟踪
- 基于区域的跟踪
- 使用简单几何形状表示
- 适用于表示简单的刚体或非刚体目标
- 精度较差
- 基于轮廓的跟踪
- Contour:目标的外部轮廓
- Silhouette:轮廓内区域
- 适用于表示复杂的非刚体运动目标
- 主动轮廓:利用封闭的曲线轮廓来表示运动目标,并且该轮廓能够自动连续地更新
- 基于模型的跟踪
传统目标跟踪方法
- Bottom-Up
- 数据驱动方法,不依赖于先验知识
- 模板匹配
- 在前一帧图像中目标位置为(x,y)
- 当前帧搜索位置(x′,y′)=(x+dx,y+dy)
- 目标argmaxdx,dyCov(I(x,y),I(x+dx,y+dy))
- 均值漂移
- Top-Down
- 模型驱动方法,依赖于所构建模型或先验知识
- 卡尔曼滤波器
- 思想:利用线性系统状态方程,基于观测数据对系统状态进行最优估计
- 基于卡尔曼滤波器的跟踪:通过建立状态空间模型,把跟踪问题表示为动态系统的状态估计问题
- 动态系统:状态转移方程 + 观测方程
- 状态转移方程
- xk=f(xk−1,wk−1)
-
f:转移函数,一般为非线性(跟踪问题中)
-
xk,xk−1:当前时刻状态,前一时刻状态
-
wk−1:系统噪声
- 观测转移方程
- yk=h(xk,vk)
-
h:转移函数,一般为非线性
-
yk:测量值
-
xk:当前时刻状态
-
vk:测量噪声
- 基本假设
- 后验概率分布p(xk−1∣y1:k−1)为高斯分布
- 动态系统是线性的
- xk=Axk−1+Buk−1wk−1
- yk=Hxk+vk
- 系统噪声和测量噪声是高斯分布,协方差矩阵分别是Q和R——P27
- KF算法
- 预测x^k′=Ax^k−1+wk−1——测量yk——校正x^k=x^k′+K(yk−Hx^k′)
-
K即为卡尔曼增益,使用预测观测和真实观测之间的差异校正当前状态
- 推导过程中暂不考虑系统噪声
- 推导过程P29-32
- 目标:最小化估计状态(并非预测状态)和实际状态之间的误差xk−x^k,定义P为误差方差的期望
- 系统状态变量和测量噪声之间相互独立
- 迹的性质:trace(A+B)=trace(A)+trace(B)
- 时间更新
- x^k′=Ax^k−1+Buk−1
- Pk′=APk−1A⊤+Q
- 状态更新
- Kk=PK′H⊤(HPk′H⊤+R)−1
- x^k=x^K′+Kk(yk−Hx^k′)
- Pk=(I−KkH)Pk′
- 扩展
- EKF
- UKF
- 同样基于高斯分布假设
- 状态转移方程和测量方程为非线性函数
- 沿用卡尔曼滤波的框架
- 将非线性函数局部线性化
- 粒子滤波器
- 相关滤波与跟踪
- g=f⊗h⇒g(i,j)=∑f(i+k,j+l)⋅h(k,l)
- 原理:在视频帧中利用h找到相应值最高的位置,实现跟踪
- 不足:很慢
- MOSSE
- 第一帧给定BBox
- 通过对GT中BBox进行随机仿射变换,产生8个样本进行训练,获得H∗
- minH∗∑i∣Fi⊙H∗−Gi∣2
- H∗=∑iFi⊙Fi∗∑iGi⊙Fi∗
- Hi∗=BiAi
- Ai=ηGi⊙Fi∗+(1−η)Ai−1
- Ai=ηFi⊙Fi∗+(1−η)Ai−1
- MOSSE不足
- 特征不够稳定(输入为原始灰度像素)
- 较难处理目标尺度变化情况
- 鲁棒性相对较弱
基于DNN的跟踪方法
- 策略1:DNN特征 + 相关滤波
- 策略2:直接使用DNN进行目标跟踪
- Visual Tracking with Fully Convolutional Networks
视觉定位
- 视觉定位:
- 适用于室内、外定位
- 基于图像的定位可以集成到手机等终端
- 基于位置的服务无处不在
- 视觉定位系统
- 从图像计算相机与场景的相对位置、姿态

- 离线视觉定位
- 在线视觉定位
- SLAM
- 同步定位和地图构建
- 移动物体在自身位置不确定的情况下,利用自身的传感器,在未知的环境中创建一个与环境相一致的地图,并同时确定自身在地图中的位置
- 在线视觉定位
- 系统标定(相机标定)
- 特征匹配(SIFT)
- 数据关联
- 空间点与图像点之间的数据关联
- 3D-2D,2D-2D,3D-3D
- 闭环检测
- 在实际路径出现闭环已知的情形下,利用这些信息校正估计路径
- 重定位
- 在线视觉定位方法分类
- 基于滤波器的方法
- 将相机位置、姿态和地图特征等未知信息作为滤波器的状态量,利用相机的观测特征不断地估计相机相机位置、姿态和地图特征
- 常用卡尔曼滤波器、粒子滤波器
- 问题:不断放入地图特征,状态方程会越来越大
- 基于几何的方法
- 基于关键帧的实时定位方法
- 双线程处理:跟踪线程(定位) + 地图线程(构图),循环迭代优化
- 地图线程:利用几何重建方法构建环境地图
- 定位线程:利用图像信息和地图信息,实时计算相机的位置姿态
- 混合方法
- 难点
- 深度网络方法
- SfM-Net
- CNN-SLAM(语义分割,深度预测的结合)