Python 全栈体系【四阶】(三十六)

第五章 深度学习

八、目标检测(Object Detection)

1. 基本概念

1.1 什么是目标检测

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

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

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

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

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

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

在这里插入图片描述
所以,目标检测是一个分类、回归问题的叠加。

1.2 目标检测的核心问题

(1)分类问题:即图片(或某个区域)中的图像属于哪个类别。

(2)定位问题:目标可能出现在图像的任何位置。

(3)大小问题:目标有各种不同的大小。

(4)形状问题:目标可能有各种不同的形状。

1.3 目标检测算法分类

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

1.3.1 Tow Stage

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

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

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

1.3.2 One Stage

不用 RP,直接在网络中提取特征来预测物体分类和位置。

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

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

1.4 目标检测应用
1.4.1 人脸检测
  • 智能门控
  • 员工考勤签到
  • 智慧超市
  • 人脸支付
  • 车站、机场实名认证
  • 公共安全:逃犯抓捕、走失人员检测
1.4.2 行人检测
  • 智能辅助驾驶
  • 智能监控
  • 在岗检测、离岗检测、区域入侵检测、安全帽/安全带检测
1.4.3 车辆检测
  • 自动驾驶、辅助驾驶
  • 智能交通、违章检测
  • 关键通道检测、车流量统计
1.4.4 遥感检测
  • 大地遥感,如土地使用、公路、水渠、河流监控
  • 农作物监控
  • 军事检测
1.4.5 工业质检
  • 流水生产线产品检测
  • 精细产品计数
  • 产品内部探伤检测

2. 目标检测原理

目标检测分为两大系列——RCNN 系列和 YOLO 系列,RCNN 系列是基于区域检测的代表性算法,YOLO 是基于区域提取的代表性算法,另外还有著名的 SSD 是基于前两个系列的改进。

2.1 候选区域产生

很多目标检测技术都会涉及候选框(bounding boxes)的生成,物体候选框获取当前主要使用图像分割与区域生长技术。区域生长(合并)主要由于检测图像中存在的物体具有局部区域相似性(颜色、纹理等)。目标识别与图像分割技术的发展进一步推动有效提取图像中信息。

2.1.1 滑动窗口

通过滑窗法流程图可以很清晰理解其主要思路:首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动。每次滑动时候对当前窗口执行分类器(分类器是事先训练好的)。如果当前窗口得到较高的分类概率,则认为检测到了物体。对每个不同窗口大小的滑窗都进行检测后,会得到不同窗口检测到的物体标记,这些窗口大小会存在重复较高的部分,最后采用非极大值抑制(Non-Maximum Suppression, NMS)的方法进行筛选。最终,经过 NMS 筛选后获得检测到的物体。

滑窗法简单易于理解,但是不同窗口大小进行图像全局搜索导致效率低下,而且设计窗口大小时候还需要考虑物体的长宽比。所以,对于实时性要求较高的分类器,不推荐使用滑窗法。

在这里插入图片描述

2.1.2 选择性搜索
2.1.2.1 什么是选择性搜索

滑窗法类似穷举进行图像子区域搜索,但是一般情况下图像中大部分子区域是没有物体的。学者们自然而然想到只对图像中最有可能包含物体的区域进行搜索以此来提高计算效率。选择搜索(selective search,简称 SS)方法是当下最为熟知的图像 bounding boxes 提取算法,由 Koen E.A 于 2011 年提出。

选择搜索算法的主要思想:图像中物体可能存在的区域应该是有某些相似性或者连续性区域的。因此,选择搜索基于上面这一想法采用子区域合并的方法进行提取 bounding boxes。首先,对输入图像进行分割算法产生许多小的子区域。其次,根据这些子区域之间相似性(相似性标准主要有颜色、纹理、大小、填充等等)进行区域合并,不断的进行区域迭代合并。每次迭代过程中对这些合并的子区域做 bounding boxes(外切矩形),这些子区域外切矩形就是通常所说的候选框。

在这里插入图片描述

图a:物体间可能存在层级关系;图b:物体可以通过颜色区分;图c:物体可以通过纹理区分,但无法通过颜色区分;图d:轮胎是车的一部分,不是因为颜色相近、纹理相近,而是因为跑车包含在车上

