经典目标检测框架的要点总结
本篇写于18年暑假,后来转战跟踪就没怎么更新过,梳理了几个经典目标检测的点,以及他们的性能分数,本打算做毕设的时候梳理借鉴,没想到只能到这里了。
一.RCNN
- 选择性搜索
- Crop后分类(两种传入网络的方法,那种长宽都缩放到网络大小的比较好)
- 用SVM分类(FC的没有SVM的好,可能毕竟是没有训练吧)
- 速度:50s/img(慢)
- Bounding Box 回归
二.Fast-RCNN
- ROI(可BP)
- 建议区还是选择性搜索
- 速度:0.32
三.Faster-RCNN
- RPN 位置建议网络,输出那一层,每个卷积核对应一种anchor(不同大小长宽比)的一种属性(置信分、x,y,h,w)
- ROI这里补充说明,RPN回归的x,y是浮点数,需要取整数、再打格子
- 速度:0.2
四.RFCN
- 是双阶段的(还是有rpn)
- 没有后面的FC,而是改用卷积的形式
- 还是打格子了,只是每个格子用一个卷积核来算,卷积核跑过一遍后,每个点就对应每个这个位置作为格子一角的分数
- 取值的时候,PR对应的区域在map上打格子,属于同一个格子的点求平均(比如深蓝色属于左下角,但是PR只要ROI上的一小块,而不是整个ROI,最后这样组合起来投票)
五.YOLO (you only look once)
- 最后又经历过FC
- 既然是7*7,应该是对大目标比较好
六.Yolo2
- 主要是trick(以前的问题现在看来是trick)
- Anchor居然没有
- DarkNet(速快,可用在移动端或者简化加速)
- Yolo3的时候对小目标也不错了
七.PVANet
1.速度快性能好
2.crelu(减半的卷积数,差不多的性能),可以借鉴
八.SSD
- 虽然是单阶段,但是输出层是有根据anchor来的
- 没有特征融合?
- 数据增强
- 输入越大越好
九.RetinaNet
- focal loss (单阶段不一定不好,只是训练样本的不均衡导致)
- 单阶段+fpn
十.Mask-RCNN
- Mask多任务
- ROI Align (直接在回归的pr上打格子做插值)
十一.DSSD
- 特征融合
- 1*1的卷积(c)最好
- 长宽比聚类
- 测试的时候删除bn层,速度1:2× - 1:5×
十二.RefineDet
- 单阶段的,快,好用,对小目标好
- 有类似双阶段的anchor精炼过程
- 带+号的是多尺度
十三.Deformable Convolutional Networks (DCN)
- 卷积变形(偏移)
- ROI偏移
- 慢,但想法好
十四.CornerNet
论文地址:https://arxiv.org/abs/1808.01244
https://github.com/umich-vl/CornerNet
- 角点检测(左上、右下)
- 通过embeddings确认同目标的两点
- 提出Corner pool,有效平滑特征图,凸显角点
- 最后的角点还加了offset微调,就有点像双阶段
- 基础网络用沙漏网络
- 单阶段最佳