CocoStuff—基于Deeplab训练数据的标定工具【一、翻译】(未完)
一、CocoStuff简介
CocoStuff是一款为deeplab设计的,运行在Matlab中的语义标定工具,其标定结果和结合Deeplab训练出的结果均为mat文件格式,该项目源码已在github上进行开源。
二、说明
本文为系列博客第一篇,主要对项目readme进行简单的翻译,主要是为了自己在学习踩坑过程中方便查阅说明,如果能帮到大家便是极好的。
*注:未完,部分只是先扔上来,将来会继续完善。
笔者在探索之前并未在网上搜索到关于CocoStuff的相关中文博客,所以这可能是第一篇,有那里不到位的请多多指教,互相学习。
三、翻译
COCO-Stuff 10K数据集 v1.1(目前已过时)
作者:Holger Caesar, Jasper Uijlings, Vittorio Ferrari
概述
欢迎来到COCO-Stuff数据集的官方主页。COCO-Stuff添加了像素级标定(标注)的流行的COCO数据集,这些标注可以用于一些像语义分割、对象检测和图像字幕的场景理解任务。
目录
亮点
更新
成果和未来计划
数据集
语义分割模型
标定工具
Misc(未翻)
亮点
10,000张来自COCO的复杂图像
稠密的像素级标注
91个things类和91个stuff类
实例级标注来自COCO的的数据
物与物的复杂空间环境
每幅coco的图片有5句说明
更新
2017年7月11日:添加了Resnet和VGG的Deeplab模型
2017年4月6日:数据集版本1.1:修改标签指数
2017年3月31日:发布JSON格式的标注
2017年3月9日:添加标签层次脚本
2017年3月8日:更正arXiv 文件中的table 2
2017年1月10日:在标注工具中添加了提取SLICO超级像素的脚本
2016年12月12日:发布数据集版本1.1和arXiv文件
成果
目前发布的COCO-Stuff-10K版本包括训练和测试的标注,以及我们邀请用户向我们报告他们的结果用来补充这张表。在不久的将来,我们会将COCO-Stuff扩展到COCO的所有图像中,并且我们会组织一个官方比赛,在比赛中的测试标注只会被组织者所知道。
点击此处查看最新表格
Method | Source | Class-average accuracy | Global accuracy | Mean IOU | FW IOU |
---|---|---|---|---|---|
FCN-16s [3] | [1] | 34.0% | 52.0% | 22.7% | - |
Deeplab VGG-16 (no CRF) [4] | [1] | 38.1% | 57.8% | 26.9% | - |
FCN-8s [3] | [6] | 38.5% | 60.4% | 27.2% | - |
DAG-RNN + CRF [6] | [6] | 42.8% | 63.0% | 31.2% | - |
OHE + DC + FCN+ [5] | [5] | 45.8% | 66.6% | 34.3% | 51.2% |
Deeplab ResNet (no CRF) [4] | - | 45.5% | 65.1% | 34.4% | 50.4% |
W2V + DC + FCN+ [5] | [5] | 45.1% | 66.1% | 34.7% | 51.0% |
数据集
Filename | Description | Size |
---|---|---|
cocostuff-10k-v1.1.zip | COCO-Stuff dataset v. 1.1, images and annotations | 2.0 GB |
cocostuff-10k-v1.1.json | COCO-Stuff dataset v. 1.1, annotations in JSON format (optional) | 62.3 MB |
cocostuff-labels.txt | A list of the 1+91+91 classes in COCO-Stuff | 2.3 KB |
cocostuff-readme.txt | This document | 6.5 KB |
Older files | ||
cocostuff-10k-v1.0.zip | COCO-Stuff dataset version 1.0, including images and annotations | 2.6 GB |
用法
为了使用COCO-Stuff数据集,请按照下面的步骤:
从git上下载项目:
git clone https://github.com/nightrome/cocostuff10k.git
在shell中打开数据集:
cd cocostuff10k
如果你有Matlab,执行下面的命令:
把代码文件添加到Matlab路径中:startup()
;
在Matlab中运行脚本demo:demo_cocoStuff()
;
这个脚本显示图像、图像内容、内容加标注以及图像标题。或者,运行下面的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/
MAT格式
COCO-Stuff的标注是储存在每张图对应的.mat文件中,这些文件的格式和Tighe等人使用的格式相同。每个文件包括以下字段:
S: 像素化的标签地图的尺寸
names:COCO-Stuff中的东西的名字和类别,更多详情请看Label Names & Indices
captions:图片标题,由5个不同的人平均标注
regionMapStuff:与S大小相同的映射,恰中包含大约值的索引,1000个区域用来注释图像。
regionLabelStuff:每个超级像素级的物品标签的列表,这些regionMapStuff的索引都对应regionLabelStuff的条目。
JSON格式
另外,我们还提供了JSON格式的标注,这些标注是从COCO中复制出来的。我们使用RLE编码格式,将图像中呈现的每种东西的类别都标注了单个注释。要获取标注:
wget--directory-prefix=dataset/annotations-json http://calvin.inf.ed.ac.uk/wpcontent/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.json
或者用这个脚本从.mat文件中提取它们
标签名称&指数
为了与COCO兼容,版本1.1有91个东西类(1-91),91个东西类(92-182)和一个类“未标记”(0)。请注意,Coco2015中的11个Thing类没有任何分段注释。课桌、门和镜子既可以是东西,也可以是东西,因此既可以是可可,也可以是可可。为了避免混淆,我们在coco-thing中的那些类中添加了后缀“-东西”。类的完整列表可以找到这里.。旧版的COCO-东西1.0有80个东西类(2-81个),91个东西类(82-172个)和一个类“未标记”(1)
Label等级体系
标签的层次结构存储在CocoStuffClass‘中。为了使其可视化,在matlab中运行
CocoStuffClasses.showClassHierarchyStuffThings()`(也可用于简单的东西和东西类)。输出应该类似于下面的图
语义分割模型
为了鼓励对stuff and things的进一步研究,我们提供了经过训练的语义分割模型
DeepLab VGG-16
Use the following steps to download and setup the DeepLab [4] semantic segmentation model trained on COCO-Stuff. It requires deeplab-public-ver2, which is built on Caffe:
- Install Cuda. I recommend version 7.0. For version 8.0 you will need to apply the fix described here in step 3.
- Download deeplab-public-ver2:
git submodule update --init models/deeplab/deeplab-public-ver2
- Compile and configure deeplab-public-ver2 following the author's instructions. Depending on your system setup you might have to install additional packages, but a minimum setup could look like this:
cd models/deeplab/deeplab-public-ver2
cp Makefile.config.example Makefile.config
- Optionally add CuDNN support or modify library paths in the Makefile.
make all -j8
cd ../..
- Configure the COCO-Stuff dataset:
- Create folders:
mkdir models/deeplab/deeplab-public-ver2/cocostuff && mkdir models/deeplab/deeplab-public-ver2/cocostuff/data
- Create a symbolic link to the images:
cd models/deeplab/cocostuff/data && ln -s ../../../../dataset/images images && cd ../../../..
- Convert the annotations by running the Matlab script:
startup(); convertAnnotationsDeeplab();
- Download the base VGG-16 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
- Run
cd models/deeplab && ./run_cocostuff_vgg16.sh
to train and test the network on COCO-Stuff.
DeepLab ResNet 101
The default Deeplab model performs center crops of size 513*513 pixels of an image, if any side is larger than that. Since we want to segment the whole image at test time, we choose to resize the images to 513x513, perform the semantic segmentation and then rescale it elsewhere. Note that without the final step, the performance might differ slightly.
- Follow steps 1-4 of the DeepLab VGG-16 section above.
- Download the base ResNet model:
wget --directory-prefix=models/deeplab/cocostuff/model/deeplabv2_resnet101 http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/deeplabv2_resnet101_init.caffemodel
- Rescale the images and annotations:
cd models/deeplab
python rescaleImages.py
python rescaleAnnotations.py
- Run
./run_cocostuff_resnet101.sh
to train and test the network on COCO-Stuff.
标注工具
在[1]中,我们提出了一个简单而有效的文本注释工具,用于注释可可数据集。它使用画笔工具对SLICO超级像素进行注释(使用带有内容标签的codeofAchantet al.)]进行预计算)。这些注释被现有的来自COCO的像素级事物注释所覆盖。
我们提供了注释工具的基本版本:
- 准备需要的数据:
- 指定一个username
annotator/data/input/user.txt
. - 创建一个图片list文件
annotator/data/input/imageLists/<user>.list
. - 在Matlab中提取所有图片的things标签:
extractThings()
. - 在Matlab中提取所有图片的超像素:
extractSLICOSuperpixels()
. - 在这个文件的最上面的参数设置是否启用超像素、things标签、多边形绘图
CocoStuffAnnotator.m
.
- 指定一个username
- 在Matlab中运行标注工具:
CocoStuffAnnotator();
- 工具把.mat的标签文件放在这里
annotator/data/output/annotations
. - 通过在Matlab中运行这个脚本将标注预览为.png格式
annotator/code/exportImages.m
.这些预览图会存在这里annotator/data/output/preview
.
- 工具把.mat的标签文件放在这里
CocoStuff—基于Deeplab训练数据的标定工具【一、翻译】(未完)的更多相关文章
- CocoStuff—基于Deeplab训练数据的标定工具【五、训练成果分析】
一.说明 本文为系列博客第五篇,主要展示训练的结果,以及对训练进行分析. *注:暂未进行大量的数据训练以及IoU测算,目前只做到使用Matlab将训练结果的mat文件可视化. 二. *占坑
- CocoStuff—基于Deeplab训练数据的标定工具【二、用已提供的标注数据跑通项目】
一.说明 本文为系列博客第二篇,主要讲述笔者在使用该团队提供已经标注好的COCO数据集进行训练的过程. 由于在windows中编译Caffe和Deeplab特别的麻烦,笔者并没有去探索,后续可能会去尝 ...
- CocoStuff—基于Deeplab训练数据的标定工具【三、标注工具的使用】
一.说明 本文为系列博客第三篇,主要展示COCO-Stuff 10K标注工具的使用过程及效果. 本文叙述的步骤默认在完成系列文章[二]的一些下载数据集.生成超像素处理文件的步骤,如果过程中有提示缺少那 ...
- CocoStuff—基于Deeplab训练数据的标定工具【四、用该工具标定个人数据】
一.说明 本文为系列博客第四篇,主要讲述笔者在正式使用该工具使用自定义标签标注自己的图片的过程. 二.数据整理 相信大家已经在 *占坑
- obj-c编程15[Cocoa实例04]:基于Core Data的多文档程序示例[未完待续]
上一个例子我们使用的模式数据实际上是基于一个Person数组,现在我们看一下如何使用Cocoa中的Core Data框架支持,几乎不用写一行代码,完成模式数据的建立. 我们这里模式的元素使用的是Car ...
- X86上搭建交叉工具链,来给龙芯笔记本编译本地工具链(未完待续)
故事的背景是,我买了一台龙芯2F的笔记本来装B. 为什么说是装B呢?因为不但操作系统是Linux,而且CPU还是龙芯的. 一般人有这么酷的装备吗?简直是装B大圣啊. 这里一定要申明一点,本人不是IT技 ...
- X86给龙芯笔记本编译本地工具链(未完待续)
我买了一台龙芯2F的笔记本来当玩具. 买回来发现,这台笔记本上没法安装软件,因为既没有软件仓库,也没有GCC. 因此需要构建交叉工具链和构建本地工具链. 下面是我研究如何搞定着一切的笔记. 工具链组件 ...
- monkey工具使用(未完待续)
monkey命令详解: 转自:http://blog.csdn.net/jlminghui/article/details/38238443 http://www.cnblogs.com/wfh198 ...
- 一行导出所有任意微软SQL server数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解
文章标题: 一行导出所有任意微软SQL serer数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解 关键字 : mssql-scripter,SQL Server 文章分 ...
随机推荐
- MySQL 导出远程服务器数据库 为 sql文件
MySQL 导出远程服务器sql文件 mysqldump -h192.168.1.111 –P3306 -uroot -ppassword --default-character-set=utf8 t ...
- 1066. [SCOI2007]蜥蜴【最大流】
Description 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃 到边界外. 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到 ...
- 【转】Android随笔之——PackageManager详解
参考:http://www.cnblogs.com/xingfuzzhd/p/3374504.html 今天要讲的是PackageManager.Android系统为我们提供了很多服务管理的类,包括A ...
- Java实现Package编译和访问
Java实现Package编译和访问 说明 所有文件都是使用UTF-8编码来写的,请不要用Windows记事本随便打开 Test.java文件中注释的方法说明了该类是不能访问其方法的 文件目录树 bi ...
- mac 安装npm
npm是什么 NPM的全称是Node Package Manager ,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准. 如何安装 一:如果你安装了Homebrew ...
- python自动化之model进阶操作一
联合索引 遵循最左前缀索引 verbose_name 会在表名后面加s verbose_name_plural 就是表的原始名称 元信息 class UserInfo(models.Model): n ...
- mysql因为服务器异常关机倒是启动不了 找不到mysql.sock
今天mysql服务器突然异常关机,查看云平台发现该vm处于为开机状态切状态是无法启动,经过协调, 服务器启动了.但是进行service mysql start 启动时.提示错误: Starting M ...
- 《Python核心编程》第二版第五章答案
本人python新手,答案自己做的,如果有问题,欢迎大家评论和讨论! 更新会在本随笔中直接更新. 5-1.整型.讲讲Python普通整型和长整型的区别. Python的标准整形类型是最通用的数字类型. ...
- Python学习笔记系列——读写文件以及敏感词过滤器的实现
一.读文件 #打开文件,传入文件名和标识符,r代表读 f= open('\\Users\ZC\Desktop\zc.txt','r') #调用read方法一次性读取文件的全部内容,存入内存,用str对 ...
- Mac端 Open GL初探
一.环境配置 1.创建macOS工程 2.添加OpenGL.framework和GLUT.framework两个系统库 3.拖入资源文件 如果libGLTools.a问价先拖入到工程其他位置,后再移到 ...