Object Detection基础知识学习心路历程

做个转载合集来记一下我的学习历程,如果能给看到的小伙伴一点帮助就好了。

一、深度学习

基本上就是看课、看笔记,看论文。针对要用得急的py,这里推荐几个我觉得不错的学习途径:

如果要深入学,还是看花书比较好。
看完这些,相信你已经知道什么是卷了。
在这里插入图片描述

二、Object detection

1. Object detection发展史

上一张不知道源头是哪里的图
在这里插入图片描述

2. Object detection model

一般来说,基于深度学习的detector = backbone + (neck) + head

  • Backbones:主要用来做特征提取的那部分网络,也就是主干网络。
    GPU平台的有VGG,ResNet,ResNeXt,DenseNet等,CPU平台的有:SqueezeNet,MobileNet,ShuffleNet……
  • Head:分类和产生bounding boxes的部分。按照不同的head可以把detector分为两类:One-stage object detectorTwo-stage object detector
  • Neck:介于backbone和head之间,比方说FPN就是一种neck。常见的neck:

3. 常见的One-stage detector &Two-stage detector

  • One-stage object detector:YOLO系列,SSD,RetinaNet
    特点:快,但是准确率不如two-stage。不生成proposals,直接对整张图进行检测。
  • Two-stage object detector:R-CNN,Fast R-CNN,Faster R-CNN,R-FCN,Libra R-CNN。
    特点:准确率高,但是慢。需要专门的一步生成proposals。

4. 初次接触

看了一堆东西以后,至少术语是搞明白了,那该进一步学习了。学姐给我的建议是一边跑程序,一边看论文。我刚开始跑的是YOLOv3和YOLOv4,还顺带学了学脚本和配置文件。要是想从简单的开始,慢慢熟悉CNN,我有一些推荐的博客:

  • LeNet-5详解
    一个比较经典的简单CNN,建议用入门里学到的那些维度计算公式,去跟着自己算算每一层的维度。有一点不太一样的是:LeNet-5的池化步骤是有weight和bias的,但是后来基本没人这么干了。
  • AlexNet详解
    AlexNet,一个经典的CNN,奠基作之一。
  • VGG简单介绍
  • ResNet
    必知道的一个网络结构。
  • 最近大火的东西之一:transformer。视觉方面最火的两个:vision transformerswim transformer。懒得看论文可以找李沐的视频看。

其实最好的找论文的办法就是找个时下比较经典爆火的,去找引文看。

目标检测的源代码挺好找的,多半都会开源,很多论文很多细节不会写出来,光看有可能有时候也不理解,强烈建议时间充足的小伙伴把代码找来对着论文看看(当然对不是要复现的代码,也选择性的看看就好)。

对于交差目的的小伙伴,可以推荐直接看一些tutorial,直接上手。

注意:在倒数据集的时候要注意不同的数据集可能会遵照不同的格式,记得检查。

先到这里,后面慢慢更,有错的又回来改。


版权声明:本文为weixin_44596312原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。