目标检测

目标检测(object detection),就是在给定的一张图片中精确找到物体所在的位置,并标注出物体的类别。所以,目标检测要解决的问题就是物体在哪里以及是什么的整个流程问题。但是,在实际照片中,物体的尺寸变化范围很大,摆放物体的角度、姿态、在图片中的位置都不一样,物体之间可能还有重叠现象,这使得目标检测的难度变得很大。

目标检测近些年取得了较大发展,主要原因就是卷积神经网络在目标检测任务的应用代替了原有的基于人工规则提取特征的方法。

  • 传统的目标检测算法:
    Cascade + HOG/DPM + Haar/SVM以及上述方法的诸多改进、优化。
    传统的目标检测中,多尺度形变部件模型DPM(Deformable Part Model)表现比较优秀,连续获得VOC(Visual Object Class)2007到2009的检测冠军,。DPM把物体看成了多个组成的部件(比如人脸的鼻子、嘴巴等),用部件间的关系来描述物体,这个特性非常符合自然界很多物体的非刚体特征。DPM可以看做是HOG+SVM的扩展,很好的继承了两者的优点,在人脸检测、行人检测等任务上取得了不错的效果,但是DPM相对复杂,检测速度也较慢,从而也出现了很多改进的方法。
    但传统目标检测存在两个主要问题:一个是基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余;二是手工设计的特征对于多样性的变化并没有很好的鲁棒性。

  • 基于深度学习的目标检测算法:

    • 以候选区域/框(Region Proposal) + 深度学习分类的算法:
      通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,比如R-CNN(Selective Search + CNN + SVM)、SPP-net(ROI Pooling)、Fast R-CNN(Selective Search + CNN + ROI)、Faster R-CNN(RPN + CNN + ROI)、Mask R-CNN(Mask Prediction Branch+RPN + CNN + ROI)等。
    • 基于深度学习的回归算法:
      YOLO、SSD、YOLOv2、YOLOv3等算法

目前目标检测领域的深度学习方法主要分为两类:two stage 的目标检测算法;one stage 的目标检测算法。前者是先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类;后者则不用产生候选框,直接将目标边框定位的问题转化为回归问题处理。正是由于两种方法的差异,在性能上也有不同,前者在检测准确率和定位精度上占优,后者在算法速度上占优。

小目标检测

小目标有两种定义方式,一种是相对尺寸大小,如目标尺寸的长宽是原图像尺寸的0.1,即可认为是小目标,另外一种是绝对尺寸的定义,即尺寸小于32*32像素的目标即可认为是小目标。
小目标检测在深度学习卷积神经网络模型中一直是一个难题。早期的目标检测框架大多数是针对通用的目标来进行检测,如经典的单阶段方法yolo和ssd,两阶段方法faster-rcnn等,这些方法主要是针对通用目标数据集来设计的解决方案,因此对于图像中的小目标来说,检测效果不是很理想。
为了解决小目标问题提出的方法有:

  • 图像的缩放。也是最琐碎的一个方向——是在检测前对图像进行缩放。但是,由于大图像变得太大,无法装入GPU进行训练,因此单纯的升级并不有效。ao等[2017]首先下采样图像,然后利用强化学习训练基于注意力的模型,动态搜索图像中感兴趣的区域。然后对选定的区域进行高分辨率的研究,并可用于预测较小的目标。这避免了对图像中每个像素进行同等关注分析的需要,节省了一些计算成本。一些论文[Dai等,2016b,2017年,Singh和Davis, 2018年]在目标检测上下文中训练时使用图像金字塔,而[Ren et al., 2017]在测试时使用。
  • 浅网络。小物体更容易被接受场较小的探测器预测。较深的网络具有较大的接受域,容易丢失关于较粗层中较小对象的一些信息。Sommer等[2017b]提出了一种非常浅的网络,只有四个卷积层和三个完全连接的层,用于检测航空图像中的目标。当期望的实例类型很小时,这种类型的检测器非常有用。但是,如果预期的实例具有不同的大小,则效果更好
  • 上下文信息。利用围绕小对象实例的上下文。Gidaris和Komodakis [2015], Zhu等[2015b]使用上下文来提高性能,Chen等[2016a]则专门使用上下文来提高小对象的性能。他们使用上下文补丁对R-CNN进行了扩展,与区域建议网络生成的建议补丁并行。Zagoruyko等人[2016]将他们的方法与深度掩模对象建议相结合,使信息通过多条路径流动。
  • 超分辨率。还有针对小目标的图像增强等。最典型的是利用生成对抗性网络选择性地提高小目标的分辨率。
    它的生成器学会了将小对象的不佳表示增强为超分辨对象,这些超分辨对象与真实的大对象非常相似,足以欺骗竞争的鉴别器。

