digits —segmentation demo
来源:互联网 发布:淘宝直通车权重怎么看 编辑:程序博客网 时间:2024/06/03 23:42
digits 自带一个分割项目,这里记录一下过程
项目的目的是为了将空心的三角形变成实心的,也就是一个边缘检测的过程,但是又稍微不一样。这里是将内部和外部区分的一个过程。
数据库的建立:
分割的数据样本的要求是一个特征数据库、一个标签数据库,二者的图像尺寸一致,输入图像可以是任何形式的,而输出图像一般都是二值化的。这里建立的数据库是由脚本自动生成的。
由于是在windows下运行,会有很多不便,所有会与官方文档有所出入。
首先在C:\caffe-master\DIGITS-master\examples\binary-segmentation下执行脚本:
python C:\caffe-master\DIGITS-master\examples\binary-segmentation\create_images.py out
完成后会出现一个文件夹命名为out里面有输入输出两个文件夹每个文件夹里面有10000个32*32的图像文件。根目录下还有一个测试用的grid.png文件,用于最后的测试
开启digits的datasets选择image下的processing选项。
点击create就好了。
建立模型
在home界面选择model新建一个process的模型将Data Transformations下的Subtract Mean设置为pixel,将training epochs设置为200。
将learning rate设置成1e-7
再将这里的代码复制过去放到 Custom network下的代码框
由于本机使用的windows下的caffe是旧版本,不支持L1Loss 层这个类型,所以换成EuclideanLoss ,并将学习率调整到0.1
name: "SRCNN"layer { name: "data" type: "Data" top: "data" include { phase: TRAIN } data_param { batch_size: 4 backend: LMDB }}layer { name: "label" type: "Data" top: "label" include { phase: TRAIN } data_param { batch_size: 4 backend: LMDB }}layer { name: "data" type: "Data" top: "data" include { phase: TEST } data_param { batch_size: 4 backend: LMDB }}layer { name: "label" type: "Data" top: "label" include { phase: TEST } data_param { batch_size: 4 backend: LMDB }}layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" param { lr_mult: 1.0 } param { lr_mult: 0.10000000149 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "gaussian" std: 0.0010000000475 } bias_filler { type: "constant" value: 0.0 } }}layer { name: "relu1" type: "ReLU" bottom: "conv1" top: "conv1"}layer { name: "conv2" type: "Convolution" bottom: "conv1" top: "conv2" param { lr_mult: 1.0 } param { lr_mult: 0.10000000149 } convolution_param { num_output: 1024 pad: 0 kernel_size: 16 stride: 16 weight_filler { type: "gaussian" std: 0.0010000000475 } bias_filler { type: "constant" value: 0.0 } }}layer { name: "relu2" type: "ReLU" bottom: "conv2" top: "conv2"}layer { name: "upsample" type: "Deconvolution" bottom: "conv2" top: "upsample" param { lr_mult: 1.0 } convolution_param { num_output: 1 pad: 0 kernel_size: 16 stride: 16 bias_filler { type: "constant" value: 128.0 } }}layer { name: "lossL1" type: "EuclideanLoss " bottom: "upsample" bottom: "label" top: "lossL1" loss_weight: 0.1 exclude { stage: "deploy" }}
create就可以运行了。
这里还没跑完,不过结果已经非常不错了。
最后结果大概是这样:
0 0
- digits —segmentation demo
- Query Segmentation Demo Release!
- Segmentation
- Segmentation
- Segmentation
- LeetCode258——Add Digits
- poj3373——Changing Digits
- SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation 视频语义分割demo跑通
- fzu 2105——Digits Count
- LeetCode题解——Add Digits
- LeetCode[258]——Add Digits
- 渣渣写LEETCODE——258. Add Digits
- LeetCode ——258.Add Digits
- leetcode——Remove K Digits
- Leetcode——258. Add Digits
- Leetcode402——Remove K Digits
- caffe入门大杀器——digits
- Light—oj 1045 - Digits of Factorial
- 1027. 打印沙漏(20)
- 第4章 Lock的使用
- c# 连接本地的sdf数据库文件
- js原生 获取url参数
- 搭建高性能的PHP Redis开发环境
- digits —segmentation demo
- 学习笔记:Java_I/O(part_one)
- 563. Binary Tree Tilt **
- 去除已排序数列中的重复数--c++实现
- 高仿Mobike个人中心
- Android Intent传递对象 Serializable & Parcelable
- Glide使用详解
- Ubuntu下配置GTK+开发环境
- H2O学习笔记(二)——H2O Flow