参考博客:

http://blog.csdn.net/jacke121/article/details/78160398

以视网膜血管分割的数据集为例:

训练样本:

训练标签:

标签图的制作依据voc数据集中的样例,将被检测的目标改为voc中的一类。

将用ps软件制作的黑底白色标签转化为,目标为(128,0,0)的单通道彩色图片,存储格式为.png。也就是将待分割的目标当做飞机。

转化png的matlab的代码如下:

  1. imgname='15.jpg';
  2. I=imread(imgname);
  3. I_gray=rgb2gray(I);
  4. I_bw=uint8(im2bw(I_gray))*128;
  5. I1=uint8(zeros(size(I,1),size(I,2),3));
  6. I1(:,:,1)=I_bw;
  7. [x,map]=rgb2ind(I1,256);
  8. imgSaveName=imgname(1:length(imgname)-4);
  9. imwrite(x,map,strcat(imgSaveName,'.png'));

制作好训练集后,修改一些文件中的路径。

我的工程路径:

I:\caffe171101\caffe-master\fcn-master\retina200-fcn32s

I:\caffe171101\caffe-master\fcn-master\data\retina200_200

voc_layers.py修改:

可以删掉底下的class SBDDSegDataLayer(caffe.Layer)   训练的时候用不到。

修改这三个地方的路径即可。

train.prototxt修改:

这个mean,就是计算训练样本RGB三通道的平均值。

将后面的num_output:21  全部改为num_output:2      只有背景和待分割的目标两类。

val.prototxt的修改同理。

deploy_voc_32s.prototxt  不变

solver.prototxt  不需要改动

因为是第一次训练,采用fcn32s-heavy-pascal.caffemodel作为预训练模型。

solve.py

  1. import caffe
  2. import surgery, score
  3.  
  4. import numpy as np
  5. import os
  6. import sys
  7.  
  8. try:
  9. import setproctitle
  10. setproctitle.setproctitle(os.path.basename(os.getcwd()))
  11. except:
  12. pass
  13.  
  14. weights = 'fcn32s-heavy-pascal.caffemodel'
  15. deploy_proto = 'deploy_voc_32s.prototxt'
  16.  
  17. # init
  18. caffe.set_device(int(0))
  19. caffe.set_mode_gpu()
  20.  
  21. solver = caffe.SGDSolver('solver.prototxt')
  22. #solver.net.copy_from(weights)
  23. vgg_net=caffe.Net(deploy_proto,weights,caffe.TRAIN)
  24. surgery.transplant(solver.net,vgg_net)
  25. del vgg_net
  26.  
  27. # surgeries
  28. interp_layers = [k for k in solver.net.params.keys() if 'up' in k]
  29. surgery.interp(solver.net, interp_layers)
  30.  
  31. # scoring
  32. val = np.loadtxt('../data/retina200_200/val.txt', dtype=str)
  33.  
  34. for _ in range(50):
  35. solver.step(2000)
  36. score.seg_tests(solver, False, val, layer='score')

必须采用transplant的方式训练。因为这个模型的网络中的图片尺寸和自己的数据集中的图片尺寸不一样。

训练完成之后,进行预测时,这个deploy.prototxt文件需要改动一下。

将其中num_output:21的地方全部改为num_output:21

实验结果:

  