近两年提出了利用多层特征图的方法(特征金字塔、RNN思想、逐层预测),对小目标检测的效果产生了显著的提升。
现阶段主流算法有:
图像金字塔:较早提出对训练图片上采样出多尺度的图像金字塔。通过上采样能够加强小目标的细粒度特征,在理论上能够优化小目标检测的定位和识别效果。但基于图像金字塔训练卷积神经网络模型对计算机算力和内存都有非常高的要求。计算机硬件发展至今也难有胜任。故该方法在实际应用中极少。
逐层预测:该方法对于卷积神经网络的每层特征图输出进行一次预测,最后综合考量得出结果。同样,该方法也需要极高的硬件性能。
特征金字塔:参考多尺度特征图的特征信息,同时兼顾了较强的语义特征和位置特征。该方法的优势在于,多尺度特征图是卷积神经网络中固有的过渡模块,堆叠多尺度特征图对于算法复杂度的增加微乎其微。
RNN思想:参考了RNN算法中的门限机制、长短期记忆等,同时记录多层次的特征信息(注:和特征金字塔有本质区别)。但RNN固有的缺陷是训练速度较慢(部分操作无法矩阵化)。

原文链接:https://www.cnblogs.com/hellojamest/p/11426565.html

从目标检测到小目标检测相关推荐

  1. 目标检测之小目标检测和遮挡问题

    小目标检测trick 小目标难检测原因 小目标在原图中尺寸比较小,通用目标检测模型中,一般的基础骨干神经网络(VGG系列和Resnet系列)都有几次下采样处理: 导致小目标在特征图的尺寸基本上只有个位 ...

  2. 目标检测难题 | 小目标检测策略汇总

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 在计算机视觉中,检测小目标是最 ...

  3. 【目标检测】小目标检测相关

    文章相关 [CVPR2022]QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detecti ...

  4. 【目标检测】小目标检测问题及解决方法

    本部分主要节选自 <Augmentation for small object detection>. 针对目标检测中的小目标问题,主要有以下几种解决方法: (1) 增加输入图片分辨率 [ ...

  5. 针对遥感目标检测(小目标、旋转框、密集目标)的论文整理

    文献整理 文章目录 文献整理 A Multi-Feature Fusion-Based Change Detection Method for Remote Sensing Images 内容摘要 A ...

  6. 目标检测算法——小目标检测

    一.定义 1.以物体检测领域的通用数据集COCO物体定义为例,小目标是指小于32×32个像素点(中物体是指32*32-96*96,大物体是指大于96*96). 2.在实际应用场景中,通常更倾向于使用相 ...

  7. 深度学习检测小目标常用方法

    作者丨船长@知乎 来源丨https://zhuanlan.zhihu.com/p/83220498 编辑丨极市平台 本文仅用于学术分享,如有侵权,请联系后台作删文处理. 引言 在深度学习目标检测中,特 ...

  8. 干货 | 深度学习检测小目标常用方法

    点击上方"视学算法",选择"星标"公众号 重磅干货,第一时间送达 github地址:https://github.com/Captain1986/Captain ...

  9. YOLO-Z | 记录修改YOLOv5以适应小目标检测的实验过程

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 随着自动驾驶汽车和自动赛车越来越受欢迎,对更快.更准确的检测器 ...

最新文章

  1. 取出url中的字符_如何在JavaScript中解析URL:例如主机名,路径名,查询,哈希?...
  2. python 运算符重载_零基础小白Python入门必看:面向对象之典型魔术方法
  3. 掌握ConstraintLayout(十)按比例设置视图大小
  4. Oracle数据库常用的脚本命令(一)
  5. python 语言教程(3)变量之字典
  6. 中国半导体硅片行业未来发展趋势与销售规模预测报告2022版
  7. mysql隔离级别 简书_数据库事务和四种隔离级别
  8. Android O: View的绘制流程(三):布局和绘制
  9. 从字到词,大词典中文BERT模型的探索之旅
  10. OpenGL.Vertex Array Object (VAO).
  11. KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态获取 《寒江独钓》内核学习笔记(5)...
  12. wimdows11 eplan安装过程及遇到的问题
  13. 大学毕业必须知道的东西:三方协议、报到证(派遣证)、干部身份
  14. c语言实现小球跳动的效果
  15. Linux Mint(version19)
  16. pythonrsv分割_JavaScript是如何工作: 深入探索 websocket 和HTTP/2与SSE +如何选择正确的路径!...
  17. OpenGL实现在三维空间拖拽物体
  18. 期末总结——Spark
  19. Spring的注解@Bean
  20. 数组中的最大值/最小值

热门文章

  1. 大型剪纸艺术——美到惊奇
  2. uniapp使用高德地图微信小程序SDK生成地图轨迹
  3. 致敬每一位劳动者,感恩每一次付出!清微智能祝您劳动节快乐~
  4. 用react解决1px问题
  5. ucore lab2
  6. Java开发中常见的危险信号
  7. 陈立杰的励志演讲. 充满动力地走下去吧!
  8. 天津市雏鹰企业认定奖励及申报标准介绍,补贴5万
  9. python字符串修改
  10. Arduino自制打地鼠游戏机详细教程