2020 CCF BDCI 遥感影像地块分割冠军竞赛方案语义分割trick整( 二 )


值得注意的是 , 上图中预测效果对比可以发现 , 多分类模型只能识别笔直的道路 , 部分弯曲的道路难以识别 , 而二分类模型可以很好地识别弯曲的道路 , 并且连通性也更好 , 这也是我们复赛的主要思路(很长一段时间内都比第二名高3-5个点) 。
模型训练

2020 CCF BDCI 遥感影像地块分割冠军竞赛方案语义分割trick整

文章插图
【2020 CCF BDCI 遥感影像地块分割冠军竞赛方案语义分割trick整】模型训练
有了这些数据 , 我们训练了一系列以HRNet和为的模型 。并且我们探索了SE、CBAM、scSE等  , 最后是采用了提升效果最多的SE。由于比赛经验生疏 , 当时训了些许大模型 , 然而融合后提升微薄 , 实际上模型差异越大后续融合结果一般更好 。实际环境下 , 若考虑计算开销 , 也许训练UNet等诸多小模型融合 , 效果更好 , 速度更快 。
模型预测
2020 CCF BDCI 遥感影像地块分割冠军竞赛方案语义分割trick整

文章插图
模型预测
在测试时 , 我们进行了多种数据增强 , 包括尺度放缩、水平/垂直翻转、90度倍数旋转(实际上 , 原图+水平翻转+垂直翻转+180度旋转足矣 , 更多的TTA提升效果很小) 。得到这些预测后 , 我们不是进行分数求和的软投票 , 而是逐像素少数服从多数的硬投票 , 并且用二分类预测逐优先级覆盖多分类预测 , 人为地规定了道路>水体>建筑>其他的优先级 。这里我们利用多进程+numpy矩阵运算 , 大大减小了投票花费的时间 。
连通性后处理
2020 CCF BDCI 遥感影像地块分割冠军竞赛方案语义分割trick整

文章插图
连通性后处理
最后我们使用形态学处理进一步提高了连通性 , 首先是用闭运算连接断裂处以及中值滤波去除毛刺;其次用面积和长度筛选阈值孤立像素团 , 用左边像素类别进行替换去除;第三是设计了骨架连通性增强方案 , 提取出某类的骨架 , 并适当地膨胀腐蚀 , 保证连通的同时不会过度超出原始预测区域;最后是设计了一个动态优先级算法 , 动态地进行不同类别的覆盖(主要考虑水体与道路类覆盖优先级) 。
结果对比
2020 CCF BDCI 遥感影像地块分割冠军竞赛方案语义分割trick整

文章插图
原图(左) , 单模型预测(中) , 多模型预测(右)
最终的结果输出如上图右所示 , 可以看到最终的预测图更加平滑 , 类别噪点大大减少 , 并且保证了道路和水体较好的连通性 。这里融合的结果更多考虑了连通性 , 因而可能存在“误判”的结果 , 实际环境下可考虑准确性和连通性的权衡 , 调整阈值和权值 。
总结
方案最大的特点是将连通性问题转换为二分类问题解决 , 结果出奇地好 , 传统图像形态学后处理仍然可靠 。无须针对性设计loss和 , 分类器可用多种小模型 , 实际环境下并行处理也更快 。来了新的类别 , 大可以训练二分类器简单投票 , 数十个迭代即可得到较强的分类器 。
整场比赛打下来挺累的 , 日常翘课熬夜debug , 所幸最后结果尚可 。答辩时也认识了不少比赛老手 , 感慨自己经验尚浅 , 无论是在学术上还是工程上 , 都有很大的进步空间 , 继续努力吧~