一 CVPR 2018 卫星图像道路检测冠军(IoU 0.6342)
A. 参考资料
B. Take home message
1. 问题特点
- 道路细长狭窄
- 背景复杂,道路本身也错综复杂
- 道路跨度大,图像本身大:1024*1024
- 连通性,有些道路被树木遮挡
需要网络保留更多的纹理结构以及较大的感受野
2. 预处理
- 6226训练,1243验证,1101测试
- Image: uint8 [0, 255]→float [-1.0, 1.0]
- Mask: uint8 (0/255) → float (0/1)
- Data Augmentation: color transfer(HSV空间处理), spatial transfer。提升了1个点
Note:
i) 将原图resize到512或者256会丢失分辨率信息,而道路像素点本身就比较少,因此这样resize会严重损失道路信息,实验证明性能也不好。
ii) H和S的变换对应不同天气下拍出来的图像,V对应阳光好/坏的情况。
3. 网络
- Unet作为baseline(0.6294)发现预测的结果准确性不高,容易把河流也误认为道路。→使用预训练的模型替代编码部分
- Dice+BinaryCE
BinaryCE 在预测结果接近0和1的时候会出现loss截断的情况,导致没有梯度反传。
- 优化器采用Adam,RMSProp会过拟合,收敛也没Adam快。
- LinkUnet, (0.630)预测结果竟然没有比Unet有明显提升,观看结果发现有连通性问题,通过计算其感受野发现只有700多(远低于原图的1024)
LinkNet的创新点是将每个编码器与解码器相连接,编码器的输入链接到对应的解码器的输出上,然后求和。(Our methods directly use the output of their encoder and feed it into the decoder to perform segmentation.)此外用卷积下采样,没有用池化。而Unet采用的是Concate,pooling下采样。
- 提出D-LinkNet,通过引入扩张卷积金字塔模块,提升感受野
-
没采用类似CRF的后处理
-
kaggle获胜者的solution
4. 重要的点
- test time augmentation (ver-flip, hor-flip, diag-flip),然后对输出的结果平均。+3%
- transfer learning
- 0.25Unet + 0.25 LinkNet34 + 0.5*D-LinkNet34 +2%
- 用前人验证过的方法,自己造轮子很容易掉坑里。