首页 > 代码库 > 图像识别实验过程(一)背景和介绍
图像识别实验过程(一)背景和介绍
在训练图像识别的深度神经网络时,使用大量更多的训练数据,可能会使网络得到更好的性能,例如提高网络的分类准确率,防止过拟合等。获取更多的训练样本其实是很好的想法。但是,这个方法的代价很大,在实践中常常是很难达到的。不过还有一种方法能够获得类似的效果,那就是人为扩展训练数据(Artificially expanding the training data)。
对于图像数据我们可以通过旋转,转换,扭曲图像等方式来扩展训练数据,人为扩展训练数据的原则是对数据的操作最好能反映真实世界的变化。例如在2003年Patrice Simard等人所著的一篇论文中[1]他们把MNIST手写数字数据集通过旋转,转换和扭曲进行扩展。通过在这个扩展后的数据集上的训练,他们把MNIST手写数字识别的准确率提升到了98.9%。然后还在“弹性扭曲”的数据集上进行了实验,这是一种特殊的为了模仿手部肌肉的随机抖动的图像扭曲方法。通过使用弹性扭曲扩展的数据,他们最终达到了99.3%的分类准确率。
本文会对图像数据集进行不同形式的拓展,然后用拓展后的数据集在小规模深度神经网络上训练,用得到的分类准确率和未拓展数据集训练的小规模深度神经网络得到的分类准确率做对比。如果分类准确率有明显的提升,说明我们对数据集所做的拓展操作是良性的,能够“反映真实世界的变化”。反之,则说明不能用此操作对数据集进行拓展。
当然,我们选择的图像操作也是有一定的现实意义的。由于原有数据集中的图像是渔船的监控画面图像,通过对大部分图像的观察我们考虑下面几种图像操作的方式作为人为扩展训练数据集的方法。当然这些方法只是我们最初的选择,而这些选择只是根据我对数据集的初级理解,方法的正确与否我们还要经过试验来进行判断。
1.镜像翻转:可以很清楚的看到图像上下翻转肯定是行不通的,所以我们选择图像的左右翻转作为第一种扩展数据集的方法。
2.图像旋转:太小角度的旋转可能不会对图像造成变化,角度太大又可能改变图片的性质(脱离数据集),因此我选取了四个“合适”的角度来对图像进行旋转操作,这四个角度分别是,顺时针旋转15°,顺时针旋转30°,逆时针旋转15°和逆时针旋转30°。
Faster R-CNN提供训练数据集格式有PASCAL VOC和Microsoft COCO。我选择将自己的数据集制作成标准的PASCAL VOC 2007格式来进行训练。
图像识别实验过程(一)背景和介绍