基于深度学习的目标检测

起床oO 起床oO     2022-09-22     754

关键词:

基于深度学习的目标检测

普通的深度学习监督算法主要用来做分类,分类的目标是要识别出图中所示是一只猫。而在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)竞赛以及实际的应用中,还包括目标定位和目标检测等任务。其中目标定位不仅仅要识别出来是什么物体(即分类),而且还要预测物体的位置,位置一般用边框(bounding box)标记。而目标检测实质是多目标的定位,即要在图片中定位多个目标物体,包括分类和定位。

简单来说,分类,定位和检测的区别如下:

  1. 分类:是什么?
  2. 定位:在哪里?是什么?(单个目标)
  3. 检测:在哪里?分别是什么?(多个目标)

目标检测对于人类来说并不困难,通过对图片中不同颜色模块的感知很容易定位并分类出其中的目标物体,但对于计算机来说,面对的是RGB像素矩阵,很难从图像中直接得到“狗”和“猫”这样的抽象概念并定位其位置,再加上有时候多个物体和杂乱的背景混杂在一起,使得目标检测更加困难。在传统视觉领域,目标检测就是一个非常热门的研究方向,一些特定目标的检测,比如人脸检测和行人检测已经有非常成熟的技术了。普通的目标检测也有过很多的尝试,但是效果总是差强人意。

传统的目标检测一般使用滑动窗口的框架,主要包括三个步骤:

  1. 利用不同尺寸的滑动窗口框住图中的某一部分作为候选区域;
  2. 提取候选区域相关的视觉特征。比如人脸检测常用的Harr特征;行人检测和普通目标检测常用的HOG特征等;
  3. 利用分类器进行识别,比如常用的SVM模型

传统的目标检测中,多尺度形变部件模型DPM(Deformable Part Model)是出类拔萃的,连续获得VOC(Visual Object Class)2007到2009的检测冠军,DPM把物体看成多个组成部分(比如人脸的鼻子、嘴巴等),用部件间的关系来描述物体,这个特性非常符合自然界很多物体的非刚体特征。DPM可以看做是HOG+SVM的扩展,很好的继承了两者的优势。在人脸检测、行人检测等任务上取得了不错的效果,但是DPM相对复杂,检测速度也很慢,从而也出现了很多改进的方法。正当大家热火朝天的改进DPM性能的时候,基于深度学习的目标检测横空出世,迅速盖过了DPM的风头,很多之前研究传统目标检测算法的研究者也开始转向深度学习。

基于深度学习的目标检测发展起来以后,其效果也一直难以突破。2013年R-CNN诞生了,VOC2007测试集的mAP被提升至48%,2014年通过修改网络结构又飙升至66%,同时ILSVRC2013测试集的mAP也被提升至31.4%

R-CNN是Region-based Convolutional Neural Networks的缩写,中文翻译是基于区域的卷积神经网络,是一种结合区域提名(Region Proposal)和卷积神经网络(CNN)的目标检测方法。R-CNN是第一个真正可以工业级应用的解决方案,这也和深度学习本身的发展类似,神经网络、卷积网络都不是什么新概念,但在本世纪突然真正变得可行,而一旦可行之后再迅猛发展也不足为奇了。

R-CNN这个领域目前研究非常活跃,先后出现了R-CNN,SPP-Net,Fast R-CNN,Faster R-CNN,R-FCN,YOLO,SSD等研究。这些创新工作其实很多时候是把一些传统视觉领域的方法和深度学习结合起来了,比如选择性搜索(Selective Search)和图像金字塔(Pyramid)等

深度学习相关的目标检测方法大致可以分为两派:

  1. 基于区域提名的:如R-CNN,SPP-Net,Fast R-CNN,Faster R-CNN,R-FCN;
  2. 端到端(End-to-End):无需区域提名的,如YOLO,SSD

目前来说,基于区域提名的方法依然占据上风,但端到端的方法速度上优势明显,后续的发展拭目以待。

1.1基于区域提名的方法

本小节主要介绍区域提名的方法,包括R-CNN,SPP-Net,Fast R-CNN,Faster R-CNN,R-FCN

1.1.1 R-CNN

如前面所述,早期的目标检测,大都使用滑动窗口的方式进行窗口提名,这种方式本质是穷举法,R-CNN采用的是Selective Search

以下是R-CNN的主要步骤:

    1. 区域提名:通过Selective Search从原始图片提取2000个左右区域候选框;
    2. 区域大小归一化:把所有候选框缩放成固定大小(原文采用227×227);
    3. 特征提取:通过CNN网络,提取特征;
    4. 分类与回归:在特征层的基础上添加两个全连接层,再用SVM分类来做识别,用线性回归来微调边框位置和大小,其中每个类别单独训练一个边框回归器。

事实上,R-CNN有许多缺点:

    1. 重复计算:R-CNN虽然不再是穷举,但依然有两千个左右的候选框,这些候选框都需要进行CNN操作,计算量依然很大,其中有不少其实是重复计算;
    2. SVM模型:而且是线性模型,在标注数据不缺的时候显然不是最好的选择;
    3. 训练测试分为多步:区域提名,特征提取,分类,回归都是断开的训练过程,中间数据还需要单独保存;
    4. 训练的空间和时间代价很高:卷积出来的特征需要先存在硬盘上,这些特征需要几百G的存储空间;
    5. 慢:前面的缺点导致R-CNN出奇的慢,GPU处理一张图片需要13秒,CPU上则需要53秒。
1.1.2 SSP-Net

SSP-N

4.基于深度学习的目标检测算法的综述(转)

