强调语义分割数据增强的技巧

作者:mshmoon https://zhuanlan.zhihu.com/p/66289073 本文已授权,未经允许,不得二次转载

从研究语义分割到现在已经快有2年的时间,期间经历了不少坎坷,但最终也使我对语义分割有了全面,细致,深入的认识。在2015年-2018年,每年的CVPR都有大把的语义分割论文出现,但是论文中关于如何训练好模型,却说的比较模糊,那我就把我的这快2年的经验写出来,供大家参考。

首先,我使用PyTorch,在Pascal voc 与 Cityscapes数据集上实验,也向这2个榜单递交了好几十次测评结果。

在诸多会议论文中,backbone大多会采用resnet101,甚至resnet152,这种深层网络会取得很好的实验结果,然而这2种网络实际上在工业界不太容易使用,主要原因就是参数太多,计算时间太长,对于工业界来讲,动辄几百万数据数据量的任务,处理完一批数据需要一个星期甚至半个月,估计很多公司都会疯掉,那么如何用很小的网络跑出更好的结果才是王道。实际上对于resnet18,resnet34这种级别的网络,能力是很强的,就看你去怎么拓展这些参数的能力。因此,好的数据扩充技巧极其重要,尤其对于小规模数据集。

语义分割任务和图像分割是很像的,图像分类是粗粒度分类,语义分割是稠密分类—针对图像中每一个像素分类。那么在对语义分割任务做数据增强时完全可以很容易的使用图像分类的数据扩充技巧。

数据随机缩放(极其重要)

无论对于什么样的数据集,规模多大的数据集,在语义分割任务中,数据随机缩放给模型带来的收益永远是最大的。我们在训练网络时,如果将padding给的过大,而卷积核大小不变你会发现我们的卷积核能力被弱化,过大的padding增加了数据集的单一性,假设你对一张大小为16x16的图像增加了64x64的padding,甚至更大,大到我们本来的图像在在增加padding之后显的很渺小,那这新的图像对于卷积核来看,基本上就是一张呼呼的图像,如果整个数据集都是这种图像,那对于卷积核来讲,太单一了,当然也没有人会这样做。数据集的多样性,包括尺度多样性,光照多样性,目标姿态多样性。尺度多样性不仅在深度学习中使用,在传统计算机视觉中也是很重要的方法。

我敢保证,对于随机翻转,镜像翻转,色彩偏移等数据增强技术手段为模型所带来的收益加一起也不一定有尺度的随机缩放所带来的效果好。

随机尺度缩放为模型所带来的收益是最直接的,最可观的。同一个物体的不同尺度,对于卷积核来讲,那就是感受视野的不同,我们的卷积核不仅需要能在大的感受视野中获得好的分类能力,也得具备在小的感受视野中获得很好的分类能力。你看很多语义分割论文中出现下图像情况,是最典型的感受视野不足所造成的,在这种情况下,你采用随机反转,颜色偏移,甚至增多这种类型的数据图像,有用吗?没用的,要想改善这种情况的发生,要么增大卷积核,要么尺度随机缩放。增大卷积核直接增大计算量,为计算带来了负担,可有人又说了,可以采用膨胀卷积增大感受视野而不增加计算量,从理论上是这样的,可是实际上真的是这样吗?其实不然,我下文会讨论。

原文发布于微信公众号 - CVer(CVerNews)

原文发表时间:2019-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券