一、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数据集,请按照下面的步骤:

  1. 从git上下载项目:git clone https://github.com/nightrome/cocostuff10k.git

  2. 在shell中打开数据集:cd cocostuff10k

  3. 如果你有Matlab,执行下面的命令:

    把代码文件添加到Matlab路径中:startup();

    在Matlab中运行脚本demo:demo_cocoStuff();

    这个脚本显示图像、图像内容、内容加标注以及图像标题。

  4. 或者,运行下面的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:

  1. Install Cuda. I recommend version 7.0. For version 8.0 you will need to apply the fix described here in step 3.
  2. Download deeplab-public-ver2: git submodule update --init models/deeplab/deeplab-public-ver2
  3. 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 ../..
  1. 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();
  1. 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
  1. 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.

  1. Follow steps 1-4 of the DeepLab VGG-16 section above.
  2. 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
  1. Rescale the images and annotations:
  • cd models/deeplab
  • python rescaleImages.py
  • python rescaleAnnotations.py
  1. 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.
  • 在Matlab中运行标注工具: CocoStuffAnnotator();
    • 工具把.mat的标签文件放在这里annotator/data/output/annotations.
    • 通过在Matlab中运行这个脚本将标注预览为.png格式 annotator/code/exportImages.m.这些预览图会存在这里 annotator/data/output/preview.

CocoStuff—基于Deeplab训练数据的标定工具【一、翻译】(未完)的更多相关文章

  1. CocoStuff—基于Deeplab训练数据的标定工具【五、训练成果分析】

    一.说明 本文为系列博客第五篇,主要展示训练的结果,以及对训练进行分析. *注:暂未进行大量的数据训练以及IoU测算,目前只做到使用Matlab将训练结果的mat文件可视化. 二. *占坑

  2. CocoStuff—基于Deeplab训练数据的标定工具【二、用已提供的标注数据跑通项目】

    一.说明 本文为系列博客第二篇,主要讲述笔者在使用该团队提供已经标注好的COCO数据集进行训练的过程. 由于在windows中编译Caffe和Deeplab特别的麻烦,笔者并没有去探索,后续可能会去尝 ...

  3. CocoStuff—基于Deeplab训练数据的标定工具【三、标注工具的使用】

    一.说明 本文为系列博客第三篇,主要展示COCO-Stuff 10K标注工具的使用过程及效果. 本文叙述的步骤默认在完成系列文章[二]的一些下载数据集.生成超像素处理文件的步骤,如果过程中有提示缺少那 ...

  4. CocoStuff—基于Deeplab训练数据的标定工具【四、用该工具标定个人数据】

    一.说明 本文为系列博客第四篇,主要讲述笔者在正式使用该工具使用自定义标签标注自己的图片的过程. 二.数据整理 相信大家已经在 *占坑

  5. obj-c编程15[Cocoa实例04]:基于Core Data的多文档程序示例[未完待续]

    上一个例子我们使用的模式数据实际上是基于一个Person数组,现在我们看一下如何使用Cocoa中的Core Data框架支持,几乎不用写一行代码,完成模式数据的建立. 我们这里模式的元素使用的是Car ...

  6. X86上搭建交叉工具链,来给龙芯笔记本编译本地工具链(未完待续)

    故事的背景是,我买了一台龙芯2F的笔记本来装B. 为什么说是装B呢?因为不但操作系统是Linux,而且CPU还是龙芯的. 一般人有这么酷的装备吗?简直是装B大圣啊. 这里一定要申明一点,本人不是IT技 ...

  7. X86给龙芯笔记本编译本地工具链(未完待续)

    我买了一台龙芯2F的笔记本来当玩具. 买回来发现,这台笔记本上没法安装软件,因为既没有软件仓库,也没有GCC. 因此需要构建交叉工具链和构建本地工具链. 下面是我研究如何搞定着一切的笔记. 工具链组件 ...

  8. monkey工具使用(未完待续)

    monkey命令详解: 转自:http://blog.csdn.net/jlminghui/article/details/38238443 http://www.cnblogs.com/wfh198 ...

  9. 一行导出所有任意微软SQL server数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解

    文章标题: 一行导出所有任意微软SQL serer数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解 关键字 : mssql-scripter,SQL Server 文章分 ...

随机推荐

  1. Cocos2D-x-3.0 编译(Win7)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/logotostudent/article/details/25425969 第一次開始用手游引擎挺激 ...

  2. BZOJ3747:[POI2015]Kinoman(线段树)

    Description 共有m部电影,编号为1~m,第i部电影的好看值为w[i]. 在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部. 你可以选择l,r(1<=l< ...

  3. [USACO08NOV]Cheering up the Cow

    嘟嘟嘟 这道题删完边后是一棵树,那么一定和最小生成树有关啦. 考虑最后的生成树,无论从哪一个点出发,每一条边都会访问两次,而且在看一看样例,会发现走第w条边(u, v)的代价是L[w] * 2 + c ...

  4. 移动端适配之sprite雪碧图背景定位

    移动端适配一般我会使用rem进行适配,大致操作就是按照一定尺寸设计稿进行制作,最后将所有px值转换为rem,但是一些手机背景精灵图(cssSprite)就会出现一些误差(1px左右),如果公司要求不高 ...

  5. Manifest XML signature is not valid(安装ClickOnce签名未通过验证)

    转载:http://stackoverflow.com/questions/12826798/manifest-xml-signature-is-not-valid 安装时,我的问题:  PLATFO ...

  6. Putty等工具中解决SSH连接超时断开的问题

    转自:http://www.putty.ws/putty-chaoshi 1 在 linux下的ssh命令:vim /etc/ssh/ssh_config 然后找到里面的ServerAliveInte ...

  7. 大数据入门:Maven项目的创建及相关配置

    目录 Maven项目的创建及相关配置 一.Maven的介绍 1.Maven是什么: 2.Maven作用: 3.Maven项目的目录结构: 4.Maven的三点坐标: 5.maven的pom文件: 6. ...

  8. (文章转载)MCI编程

    使用MCI API,源文件中需要包含头文件 Mmsystem.h,在Project->Settings->Link->Object/libray module中加入库 Winmm.l ...

  9. JavaWeb基础—JavaBean

    一.什么是JavaBean 一个遵循一定规范的普通的Java类 百度的JavaBean规范: (1)JavaBean 类必须是一个公共类,并将其访问属性设置为 public , 如: public c ...

  10. 2017-2018-1 20155222 《信息安全系统设计基础》第10周 Linux下的IPC机制

    2017-2018-1 20155222 <信息安全系统设计基础>第10周 Linux下的IPC机制 IPC机制 在linux下的多个进程间的通信机制叫做IPC(Inter-Process ...