4.基于深度学习的目标检测算法的综述(转)原文链接:https://www.cnblogs.com/zyly/p/9250195.html目录一相关研究1、选择性搜索(SelectiveSearch)2、OverFeat二、基于区域提名的方法1、R-CNN 2、SPP-Net3、FastR-CNN4、FasterR-CNN5、R-FCN 三端对端的... 查看详情

基于深度学习的目标检测算法综述

基于深度学习的目标检测算法综述(一)基于深度学习的目标检测算法综述(二)基于深度学习的目标检测算法综述(三)本文内容原创,作者:美图云视觉技术部检测团队,转载请注明出处目... 查看详情

基于深度学习的目标检测研究进展

前言开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个人,具体的位置就是上图右侧图像两个边框(bounding-box)所在的位置。其实刚刚的这个过... 查看详情

pytorch深度学习实战|基于yolov3的安全帽佩戴检测

...示计算机视觉中的目标识别问题的一般流程。目标检测是基于图片分类的计算机视觉任务,既包含了分类,又包含了定位。给出一张图片,目标检测系统要能够识别出图片的目标并给出其位置。由于图片中目标数是不确定的,且... 查看详情

谈谈基于深度学习的目标检测网络为什么会误检,以及如何优化目标检测的误检问题

添加链接描述 查看详情

谈谈基于深度学习的目标检测网络为什么会误检,以及如何优化目标检测的误检问题

添加链接描述 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day4基于深度学习的目标检测(object_detection)(代码片段)

基于深度学习的目标检测(object_detection)1.目标检测相关介绍2.RCNN系列模型3.YOLO系列模型1.目标检测相关介绍目标检测要解决的问题适应不同尺度多样化2.RCNN系列模型(1)输入测试图像(2)利用SelectiveSearch算法在图像中从下到... 查看详情

目标检测进阶:使用深度学习和opencv进行目标检测

使用深度学习和OpenCV进行目标检测基于深度学习的对象检测时,您可能会遇到三种主要的对象检测方法:FasterR-CNNs(Renetal.,2015)YouOnlyLookOnce(YOLO)(Redmonetal.,2015)SingleShotDetectors(SSD)(Liu等人,2015年)FasterR-CNNs 查看详情

[ai开发]基于深度学习的视频多目标跟踪实现

据我目前了解掌握,多目标跟踪大概有两种方式:Option1基于初始化帧的跟踪,在视频第一帧中选择你的目标,之后交给跟踪算法去实现目标的跟踪。这种方式基本上只能跟踪你第一帧选中的目标,如果后续帧中出现了新的物体... 查看详情

深度学习目标检测模型综述

...org/pdf/2104.11892.pdf whaosoftaiot http://143ai.com此分享中调查了基于深度学习的目标检测器的最新发展。还提供了检测中使用的基准数据集和评估指标的简明概述,以及检测任务中使用的一些突出的主干架构。它还涵盖了边缘设备... 查看详情

(转)基于深度学习的目标检测技术演进:r-cnnfastr-cnnfasterr-cnn

objectdetection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。objectdetection要解决的问题就是物体在哪里,是什么这整个流程的问题。然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大... 查看详情

深度学习objectdetection

...)+分类器(如:svm)深度学习方法R-CNN(RegionswithCNNfeatures)基于卷积神经网络特征的区域方法 SelectiveSearchtoExtractR 查看详情

基于区域的二阶段算法思想和理解综述

基于区域的二阶段算法思想和理解综述待办昨天待办decriptiondecription摘要:图像目标检测是图像处理领域的基础。自从2012年CNN的崛起,深度学习在Detection的持续发力,为这个领域带来了变革式的发展。深度学习出现之前,传统... 查看详情

如何快速入门深度学习目标检测?

学习目标了解目标检测的任务知道目标检测的常用数据集知道目标检测算法的评价指标掌握非极大值NMS算法的应用了解常用的目标检测算法分类1.目标检测目标检测(ObjectDetection)的任务是找出图像中所有感兴趣的目标,并确定... 查看详情

yolov5详细解读(代码片段)

YOLOV5检测算法详解学习前言本文主要是对基于深度学习的目标检测算法进行细节解读,以YOLOV5为例;基于深度学习的目标检测整体流程基于深度学习的目标检测主要包括训练和测试两个部分。训练阶段训练的目的是利用... 查看详情

深度学习目标检测:yolov5实现红绿灯检测(含红绿灯数据集+训练代码)(代码片段)

...练代码)1.前言本篇博客,我们将手把手教你搭建一个基于YOLOv5的红绿灯目标检测项目。目前,基于YOLOv5s的红绿灯检测精度平均值mAP_0.5=0.93919,mAP_0.5:0.95=0.63967,基本满足业务的性能需求。另外&#x 查看详情

深度学习目标检测:yolov5实现红绿灯检测(含红绿灯数据集+训练代码)(代码片段)

...练代码)1.前言本篇博客,我们将手把手教你搭建一个基于YOLOv5的红绿灯目标检测项目。目前,基于YOLOv5s的红绿灯检测精度平均值mAP_0.5=0.93919,mAP_0.5:0.95=0.63967,基本满足业务的性能需求。另外&#x 查看详情

yolov4基于yolov4深度学习网络目标检测matlab仿真(代码片段)

    YOLO发展至YOLOv3时,基本上这个系列都达到了一个高潮阶段,很多实际任务中,都会见到YOLOv3的身上,而对于较为简单和场景,比如没有太密集的目标和极端小的目标,多数时候仅用YOLOv2即可。除了YOL... 查看详情