通过生成随机域数据来应对真实数据的变化
论文:http://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w14/Tremblay_Training_Deep_Networks_CVPR_2018_paper.pdf
简介
这篇文章通过生成随机域的数据 ,如随机光照,随机位置,随机材质等变化,来训练目标检测网络,迫使网络去更多地注意目标的特征信息,规避噪声信息,从而提高网络的稳定性。文章仅仅通过数据的变化使得车辆检测的准确率提高2%,证明了仅仅通过生成数据也可以训练出好的网络。
在监督学习中,我们通常需要收集和标注大量的训练数据,这个过程往往非常困难,有些数据非常难以收集,而数据标注也很难完全准确,这使得数据标注的时间成本变得很高。而通过数据生成的方式可以快速地获取准确的标注数据,目前常用的数据生成方式是使用图形学模拟器来模拟真实场景来生成数据。但是要通过模拟器来模拟真实场景的成本也很高,而且再好的模拟器也不能完全模拟真实场景。而本文的解决思路是不去模拟真实数据,而是通过生成大量随机域的数据来训练网络,从而使得网络适应不同的域,来覆盖真实域的图片。文章将随机域数据生成的思想应用到目标检测上(以车辆检测为例子)。
随机域数据生成(Domain Randomization,DR)
文章通过以下方法来生成随机域数据
1.随机在36种车辆模型中进行选择
2.随机生成一些干扰物体
3.随机选择材质贴图和背景图片
4.随机选择摄像机位置和角度
5.随机灯光位置和数量
文章用UE4来生成以上操作,其生成1200 × 400的图片和标注的速率为30HZ。下图展示了DR生成的数据和高逼真的生成数据 VKITTI dataset 的对比。可以看到质量差异还是很大的。
文章使用VKITTI dataset 和 DR数据分别来训练了Faster R-CNN,R-FCN,和SSD,得到的准确率如下所示:
Precision-recall曲线如下所示:
在R-FCN和SSD上,DR数据的训练结果准确率都高于VKITTI dataset 训练出来的结果,从Precision-recall曲线上可以看到在大多数recall值上,DR的准确率结果优于VKITTI dataset的结果。
DR fine-tuned
文章还对真实数据集 KITTI 上训练的 Faster RCNN 模型进行fine tune,分别使用DR和VKITTI数据来进行fine tune,得到的结果如下所示
可以看到在图片数量为6000时,DR比用真实数据进行fine tune的准确率结果高了2%,比用VKITT进行fine tune的准确率高0.5%
总结
本文通过目标检测网络的训练来有力的证明了DR生成的数据能够有效的cover真实场景的图片,这给我们在数据生成上提供了一个很好的思路,文中的DR技巧可以应用到各种图像问题场景,可以解决数据收集和标注困难的问题,同时也可以用DR技巧来优化现有的一些模型,提高模型的表现。