CocoStuff—基于Deeplab训练数据的标定工具【二、用已提供的标注数据跑通项目】
一、说明
本文为系列博客第二篇,主要讲述笔者在使用该团队提供已经标注好的COCO数据集进行训练的过程。
由于在windows中编译Caffe和Deeplab特别的麻烦,笔者并没有去探索,后续可能会去尝试。所以整个过程都可以在linux系统中运行的,但为了标注方便,笔者采用服务器(linux)完成训练过程+windows完成标注过程的方式,并且此方式也十分有利于协同标注。
二、准备工作
安装软件:Matlab
建议到Matlab官网进行下载,安装过程应该不会有什么问题,笔者使用的版本为R2017,不过版本应该没什么影响。
安装库:Caffe
编译过程以及Caffe相关基础知识建议参考denny的学习专栏
安装库:Deeplab
编译过程建议参考博文:Deeplab v2 调试全过程(Ubuntu 16.04+cuda8.0)和图像语义分割:从头开始训练deeplab v2系列,前者也是参考的后者博客,不过整理的过程更详细一点,不过里面有些许小问题,学习过程中最好两篇结合起来。
上述博文用的启动文件( run_pascal.sh)以及模型文件和本项目中的有所不同,建议主要通过上文学会整个过程,踩一下在编译过程中遇到的坑,后续可以将相应的配置替换即可。
不过因为配置有点复杂,没有替换到位会有很多意想不到的错误,还是建议通过上文大致跑通后,再依照此文步骤(略讲)再次下载编译与CocoStuff相对应的Deeplab文件。
下载项目:
三、目录解析
项目目录主要分为3部分:
1、标注工具部分
2、数据集部分
3、模型(训练部分)
annotator
annotator主要包含两部分:代码部分和数据部分。后续标注工程需要使用的一些脚本都写在此处,数据部分主要为了方便协同标注而设定的,分配的任务都对应的写在input/imageLists/目录下user的list文件内。
dataset
下载数据集的脚本都在这些文件中,后续下载好的数据都会在此文件下。
models
cocostuff目录主要是训练的配置文件、数据集、数据列表、训练模型的存放处。deeplab-public-ver2目前没内容,后续需要将deeplab2安装编译在此目录下。
四、运行脚本
数据准备部分
下载好项目后,在Matlab中进入项目目录下
-Matlab中运行:startup()
进入项目环境
-Matlab中运行:demo_cocoStuff()
查看demo效果(可跳过)
-linux中运行:wget --directory-prefix=downloads http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip
unzip downloads/cocostuff-10k-v1.1.zip -d dataset/
将数据集下载下来;如果是windows系统可以直接去对应网址下载,然后解压到对应目录下即可。
-Matlab中运行:
CocoStuffClasses.showClassHierarchyStuffThings()
查看标签的层次结构图(可跳过)
-Matlab中运行:CocoStuffAnnotator()
打开标注工具进行尝试,因为本篇主要讲述使用标注好的数据的过程,可跳过。
训练部分
-Linux中运行:git submodule update --init models/deeplab/deeplab-public-ver2
下载deeplab
-修改deeplab配置文件并编译:
cd models/deeplab/deeplab-public-ver2
cp Makefile.config.example Makefile.config
make all -j8
(有问题参考“准备工作”中的博客)
cd ../..
-创建供给训练的相关文件夹:
mkdir models/deeplab/deeplab-public-ver2/cocostuff && mkdir models/deeplab/deeplab-public-ver2/cocostuff/data
cd models/deeplab/cocostuff/data && ln -s ../../../../dataset/images images && cd ../../../..
-将准备好的标注文件转换为deeplab认识的格式:
startup()
convertAnnotationsDeeplab()
-下载model:
wget --directory-prefix=models/deeplab/cocostuff/model/deeplabv2_vgg16 http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/deeplabv2_vgg16_init.caffemodel
-以上均没报错,就可以开始训练了:
cd models/deeplab && ./run_cocostuff_vgg16.sh
五、备注
在运行这些命令的时候如果没有报错的话,其他先不用考虑,能保证运行起来再进行标注方面的学习。
训练默认为训练集9000张,测试集1000张,迭代20000次,每10000次生成一次model,生成的model保存在cocostuff10k/models/deeplab/cocostuff/model
目录下
训练完成后的测试结果为mat文件,保存在cocostuff10k/models/deeplab/cocostuff/data/feature/fc8
目录下
然后通过运行
mat = load(fileName)
imagesc(mat.varName)
来借助Matlab自带的,可将矩阵图可视化的函数imagesc大致查看下训练的效果。
更专业的准确的检测训练效果的方法,是使用IoU重叠度检测的方法,简单的说就是:取训练结果和真实结果的交集与并集之比。但是因为笔者暂时还没找到合适的脚本(肯定已经有现成的轮子),此事暂时搁置。
*注:此处类似于Deeplab v2 调试全过程中的create_labels_21.py的作用,但是因为我们这里使用的类别为182类,无法直接使用这个脚本。笔者有去查看该脚本的内容,主要是对应21种类别进行RGB三通道赋值,然后通过python调用调色板工具,进行着色而已。但是笔者按照这样思路,创建了一个182类的调色脚本(create_labels_182.py)但是好像因为mat文件过大,处理过程中出现了一些问题,后来放弃此种做法。
CocoStuff—基于Deeplab训练数据的标定工具【二、用已提供的标注数据跑通项目】的更多相关文章
- CocoStuff—基于Deeplab训练数据的标定工具【一、翻译】(未完)
一.CocoStuff简介 CocoStuff是一款为deeplab设计的,运行在Matlab中的语义标定工具,其标定结果和结合Deeplab训练出的结果均为mat文件格式,该项目源码已在github ...
- CocoStuff—基于Deeplab训练数据的标定工具【三、标注工具的使用】
一.说明 本文为系列博客第三篇,主要展示COCO-Stuff 10K标注工具的使用过程及效果. 本文叙述的步骤默认在完成系列文章[二]的一些下载数据集.生成超像素处理文件的步骤,如果过程中有提示缺少那 ...
- CocoStuff—基于Deeplab训练数据的标定工具【五、训练成果分析】
一.说明 本文为系列博客第五篇,主要展示训练的结果,以及对训练进行分析. *注:暂未进行大量的数据训练以及IoU测算,目前只做到使用Matlab将训练结果的mat文件可视化. 二. *占坑
- CocoStuff—基于Deeplab训练数据的标定工具【四、用该工具标定个人数据】
一.说明 本文为系列博客第四篇,主要讲述笔者在正式使用该工具使用自定义标签标注自己的图片的过程. 二.数据整理 相信大家已经在 *占坑
- 基于Java的简易表达式解析工具(二)
之前简单的介绍了这个基于Java表达式解析工具,现在把代码分享给大家,希望帮助到有需要的人们,这个分享代码中依赖了一些其他的类,这些类大家可以根据自己的情况进行导入,无非就是写字符串处理工具类,日期处 ...
- 开源 Web 相册程序: Photoview 和数据可视化生成工具:Datawrapper
Photoview Photoview是一个开源 Web 相册程序,Go 语言写的,使用 Docker 安装,可以用来快速架设个人相册. github地址:https://github.com/pho ...
- 数据科学中的R和Python: 30个免费数据资源网站
1 政府数据 Data.gov:这是美国政府收集的数据资源.声称有多达40万个数据集,包括了原始数据和地理空间格式数据.使用这些数据集需要注意的是:你要进行必要的清理工作,因为许多数据是字符型的或是有 ...
- 一行导出所有任意微软SQL server数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解
文章标题: 一行导出所有任意微软SQL serer数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解 关键字 : mssql-scripter,SQL Server 文章分 ...
- 初识TPOT:一个基于Python的自动化机器学习开发工具
1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...
随机推荐
- Django之cookie&session
cookie Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式.Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息 ...
- 乘风破浪:LeetCode真题_035_Search Insert Position
乘风破浪:LeetCode真题_035_Search Insert Position 一.前言 这次的问题比较简单,也没有限制时间复杂度,但是要注意一些细节上的问题. 二.Search Insert ...
- DevExpress11、TreeList
一.简介 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...
- jquery ajax 设置请求头header 参数
$.ajax( { url:'http://127.0.0.1:30080/api-a/quasiCustom/selectCustomList', type:'post', dateType:'js ...
- PyQt5--MessageBox
# -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...
- Python基础5
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...
- BZOJ4300:绝世好题(DP)
Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len). Input 输入文件共2行. 第一行包括一个整数 ...
- Chrome安装metamask
到chrome网上应用商店去下载metamask: 然后查找metamask,进行安装即可 因为我这已经安装好了,所以按钮处是评分,否则应该是安装按钮 安装好后查看chrome://extension ...
- STM32 串口中断总结
原文:https://blog.csdn.net/weixin_42480952/article/details/82981409 最近在学习使用dma传输方式进行串口通讯,感觉这个很详细,存一下 . ...
- P2384 最短路
题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你100000000000000000000000000000000000%10金币w ...