完整工程,deeplab v3+(tensorflow)代码全理解及其运行过程,长期更新
前提: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)代码全理解及其运行过程,长期更新的更多相关文章
- (原)faster rcnn的tensorflow代码的理解
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/10043864.html 参考网址: 论文:https://arxiv.org/abs/1506.01 ...
- Deeplab v3+的结构的理解,图像分割最新成果
Deeplab v3+ 结构的精髓: 1.继续使用ASPP结构, SPP 利用对多种比例(rates)和多种有效感受野的不同分辨率特征处理,来挖掘多尺度的上下文内容信息. 解编码结构逐步重构空间信息来 ...
- Deeplab v3+的结构代码简要分析
添加了解码模块来重构精确的图像物体边界.对比如图 deeplab v3+采用了与deeplab v3类似的多尺度带洞卷积结构ASPP,然后通过上采样,以及与不同卷积层相拼接,最终经过卷积以及上采样得到 ...
- Transformer解析与tensorflow代码解读
本文是针对谷歌Transformer模型的解读,根据我自己的理解顺序记录的. 另外,针对Kyubyong实现的tensorflow代码进行解读,代码地址https://github.com/Kyuby ...
- 深度学习之卷积神经网络CNN及tensorflow代码实例
深度学习之卷积神经网络CNN及tensorflow代码实例 什么是卷积? 卷积的定义 从数学上讲,卷积就是一种运算,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分.级数,所以看起来觉得很复杂 ...
- 深度学习之卷积神经网络CNN及tensorflow代码实现示例
深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习 版权声明 ...
- 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇:简介及目录》(附上完整工程文件)
G-3D引擎2D射击类游戏制作教程 游戏类型: 打飞机游戏属于射击类游戏中的一种,可以划分为卷轴射击类游戏. 视觉表现类型为:2D 框架简介: Genesis-3D引擎不仅为开发者提供一个3D游戏制作 ...
- Deeplab v3+中的骨干模型resnet(加入atrous)的源码解析,以及普通resnet整个结构的构建过程
加入带洞卷积的resnet结构的构建,以及普通resnet如何通过模块的组合来堆砌深层卷积网络. 第一段代码为deeplab v3+(pytorch版本)中的基本模型改进版resnet的构建过程, 第 ...
- 条件随机场(crf)及tensorflow代码实例
对于条件随机场的学习,我觉得应该结合HMM模型一起进行对比学习.首先浏览HMM模型:https://www.cnblogs.com/pinking/p/8531405.html 一.定义 条件随机场( ...
随机推荐
- AtCoder Grand Contest 030 (AGC030) C - Coloring Torus 构造
原文链接https://www.cnblogs.com/zhouzhendong/p/AGC030C.html 题解 才发现当时是被题意杀了. 当时理解的题意是“对于任意的 (i,j) ,颜色 i 和 ...
- 表单组件 form fastadmin(生成表单元素)
Form组件 定义文件位置: /extend/fast/Formphp 通用参数 $name 通常为我们组件的名称(name属性值),我们在后台接收时可以通过这个名称来获取到它所对应的值 $value ...
- HDU4864:Task(贪心)
Problem DescriptionToday the company has m tasks to complete. The ith task need xi minutes to comple ...
- GA:GA优化BP神经网络的初始权值、阈值,从而增强BP神经网络的鲁棒性—Jason niu
global p global t global R % 输入神经元个数,此处是6个 global S1 % 隐层神经元个数,此处是10个 global S2 % 输出神经元个数,此处是4个 glob ...
- 在DOM加载之前insertScript
起因 由于工作原因需要联调碧桂园的SDK 大概是以下代码,起初我是放在head中的,因为最初这样调试,包括线上环境都是OK的,可以获取到SDK的内容,换句话说js节点是可以插入到root内的,自从换了 ...
- react的Virtual DOM
一.Virtual DOMVirtual DOM是一个JavaScript对象,v8引擎使得js可以高效运行,而直接操作DOM很慢.Virtual DOM本质上就是在JS和DOM之间做了一个缓存.可以 ...
- XVIII Open Cup named after E.V. Pankratiev. GP of Urals
A. Nutella’s Life 斜率优化DP显然,CDQ分治后按$a$排序建线段树,每层维护凸包,查询时不断将队首弹出即可. 时间复杂度$O(n\log^2n)$. #include<cst ...
- angular.identity()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 关于Android文件Apk下载的那点事
1.Android文件Apk下载变ZIP压缩包解决方案 如果你的下载服务器为Nginx服务器,那么,在Nginx安装目录下的conf/mime.types文件的对应位置,加上以下一行语句,指定APK文 ...
- vue_实例_组件的生命周期
重绘重排 中重复出现的是 mounted(){...} beforeUpdate(){...} uptated(){...} 其他钩子函数只会出现一次 <!DOCTYPE html> & ...