【更新中】目标检测——梳理,准备面试

2023-05-16

最近在准备找工作面试,本文在此梳理了目标检测中涉及的面试要用的知识点,包含了一下几方面:

 

 

My paper reading 过程总结:

实际步骤所花时间评价改进
先看了abstract, 1 introduction 以及 4 related works这三个部分,对objection detection 有了大致了解0.5U  
看了2.1的Model部分,上网查找RCNN系列以及SSD和YOLO系列的总结对比0.75U对这些模型底层实现都不了解,所以网上的总结整理有点没太看懂先看SSD的具体原理,再速看YOLO系列原理,和SSD对比,R-CNN系列可以不看
focus on SSD   

模型列表:

  1. R-CNN
  2. SPPnet
  3. Fast R-CNN
  4. Faster R-CNN
  5. YOLO
  6. SSD

阅读博客(主要阅读):

  • Deep Learning for Object Detection: A Comprehensive Review
    学习ow these object detection models both inspire and diverge from one another
  • 目标检测之RCNN,SPP-NET,Fast-RCNN,Faster-RCNN
  • 目标检测之YOLO,SSD
  • SSD目标检测 (五星)

 

参考博客:

  • faster RCNN/YOLO/SSD算法的比较

  • 《论文三部曲》Yolo- SSD-Yolo v2

  • Real-time Object Detection with YOLO, YOLOv2 and now YOLOv3

  • RCNN学习笔记(10):SSD:Single Shot MultiBox Detector

  • Object Detection 代码总结
  • SSD论文笔记1
  • SSD论文笔记2
  • SSD: Single Shot MultiBox Detector解读

  •  

博客笔记:

  • 目标检测之RCNN,SPP-NET,Fast-RCNN,Faster-RCNN

笔记:
(1) 分类:
1 以RCNN为代表的基于Region Proposal的深度学习目标检测算法(RCNN,SPP-NET,Fast-RCNN,Faster-RCNN等);
2 以YOLO为代表的基于回归方法的深度学习目标检测算法(YOLO,SSD等)。

RCNN系列:

模型原理总结优点缺点
传统方法区域选择(滑窗)、特征提取(SIFT、HOG等)、分类器(SVM、Adaboost等)三个部分 一方面滑窗选择策略没有针对性、时间复杂度高,窗口冗余;另一方面手工设计的特征鲁棒性较差
RCNN

流程;

1 使用Selective Search提取Proposes,然后利用CNN等识别技术进行分类。

2 使用识别库进行预训练,而后用检测库调优参数。

3 使用SVM代替了CNN网络中最后的Softmax,同时用CNN输出的4096维向量进行Bounding Box回归。

4 流程前两个步骤(候选区域提取+特征提取)与待检测类别无关,可以在不同类之间共用;同时检测多类时,需要倍增的只有后两步骤(判别+精修),都是简单的线性运算,速度很快。

 

1 训练分为多个阶段,步骤繁琐: 微调网络+训练SVM+训练边框回归器。

2 训练耗时,占用磁盘空间大:5000张图像产生几百G的特征文件。

3 速度慢: 使用GPU, VGG16模型处理一张图像需要47s。

SPP net

more details:

http://lanbing510.info/2017/08/24/RCNN-FastRCNN-FasterRCNN.html

1 通过Spatial Pyramid Pooling解决了深度网络固定输入层尺寸的这个限制,使得网络可以享受不限制输入尺寸带来的好处。

2 解决了RCNN速度慢的问题,不需要对每个Proposal(2000个左右)进行Wrap或Crop输入CNN提取Feature Map,只需要对整图提一次Feature Map,然后将Proposal区域映射到卷积特征层得到全链接层的输入特征。

 

 

 

 

 

 
Fast R-CNN

1 Fast-RCNN直接使用Softmax替代了RCNN中SVM进行分类,同时在网络中加入了多任务函数边框回归,实现了端到端的训练(除SS Region Proposal阶段)。

2 借鉴SPP-NET,提出了一个ROI层。ROI Pooling Layer实际上是SPP-NET的一个精简版,SPP-NET对每个Proposal使用了不同大小的金字塔映射,而ROI Pooling Layer只需要下采样到一个7x7的特征图。对于VGG16网络conv5_3有512个特征图,这样所有Region Proposal对应了一个7*7*512维度的特征向量作为全连接层的输入。

