深度学习和目标检测系列教程 1-300:什么是对象检测和常见的8 种基础目标检测算法

Posted 刘润森!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习和目标检测系列教程 1-300:什么是对象检测和常见的8 种基础目标检测算法相关的知识,希望对你有一定的参考价值。

@Author:Runsen

由于毕业入了CV的坑,在内卷的条件下,我只好把别人卷走。

对象检测

对象检测是一种计算机视觉技术,用于定位图像或视频中的对象实例。对象检测算法通常利用机器学习或深度学习来产生有意义的结果。当人类查看图像或视频时,我们可以在瞬间识别和定位感兴趣的对象。对象检测的目标是使用计算机复制这种智能。

比如,物体检测是高级驾驶辅助系统 (ADAS) 背后的一项关键技术,它使汽车能够检测行驶车道或执行行人检测以提高道路安全。对象检测在视频监控或图像检索系统等应用中也很有用。

在本文教程中,列出了必须知道的 8 种最佳目标检测算法。

Fast R-CNN

用 Python 和 C++ (Caffe) 编写的 Fast Region-Based Convolutional Network 方法或 Fast R-CNN 是一种用于对象检测的训练算法。该算法主要修复了 R-CNN 和 SPPnet 的缺点,同时提高了它们的速度和准确性。

Fast R-CNN 的优点:

  • 比 R-CNN、SPPnet 更高的检测质量(mAP)
  • 训练是单阶段的,使用多任务损失
  • 训练可以更新所有网络层
  • 特征缓存不需要磁盘存储

论文网址:http://openaccess.thecvf.com/content_iccv_2015/papers/Girshick_Fast_R-CNN_ICCV_2015_paper.pdf

Region-based Convolutional Neural Networks (R-CNN)

基于区域的卷积网络方法 (RCNN) 是区域提议与卷积神经网络 (CNN) 的组合。R-CNN 有助于使用深度网络定位对象,并仅使用少量带注释的检测数据来训练高容量模型。它通过使用深度 ConvNet 对目标提议进行分类,从而实现了出色的目标检测精度。R-CNN 能够扩展到数千个对象类别,而无需求助于近似技术,包括散列。

RCNN论文:https://openaccess.thecvf.com/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf

Faster R-CNN

Faster R-CNN 是一种类似于 R-CNN 的对象检测算法。该算法利用区域提议网络 (RPN),该网络以比 R-CNN 和 Fast R-CNN 更具成本效益的方式与检测网络共享全图像卷积特征。Region Proposal Network 基本上是一个全卷积网络,它同时预测对象边界以及对象每个位置的 objectness 分数,并经过端到端训练以生成高质量的区域提议,然后由 Fast R 使用-CNN 用于检测物体

论文地址:http://papers.nips.cc/paper/5638-faster-r-cnn-towards-real-time-object-detection-with-region-proposal-networks.pdf

Histogram of Oriented Gradients (HOG)

定向梯度直方图 (HOG) 基本上是一种特征描述符,用于检测图像处理和其他计算机视觉技术中的对象。定向梯度直方图描述符技术包括在图像的局部部分(例如检测窗口、感兴趣区域 (ROI) 等)中出现的梯度定向。类似 HOG 的特征的一个优点是它们的简单性,并且更容易理解它们携带的信息。

详情:https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/top/volume-2-image-processing/computer-vision/feature-detection-functions/histogram-of-oriented-gradients-hog-descriptor.html

Region-based Fully Convolutional Network (R-FCN)

基于区域的全卷积网络或 R-FCN 是一种用于对象检测的基于区域的检测器。与其他应用昂贵的按区域子网络(例如 Fast R-CNN 或 Faster R-CNN)的基于区域的检测器不同,这种基于区域的检测器是完全卷积的,几乎所有计算都在整个图像上共享。

R-FCN 由共享的、完全卷积的架构组成,就像 FCN 的情况一样,已知它比 Faster R-CNN 产生更好的结果。在该算法中,所有可学习的权重层都是卷积层,旨在将 ROI 分类为对象类别和背景。

论文地址:https://arxiv.org/pdf/1605.06409.pdf

Single Shot Detector (SSD)

Single Shot Detector (SSD) 是一种使用单个深度神经网络检测图像中对象的方法。SSD 方法将边界框的输出空间离散为一组不同纵横比的默认框。离散化后,该方法按特征图位置进行缩放。Single Shot Detector 网络结合了来自具有不同分辨率的多个特征图的预测,以自然地处理各种大小的对象。

SSD的优点:

  • SSD 完全消除了提议生成和后续像素或特征重采样阶段,并将所有计算封装在单个网络中。
  • 易于训练并直接集成到需要检测组件的系统中。
  • SSD 与使用额外对象提议步骤的方法相比具有竞争性的准确性,并且在为训练和推理提供统一框架的同时速度要快得多。

论文地址:https://arxiv.org/pdf/1512.02325.pdf%EF%BC%89

Spatial Pyramid Pooling (SPP-net)

空间金字塔池(SPP-net)是一种网络结构,无论图像大小/比例如何,都可以生成固定长度的表示。据说金字塔池化对对象变形具有鲁棒性,SPP-net 改进了所有基于 CNN 的图像分类方法。使用 SPP-net,研究人员只需从整个图像计算一次特征图,然后将任意区域(子图像)中的特征池化以生成用于训练检测器的固定长度表示。这种方法避免了重复计算卷积特征。

论文地址:https://arxiv.org/pdf/1406.4729.pdf)%C3%AC%20%CB%9C

YOLO

You Only Look Once 或 YOLO 是全球研究人员使用的对象检测中的流行算法之一。据 Facebook AI Research 的研究人员称,YOLO 的统一架构在方式上非常快。基础 YOLO 模型以每秒 45 帧的速度实时处理图像,而较小版本的网络 Fast YOLO 每秒处理惊人的 155 帧,同时仍实现了其他实时检测器的两倍 mAP。当从自然图像推广到其他领域(如艺术品)时,该算法优于其他检测方法,包括 DPM 和 R-CNN。’

论文地址:https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Redmon_You_Only_Look_CVPR_2016_paper.pdf

在完成目标检测任务,一般有两种方法:

  • 创建和训练自定义对象检测器。要从头开始训练自定义对象检测器,需要设计一个网络架构来学习感兴趣对象的特征。还需要编译一组非常大的标记数据来训练 CNN。自定义对象检测器的结果可能非常显着。也就是说,需要在 CNN 中手动设置层和权重,这需要大量时间和训练数据。

  • 使用预训练的对象检测器。许多使用深度学习的对象检测工作流利用迁移学习,这种方法使能够从预训练的网络开始,然后针对应用程序对其进行微调。这种方法可以提供更快的结果,因为对象检测器已经在数千甚至数百万张图像上进行了训练。

以上是关于深度学习和目标检测系列教程 1-300:什么是对象检测和常见的8 种基础目标检测算法的主要内容,如果未能解决你的问题,请参考以下文章

深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数

深度学习和目标检测系列教程 3-300:了解常见的目标检测的开源数据集

深度学习和目标检测系列教程 5-300:早期的目标检测RCNN架构

深度学习和目标检测系列教程 7-300:先进的目标检测Faster R-CNN架构

深度学习和目标检测系列教程 6-300:目标检测Fast-RCNN架构

深度学习和目标检测系列教程 19-300:关于目标检测APIoU和mAP简介