图像识别实验过程(一)背景和介绍

在训练图像识别的深度神经网络时,使用大量更多的训练数据,可能会使网络得到更好的性能,例如提高网络的分类准确率,防止过拟合等。获取更多的训练样本其实是很好的想法。但是,这个方法的代价很大,在实践中常常是很难达到的。不过还有一种方法能够获得类似的效果,那就是人为扩展训练数据(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格式来进行训练。

时间: 2024-12-16 00:31:20

图像识别实验过程(一)背景和介绍的相关文章

图像识别实验过程(三) 将数据集做成VOC2007格式用于Faster-RCNN训练

1.voc2007数据集下载 wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar t

图像识别实验过程(二)图像数据集的扩展

图像重命名 虽然图片名称对训练没有影响,但是图片数量很多时好的命名可以让数据不那么混乱.按照VOC2007格式,如"002001.jpg",对数据集图片进行重名.

VS项目属性配置实验过程

一.实验背景 cocos2d-x已经发展的相对完善了,从项目的创建.编译.运行到最后的打包都有相应的便捷工具,开发者只需要关注自己的游戏逻辑代码即可,这一点很赞,可是傻瓜式的编程,让我至今还只停留在使用vs建个空项目做个小demo的阶段,我根本不知道cocos2d-x项目究竟是如何组织的,那些项目与项目之间的关系,那些库文件的引用,那些属性的配置,那些路径设置,那些宏定义究竟是在哪里,为什么会出现两个窗口,一大片属性究竟是什么意思,,所以很有必要研究一下.现在把实验过程同大家交流一下,有什么说的

LVS_NAT实验过程...

LVS-NAT 是通过改变数据包中的目的IP地址,来实现调度的. 拓扑图: 说明: Director是调度服务器.Real N为真实服务器(这里用四台).实验用vmware虚拟机和小凡模拟器来完成,为了保证物理上确实是隔离开的,需要不同的vmnet网卡相连. lClient与路由器之间用vmnet1连接; l路由器与Director之间用vmnet2连接; lDirector的eth1与Real N用vmnet5 所有服务器均为:Centos6.5_X86_64 内核版本为2.6.32-431.

数据库数据恢复实验过程

进入数据库操作,难免会出现一些误操作.这时就需要我们对数据进行恢复.一下介绍一下如何将表中的内容删除后进行恢复的过程. 首先我们模拟一下实验环境: 将数据库安装好之后进入到/etc/my.cnf中 查看是否启用了日志功能(数据恢复是根据日志来进行恢复的.) 在此环境已经设置好了. 之后进入数据库中新建一个库命名未vianet_bss 进入库中并新建一个表命名为stb_active create table stb_active (SERVER_ID char(5),SERVER_CODE cha

Android启动过程中背景图片显示

转自:http://blog.csdn.net/zhangzhikaixinya/article/details/17001321 大部分Android App启动过程中,都会设置一个背景图片,直到App加载成功,图片消失.因此,这也是做Android App的基本技能之一.这个过程实现起来并不难. 总共需要以下内容:2个Activity,一张背景图,2个xml配置文件,String.xml,AndroidManifest写入配置信息. 1 准备一张背景图图片,命名为load,自己选择图片格式.

C程序编译过程及优化选项介绍

当我们编译了一个c文件,最终目的是让它能够成为可以执行的代码,就是能够受控或者控制硬件的东西.控制硬件的东西,一般都是二进制代码.那么,问题来了,从c到控制硬件的二进制代码,中间经过了一个什么流程呢?它的过程是这样的: 一,编译预处理 读取c源文件,对其中的伪指令(以#开头)和特殊符号进行处理: 伪指令包括:宏定义: 比如:#defile PI (3.1415) 条件编译:#if (conditions) {do something} #else {do another thing} #endi

静态路由的配置实验过程

在进行静态路由配置的实验之前,我们先要了解什么是静态路由,并且知道静态路由是如何工作的!静态路由:一种路由的方式,路由项(routing entry)由手动配置,而非动态决定.与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态.一般来说,静态路由是由网络管理员逐项加入路由表.路由工作在网络层,路由根据"路由表"转发数据.路由选择.路由转发. 静态路由的配置实验 实验流程一.配置路由器和PC这张图表明的是我们今天要做的静态路由实验.三台PC连接四台路由器,如图

mdadm命令详解及实验过程

一.概念 mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown 二.特点 mdadm能够诊断.监控和收集详细的阵列信息          mdadm是一个单独集成化的程序而不是一些分散程序的集合,因此对不同RAID管理命令有共通的语法          mdadm能够执行几乎所有的功能而不需要配置文件(也没有默认的配置文件) 三.作用 (引用) 在linux系统中目前以MD(Multiple Device