UCAS - AI学院 - 计算机视觉专项课 - 第9讲 - 课程笔记

视觉跟踪

  • 跟踪
    • 目标跟踪:在图像序列中持续地估计感兴趣运动目标所在区域(位置),形成运动目标的运动轨迹;有时还需要估计出运动目标某些运动参数(速度、加速度)
    • 相机跟踪(定位):通过图像序列,持续地计算出相机的位置、姿态(SLAM)
  • 目标跟踪问题分类
    • 场景中运动目标数目:单运动目标 vs. 多运动目标
      • 多目标跟踪必须考虑到多个目标在场景中会互相遮挡(Occlusion),合并(Merge),分离(Split)等情况
      • 多目标跟踪中的数据关联问题(Data Association)
    • 摄像机数目:单摄像机 vs. 多摄像机
      • 多摄像机有望解决因相互遮挡导致的运动目标丢失问题
      • 但是多摄像机信息融合也是一个关键性问题
    • 摄像机是否运动:摄像机静止 vs. 摄像机运动
      • 可以是支架固定,能够偏转(Pan),俯仰(Tilt)以及缩放(Zoom),也可以是装在某个移动载体上
      • 摄像机的运动增加了运动目标检测的难度
    • 场景中运动目标的类型:刚体 vs. 非刚体
      • 交通车辆:刚体
      • 人:非刚体
    • 传感器的种类:可见光图像 vs. 红外图像
      • 白天使用可见光图像
      • 晚上使用红外图像
  • 难点
    • 鲁棒性
    • 准确性
    • 快速性

目标跟踪

运动目标的表示方法

  • 基于点的跟踪
    • 质心或一组特征点集
    • 运动轮廓的角点
  • 基于区域的跟踪
    • 使用简单几何形状表示
    • 适用于表示简单的刚体或非刚体目标
    • 精度较差
  • 基于轮廓的跟踪
    • Contour:目标的外部轮廓
    • Silhouette:轮廓内区域
    • 适用于表示复杂的非刚体运动目标
    • 主动轮廓:利用封闭的曲线轮廓来表示运动目标,并且该轮廓能够自动连续地更新
  • 基于模型的跟踪
    • 二维形状模型(骨架)
    • 立体模型

传统目标跟踪方法

  • Bottom-Up
    • 数据驱动方法,不依赖于先验知识
    • 模板匹配
      • 在前一帧图像中目标位置为(x,y)(x, y)
      • 当前帧搜索位置(x,y)=(x+dx,y+dy)(x^\prime, y^\prime) = (x + dx, y + dy)
      • 目标argmaxdx,dyCov(I(x,y),I(x+dx,y+dy))\arg \max_{dx, dy} \operatorname{Cov}(I(x, y), I(x + dx, y + dy))
    • 均值漂移
      • 详情见“图像分割”一节,主体算法一致
  • Top-Down
    • 模型驱动方法,依赖于所构建模型或先验知识
    • 卡尔曼滤波器
      • 思想:利用线性系统状态方程,基于观测数据对系统状态进行最优估计
      • 基于卡尔曼滤波器的跟踪:通过建立状态空间模型,把跟踪问题表示为动态系统的状态估计问题
      • 动态系统:状态转移方程 + 观测方程
      • 状态转移方程
        • xk=f(xk1,wk1)x_k = f(x_{k - 1}, w_{k - 1})
        • ff:转移函数,一般为非线性(跟踪问题中)
        • xk,xk1x_k, x_{k - 1}:当前时刻状态,前一时刻状态
        • wk1w_{k - 1}:系统噪声
      • 观测转移方程
        • yk=h(xk,vk)y_k = h(x_k, v_k)
        • hh:转移函数,一般为非线性
        • yky_k:测量值
        • xkx_k:当前时刻状态
        • vkv_k:测量噪声
      • 基本假设
        • 后验概率分布p(xk1y1:k1)p(x_{k - 1} | y_{1:k - 1})为高斯分布
        • 动态系统是线性的
          • xk=Axk1+Buk1wk1x_k = A x_{k - 1} + B u_{k - 1} w_{k - 1}
          • yk=Hxk+vky_k = H x_k + v_k
        • 系统噪声和测量噪声是高斯分布,协方差矩阵分别是QQRR——P27
      • KF算法
        • 预测x^k=Ax^k1+wk1\hat x_k^\prime = A \hat x_{k - 1} + w_{k - 1}——测量yky_k——校正x^k=x^k+K(ykHx^k)\hat x_k = \hat x_k^\prime + K(y_k - H \hat x_k^\prime)
        • KK即为卡尔曼增益,使用预测观测和真实观测之间的差异校正当前状态
        • 推导过程中暂不考虑系统噪声
          • 推导过程P29-32
          • 目标:最小化估计状态(并非预测状态)和实际状态之间的误差xkx^kx_k - \hat x_k,定义PP为误差方差的期望
          • 系统状态变量和测量噪声之间相互独立
          • 迹的性质:trace(A+B)=trace(A)+trace(B)trace(A + B) = trace(A) + trace(B)
        • 时间更新
          • x^k=Ax^k1+Buk1\hat x_k^\prime = A \hat x_{k - 1} + B u_{k - 1}
          • Pk=APk1A+QP_k^\prime = A P_{k - 1} A^\top + Q
        • 状态更新
          • Kk=PKH(HPkH+R)1K_k = P_K^\prime H^\top (H P_k^\prime H^\top + R)^{-1}
          • x^k=x^K+Kk(ykHx^k)\hat x_k = \hat x_K^\prime + K_k (y_k - H \hat x_k^\prime)
          • Pk=(IKkH)PkP_k = (I - K_k H) P_k^\prime
      • 扩展
        • EKF
        • UKF
        • 同样基于高斯分布假设
        • 状态转移方程和测量方程为非线性函数
        • 沿用卡尔曼滤波的框架
        • 将非线性函数局部线性化
    • 粒子滤波器
  • 相关滤波与跟踪
    • g=fhg(i,j)=f(i+k,j+l)h(k,l)g = f \otimes h \Rightarrow g(i, j) = \sum f(i + k, j + l) \cdot h(k, l)
    • 原理:在视频帧中利用hh找到相应值最高的位置,实现跟踪
    • 不足:很慢
    • MOSSE
      • 第一帧给定BBox
      • 通过对GT中BBox进行随机仿射变换,产生8个样本进行训练,获得HH^\ast
      • minHiFiHGi2\min_{H^\ast} \sum_i |F_i \odot H^\ast - G_i|^2
      • H=iGiFiiFiFiH^\ast = \frac {\sum_i G_i \odot F_i^\ast}{\sum_i F_i \odot F_i^\ast}
      • Hi=AiBiH_i^\ast = \frac{A_i}{B_i}
      • Ai=ηGiFi+(1η)Ai1A_i = \eta G_i \odot F_i^\ast + (1 - \eta) A_{i - 1}
      • Ai=ηFiFi+(1η)Ai1A_i = \eta F_i \odot F_i^\ast + (1 - \eta) A_{i - 1}
    • MOSSE不足
      • 特征不够稳定(输入为原始灰度像素)
      • 较难处理目标尺度变化情况
      • 鲁棒性相对较弱