3 使用了不同于SPP-NET的训练方式,训练时,把同张图片的Prososals作为一批进行学习,而Proposals的坐标直接映射到conv5层上,这样相当于一张图片的所有训练样本只卷积了一次。

4 论文在回归问题上并没有用很常见的2范数作为回归,而是使用所谓的鲁棒L1范数作为损失函数。

5 论文将比较大的全链接层用SVD分解了一下使得检测的时候更加迅速。

 

使用Selective Search提取Region Proposals,没有实现真正意义上的端对端,操作也十分耗时。

Faster R-CNN

1 提出了Region Proposal Network(RPN),将Proposal阶段和CNN分类融到了一起,实现了一个完全的End-To-End的CNN目标检测模型。RPN可以快速提取高质量的Proposal,不仅加快了目标检测速度,还提高了目标检测性能。

2 将Fast-RCNN和RPN放在同一个网络结构中训练,共享网络参数。

虽然现在也是用的滑动窗口策略,但是,滑动窗口操作是在卷积层特征图上进行的,维度较原始图像降低了16*16倍(16如何得到的可参见前文);多尺度采用了9种Anchor,对应了三种尺度和三种长宽比,加上后边接了边框回归,所以即便是这9种Anchor外的窗口也能得到一个跟目标比较接近的Region Proposal。 
总结

preview

  

 

 

  • 目标检测之YOLO,SSD

YOLO和SSD:

相比较于RCNN系列:利用回归的思想(既给定输入图像,直接在图像的多个位置上回归出这个位置的目标边框以及目标类别),很大的加快了检测的速度

模型原理总结优点缺点
YOLO

yolo :之前处理目标检测的算法都归为了分类问题,然而作者将物体检测任务当做一个regression问题来处理,使用一个神经网络,直接从一整张图像来预测出bounding box 的坐标、box中包含物体的置信度和物体的probabilities。整个检测流程都在一个网络中,实现了end-to-end来优化目标检测。

一、大致流程

1 给个一个输入图像,首先将图像划分成7*7的网格。

2 对于每个网格,我们都预测2个边框(包括每个边框是目标的置信度以及每个边框区域在多个类别上的概率)。

3 根据上一步可以预测出7*7*2个目标窗口,然后根据阈值去除可能性比较低的目标窗口,最后NMS去除冗余窗口即可。

 

版本一:

1 将物体检测作为回归问题求解。基于一个单独的End-To-End网络,完成从原始图像的输入到物体位置和类别的输出,输入图像经过一次Inference,便能得到图像中所有物体的位置和其所属类别及相应的置信概率。

2 YOLO网络借鉴了GoogLeNet分类网络结构。不同的是,YOLO未使用Inception Module,而是使用1*1卷积层(此处1*1卷积层的存在是为了跨通道信息整合)+3*3卷积层简单替代。

3 Fast YOLO使用9个卷积层代替YOLO的24个,网络更轻快,速度从YOLO的45fps提升到155fps,但同时损失了检测准确率。

4 使用全图作为 Context 信息,背景错误(把背景错认为物体)比较少。

5 泛化能力强。在自然图像上训练好的结果在艺术作品中的依然具有很好的效果。

版本二:

  • 速度快,能够达到实时的要求。在 Titan X 的 GPU 上 能够达到 45 帧每秒。
  • 使用全图作为 Context 信息,可以更好地避免背景错误(背景错误不到Faster-R-CNN的一半)。
  • 可以学到目标的泛化特征。
 
SSD

设计思想:

ssd 在特征图上采用卷积核来预测一系列的 default bounding boxes 的类别分数、偏移量,同时实现end-to-end 的训练。

特点:

  • 从YOLO中继承了将detection转化为regression的思路,一次完成目标定位与分类
  • 基于Faster RCNN中的Anchor,提出了相似的Prior box;
  • 加入基于特征金字塔(Pyramidal Feature Hierarchy)的检测方式,即在不同感受野的feature map上预测目标
  • 速度上,比yolo还要快
  • 在检测精度上,可以和Faster RCNN相媲美

 

