前提:ubuntu+tensorflow-gpu+python3.6

各种环境提前配好

1.下载工程源码

网址:https://github.com/tensorflow/models

下载时会遇到速度过慢或中间因为网络错误停止,可以换移动网络或者用迅雷下载。

2.测试环境

先添加slim路径,每次打开terminal都要加载路径

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

运行测试1

# From tensorflow/models/research/
python deeplab/model_test.py

测试2

# From tensorflow/models/research/deeplab
sh local_test.sh

3.处理数据标签

处理标签为单通道,运行下面代码即可

import numpy as np
from PIL import Image
from keras.preprocessing.image import load_img, img_to_array
import os classes = ['background', 'aeroplane', 'bicycle', 'bird', 'boat',
'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'dining table',
'dog', 'horse', 'motorbike', 'person', 'potted plant',
'sheep', 'sofa', 'train', 'tv/monitor'] colormap = [[, , ], [, , ], [, , ], [, , ], [, , ],
[, , ], [, , ], [, , ], [, , ], [, , ],
[, , ], [, , ], [, , ], [, , ],
[, , ], [, , ], [, , ], [, , ],
[, , ], [, , ], [, , ]] # 利用下面的代码,将标注的图片转换为单通道的label图像
cm2lbl = np.zeros(**)
for i, cm in enumerate(colormap):
cm2lbl[(cm[]*+cm[])*+cm[]] = i def image2label(im):
# 输入为标记图像的矩阵,输出为单通道映射的label图像
data = im.astype('int32')
idx = (data[:, :, ]*+data[:, :, ])*+data[:, :, ]
return np.array(cm2lbl[idx]) def change_label(label_url, label_name): label_img = load_img(label_url)
label_img = img_to_array(label_img)
label_img = image2label(label_img) # 将图片映射为单通道数据
print(np.max(label_img)) label_single = Image.fromarray(label_img)
label_single = label_single.convert('L') save_path = './datasets/VOC2012/Label'
save_path = os.path.join(save_path, label_name) # 确定保存路径及名称
label_single.save(save_path) val_file_path = './datasets/VOC2012/ImageSets/trainval.txt' # 文件名存放路径
label_file_path = './datasets/VOC2012/SegmentationClass' # 原label存放路径 with open(val_file_path, 'r') as f:
file_names = f.readlines()
count =
for name in file_names:
count +=
name = name.strip('\n') # 去掉换行符
label_name = name + '.png' # label文件名
label_url = os.path.join(label_file_path, label_name)
print('这是第 %s 张' % count)
print(label_url)
change_label(label_url, label_name)

4.运行build_voc2012_data.py 生成 .tfrecord数据

5. 运行train.py训练模型

