update: mmdetection

This commit is contained in:
ming71 2019-09-21 14:57:26 +08:00
parent 3001551faf
commit d9d0315a62
3 changed files with 106 additions and 6 deletions

View File

@ -18,7 +18,7 @@
更新日志:**
2019.9.20明奇新增DOTA数据集、目标检测的训练tricks、数据增强方法
2019.9.20明奇新增DOTA数据集、目标检测的训练tricks、数据增强方法、CBNet、DetNet
2019.01.05陈方杰新增8.3节One-Stage检测算法M2Det

View File

@ -354,11 +354,12 @@ RoI Align的思路很简单取消量化操作使用双线性内插的方
![](img/ch8/Mask R-CNN-04.png)
### 8.2.7 DetNet贡献者北京理工大学--明奇)
1. **Motivation**
&emsp;&emsp;这个论文的insight不错。作者在related works观察总结到很多backbone的提出都是用于挑战ImageNet分类任务后被应用到检测上来因此鲜有单独<u>针对检测任务设计的backbone</u>
DetNet是发表在ECCV2018的论文比较新出发点是现有的检测任务backbone都是从分类任务衍生而来的因此作者想针对检测专用的backbone做一些讨论和研究而设计了DetNet思路比较新奇。
1. **Introduction**
&emsp;&emsp;很多backbone的提出都是用于挑战ImageNet分类任务后被应用到检测上来而鲜有单独<u>针对检测任务设计的backbone</u>
&emsp;&emsp;**检测和分类有明显的区别**1不仅需要分类还需要精确的定位 2最近的检测器都是基于类似FPN结构在分类网络基础上加额外多尺度特征进行检测应对不同尺度变化的目标。这两点又是相互补充共同协助网络完成分类到检测任务的转变。例如分类任务是检测的一环所以必不可少但是传统分类采用的最高级特征定位细节不够因此很多最近网络设法用类似FPN的结构去处理尺度变化的问题就将分类较好地过渡到检测任务上了。
@ -423,6 +424,58 @@ RoI Align的思路很简单取消量化操作使用双线性内插的方
![](img/ch8/DetNet-8.png)
### 8.2.8 CBNet
本部分介绍一篇在COCO数据集达到最高单模型性能——mAP 53.3的网络论文于2019.9.3发布在ArXiv全名是*CBNet: A Novel Composite Backbone Network Architecture for Object Detection*
1. **Introduction**
&emsp;&emsp;名义上是单模型实际是多模型的特征融合只是和真正的多模型策略略有不同。作者的起点是设计新的模型往往需要在ImageNet上进行预训练比较麻烦。因而提出的Composite Backbone Network (CBNet)采用经典网络的多重组合的方式构建网络一方面可以提取到更有效的特征另一方面也能够直接用现成的预训练参数如ResNetResNeXt等比较简单高效。
2. **Proposed method**
![](img/ch8/CBNet-1.png)
2.1 **Architecture of CBNet**
![](img/ch8/CBNet-2.png)
&emsp;&emsp;如上图模型中采用K个K>1相同的结构进行紧密联结。其中两个相同backbone的叫Dual-Backbone (DB)三个叫Triple- Backbone (TB)L代表backbone的stage数目这里统一设置为L=5。其中和前任工作不同的地方在于这里将不同的stage信息进行复用回传以便获取更好的特征为什么work不好说
2.2 **Other possible composite styles**
![](img/ch8/CBNet-3.png)
&emsp;&emsp;相关工作的其他类似结构大同小异。要么是前面backbone的stage往后传播要么是往前一个传播每个都有一篇论文应该都会给出不同的解释第四个结构不太一样是类似densnet的结构但是密集连接+多backbone assemble的内存消耗不出意外会非常大。但是脱离这些体系来看多backbone的结构类似多模型的assemble和单模型有点不公平。
3. **Experiment**
* **result**
![](img/ch8/CBNet-4.png)
COCO数据集上的结果。看来提升还是有的。但是也能看出大趋势上三阶级联效果不如两阶的提升大也是这部分的特征提升空间有限的缘故到底哪部分在work不好说。下图的研究就更说明这一点了斜率逐渐减小。
* **Comparisons of different composite styles**
![](img/ch8/CBNet-5.png)
他的级联网络相比作者的阐述点只落脚于特征的利用情况但是这个东西本身就很玄乎不好说到底怎么算利用得好。硬要说这种做法的解释性大概就是将backbone方向的后面高级语义特征传播回前面进行加强相当于横向的FPN传播。
* **Number of backbones in CBNet**
![](img/ch8/CBNet-6.png)
速度慢是必然的FPN+ResNeXt为8fps加上两个backboen后为5.5FPS如果减去backbone的前两个stage可以节省部分参数达到6.9FPS,而精度下降不大(整体速度太低,这个实验意义不大)
* **Sharing weights for CBNet**
![](img/ch8/CBNet-7.png)
*
从中可以看出其实权重是否share区别不大 不到一个点的降幅,参数量减少。
* **Effectiveness of basic feature enhancement by CBNet**
![](img/ch8/CBNet-8.png)
从中可以看出激活响应效果更好,确实是能够提取到更为有效的特征,对物体的响应更加敏感。
## 8.3 One Stage目标检测算法
@ -1355,6 +1408,54 @@ Anno-Mage一个利用深度学习模型半自动图像标注工具预训
当然还有一些数据标注公司可能包含更多标注功能例如对三维目标检测的标注3D Bounding box Labelling激光雷达点云的标注LIDAR 3D Point Cloud Labeling等。
## 8.8 目标检测工具和框架
各种不同的算法虽然部分官方会有公布代码或者github上有人复现但是囿于安装环境不一实现的框架pytorch、C++、Caffee、tensorflow、MXNet等不同每次更换算法都需要重新安装环境并且代码之间的迁移性差十分不方便。所以为了方便将不同的算法统一在一个代码库中不同的大厂都提出了自己的解决方案。如facebook的Detectron、商汤科技的mmdetection、SimpleDet等。其中Detectron最早所以用户量最大其次是国内近段时间崛起的mmdetection下面介绍该目标检测工具箱。
1. **Introduction**
MMdetection的特点
* 模块化设计:将不同网络的部分进行切割,模块之间具有很高的复用性和独立性(十分便利,可以任意组合)
* 高效的内存使用
* SOTA
2. **Support Frameworks**
* 单阶段检测器
SSD、RetinaNet、FCOS、FSAF
* 两阶段检测器
Faster R-CNN、R-FCN、Mask R-CNN、Mask Scoring R-CNN、Grid R-CNN
* 多阶段检测器
Cascade R-CNN、Hybrid Task Cascade
* 通用模块和方法
soft-NMS、DCN、OHEN、Train from Scratch 、M2Det 、GN 、HRNet 、Libra R-CNN
3. **Architecture**
模型表征:划分为以下几个模块:
BackboneResNet等、NeckFPN、DenseHeadAnchorHead、RoIExtractor、RoIHeadBBoxHead/MaskHead
结构图如下:
![](./img/ch8/mmdetection.png)
4. **Notice**
* 1x代表12epoch的COCO训练2x类似推导
* 由于batch-size一般比较小1/2这样的量级所以大多数地方默认冻结BN层。可以使用GN代替。
5. **参考链接**
mmdetection代码高度模块化十分好用和便利更详细的文档直接参见官方文档
https://github.com/open-mmlab/mmdetection
注释版的mmdetection代码更新至v1.0.0https://github.com/ming71/mmdetection-annotated
使用方法简介:
安装记录可能过时以官方文档为准https://ming71.github.io/mmdetection-memo.html
使用方法截止更新日期如果过时以官方为准https://ming71.github.io/mmdetection-instruction.html
## TODO
- [ ] 目标检测基础知识mAP、IoU和NMS等

View File

@ -866,7 +866,6 @@ PQ的度量可以分解成SQ和RQSQ反映了语义分割的像素级IoU性能
<br>
<br>
<hr />
TODO
- [ ] 图像分割数据集标注工具