在这里插入图片描述

Selective Search示意图
2.1.2.2 选择搜索流程
  • step0:生成区域集 R
  • step1:计算区域集 R 里每个相邻区域的相似度 S={s1, s2,…}
  • step2:找出相似度最高的两个区域,将其合并为新集,添加进 R
  • step3:从 S 中移除所有与 step2 中有关的子集
  • step4:计算新集与所有子集的相似度
  • step5:跳至 step2,直至 S 为空
2.1.2.3 选择搜索优点
  • 计算效率优于滑窗法
  • 由于采用子区域合并策略,所以可以包含各种大小的疑似物体框
  • 合并区域相似的指标多样性,提高了检测物体的概率
2.2 数据表示
2.2.1 可以将数据表示为向量

y = [ p c b x b y b w b h C 1 C 2 C 3 ] ,      y t r u e = [ 1 40 45 80 60 0 1 0 ] ,      y p r e d = [ 0.88 41 46 82 59 0.01 0.95 0.04 ] y = \left[ \begin{matrix} p_c \\ b_x \\ b_y \\ b_w \\ b_h \\ C_1 \\ C_2 \\ C_3 \\ \end{matrix} \right] , \ \ \ \ y_{true} = \left[ \begin{matrix} 1 \\ 40 \\ 45 \\ 80 \\ 60 \\ 0 \\ 1 \\ 0 \\ \end{matrix} \right] , \ \ \ \ y_{pred} = \left[ \begin{matrix} 0.88 \\ 41 \\ 46 \\ 82 \\ 59 \\ 0.01 \\ 0.95 \\ 0.04 \\ \end{matrix} \right] y= pcbxbybwbhC1C2C3 ,    ytrue= 140458060010 ,    ypred= 0.88414682590.010.950.04

其中, p c p_c pc为预测结果的置信概率, b x , b y , b w , b h b_x, b_y, b_w, b_h bx,by,bw,bh为边框坐标, C 1 , C 2 , C 3 C_1, C_2, C_3 C1,C2,C3为属于某个类别的概率。通过预测结果、实际结果,构建损失函数。损失函数包含了分类、回归两部分组成。

2.2.2 可以将数据表示为张量

在这里插入图片描述

2.3 效果评估
2.3.1 分类子问题评估

分类子问题使用 Precision、Recall、F1 等指标来进行评估。

2.3.2 定位子问题评估

使用 IoU(Intersection over Union,交并比)来判断模型定位的好坏。所谓交并比,是指预测边框、实际边框交集和并集的比率,一般约定 0.5 为一个可以接受的值。

在这里插入图片描述

以下是各种比例交并比的直观感受:

在这里插入图片描述

2.4 非极大值抑制

预测结果中,可能多个预测结果间存在重叠部分,需要保留交并比最大的、去掉非最大的预测结果,这就是非极大值抑制(Non-Maximum Suppression,简写作 NMS)。如下图所示,对同一个物体预测结果包含三个概率 0.8/0.9/0.95,经过非极大值抑制后,仅保留概率最大的预测结果。

在这里插入图片描述

2.5 多尺度检测
2.5.1 特征金字塔

特征金字塔(Feature Pyramid Network,简称 FPN)指由不同大小的特征图构成的层次模型,主要用于在目标检测中实现多尺度检测。大的特征图适合检测较小的目标,小的特征图适合检测大的目标。

在这里插入图片描述

卷积神经网络输出特征图上的像素点,对应在原始图像上所能看到区域的大小称之为“感受野”,卷积层次越深、特征图越小,特征图上每个像素对应的感受野越大,语义信息表征能力越强,但是特征图的分辨率较低,几何细节信息表征能力较弱;特征图越大,特征图上每个像素对应的感受野越小,几何细节信息表征能力强,特征图分辨率较高,但语义表征能力较弱。为了同时获得较大特征图和较小特征图的优点,可以对特征图进行融合。

在这里插入图片描述

2.5.2 特征融合
  • add:对小的特征图进行上采样,上采样至与大特征图相同大小,进行按元素相加

在这里插入图片描述

  • concat:按照指定的维度进行连接

在这里插入图片描述

  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬小帽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值