版本二:

  • SSD最大的贡献,就是在多个feature map上进行预测,这点我在上一篇FPN也说过它的好处,可以适应更多的scale。
  • 第二个是用小的卷积进行分类回归,区别于YOLO及其faster rcnn的fc,大大降低参数和提速

速度对比:

  1. 需要人工设置prior box的min_size,max_size和aspect_ratio值。网络中prior box的基础大小和形状不能直接通过学习获得,而是需要手工设置。而网络中每一层feature使用的prior box大小和形状恰好都不一样,导致调试过程非常依赖经验。
  2. 虽然采用了pyramdial feature hierarchy的思路,但是对小目标的recall依然一般,并没有达到碾压Faster RCNN的级别。作者认为,这是由于SSD使用conv4_3低级feature去检测小目标,而低级特征卷积层数少,存在特征提取不充分的问题。
YOLO V2 

yolo v2 的改进的点:

  1. Batch Normalization 在卷基层后面增加了batch Normalization,加快了收敛速度,同时mApt提高了2%
  2. High Resolution Classifier 训练网络的时候将网络从224*224变为448*448,当然后续为了保证特征图中只有基数个定位位置,从而保证只有一个中心细胞,网络最终设置为416*416。最终实现了4%的mAP提升。
  3. Convoutional with Anchor Boxes 去掉yolo1 的全连接层,加入了anchor boxes。提高了召回率。81% 到 88%。当然 mAP 下降了0.3.(69.5-39.2)
  4. Dimension Clusters 提出了kmeans聚类(k =5) 这种c选择了模型复杂度和召回率。使用欧式距离进行边界框优先权的衡量,距离越小,优先权越高。
  5. Direction location prediction: 尤其是训练开始 模型非常不稳定。使用了logistic 激活函数,使得网络在(0-1)之间波动。
  6. Fine-Grained Features 使用了passthrough layer。 组合了高分辨的特征和低分辨率的特征通过融合相邻的特征到不同的通道中。
  7. Multi-Scale Training 不是固定好尺寸来进行训练,在训练的过程中,隔10 batches,随机地选择一种尺度来进行训练
 
YOLO 9000   
YOLO V3   

 

 

 

 

笔记:

 

 

 

 

 

Faster R-CNN

  • canonical model

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【更新中】目标检测——梳理,准备面试 的相关文章