fcn+caffe+制作自己的数据集的更多相关文章

  1. fcn+caffe+siftflow实验记录

    环境搭建: vs2013,编译caffe工程,cuda8.0,cudnn5.1,python2.7. 还需要安装python的一些包.Numpy+mkl  scipy  matplotlib  sci ...

  2. 自动化工具制作PASCAL VOC 数据集

    自动化工具制作PASCAL VOC 数据集   1. VOC的格式 VOC主要有三个重要的文件夹:Annotations.ImageSets和JPEGImages JPEGImages 文件夹 该文件 ...

  3. matlab遍历文件制作自己的数据集 .mat文件

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9115788.html 看到深度学习里面的教学动不动就是拿MNIST数据集,或者是IMGPACK ...

  4. 仿照CIFAR-10数据集格式,制作自己的数据集

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50801226 前一篇博客:C/C++ ...

  5. SSD-tensorflow-2 制作自己的数据集

    VOC2007数据集格式: VOC2007详细介绍在这里,提供给大家有兴趣作了解.而制作自己的数据集只需用到前三个文件夹,所以请事先建好这三个文件夹放入同一文件夹内,同时ImageSets文件夹内包含 ...

  6. Windows10+YOLOv3实现检测自己的数据集(1)——制作自己的数据集

    本文将从以下三个方面介绍如何制作自己的数据集 数据标注 数据扩增 将数据转化为COCO的json格式 参考资料 一.数据标注 在深度学习的目标检测任务中,首先要使用训练集进行模型训练.训练的数据集好坏 ...

  7. fcn+caffe+voc2012实验记录

    参考博客: http://blog.csdn.net/haoji007/article/details/77148374 http://blog.csdn.net/jacke121/article/d ...

  8. caffe训练自己的数据集

    默认caffe已经编译好了,并且编译好了pycaffe 1 数据准备 首先准备训练和测试数据集,这里准备两类数据,分别放在文件夹0和文件夹1中(之所以使用0和1命名数据类别,是因为方便标注数据类别,直 ...

  9. Mask-RCNN:教你如何制作自己的数据集进行像素级的目标检测

    概述 Mask-RCNN,是一个处于像素级别的目标检测手段.目标检测的发展主要历程大概是:RCNN,Fast-RCNN,Fster-RCNN,Darknet,YOLO,YOLOv2,YOLO3(参考目 ...

随机推荐

  1. 关于springMVC的日志管理

    主要是基于在spring aop特性. 1. 创建一个系统日志的操作类,类里面提供一个方法,可以向数据库或者表中写入:访问用户名,访问IP,操作时间,访问包名,具体函数名. /** * @Name S ...

  2. [ipsec][strongswan] 用strongswan pki工具生成自签名证书

    如题.我在实验环境里,分别要为两个endpoint(T9和T129)生成证书. 证书是如何生成的呢? 证书是由根证书机构签发的.申请证书的人将request提交给根证书机构,然后根证书机构根据requ ...

  3. 树莓派3 之 pi3Robot 控制系统配置

    需求 个人正在用Python写一个控制系统,技术选型是python3 + Flask + Mysql + Bootstrap.需要将这套系统直接部署到树莓派中. 代码地址:https://github ...

  4. DELPHI中完成端口(IOCP)的简单分析(3)

    DELPHI中完成端口(IOCP)的简单分析(3)   fxh7622关注4人评论7366人阅读2007-01-17 11:18:24   最近太忙,所以没有机会来写IOCP的后续文章.今天好不容易有 ...

  5. LeetCode 448 Find All Numbers Disappeared in an Array 解题报告

    题目要求 Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice a ...

  6. Oracle启动关闭

    启动: [oracle@oracleSigle ~]$ sqlplus / as sysdba   SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov ...

  7. python框架之Django(4)-视图&路由

    视图 负责接收请求和返回响应 FBV和CBV FBV FBV(function base views) 就是在视图里使用函数处理请求. from django.conf.urls import url ...

  8. GitHub学习总结

    一.安装git:下载Git,官网地址:https://git-scm.com/,进入官网首页,然后点击download,下载对应系统的git就行. 二.我用的是win系统,打开git界面是这样的: 在 ...

  9. HttpWebRequest请求http1.1的chunked的解析问题记录

    问题:我的请求获取不到URL对应的内容(换个浏览器可以). 第一步对比wirshark截包看HTTP请求头,发现我这缺失一部分请求头. 对着官方文档添加即可.https://msdn.microsof ...

  10. vim格式化markdown表格

    title: vim格式化markdown表格 date: 2017-11-23 15:23:25 tags: vim categories: 开发工具 安装插件 https://github.com ...