图像识别和图像分割项目相关步骤
来源:互联网 发布:linux删除文件夹 编辑:程序博客网 时间:2024/05/23 23:07
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的方法取三个值,然后取结果的平均值。
可以看到这个效果比之前两个效果更进一步,说明多尺度裁剪也起了一定好的作用。
- 图像识别和图像分割项目相关步骤
- 图像识别相关领域
- 图像识别相关
- 基于DL的图像快速分割和识别
- 图像识别和图像搜索
- 图像识别相关参考资源
- python libsvm 图像分割 字符识别
- ocr识别中的图像分割方法小结
- 骰子点数识别之图像分割
- 骰子点数识别之图像分割
- 图像语义分割技术-深度卷积网络图像识别
- 图像语义分割技术-深度卷积网络图像识别
- 图像识别中目标分割、目标识别、目标检测和目标跟踪方法
- 图像分割和轮廓提取
- 图像分割 和 边缘检测
- MATLAB-图像复原和分割
- watershed算法和图像分割
- Android OpenCV图像识别和图像追踪
- Very Deep Convolutional Networks for Large-Scale Image Recognition—VGG论文翻译—中文版
- pandas笔记
- poj 2672
- zookeeper实时感知到主节点服务器的上下线
- 【并查集】HDU_3038_How Many Answers Are Wrong
- 图像识别和图像分割项目相关步骤
- 視頻文件的差分和和並
- 设备驱动之Hello World模块
- Service服务的开启与绑定
- javascript数据结构系列(二)-线性表(2)
- canvas-toDataURL()将图片转为dataURL(base64)
- [编程题] 买帽子
- 机器学习笔记——逻辑回归
- java.io.EOFException