随机推荐

  • CAS 安装配置

    1 从github上获取 https github com apereo cas overlay template 2 shell窗口构建脚本 右键 xff0c 进入shell 当前目录下运行 build cmd run 3 当出现端口被占
  • micropython 8266 驱动 12864G 液晶LCD屏幕

    1 xff0c 接线顺序 引脚定义 cs 61 Pin 4 片选 reset 61 Pin 5 复位 rs 61 Pin 16 数据 指令 1数据 0 指令 DC sda 61 Pin 13 数据信号 sck 61 Pin 14 时钟信号
  • 【软件工程】之结构化分析

    结构化分析 6 1引言6 2结构化分析建模6 3面向数据流的建模方法6 4面向数据的建模方法6 5面向状态的建模方法6 6思考题1 结构化分析的特点2 数据流图的建模元素3 数据字典 结构化需求分析的建模方法 xff1a 面向数据流的建模方
  • 在 Linux 下用 mkdir 命令来创建目录和子目录

    了解了用 ls 命令在目录中列出条目后 xff0c 现在我们要学习在 Linux 系统下创建目录 在 Linux 下 xff0c 我们可以使用 mkdir命令 Mkdir 是 make directory 的缩写词 mkdir 是什么呢 M
  • win10下删除ubuntu及其引导项

    本文主要针对UEFI和GPT双系统下Ubuntu EFI分区及启动项的删除 1 查看电脑分区信息 电脑分区信息如我上一篇博客所示 xff0c 打开win10磁盘管理器 xff0c 可以看到相应分区信息 xff0c 具体如下图 根据个人分区方
  • STM32F1,F4,L1系列禁止JTAG和SW引脚方法

    STM32F1系列 程序中在使用到JTAG SWD的某个IO 时 xff0c 需要禁用掉相关调试方法后 xff0c 再配置相应的IO方式 在需要相应的接口配置前使用这些代码 对于F1系列 xff0c 调用函数进行专门的禁止 标准库配置方式
  • 数据库关系代数思维导图

  • 关于树莓派VNC图形登录界面重复登录,并显示can not show the desktop的解决办法。

    最近我也遇到了这么一个烦人的问题 xff0c 就是树莓派一直重复登录都登不进去 首先介绍一下背景 xff0c 我用树莓派的官方镜像烧录工具重新烧录了我之前的备份 xff0c 但是发现putty可以远程登录到pi 而使用vnc远程登录无法登录
  • Ubuntu开机进入终端完成自救

    由于设置了etc下的关键配置 xff0c 导致系统一直卡在开机界面进不到系统桌面 xff0c 所以记录下自救的过程 1 重启开机后选择Ubuntu高级选项 xff0c 然后点击带有Recover的 xff0c 再点击Drop to root
  • 女生写的如何追mm.看完后嫩头青变高手

    我是女生 xff0c 看到有的男生想追自己喜欢的女孩子又不敢追 xff0c 还想人家倒追她 xff0c 我很反感 从一个女生的角度 xff0c 我比较了解女孩子的心理 女孩子大多不会主动出击 xff0c 去追求自己喜欢的男孩 xff0c 除
  • 使用Dockerfile创建docker镜像

    在Dockerfile中用到的命令有 FROM FROM指定一个基础镜像 xff0c 一般情况下一个可用的 Dockerfile一定是 FROM 为第一个指令 至于image则可以是任何合理存在的image镜像 FROM 一定是首个非注释指
  • Ubuntu下软件更新无法安装的问题

    Ubuntu安装软件提示 需要安装不能信任的软件包 解决办法 用 Ubuntu 安装输入法软件包时提示 需要安装不能信任的软件包 xff0c 这个动作需要从没有授权的软件源来安装软件包 xff0c 赋予权限执行仍然无法安装 xff0c 上网
  • 【C#】C#中FTP的操作

    C 完成与FTP服务器交互的功能代码 包括连接FTP 上传文件 下载文件 创建文件夹 删除文件夹 目录列表 获取指定文件大小 对文件的重命名 移动文件 判断路径是否存在等功能 using System using System Collec
  • 深浅层特征融合——CBNet

    写在前面 本系列博客 深浅层特征融合 对几篇出现较新的深浅层特征融合算法进行简要介绍 xff0c 多为本人的论文笔记 xff0c 记录了一个深度学习小学生在看论文时想到的问题 论文题目 xff1a CBNet A Novel Composi
  • U盘安装mips架构的Deepin(或UOS)系统及配置适用的源

    安装环境 请确保您的电脑满足以下的配置要求 xff0c 如果您的电脑配置低于以下要求 xff0c 将无法完美地体验深度操作系统 xff1a 内存 xff1a 至少 2G 内存 RAM xff0c 4G 以上是达到更好性能的推荐值硬盘 xff
  • label smooth方法论文调研

    待看论文 xff1a When Does Label Smoothing Help xff08 重点要看的 xff09 Regularizing Neural Networks by Penalizing Confident Output
  • 动手实践——docker中利用jupyter对数据增强操作进行可视化

    整体流程 docker容器内搭建合适环境 gt 开启jupyter notebook gt 浏览器里敲数据增强操作代码 gt 可视化 搭建环境 参考博客 https segmentfault com a 1190000007448177 1
  • 半监督-SelfMatch-论文阅读笔记

    阅读背景 SimCLR在2020年2月第一次挂在arxiv上 xff0c 被ICML 2020接收 FixMatch在2020年1月第一次挂在arxiv上 xff0c 被NIPS 2020接收 概括总结 SelfMatch方法和 FixMa
  • AI提效工具|借助chatgpt快速读论文,快速总结、归纳、索引相似文章

    目前新论文层出不穷 xff0c 快速阅读论文 成为研究者们一个必备能力 本文简单记录了近期出现的两个借助chatgpt来帮助我们快速读论文的 神器 xff0c 帮助大家快速上手应用 xff0c 迅速提升论文阅读速度 此外 xff0c 本人也
  • 【更新中】目标检测——梳理,准备面试

    最近在准备找工作面试 xff0c 本文在此梳理了目标检测中涉及的面试要用的知识点 xff0c 包含了一下几方面 xff1a My paper reading 过程总结 xff1a 实际步骤所花时间评价改进先看了abstract 1 intr