完整工程,deeplab v3+(tensorflow)代码全理解及其运行过程,长期更新的更多相关文章

  1. (原)faster rcnn的tensorflow代码的理解

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/10043864.html 参考网址: 论文:https://arxiv.org/abs/1506.01 ...

  2. Deeplab v3+的结构的理解,图像分割最新成果

    Deeplab v3+ 结构的精髓: 1.继续使用ASPP结构, SPP 利用对多种比例(rates)和多种有效感受野的不同分辨率特征处理,来挖掘多尺度的上下文内容信息. 解编码结构逐步重构空间信息来 ...

  3. Deeplab v3+的结构代码简要分析

    添加了解码模块来重构精确的图像物体边界.对比如图 deeplab v3+采用了与deeplab v3类似的多尺度带洞卷积结构ASPP,然后通过上采样,以及与不同卷积层相拼接,最终经过卷积以及上采样得到 ...

  4. Transformer解析与tensorflow代码解读

    本文是针对谷歌Transformer模型的解读,根据我自己的理解顺序记录的. 另外,针对Kyubyong实现的tensorflow代码进行解读,代码地址https://github.com/Kyuby ...

  5. 深度学习之卷积神经网络CNN及tensorflow代码实例

    深度学习之卷积神经网络CNN及tensorflow代码实例 什么是卷积? 卷积的定义 从数学上讲,卷积就是一种运算,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分.级数,所以看起来觉得很复杂 ...

  6. 深度学习之卷积神经网络CNN及tensorflow代码实现示例

    深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习   版权声明 ...

  7. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇:简介及目录》(附上完整工程文件)

    G-3D引擎2D射击类游戏制作教程 游戏类型: 打飞机游戏属于射击类游戏中的一种,可以划分为卷轴射击类游戏. 视觉表现类型为:2D 框架简介: Genesis-3D引擎不仅为开发者提供一个3D游戏制作 ...

  8. Deeplab v3+中的骨干模型resnet(加入atrous)的源码解析,以及普通resnet整个结构的构建过程

    加入带洞卷积的resnet结构的构建,以及普通resnet如何通过模块的组合来堆砌深层卷积网络. 第一段代码为deeplab v3+(pytorch版本)中的基本模型改进版resnet的构建过程, 第 ...

  9. 条件随机场(crf)及tensorflow代码实例

    对于条件随机场的学习,我觉得应该结合HMM模型一起进行对比学习.首先浏览HMM模型:https://www.cnblogs.com/pinking/p/8531405.html 一.定义 条件随机场( ...

随机推荐

  1. Sublime Text 3 常用插件

    我在开发过程中,需要经常使用的插件,记录下来,省得到处寻找. Emmet 前端开发必备,您可以轻松快速地编写HTML.一个可以极大地改善工作流程的工具包.Emmet绝对的节省时间. ColorHelp ...

  2. MVC4 发布到II7或者IIS7.5遇到NO Find问题

    1.出现的错误页面

  3. 在ABP的Web层中实现复杂请求跨域访问

    在最近的项目中,后端使用ABP,前端采用React,前后端完全分离.其中大部分接口都通过WebApi层调用,项目中未使用Session.但最后在添加一个网站的验证码验证留言功能时,使用了Session ...

  4. 带URL的XML解析方式

    XmlDocument xml = new XmlDocument(); xml.LoadXml(responseString); XmlNode root = xml.DocumentElement ...

  5. Windows 7 下使用 pandoc 转换文档格式

    工作中我们经常需要面对各种各样的文档格式,文档格式转换也就在所难免.通常有些文档编辑工具会提供自带的格式转换功能,但可转换格式比较有限.pandoc 正好可以解决这个问题,几乎你能见到的所有文档格式都 ...

  6. PostgreSQL自学笔记:1 初识 PostgreSQL

    博主教材:李小威.清华大学出版社.<PostgreSQL 9.6 从零开始学> 博主操作系统系统:Windows10 博主PostgreSQL版本:PostgreSQL 9.6 和 Pos ...

  7. 如何避免OOM

    一.减小对象的内存占用 1)使用更加轻量的数据结构 例如,我们可以考虑使用ArrayMap/SparseArray而不是HashMap等传统数据结构. ArrayMap和HashMap主要不同之处在于 ...

  8. 省市区地址三级联动jQuery插件Distpicker使用

    插件下载地址 http://www.jq22.com/jquery-info8054 效果如下: 使用: 1.引入js <script src="http://www.jq22.com ...

  9. 如果往错误的NEO地址转账会发生什么

    昨天聊天有人用NEO往错误地址转账丢钱了 我的第一反应是这不可能   Neo使用的地址带有验证功能 最下面ARPP-.G6ce这一串是个base58编码 把他解开就是17-.151f7b5f这一串 红 ...

  10. 【最短路+最大流】上学路线@安徽OI2006

    目录 [最短路+最大流]上学路线@安徽OI2006 PROBLEM SOLUTION CODE [最短路+最大流]上学路线@安徽OI2006 PROBLEM 洛谷P4300 SOLUTION 先在原图 ...