程序员如何学习计算机视觉?你需要了解这五大技术!( 三 )


总之,Faster R-CNN 的速度和准确度更高 。值得注意的是,虽然以后的模型在提高检测速度方面做了很多工作,但很少有模型能够大幅度的超越 Faster R-CNN。换句话说,Faster R-CNN 可能不是最简单或最快速的目标检测方法,但仍然是性能最好的方法之一 。
近年来,主要的目标检测算法已经转向更快、更高效的检测系统 。这种趋势在 You Only Look Once(YOLO),Single Shot MultiBox Detector(SSD)和基于区域的全卷积网络( R-FCN )算法中尤为明显,这三种算法转向在整个图像上共享计算 。因此,这三种算法和上述的3种造价较高的R-CNN 技术有所不同 。
▌3?、?目标跟踪

程序员如何学习计算机视觉?你需要了解这五大技术!

文章插图
 
目标跟踪,是指在特定场景跟踪某一个或多个特定感兴趣对象的过程 。传统的应用就是视频和真实世界的交互,在检测到初始对象之后进行观察 。现在,目标跟踪在无人驾驶领域也很重要,例如 Uber 和特斯拉等公司的无人驾驶 。
根据观察模型,目标跟踪算法可分成 2 类:生成算法和判别算法 。
  • 生成算法使用生成模型来描述表观特征,并将重建误差最小化来搜索目标,如主成分分析算法( PCA );
  • 判别算法用来区分物体和背景,其性能更稳健,并逐渐成为跟踪对象的主要手段(判别算法也称为 Tracking-by-Detection,深度学习也属于这一范畴) 。
为了通过检测实现跟踪,我们检测所有帧的候选对象,并使用深度学习从候选对象中识别想要的对象 。有两种可以使用的基本网络模型:堆叠自动编码器( SAE )和卷积神经网络( CNN ) 。
目前,最流行的使用 SAE 进行目标跟踪的网络是 Deep Learning Tracker(DLT),它使用了离线预训练和在线微调 。其过程如下:
  • 离线无监督预训练使用大规模自然图像数据集获得通用的目标对象表示,对堆叠去噪自动编码器进行预训练 。堆叠去噪自动编码器在输入图像中添加噪声并重构原始图像,可以获得更强大的特征表述能力 。
  • 将预训练网络的编码部分与分类器合并得到分类网络,然后使用从初始帧中获得的正负样本对网络进行微调,来区分当前的对象和背景 。DLT 使用粒子滤波作为意向模型(motion model),生成当前帧的候选块 。分类网络输出这些块的概率值,即分类的置信度,然后选择置信度最高的块作为对象 。
  • 在模型更新中,DLT 使用有限阈值 。

程序员如何学习计算机视觉?你需要了解这五大技术!

文章插图
 
鉴于 CNN 在图像分类和目标检测方面的优势,它已成为计算机视觉和视觉跟踪的主流深度模型 。一般来说,大规模的卷积神经网络既可以作为分类器和跟踪器来训练 。具有代表性的基于卷积神经网络的跟踪算法有全卷积网络跟踪器( FCNT )和多域卷积神经网络( MD Net ) 。
FCNT 充分分析并利用了 VGG 模型中的特征映射,这是一种预先训练好的 ImageNet 数据集,并有如下效果:
  • 卷积神经网络特征映射可用于定位和跟踪 。
  • 对于从背景中区分特定对象这一任务来说,很多卷积神经网络特征映射是噪音或不相关的 。
  • 较高层捕获对象类别的语义概念,而较低层编码更多的具有区性的特征,来捕获类别内的变形 。
因此,FCNT 设计了特征选择网络,在 VGG 网络的卷积 4-3 和卷积 5-3 层上选择最相关的特征映射 。然后为避免噪音的过拟合,FCNT 还为这两个层的选择特征映射单独设计了两个额外的通道(即 SNet 和 GNet ): GNet 捕获对象的类别信息; SNet 将该对象从具有相似外观的背景中区分出来 。
这两个网络的运作流程如下:都使用第一帧中给定的边界框进行初始化,以获取对象的映射 。而对于新的帧,对其进行剪切并传输最后一帧中的感兴趣区域,该感兴趣区域是以目标对象为中心 。最后,通过 SNet 和 GNet,分类器得到两个预测热映射,而跟踪器根据是否存在干扰信息,来决定使用哪张热映射生成的跟踪结果 。FCNT 的图如下所示 。
程序员如何学习计算机视觉?你需要了解这五大技术!

文章插图
 
与 FCNT 的思路不同,MD Net 使用视频的所有序列来跟踪对象的移动 。上述网络使用不相关的图像数据来减少跟踪数据的训练需求,并且这种想法与跟踪有一些偏差 。该视频中的一个类的对象可以是另一个视频中的背景,因此,MD Net 提出了“多域”这一概念,它能够在每个域中独立的区分对象和背景,而一个域表示一组包含相同类型对象的视频 。


推荐阅读