FCN网络的训练——以燃气表数字识别为例
来源:互联网 发布:windows命令行 编辑:程序博客网 时间:2024/04/26 06:06
FCN网络的训练——以燃气表数字识别为例
目录
用 [TOC]
来生成目录:
- FCN网络的训练以燃气表数字识别为例
- 目录
- 0写在前面
- 1训练
- 2 测试
- 3数据说明
- 4主要修改如下
- 5结果展示
- 原始版本
- 新的版本
- 网络结构可视化如图
(0)写在前面
知乎上面曾有个文章讲用全卷积神经网络(Fully Convolutional Networks for Semantic Segmentation)的方法识别燃气表数字识别的项目,训练阶段, 标定燃气表数字中心一块区域的像素点为该类数字的正样本,, 不同数字的中心区域的像素被标定为不同的类别, 十种数字加上背景一共十一类, 不同颜色表示不同类别的标注, 其他的都是背景类。最后对每个像素计算softmax loss。
测试阶段通过全卷积网络得到输入燃气表图像每一个像素的分类结果, 接着进行非极大值抑制, 形态学变换等后续操作, 可直接得到上图的识别结果”000470”, 整个系统十分高效。原作者开源了基于Caffe的实现,代码链接 GitHub - SHUCV/digit: digital meter numbers detection.
但git下来之后发现有些问题,比如训练后的loss在训练1000次之后基本不下降,最后loss还是很大,识别准确率差,最后识别的数字位置和原数字位置对不上等问题。因此对原网络进行好了修改,修改后的网络已上传Git。
修改后的github链接:
https://github.com/CrazyVertigo/digits2.0
下面讲一下训练步骤:
(1)训练
1. 下载预训练模型:下载预训练模型:fcn-32s-pascalcontext.caffemodel,然后解压至CAFFE_ROOT下的models/fcn-32s-pascalcontext.caffemodel;
下载地址:
2. 下载训练数据:下载训练数据:然后解压至CAFFE_ROOT下的data/;
下载地址:
3. 转换数据格式:执行 python examples/fdigit/convert.py;
注:要根据自己的CAFFE_ROOT目录修改代码中的CAFFE_ROOT路径
CAFFE_ROOT = ‘/home/hdu/caffe/’
4. 开始训练:执行python solve.py
默认在GPU上运行,loss在迭代训练期间很快下降。
(2) 测试
1. 下载模型参数文件: fcn-32s-pascalcontext.caffemodel ,然后放置到CAFFE_ROOT下的models/fcn-32s-pascalcontext.caffemodel;
下载地址:
2. 测试样本图片:matlab examples/fdigit/test_fcn11_full.m 需要成功安装Matlab and matcaffe
(3)数据说明
1.输入原图
2.对应ground truth:
上图对应的标注如下所示:
可以看出对不同的数值用不同的颜色进行标注,加上背景一共有11总颜色。
(4)主要修改如下:
1.prototxt修改:
layer { type: "Crop" name: "score" top: "score" bottom: "upscore_new" bottom: "data" crop_param{ axis:2 offset:19 }}
2.matlab的test_fcn11_full.m文件:
主要修复了原始版本中分割结果显示重叠的问题,详见github中test_fcn11_full.m文件。
(5)结果展示
1.输入test图片
原始版本
5.1 识别结果
识别的结果如下图所示:
5.2 loss曲线如下所示:
可以看到整个网络在10000次以后基本属于震荡阶段。
可以看到识别的结果整体偏右下方移动,可能是原先网络的crop层的参数有问题。
新的版本
5.3 识别结果
在识别多张图片的时候,显示重叠的Bug也得到修复,如下图所示。
5.4 修改之后的loss曲线
可以看到loss曲线图相比之前1.5左右降低很多,稳定在0.4左右,识别准确率也有所增加。
网络结构可视化如图
网络结构可视化如图
知乎地址:
https://zhuanlan.zhihu.com/p/21930884?refer=intelligentunit
原github链接:
https://github.com/SHUCV/digit
- FCN网络的训练——以燃气表数字识别为例
- FCN网络的训练——以燃气表数字识别为例
- FCN网络的训练——以SIFT-Flow 数据集为例
- caffe FCN网络的训练——以SIFT-Flow 数据集为例
- FCN网络的训练——以SIFT-Flow 数据集为例
- FCN网络的训练——以SIFT-Flow 数据集为例
- FCN网络训练训练——从零开始
- 图像识别谈论,不仅限于OCR,基于水表识别,燃气表识别为例
- 基于caffe的fcn网络的训练
- FCN语义分割——训练自己的数据
- FCN网络训练 终极版
- FCN 全卷积网络训练
- 使用caffe-future完成FCN网络的训练
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法 .
- 关于手机网站自动登录的功能
- 求一个android打开各种类型文件的demo
- 经典进程同步问题:读者-写者问题
- Linux 基本用户和组命令
- 如何禁止在ACCESS中插入关键字重复的记录
- FCN网络的训练——以燃气表数字识别为例
- 活动对象与RTimer(or CTimer)?
- 如何讲视频读入缓存,又如何从缓存中读取?
- 仿XP计算器界面练习
- js实现下拉菜单动画效果
- 想请问一下window mobile支持WH_CBT吗?
- [leetcode]167. Two Sum II - Input array is sorted
- 想做一个可以链接其他网页的app
- 关于缓存