目标检测

Catalogue
  1. 定义
    1. 应用场景
  2. 两类流行的算法
    1. 1.R-CNN系算法
    2. 2. Yolo,SSD这类one-stage算法,
  3. Yolo
    1. 1. 滑动窗口与CNN

定义

目标检测(ObjectDetection)是计算机视觉中的一项任务,其目标是在图像或视频中识别和定位图像中存在的多个物体,并为每个物体提供相应的边界框(Bounding Box)。与图像分类任务不同,目标检测不仅要求识别图像中的物体类别,还要准确标定每个物体的位置

识别图像中的物体类别 + 准确标定每个物体的位置.

1
2
3
4
图像分类。是计算机视角最基本的任务之一。

在图像分类的基础上,还有更复杂和有意思的任务,如目标检测,物体定位,图像分割等。

目标检测: 可以看成图像分类与定位的结合。

给定一张图片,目标检测系统要能够识别出图片的目标并给出其位置,由于图片中目标数是不定的,且要给出目标的精确位置,目标检测相比分类任务更复杂。

应用场景

目标检测的一个实际应用场景就是无人驾驶,如果能够在无人车上装载一个有效的目标检测系统,那么无人车将和人一样有了眼睛,可以快速地检测出前面的行人与车辆,从而作出实时决策。

两类流行的算法

近几年来,目标检测算法取得了很大的突破。

1.R-CNN系算法

一类是基于Region Proposal的R-CNN系算法(R-CNN,Fast R-CNN, Faster R-CNN),它们是two-stage的,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归。

2. Yolo,SSD这类one-stage算法,

其仅仅使用一个CNN网络直接预测不同目标的类别与位置。第一类方法是准确度高一些,但是速度慢,但是第二类算法是速度快,但是准确性要低一些。

Yolo

全称是You Only Look Once: Unified, Real-Time Object Detection.

You Only Look Once说的是只需要一次CNN运算,Unified指的是这是一个统一的框架,提供end-to-end的预测,而Real-Time体现是Yolo算法速度快。这里我们谈的是Yolo-v1版本算法,其性能是差于后来的SSD算法的,但是Yolo后来也继续进行改进,产生了Yolo9000算法。本文主要讲述Yolo-v1算法的原理,特别是算法的训练与预测中详细细节,最后将给出如何使用TensorFlow实现Yolo算法。

1. 滑动窗口与CNN