[TOC]

文章参考:https://github.com/scutan90/DeepLearning-500-questions/blob/master/ch08_%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/%E7%AC%AC%E5%85%AB%E7%AB%A0_%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B.md

文章参考:https://blog.csdn.net/gaoyu1253401563/article/details/86485851

概述

目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。

计算机视觉中关于图像识别有四大类任务:

分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。

定位-Location:解决“在哪里?”的问题,即定位出这个目标的的位置。

检测-Detection:解决“是什么?在哪里?”的问题,即定位出这个目标的的位置并且知道目标物是什么。

分割-Segmentation:分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。

图像识别四大类任务,图像来源于cs231n 2016课件Lecture 8

目标检测核心问题

除了图像分类之外,目标检测要解决的核心问题是:

1.目标可能出现在图像的任何位置。

2.目标有各种不同的大小。

3.目标可能有各种不同的形状。

目标检测算法分类

基于深度学习的目标检测算法主要分为两类:

Two stage目标检测算法

什么是Two-stage?

先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类。

对于Two-stage的目标检测网络,主要通过一个卷积神经网络来完成目标检测过程,其提取的是CNN卷积特征,在训练网络时,其主要训练两个部分,第一步是训练RP网络,第二步是训练目标区域检测的网络。网络的准确度高、速度相对One-stage慢。

先进行区域生成(region proposal,RP)(一个有可能包含待检物体的预选框),再通过卷积神经网络进行样本分类。

任务:特征提取—>生成RP—>分类/定位回归。

常见的two stage目标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。

One stage目标检测算法

什么是One-stage?

直接回归物体的类别概率和位置坐标值(无),但准确度低,速度相遇two-stage快。

直接通过主干网络给出类别和位置信息,没有使用RPN (region proposal net) 网络。这样的算法速度更快,但是精度相对Two-stage目标检测网络了略低。

任务:特征提取—>分类/定位回归。

常见的one stage目标检测算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。

img

目标检测应用

目标检测具有巨大的实用价值和应用前景。应用领域包括人脸检测、行人检测、车辆检测、飞机航拍或卫星图像中道路的检测、车载摄像机图像中的障碍物检测、医学影像在的病灶检测等。还有在安防领域中,可以实现比如安全帽、安全带等动态检测,移动侦测、区域入侵检测、物品看护等功能。