@TOC


前言

进公司,做项目过程中肯定会碰到很多技术点,总结一下,以供后面参考学习,查看。肯定大家都有一定差异啦,大家作为参考哦,与诸君共勉。

一、目标检测发展简史

  • 1.深度学习时代之前,目标检测的研究路线基本可以划分为两个阶段
    • 先从图像中提取人工视觉特征(如HOG),再将这些视觉特征输入一个分类器(如支持向量机)中,最终输出检测结果。
  • 2014年,R-CNN问世,吹响了深度学习进军基于视觉的目标检测领域的号角。R-CNN的思路是先使用一个搜索算法从图像中提取出若干感兴趣区域(region of interest,RoI),然后使用一个卷积神经网络(convolutional neural network,CNN)分别处理每一个感兴趣区域,提取特征,最后用一个支持向量机来完成最终的分类。
  • 2015年,YOLO问世,提出了“单阶段”检测框架。YOLO的作者团队认为,提取候选区域(定位)和逐一识别(分类)完全可由一个单独的网络来同时完成,无须分成两个阶段。
    • 目标检测领域正式诞生了two-stage流派和one-stage流派。 two-stage框架往往检测精度较高而检测速度却较慢,one-stage框架则恰恰相反,往往检测精度较低但检测速度较快。随着后续研究者们的不断思考、探索和尝试,如今的one-stage检测框架几乎兼具了性能和速度两方面的优势,实现了极为出色的性能上的平衡。

二、目标检测网络框架概述

1.一个常见的目标检测网络往往可以分为三大部分:主干网络、颈部网络和检测头

  • 主干网络是目标检测网络中最核心的部分,其关键作用就是提取输入图像中的高级特征,减少图像中的冗余信息,以便于后续的网络去做深入的处理。
  • 颈部网络的主要作用是将由主干网络输出的特征进行二次处理。
  • 检测头的结构相对简单,其主要作用就是提取类别信息和位置信息,输出最终的预测结果。

2.主干网络

  • 如何设计主干网络是至关重要的,这不仅因为主干网络占据了一个目标检测器的计算量和参数量的大部分,还因为提取的特征的好坏对后续的分类和定位有着至关重要的影响。大量的工作已经证明,经过ImageNet预训练的模式是十分有效的,可以大大加快目标检测网络在训练过程中的收敛速度,也可以提升检测器的检测性能。

3.颈部网络

  • 颈部网络的参数的初始化没有太多需要解释的,可供研究者们自由发挥的空间也就大得多,很多颈部网络被相继提了出来。特征金字塔网络是目前目标检测领域最有名的结构之一,几乎是当下目标检测网络的标准配置,其多尺度特征融合与多级检测思想影响了后续许多目标检测网络结构。空间金字塔池化模块是一个性价比很高的结构,被广泛地应用在YOLOv4、YOLOv6和YOLOv7等工作中。

4.检测头

  • 当一张输入图像经过主干网络和颈部网络两部分的处理后,得到的特征就可以用于后续的检测了。大多数的检测框架所采用的技术路线都是在处理好的特征图上,通过部署数层卷积来完成定位和分类。

巨人的肩膀

  • 宗靖国老师等,发明专利:LED显示牌的点检方法以及LED显示控制卡
  • 基于深度学习的目标检测原理与应用
  • 程序员的AI书:从代码开始
  • 深度学习与目标检测:工具、原理和算法
  • 深度学习和目标检测
  • pytorch自动驾驶视觉感知算法实战
  • python计算机视觉和自然语言处理
  • 计算机视觉实战:基于TensorFlow 2
  • 计算机视觉之深度学习:使用TensorFlow和Keras训练高级神经网络
  • 深度学习:卷积神经网络从入门到精通