图像识别和图像分割项目相关步骤

1 数据采集

1)不同地点、不同环境、不同天气等复杂环境下采集;

2)主要分为:石子路、水泥路、草地、土泥路、模板路、其他;

3)使用LI-OV580 双目摄像头采集,像素30-200万可调


2 数据预处理

参考链接:http://blog.csdn.net/qq_31531635/article/details/71170861

图像处理1

1)数据放射性变换,平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和错切(Shear)。

2)特别注意的是缩放和裁剪。

3)为了获得初始化的224x224大小的图片,通过在每张图片在每次随机梯度下降SGB时进行一次裁减;

初始对原始图片进行裁剪时,原始图片的最小边不宜过小,这样的话,裁剪到224x224的时候,就相当于几乎覆盖了整个图片,这样对原始图片进行不同的随机裁剪得到的图片就基本上没差别,就失去了增加数据集的意义,但同时也不宜过大,这样的话,裁剪到的图片只含有目标的一小部分,也不是很好。   

针对上述裁剪的问题,提出的两种解决办法: 

(1) 固定最小遍的尺寸为256 ; 

(2) 随机从[256,512]的确定范围内进行抽样,这样原始图片尺寸不一,有利于训练,这个方法叫做尺度抖动scal jittering,有利于训练集增强。 训练时运用大量的裁剪图片有利于提升识别精确率。

4)为了更进一步的增加训练集,对每张图片进行水平翻转以及进行随机RGB色差调整。 


训练预处理

地面材质识别:

1)建立不同文件夹,分别对应不同类名,文件夹名为标签类,文件内容为预训练图片;

2)每个类别数量根据其本身的文理复杂度而选取,比如水泥路和木板路文理较为单一,图片可能就会少,3000-5000张,土泥路和草地文理复杂,情况多变,需要数据量会需要10000-30000张;


语义分割:

1)做标签,不同颜色代表不同类;

2)自发设计编写了属于自定义的一个标注工具;

3)标签内容包含:颜色,每种颜色对应的数字类别,每种数字类别对应的实际意义

4)根据实际需要,将标注可行性区域、障碍物、其他区域简单三类;

5)标注时间根据每张图片复杂度不同而不同,大概每张图片20s-60s;

6)相关成果已发表CCCV2017;


4 训练

1)训练和测试模型:VGG,Segnet

VGG:

http://blog.csdn.net/qq_31531635/article/details/71170861  深度学习之解读VGGNet,原理及为什么

http://www.cnblogs.com/fighting-lady/p/7096547.html  Tensorflow 代码实现

Segnet:

http://blog.csdn.net/fate_fjh/article/details/53467948  自动驾驶

(4)VGG的网络结构:

  • 5段卷积层+3段全连接层
  • 两个3*3的卷积层串联相当于1个5*5的卷积层,即一个像素会跟周围5*5的像素产生关联,感受野大小为5*5
  • 三个3*3的卷积层串联的效果相当于1个7*7的卷积层。
  • 3个串联的3*3的卷积层,比1个7*7的卷积层参数量少,只有后者的(3*3*3)/(7*7)=55%
  • 3个3*3的卷积层比1个7*7的卷积层有更多的非线性变换,前者可以使用三次ReLU激活函数,后者只有一次

(5)VGG训练技巧:

  • 先训练级别A的简单网络,再复用A网络的权重来初始化后面的几个复杂模型,训练收敛的速度更快。
  • 训练时采用multi-scale方法做数据增强,将原始图像缩放到不同尺寸S,然后再随机裁切224*224的图片,这样能增加很多数据量,防止过拟合。
  • 预测时,VGG采用Multi-scale的方法,输入图像为多尺度Q,且对于每个Q在最后一个卷积层使用滑窗的方式进行分类预测,将不同窗口的分类结果平均,再将不同尺寸Q的结果平均得到最后结果。

(6)VGG结论:

  • LRN层作用不大。
  • 越深的网络效果越好
  • 1*1的卷积也是很有效的,但是没有3*3的卷积好,大一些的卷积核可以学习更大的空间特征。

5 测试


2)数据来源,区分于训练数据

3)测试图片的尺寸不一定要与训练图片的尺寸相同,且不需要裁剪。 
测试的时候,首先将全连接层转换到卷积层,第一个全连接层转换到一个7x7的卷积层,后面两个转换到1x1的卷积层,这不仅让全连接网应用到整个未裁剪的整个原始图像上,而且得到一个类别的得分图,其通道数等于类别数,还有一个决定与输入图片尺寸的可变空间分辨率。为了获得固定尺寸的图片的得分图,运用原始图片的softmax的后验概率以及其水平翻转的平均来获得。

若设置测试图片的尺寸不一,利用尺度抖动scale jittering的方法取三个值,然后取结果的平均值。

可以看到这个效果比之前两个效果更进一步,说明多尺度裁剪也起了一定好的作用。 



猜你喜欢

转载自blog.csdn.net/scutjy2015/article/details/77386801