基于DNN的跟踪方法

  • 策略1:DNN特征 + 相关滤波
  • 策略2:直接使用DNN进行目标跟踪
  • Visual Tracking with Fully Convolutional Networks
    • VGG
    • SNet
    • GNet

视觉定位

  • 视觉定位:
    • 适用于室内、外定位
    • 基于图像的定位可以集成到手机等终端
    • 基于位置的服务无处不在
  • 视觉定位系统
    • 从图像计算相机与场景的相对位置、姿态
    • UCAS - AI学院 - 计算机视觉专项课 - 第9讲 - 课程笔记
    • 离线视觉定位
      • 难点:图像质量参差不齐,计算精度与复杂度关系密切
    • 在线视觉定位
      • 环境已知:单纯定位
      • 环境位置:SLAM
    • SLAM
      • 同步定位和地图构建
      • 移动物体在自身位置不确定的情况下,利用自身的传感器,在未知的环境中创建一个与环境相一致的地图,并同时确定自身在地图中的位置
  • 在线视觉定位
    • 系统标定(相机标定)
    • 特征匹配(SIFT)
    • 数据关联
      • 空间点与图像点之间的数据关联
      • 3D-2D,2D-2D,3D-3D
    • 闭环检测
      • 在实际路径出现闭环已知的情形下,利用这些信息校正估计路径
    • 重定位
      • 失败后,根据再次获取的信息重新定位
  • 在线视觉定位方法分类
    • 基于滤波器的方法
      • 将相机位置、姿态和地图特征等未知信息作为滤波器的状态量,利用相机的观测特征不断地估计相机相机位置、姿态和地图特征
      • 常用卡尔曼滤波器、粒子滤波器
      • 问题:不断放入地图特征,状态方程会越来越大
    • 基于几何的方法
      • 基于关键帧的实时定位方法
      • 双线程处理:跟踪线程(定位) + 地图线程(构图),循环迭代优化
        • 地图线程:利用几何重建方法构建环境地图
        • 定位线程:利用图像信息和地图信息,实时计算相机的位置姿态
    • 混合方法
    • 难点
      • 实时性与计算精度
      • 定位失败后的视觉重定位
  • 深度网络方法
    • SfM-Net
    • CNN-SLAM(语义分割,深度预测的结合)