Object Detection基础知识学习心路历程
做个转载合集来记一下我的学习历程,如果能给看到的小伙伴一点帮助就好了。文章目录一、深度学习二、Object detection1. Object detection发展史2. Object detection model3. 常见的One-stage detector &Two-stage detector4. 初次接触一、深度学习基本上就是看课、看笔记,看论文。针对要用得急的py,这里推
做个转载合集来记一下我的学习历程,如果能给看到的小伙伴一点帮助就好了。
文章目录
一、深度学习
第一步肯定是知道啥是深度学习、基本流程还有各种术语什么意思。基本上就是看课、看笔记,看论文。最经典的学习方法是CNN,近几年transformer和diffudion大火了起来,py们学习可以优先了解CNN和几个非常经典的好模型,然后转去看transformer和diffudion(不然跟不上那堆卷王的步伐了hhhh)。针对要用得急的py,这里推荐几个我觉得不错的学习途径:
- 跟李沐学AI
前亚马逊大佬,现在是创业大佬。强推这个,有教机器学习的视频,也有教深度学习的视频,而且都是结合实例教学,更还有一些比较经典的/爆火的论文讲解(这个最赞)。 - 吴恩达的deeplearning.ai课-B站链接
大佬的课,原视频在coursera上。 - deeplearning.ai中CNN方面的高度浓缩笔记
对吴恩达的课高度浓缩的笔记,不过主要针对neural networks基础和CNN部分,对于做目标识别的小伙伴比较友好。 - 超全deeplearning.ai笔记
吴恩达的所有课的笔记,如果你时间很充裕,又不爱看视频,可以看这个。
如果要深入学,很正宗的学,很数学的学,一个是看花书(主题是deep learning,但是其实涉及很多方面),另一个是看李航的统计学习方法,一定要把基础打牢!学过基础知识看论文和没学过看根本是两种感觉!!;如果只是工程需要,pytorch也好,tenserflow也好,都集成好了一些很经典的模型,甚至还能帮你下载预训练权重,基本上一下午就能搞定一个任务。
看完这些,相信你已经知道什么是卷了。
二、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 detector
和Two-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. 初次接触
看了一堆东西以后,至少术语是搞明白了,那该进一步学习了。
如果是项目需要,理解了基本概念之后其实可以直接调包,无论是keras还是pytorch都集成好了一些很经典的模型,只要有数据集,再加上一些教程辅助,一天就能布置好。
如果是科研需要,学姐给我的建议是一边跑程序,一边看论文。我有一些推荐的入门博客:
- LeNet-5详解
一个比较经典的简单CNN,建议用入门里学到的那些维度计算公式,去跟着自己算算每一层的维度。有一点不太一样的是:LeNet-5的池化步骤是有weight和bias的,但是后来基本没人这么干了。 - AlexNet详解
AlexNet,一个经典的CNN,奠基作之一。 - VGG简单介绍
- ResNet
必知道的一个网络结构。 - 以上只是入门,但是很经典的模型,能够理解以上的之后,就可以找一些时下很火的模型看了。最近大火的东西两个东西:transformer和diffusion,懒得看的直接看李沐的视频。
目标检测的源代码挺好找的,多半都会开源,很多论文很多细节不会写出来,光看有可能有时候也不理解,强烈建议时间充足的小伙伴把代码找来对着论文看看(当然对不是要复现的代码,也选择性的看看就好)。
注意:在倒数据集的时候要注意不同的数据集可能会遵照不同的格式,记得检查。
5. 多模态融合
现在的很多object detection已经不满足于 只用RGB信息了,一些常见的融合模式有:RGB+NLP(尤其是transformer),RGB+D(自动驾驶和机器人多),RGB+点云(自动驾驶多)。具体例子……改天放,先睡了,嘻嘻(其实是我还需要找点质量好的再放上来)。
注:
上面这些只是一个大概的东西,每一个特定的应用领域都存在各自的问题,举几个栗子:
- 自动驾驶中的object detection一个是要实时,还有一个很重要的是要想办法让模型能一些比较恶劣的条件下正常稳定的工作,比如恶劣天气或者恶劣光照条件。
- 对于机器人抓取任务,目前都有一点倾向于做物体语义分割(粗糙说其实就是像素级的分类),其中一个比较大的问题是遮挡。
- 对于医学方面的,一个需要关注的问题是长尾数据集还有困难样本挖掘。
先到这里,后面慢慢更,有错的又回来改。
更多推荐
所有评论(0)