├── .gitignore
├── .gitmodules
├── README.md
├── annotator
├── .gitignore
├── code
│ ├── CocoStuffAnnotator.m
│ ├── exportImages.m
│ ├── extractSLICOSuperpixels.m
│ ├── extractThings.m
│ └── setCirclePointer.m
└── data
│ ├── input
│ ├── imageLists
│ │ └── example.list
│ ├── regions
│ │ └── slico-1000
│ │ │ ├── COCO_train2014_000000119938.mat
│ │ │ └── COCO_train2014_000000206927.mat
│ ├── things
│ │ ├── COCO_train2014_000000119938.mat
│ │ └── COCO_train2014_000000206927.mat
│ └── user.txt
│ └── output
│ └── .gitignore
├── dataset
├── .gitignore
├── cocostuff-labelhierarchy.png
├── cocostuff-labels.txt
└── code
│ ├── CocoStuffClasses.m
│ ├── cmapStuff.m
│ ├── cmapThings.m
│ ├── cmapThingsStuff.m
│ ├── cocoStuff_root.m
│ ├── conversion
│ ├── convertAnnotationsDeeplab.m
│ ├── convertAnnotationsJSON.py
│ └── convertAnnotationsToVersion11.m
│ ├── demo_cocoStuff.m
│ ├── downloadData.m
│ └── utils
│ ├── flattenCellArray.m
│ ├── imageInsertBlobLabels.m
│ ├── parentsToTrees.m
│ ├── plotTree.m
│ └── readLinesToCell.m
├── models
└── deeplab
│ ├── .gitignore
│ ├── cocostuff
│ ├── .gitignore
│ ├── config
│ │ ├── deeplabv2_resnet101
│ │ │ ├── .gitignore
│ │ │ ├── solver.prototxt
│ │ │ ├── test.prototxt
│ │ │ ├── test_val513.prototxt
│ │ │ └── train.prototxt
│ │ └── deeplabv2_vgg16
│ │ │ ├── .gitignore
│ │ │ ├── solver.prototxt
│ │ │ ├── test.prototxt
│ │ │ └── train.prototxt
│ ├── data
│ │ └── .gitignore
│ ├── list
│ │ ├── .gitignore
│ │ ├── train.txt
│ │ ├── val.txt
│ │ ├── val513.txt
│ │ ├── val513_id.txt
│ │ └── val_id.txt
│ └── model
│ │ ├── deeplabv2_resnet101
│ │ └── .gitignore
│ │ └── deeplabv2_vgg16
│ │ └── .gitignore
│ ├── rescaleAnnotations.py
│ ├── rescaleImages.py
│ ├── run_cocostuff_resnet101.sh
│ ├── run_cocostuff_vgg16.sh
│ └── sub.sed
└── startup.m
/.gitignore:
--------------------------------------------------------------------------------
1 | /downloads/
2 | *.mexa64
3 | annotator/data/input/
4 | dataset/*.json
5 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "models/deeplab/deeplab-public-ver2"]
2 | path = models/deeplab/deeplab-public-ver2
3 | url = https://bitbucket.org/aquariusjay/deeplab-public-ver2
4 | ignore = dirty
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # COCO-Stuff 10K dataset v1.1 ([outdated](https://github.com/nightrome/cocostuff))
2 | [Holger Caesar](http://www.it-caesar.com), [Jasper Uijlings](http://homepages.inf.ed.ac.uk/juijling), [Vittorio Ferrari](http://calvin.inf.ed.ac.uk/members/vittoferrari)
3 |
4 | ## Overview
5 |
6 | Welcome to official homepage of the COCO-Stuff [1] dataset. COCO-Stuff augments the popular COCO [2] dataset with pixel-level stuff annotations. These annotations can be used for scene understanding tasks like semantic segmentation, object detection and image captioning.
7 |
8 | ## Overview
9 | - [Highlights](#highlights)
10 | - [Updates](#updates)
11 | - [Results and Future Plans](#results-and-future-plans)
12 | - [Dataset](#dataset)
13 | - [Semantic Segmentation Models](#semantic-segmentation-models)
14 | - [Annotation Tool](#annotation-tool)
15 | - [Misc](#misc)
16 |
17 | ## Highlights
18 | - 10,000 complex images from COCO [2]
19 | - Dense pixel-level annotations
20 | - 91 thing and 91 stuff classes
21 | - Instance-level annotations for things from COCO [2]
22 | - Complex spatial context between stuff and things
23 | - 5 captions per image from COCO [2]
24 |
25 | ## Updates
26 | - 11 Jul 2017: Added working [Deeplab models for Resnet and VGG](#semantic-segmentation-models)
27 | - 06 Apr 2017: Dataset version 1.1: [Modified label indices](https://github.com/nightrome/cocostuff10k#label-names--indices)
28 | - 31 Mar 2017: Published annotations in JSON format
29 | - 09 Mar 2017: Added label hierarchy scripts
30 | - 08 Mar 2017: Corrections to table 2 in arXiv paper [1]
31 | - 10 Feb 2017: Added script to extract SLICO superpixels in annotation tool
32 | - 12 Dec 2016: Dataset version 1.0 and arXiv paper [1] released
33 |
34 | ## Results
35 | The current release of COCO-Stuff-10K publishes both the training and test annotations and users report their performance individually. We invite users to report their results to us to complement this table. In the near future we will extend COCO-Stuff to all images in COCO and organize an official challenge where the test annotations will only be known to the organizers.
36 |
37 | For the updated table please click [here](https://github.com/nightrome/cocostuff#results-on-the-val-set-of-coco-stuff-10k).
38 |
39 | Method | Source| Class-average accuracy | Global accuracy | Mean IOU | FW IOU
40 | --- | --- | --- | --- | --- | ---
41 | FCN-16s [3] | [1] | 34.0% | 52.0% | 22.7% | -
42 | Deeplab VGG-16 (no CRF) [4] | [1] | 38.1% | 57.8% | 26.9% | -
43 | FCN-8s [3] | [6] | 38.5% | 60.4% | 27.2% | -
44 | DAG-RNN + CRF [6] | [6] | 42.8% | 63.0% | 31.2% | -
45 | OHE + DC + FCN+ [5] | [5] | **45.8%** | **66.6%** | 34.3% | **51.2%**
46 | Deeplab ResNet (no CRF) [4] | - | 45.5% | 65.1% | 34.4% | 50.4%
47 | W2V + DC + FCN+ [5] | [5] | 45.1% | 66.1% | **34.7%**| 51.0%
48 |
49 | ## Dataset
50 | Filename | Description | Size
51 | --- | --- | ---
52 | [cocostuff-10k-v1.1.zip](http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip) | COCO-Stuff dataset v. 1.1, images and annotations | 2.0 GB
53 | [cocostuff-10k-v1.1.json](http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.json) | COCO-Stuff dataset v. 1.1, annotations in JSON format (optional) | 62.3 MB
54 | [cocostuff-labels.txt](https://raw.githubusercontent.com/nightrome/cocostuff10k/master/dataset/cocostuff-labels.txt) | A list of the 1+91+91 classes in COCO-Stuff | 2.3 KB
55 | [cocostuff-readme.txt](https://raw.githubusercontent.com/nightrome/cocostuff10k/master/README.md) | This document | 6.5 KB
56 | **Older files** | |
57 | [cocostuff-10k-v1.0.zip](http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.0.zip) | COCO-Stuff dataset version 1.0, including images and annotations | 2.6 GB
58 |
59 | ### Usage
60 | To use the COCO-Stuff dataset, please follow these steps:
61 |
62 | 1. Download or clone this repository using git: `git clone https://github.com/nightrome/cocostuff10k.git`
63 | 2. Open the dataset folder in your shell: `cd cocostuff10k`
64 | 3. If you have Matlab, run the following commands:
65 | - Add the code folder to your Matlab path: `startup();`
66 | - Run the demo script in Matlab `demo_cocoStuff();`
67 | - The script displays an image, its thing, stuff and thing+stuff annotations, as well as the image captions.
68 | 4. Alternatively run the following Linux commands or manually download and unpack the dataset:
69 | - `wget --directory-prefix=downloads http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip`
70 | - `unzip downloads/cocostuff-10k-v1.1.zip -d dataset/`
71 |
72 | ### MAT Format
73 | The COCO-Stuff annotations are stored in separate .mat files per image. These files follow the same format as used by Tighe et al.. Each file contains the following fields:
74 | - *S:* The pixel-wise label map of size [height x width].
75 | - *names:* The names of the thing and stuff classes in COCO-Stuff. For more details see [Label Names & Indices](https://github.com/nightrome/cocostuff10k#label-names--indices).
76 | - *captions:* Image captions from [2] that are annotated by 5 distinct humans on average.
77 | - *regionMapStuff:* A map of the same size as S that contains the indices for the approx. 1000 regions (superpixels) used to annotate the image.
78 | - *regionLabelsStuff:* A list of the stuff labels for each superpixel. The indices in regionMapStuff correspond to the entries in regionLabelsStuff.
79 |
80 | ### JSON Format
81 | Alternatively, we also provide stuff and thing annotations in the [COCO-style JSON format](http://mscoco.org/dataset/#download). The thing annotations are copied from COCO. We encode every stuff class present in an image as a single annotation using the RLE encoding format of COCO. To get the annotations:
82 | - Either download them: `wget --directory-prefix=dataset/annotations-json http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.json
83 | `
84 | - Or extract them from the .mat file annotations using [this Python script](https://github.com/nightrome/cocostuff10k/blob/master/dataset/code/conversion/convertAnnotationsJSON.py).
85 |
86 | ### Label Names & Indices
87 | To be compatible with COCO, version 1.1 of COCO-Stuff has 91 thing classes (1-91), 91 stuff classes (92-182) and 1 class "unlabeled" (0). Note that 11 of the thing classes from COCO 2015 do not have any segmentation annotations. The classes desk, door and mirror could be either stuff or things and therefore occur in both COCO and COCO-Stuff. To avoid confusion we add the suffix "-stuff" to those classes in COCO-Stuff. The full list of classes can be found [here](https://raw.githubusercontent.com/nightrome/cocostuff10k/master/dataset/cocostuff-labels.txt).
88 |
89 | The older version 1.0 of COCO-Stuff had 80 thing classes (2-81), 91 stuff classes (82-172) and 1 class "unlabeled" (1).
90 |
91 | ### Label Hierarchy
92 | The hierarchy of labels is stored in `CocoStuffClasses`. To visualize it, run `CocoStuffClasses.showClassHierarchyStuffThings()` (also available for just stuff and just thing classes) in Matlab. The output should look similar to the following figure:
93 |
94 |
95 | ## Semantic Segmentation Models
96 | To encourage further research of stuff and things we provide the trained semantic segmentation model (see Sect. 4.4 in [1]).
97 |
98 | ### DeepLab VGG-16
99 | Use the following steps to download and setup the DeepLab [4] semantic segmentation model trained on COCO-Stuff. It requires [deeplab-public-ver2](https://bitbucket.org/aquariusjay/deeplab-public-ver2), which is built on [Caffe](caffe.berkeleyvision.org):
100 |
101 | 1. Install Cuda. I recommend version 7.0. For version 8.0 you will need to apply the fix described [here](https://stackoverflow.com/questions/39274472/error-function-atomicadddouble-double-has-already-been-defined) in step 3.
102 | 2. Download deeplab-public-ver2: `git submodule update --init models/deeplab/deeplab-public-ver2`
103 | 3. Compile and configure deeplab-public-ver2 following the [author's instructions](https://bitbucket.org/aquariusjay/deeplab-public-ver2). Depending on your system setup you might have to install additional packages, but a minimum setup could look like this:
104 | - `cd models/deeplab/deeplab-public-ver2`
105 | - `cp Makefile.config.example Makefile.config`
106 | - Optionally add CuDNN support or modify library paths in the Makefile.
107 | - `make all -j8`
108 | - `cd ../..`
109 | 4. Configure the COCO-Stuff dataset:
110 | - Create folders: `mkdir models/deeplab/deeplab-public-ver2/cocostuff && mkdir models/deeplab/deeplab-public-ver2/cocostuff/data`
111 | - Create a symbolic link to the images: `cd models/deeplab/cocostuff/data && ln -s ../../../../dataset/images images && cd ../../../..`
112 | - Convert the annotations by running the Matlab script: `startup(); convertAnnotationsDeeplab();`
113 | 5. Download the base VGG-16 model:
114 | - `wget --directory-prefix=models/deeplab/cocostuff/model/deeplabv2_vgg16 http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/deeplabv2_vgg16_init.caffemodel`
115 | 6. Run `cd models/deeplab && ./run_cocostuff_vgg16.sh` to train and test the network on COCO-Stuff.
116 |
117 | ### DeepLab ResNet 101
118 | 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.
119 |
120 | 1. Follow steps 1-4 of the [DeepLab VGG-16](#deeplab-vgg-16) section above.
121 | 2. Download the base ResNet model:
122 | - `wget --directory-prefix=models/deeplab/cocostuff/model/deeplabv2_resnet101 http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/deeplabv2_resnet101_init.caffemodel`
123 | 3. Rescale the images and annotations:
124 | - `cd models/deeplab`
125 | - `python rescaleImages.py`
126 | - `python rescaleAnnotations.py`
127 | 4. Run `./run_cocostuff_resnet101.sh` to train and test the network on COCO-Stuff.
128 |
129 | ## Annotation Tool
130 | In [1] we present a simple and efficient stuff annotation tool which was used to annotate the COCO-Stuff dataset. It uses a paintbrush tool to annotate SLICO superpixels (precomputed using the [code](http://ivrl.epfl.ch/files/content/sites/ivrg/files/supplementary_material/RK_SLICsuperpixels/SLIC_mex.zip) of [Achanta et al.](http://ivrl.epfl.ch/research/superpixels)) with stuff labels. These annotations are overlaid with the existing pixel-level thing annotations from COCO.
131 | We provide a basic version of our annotation tool:
132 | - Prepare the required data:
133 | - Specify a username in `annotator/data/input/user.txt`.
134 | - Create a list of images in `annotator/data/input/imageLists/.list`.
135 | - Extract the thing annotations for all images in Matlab: `extractThings()`.
136 | - Extract the superpixels for all images in Matlab: `extractSLICOSuperpixels()`.
137 | - To enable or disable superpixels, thing annotations and polygon drawing, take a look at the flags at the top of `CocoStuffAnnotator.m`.
138 | - Run the annotation tool in Matlab: `CocoStuffAnnotator();`
139 | - The tool writes the .mat label files to `annotator/data/output/annotations`.
140 | - To create a .png preview of the annotations, run `annotator/code/exportImages.m` in Matlab. The previews will be saved to `annotator/data/output/preview`.
141 |
142 | ## Misc
143 | ### References
144 | - [1] [COCO-Stuff: Thing and Stuff Classes in Context](https://arxiv.org/abs/1612.03716)
145 | H. Caesar, J. Uijlings, V. Ferrari,
146 | In *arXiv preprint arXiv:1612.03716*, 2017.
147 |
148 | - [2] [Microsoft COCO: Common Objects in Context](https://arxiv.org/abs/1405.0312)
149 | T.-Y. Lin, M. Maire, S. Belongie et al.,
150 | In *European Conference in Computer Vision* (ECCV), 2014.
151 |
152 | - [3] [Fully convolutional networks for semantic segmentation](http://www.cv-foundation.org/openaccess/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)
153 | J. Long, E. Shelhammer and T. Darrell,
154 | In *Computer Vision and Pattern Recognition* (CVPR), 2015.
155 |
156 | - [4] [Semantic image segmentation with deep convolutional nets and fully connected CRFs](https://arxiv.org/abs/1412.7062)
157 | L.-C. Chen, G. Papandreou, I. Kokkinos et al.,
158 | In *International Conference on Learning Representations* (ICLR), 2015.
159 |
160 | - [5] [LabelBank: Revisiting Global Perspectives for Semantic Segmentation](https://arxiv.org/pdf/1703.09891.pdf)
161 | H. Hu, Z. Deng, G.-T. Zhou et al.
162 | In *arXiv preprint arXiv:1703.09891*, 2017.
163 |
164 | - [6] [Scene Segmentation with DAG-Recurrent Neural Networks](http://ieeexplore.ieee.org/abstract/document/7940028/)
165 | B. Shuai, Z. Zuo, B. Wang
166 | In *IEEE Transactions on Pattern Analysis and Machine Intelligence* (PAMI), 2017.
167 |
168 | ### Licensing
169 | COCO-Stuff is a derivative work of the COCO dataset. The authors of COCO do not in any form endorse this work. Different licenses apply:
170 | - COCO images: [Flickr Terms of use](http://mscoco.org/terms_of_use/)
171 | - COCO annotations: [Creative Commons Attribution 4.0 License](http://mscoco.org/terms_of_use/)
172 | - COCO-Stuff annotations & code: [Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/legalcode)
173 |
174 | ### Contact
175 | If you have any questions regarding this dataset, please contact us at holger-at-it-caesar.com.
176 |
--------------------------------------------------------------------------------
/annotator/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/annotator/code/exportImages.m:
--------------------------------------------------------------------------------
1 | function exportImages()
2 | % exportImages()
3 | %
4 | % Writes a viewable preview image for each annotation to
5 | % data/output/preview/.
6 | %
7 | % Copyright by Holger Caesar, 2016
8 |
9 | % Settings
10 | exportAllUsers = false;
11 | dataFolder = fullfile(cocoStuff_root(), 'annotator', 'data');
12 | imageFolder = fullfile(cocoStuff_root(), 'dataset', 'images');
13 | annotationTopFolder = fullfile(dataFolder, 'output', 'annotations');
14 | previewTopFolder = fullfile(dataFolder, 'output', 'preview');
15 |
16 | % Read username
17 | if exportAllUsers
18 | folderList = dir(annotationTopFolder);
19 | folderList = folderList([folderList.isdir] == 1);
20 | folderList = {folderList.name};
21 | folderList(1:2) = [];
22 | userNames = folderList(:);
23 | else
24 | userNames = readLinesToCell(fullfile(dataFolder, 'input', 'user.txt'));
25 | end
26 |
27 | userCount = numel(userNames);
28 | for userIdx = 1 : userCount
29 | userName = userNames{userIdx};
30 | fprintf('Processing images for user %s...\n', userName);
31 |
32 | % Read output images
33 | annotationFolder = fullfile(annotationTopFolder, userName);
34 | fileList = dir(annotationFolder);
35 | fileList = {fileList.name};
36 | fileList(1:2) = [];
37 |
38 | % Create previews
39 | previewFolder = fullfile(previewTopFolder, userName);
40 | if ~exist(previewFolder, 'dir')
41 | mkdir(previewFolder);
42 | end
43 |
44 | % Create colorMap
45 | rng(42);
46 | unprocessedColor = [1, 1, 1];
47 | unlabeledColor = [0, 0, 0];
48 | thingColor = jet(1);
49 | stuffColors = cmapStuff();
50 | stuffColors = stuffColors(2:end, :);
51 | colorMap = [unprocessedColor; unlabeledColor; thingColor; stuffColors];
52 |
53 | imageCount = numel(fileList);
54 | for imageIdx = 1 : imageCount
55 | fprintf('Writing image %d of %d for user %s...\n', imageIdx, imageCount, userName);
56 |
57 | % Check if file exists
58 | fileName = fileList{imageIdx};
59 | imageName = strrep(fileName, '.mat', '');
60 | imageName = strrep(imageName, 'mask-', '');
61 | outPath = fullfile(previewFolder, [imageName, '.png']);
62 |
63 | % Get image and labelMap
64 | imagePath = fullfile(imageFolder, [imageName, '.jpg']);
65 | inPath = fullfile(annotationFolder, fileName);
66 | inStruct = load(inPath, 'labelMap', 'labelNames');
67 | if ~exist('labelNames', 'var')
68 | labelNames = inStruct.labelNames;
69 | assert(size(colorMap, 1) == numel(labelNames));
70 | end
71 | labelMap = inStruct.labelMap;
72 | labelMapIm = ind2rgb(labelMap, colorMap);
73 | labelMapIm = imageInsertBlobLabels(labelMapIm, labelMap, labelNames);
74 | image = im2double(imread(imagePath));
75 | if size(image, 3) == 1
76 | image = cat(3, image, image, image);
77 | end
78 | if size(image, 1) ~= size(labelMapIm, 1) || size(image, 2) ~= size(labelMapIm, 2)
79 | fprintf('Warning: Wrong image size! Skipping %s\n', imageName);
80 | continue;
81 | end
82 | outImage = [image, labelMapIm];
83 |
84 | % Write to image
85 | imwrite(outImage, outPath);
86 | end
87 | end
--------------------------------------------------------------------------------
/annotator/code/extractSLICOSuperpixels.m:
--------------------------------------------------------------------------------
1 | function extractSLICOSuperpixels()
2 | % extractSLICOSuperpixels()
3 | %
4 | % Extracts SLICO superpixels for each image in the imageList of the current user.
5 | %
6 | % Copyright by Holger Caesar, 2017
7 |
8 | % Settings
9 | rootFolder = cocoStuff_root();
10 | dataFolder = fullfile(rootFolder, 'annotator', 'data');
11 | userPath = fullfile(dataFolder, 'input', 'user.txt');
12 | imageFolder = fullfile(rootFolder, 'dataset', 'images');
13 | imageListFolder = fullfile(dataFolder, 'input', 'imageLists');
14 | regionTargetCount = 1000;
15 | slicoUrl = 'http://ivrl.epfl.ch/files/content/sites/ivrg/files/supplementary_material/RK_SLICsuperpixels/SLIC_mex.zip';
16 | slicoDownloadPath = fullfile(rootFolder, 'downloads', 'SLIC_mex.zip');
17 | slicoTargetFolder = fullfile(rootFolder, 'downloads', 'SLIC_mex');
18 | slicoTargetSubFolder = fullfile(slicoTargetFolder, 'SLIC_mex');
19 | slicoMexPath = fullfile(slicoTargetSubFolder, 'slicomex.c');
20 | slicoMexTarget = fullfile(rootFolder, 'slicomex.mexa64');
21 | regionFolder = fullfile(dataFolder, 'input', 'regions', sprintf('slico-%d', regionTargetCount));
22 |
23 | % Install SLICO
24 | if ~exist(slicoDownloadPath, 'file')
25 | websave(slicoDownloadPath, slicoUrl);
26 | end
27 | if ~exist(slicoTargetFolder, 'dir')
28 | unzip(slicoDownloadPath, slicoTargetFolder);
29 | end
30 | if ~exist(slicoMexTarget, 'file')
31 | params = 'CFLAGS="\$CFLAGS -std=c99"';
32 | mex(params, slicoMexPath);
33 | end
34 |
35 | % Create output folder
36 | if ~exist(regionFolder, 'dir')
37 | mkdir(regionFolder)
38 | end
39 |
40 | % Read username
41 | userNames = readLinesToCell(userPath);
42 | userName = userNames{1};
43 |
44 | % Read input images
45 | imageListPath = fullfile(imageListFolder, sprintf('%s.list', userName));
46 | imageList = readLinesToCell(imageListPath);
47 | imageCount = numel(imageList);
48 |
49 | for imageIdx = 1 : imageCount
50 | % Get image and regions
51 | imageName = imageList{imageIdx};
52 | imagePath = fullfile(imageFolder, [imageName, '.jpg']);
53 | image = imread(imagePath);
54 | imageSize = [size(image, 1), size(image, 2)];
55 | regionMap = getRegionsSLICO(image, regionTargetCount);
56 | regionBoundaries = getRegionBoundaries(regionMap);
57 |
58 | % Some checks
59 | assert(all(imageSize == size(regionBoundaries)));
60 | assert(all(imageSize == size(regionMap)));
61 | assert(isa(regionBoundaries, 'logical'));
62 | assert(isa(regionMap, 'double'));
63 |
64 | % Save to file
65 | regionStruct.regionBoundaries = regionBoundaries;
66 | regionStruct.regionMap = regionMap;
67 | outputPath = fullfile(regionFolder, [imageName, '.mat']);
68 | save(outputPath, '-struct', 'regionStruct');
69 | end
70 |
71 | function[map] = getRegionsSLICO(image, regionTargetCount)
72 | % [map] = getRegionsSLICO(image, regionTargetCount)
73 | %
74 | % Get SLICO superpixels using the mex code from Achanta et al.
75 |
76 | [map, dump] = slicomex(im2uint8(image), regionTargetCount); %#ok
77 | map = double(map);
78 | map = map + 1;
79 | assert(min(map(:)) == 1);
80 |
81 | function[bounds] = getRegionBoundaries(regionMap)
82 | % [bounds] = getRegionBoundaries(regionMap)
83 | %
84 | % Extracts and post-processes the superpixel boundaries.
85 |
86 | % Extract boundaries
87 | bounds = superPixelMapToBoundaries(regionMap);
88 |
89 | % Make thinner lines and then fix outer boundaries again
90 | bounds = bwmorph(bounds, 'thin', Inf);
91 | bounds(1, :) = true;
92 | bounds(end, :) = true;
93 | bounds(:, 1) = true;
94 | bounds(:, end) = true;
95 |
96 | function[bounds] = superPixelMapToBoundaries(regionMap)
97 | % [bounds] = superPixelMapToBoundaries(regionMap)
98 | %
99 | % Converts a map of regions indices to a binary map where true indicates region boundaries.
100 |
101 | % Perform a convolution in each possible direction to find out
102 | % whether a pixel lies on a boundary
103 | bounds = false(size(regionMap));
104 | for i = [1:4, 6:9] % for 4-connectivity use [2, 4, 6, 8]
105 | filter = zeros(3, 3);
106 | filter(5) = 1;
107 | filter(i) = -1;
108 | bounds = bounds | conv2(double(regionMap), filter, 'same') ~= 0;
109 | end
--------------------------------------------------------------------------------
/annotator/code/extractThings.m:
--------------------------------------------------------------------------------
1 | function extractThings()
2 | % extractThings()
3 | %
4 | % Gets the thing pixels from the COCO dataset and places them in a 2D map.
5 | % (loses depth ordering) This is done for each image in the imageList of the current user.
6 | %
7 | % Copyright by Holger Caesar, 2017
8 |
9 | % Settings
10 | rootFolder = cocoStuff_root();
11 | dataFolder = fullfile(rootFolder, 'annotator', 'data');
12 | downloadFolder = fullfile(rootFolder, 'downloads');
13 | userPath = fullfile(dataFolder, 'input', 'user.txt');
14 | imageFolder = fullfile(rootFolder, 'dataset', 'images');
15 | imageListFolder = fullfile(dataFolder, 'input', 'imageLists');
16 | thingFolder = fullfile(dataFolder, 'input', 'things');
17 | cocoUrl = 'http://msvocds.blob.core.windows.net/annotations-1-0-3/instances_train-val2014.zip';
18 | cocoDownloadPath = fullfile(downloadFolder, 'instances_train-val2014.zip');
19 | cocoTargetFolder = fullfile(downloadFolder, 'instances_train-val2014');
20 | cocoInstancesTarget = fullfile(cocoTargetFolder, 'annotations', 'instances_train2014.json');
21 | apiUrl = 'https://github.com/pdollar/coco/archive/336d2a27c91e3c0663d2dcf0b13574674d30f88e.zip';
22 | apiDownloadPath = fullfile(downloadFolder, 'cocoApi.zip');
23 | apiTargetFolder = fullfile(downloadFolder, 'cocoApi');
24 |
25 | % Download & install COCO
26 | if ~exist(cocoDownloadPath, 'file')
27 | fprintf('Downloading COCO annotations (158MB)...\n');
28 | websave(cocoDownloadPath, cocoUrl);
29 | end
30 | if ~exist(cocoTargetFolder, 'dir')
31 | fprintf('Unzipping COCO annotations...\n');
32 | unzip(cocoDownloadPath, cocoTargetFolder);
33 | end
34 |
35 | % Download & install COCO API
36 | if ~exist(apiDownloadPath, 'file')
37 | fprintf('Downloading COCO API (3MB)...\n');
38 | websave(apiDownloadPath, apiUrl);
39 | end
40 | if ~exist(apiTargetFolder, 'dir')
41 | fprintf('Unzipping COCO annotations...\n');
42 | unzip(apiDownloadPath, apiTargetFolder);
43 | end
44 |
45 | % Init Coco API
46 | fprintf('Loading COCO API...\n');
47 | addpath(genpath(apiTargetFolder));
48 | cocoApi = CocoApi(cocoInstancesTarget);
49 |
50 | % Create output folder
51 | if ~exist(thingFolder, 'dir')
52 | mkdir(thingFolder)
53 | end
54 |
55 | % Read username
56 | userNames = readLinesToCell(userPath);
57 | userName = userNames{1};
58 |
59 | % Read input images
60 | imageListPath = fullfile(imageListFolder, sprintf('%s.list', userName));
61 | imageList = readLinesToCell(imageListPath);
62 | imageCount = numel(imageList);
63 |
64 | for imageIdx = 1 : imageCount
65 | % Get image and regions
66 | imageName = imageList{imageIdx};
67 | imagePath = fullfile(imageFolder, [imageName, '.jpg']);
68 | image = imread(imagePath);
69 |
70 | % Get label map and flatten it to a binary map
71 | labelMap = getImLabelMap(cocoApi, image, imageName);
72 | labelMapThings = labelMap ~= 1; %#ok
73 |
74 | % Save to file
75 | outputPath = fullfile(thingFolder, [imageName, '.mat']);
76 | save(outputPath, 'labelMapThings');
77 | end
78 |
79 | function[labelMap] = getImLabelMap(cocoApi, image, imageName)
80 |
81 | % Settings
82 | useCrowd = true;
83 | cocoSet = 'train2014';
84 |
85 | % Load things from COCO
86 | imgId = regexprep(imageName, sprintf('COCO_%s_', cocoSet), '');
87 | imgId = str2double(imgId);
88 | annIds = cocoApi.getAnnIds('imgIds', imgId, 'iscrowd', []);
89 | anns = cocoApi.loadAnns(annIds);
90 |
91 | % Filter crowd annotations
92 | if ~useCrowd
93 | anns = anns([anns.iscrowd] ~= 1);
94 | end
95 |
96 | % Process the annotations in reverse order to have the correct
97 | % depth order
98 | annsCount = numel(anns);
99 | imageSize = size(image);
100 | labelMap = zeros(imageSize(1), imageSize(2));
101 | for regionIdx = annsCount : -1 : 1
102 | curSegs = anns(regionIdx).segmentation;
103 |
104 | if isstruct(curSegs)
105 | M = double(MaskApi.decode(curSegs));
106 | [ys, xs] = find(M);
107 | inds = sub2ind(size(labelMap), ys, xs);
108 | labelMap(inds) = cocoApi.inds.catIdsMap(anns(regionIdx).category_id);
109 | else
110 | for j = 1 : length(curSegs)
111 | P = curSegs{j} + .5;
112 | xs = P(1:2:end);
113 | ys = P(2:2:end);
114 | BW = poly2mask(xs, ys, imageSize(1), imageSize(2));
115 | [ys, xs] = find(BW);
116 | inds = sub2ind(size(labelMap), ys, xs);
117 | labelMap(inds) = cocoApi.inds.catIdsMap(anns(regionIdx).category_id);
118 | end
119 | end
120 | end
121 | labelMap = labelMap + 1;
--------------------------------------------------------------------------------
/annotator/code/setCirclePointer.m:
--------------------------------------------------------------------------------
1 | function setCirclePointer(fig)
2 | % setCirclePointer(fig)
3 | %
4 | % Sets the cursor/pointer in the current figure to be a 16x16 circle with a point in the middle.
5 | % We center the circle around floor(iconSize/2) for simplicity.
6 | %
7 | % Copyright by Holger Caesar, 2016
8 |
9 | % Settings
10 | iconSize = 16;
11 | radius = 6;
12 | thickness = 1;
13 |
14 | % Define center
15 | midSize = floor(iconSize / 2);
16 | center = [midSize, midSize];
17 |
18 | % Create circle
19 | icon = nan(iconSize, iconSize);
20 | xs = 1:iconSize;
21 | ys = 1:iconSize;
22 | [XS, YS] = meshgrid(xs, ys);
23 | dists = abs(sqrt((XS - center(2)) .^ 2 + (YS - center(1)) .^ 2) - radius);
24 | icon(dists <= thickness) = 1;
25 |
26 | % Color center
27 | icon(center(1), center(2)) = 1;
28 |
29 | % Set in figure
30 | set(fig, 'Pointer', 'custom', 'PointerShapeCData', icon, 'PointerShapeHotSpot', center);
--------------------------------------------------------------------------------
/annotator/data/input/imageLists/example.list:
--------------------------------------------------------------------------------
1 | COCO_train2014_000000119938
2 | COCO_train2014_000000206927
3 |
--------------------------------------------------------------------------------
/annotator/data/input/regions/slico-1000/COCO_train2014_000000119938.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nightrome/cocostuff10k/5fe3850d547ae4b21d73307dd156dfc5c5c61c5c/annotator/data/input/regions/slico-1000/COCO_train2014_000000119938.mat
--------------------------------------------------------------------------------
/annotator/data/input/regions/slico-1000/COCO_train2014_000000206927.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nightrome/cocostuff10k/5fe3850d547ae4b21d73307dd156dfc5c5c61c5c/annotator/data/input/regions/slico-1000/COCO_train2014_000000206927.mat
--------------------------------------------------------------------------------
/annotator/data/input/things/COCO_train2014_000000119938.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nightrome/cocostuff10k/5fe3850d547ae4b21d73307dd156dfc5c5c61c5c/annotator/data/input/things/COCO_train2014_000000119938.mat
--------------------------------------------------------------------------------
/annotator/data/input/things/COCO_train2014_000000206927.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nightrome/cocostuff10k/5fe3850d547ae4b21d73307dd156dfc5c5c61c5c/annotator/data/input/things/COCO_train2014_000000206927.mat
--------------------------------------------------------------------------------
/annotator/data/input/user.txt:
--------------------------------------------------------------------------------
1 | example
--------------------------------------------------------------------------------
/annotator/data/output/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 |
--------------------------------------------------------------------------------
/dataset/.gitignore:
--------------------------------------------------------------------------------
1 | /annotations/
2 | /annotations-json/
3 | /images/
4 | /imageLists/
5 | README.html
6 |
--------------------------------------------------------------------------------
/dataset/cocostuff-labelhierarchy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nightrome/cocostuff10k/5fe3850d547ae4b21d73307dd156dfc5c5c61c5c/dataset/cocostuff-labelhierarchy.png
--------------------------------------------------------------------------------
/dataset/cocostuff-labels.txt:
--------------------------------------------------------------------------------
1 | 0: unlabeled
2 | 1: person
3 | 2: bicycle
4 | 3: car
5 | 4: motorcycle
6 | 5: airplane
7 | 6: bus
8 | 7: train
9 | 8: truck
10 | 9: boat
11 | 10: traffic light
12 | 11: fire hydrant
13 | 12: street sign
14 | 13: stop sign
15 | 14: parking meter
16 | 15: bench
17 | 16: bird
18 | 17: cat
19 | 18: dog
20 | 19: horse
21 | 20: sheep
22 | 21: cow
23 | 22: elephant
24 | 23: bear
25 | 24: zebra
26 | 25: giraffe
27 | 26: hat
28 | 27: backpack
29 | 28: umbrella
30 | 29: shoe
31 | 30: eye glasses
32 | 31: handbag
33 | 32: tie
34 | 33: suitcase
35 | 34: frisbee
36 | 35: skis
37 | 36: snowboard
38 | 37: sports ball
39 | 38: kite
40 | 39: baseball bat
41 | 40: baseball glove
42 | 41: skateboard
43 | 42: surfboard
44 | 43: tennis racket
45 | 44: bottle
46 | 45: plate
47 | 46: wine glass
48 | 47: cup
49 | 48: fork
50 | 49: knife
51 | 50: spoon
52 | 51: bowl
53 | 52: banana
54 | 53: apple
55 | 54: sandwich
56 | 55: orange
57 | 56: broccoli
58 | 57: carrot
59 | 58: hot dog
60 | 59: pizza
61 | 60: donut
62 | 61: cake
63 | 62: chair
64 | 63: couch
65 | 64: potted plant
66 | 65: bed
67 | 66: mirror
68 | 67: dining table
69 | 68: window
70 | 69: desk
71 | 70: toilet
72 | 71: door
73 | 72: tv
74 | 73: laptop
75 | 74: mouse
76 | 75: remote
77 | 76: keyboard
78 | 77: cell phone
79 | 78: microwave
80 | 79: oven
81 | 80: toaster
82 | 81: sink
83 | 82: refrigerator
84 | 83: blender
85 | 84: book
86 | 85: clock
87 | 86: vase
88 | 87: scissors
89 | 88: teddy bear
90 | 89: hair drier
91 | 90: toothbrush
92 | 91: hair brush
93 | 92: banner
94 | 93: blanket
95 | 94: branch
96 | 95: bridge
97 | 96: building-other
98 | 97: bush
99 | 98: cabinet
100 | 99: cage
101 | 100: cardboard
102 | 101: carpet
103 | 102: ceiling-other
104 | 103: ceiling-tile
105 | 104: cloth
106 | 105: clothes
107 | 106: clouds
108 | 107: counter
109 | 108: cupboard
110 | 109: curtain
111 | 110: desk-stuff
112 | 111: dirt
113 | 112: door-stuff
114 | 113: fence
115 | 114: floor-marble
116 | 115: floor-other
117 | 116: floor-stone
118 | 117: floor-tile
119 | 118: floor-wood
120 | 119: flower
121 | 120: fog
122 | 121: food-other
123 | 122: fruit
124 | 123: furniture-other
125 | 124: grass
126 | 125: gravel
127 | 126: ground-other
128 | 127: hill
129 | 128: house
130 | 129: leaves
131 | 130: light
132 | 131: mat
133 | 132: metal
134 | 133: mirror-stuff
135 | 134: moss
136 | 135: mountain
137 | 136: mud
138 | 137: napkin
139 | 138: net
140 | 139: paper
141 | 140: pavement
142 | 141: pillow
143 | 142: plant-other
144 | 143: plastic
145 | 144: platform
146 | 145: playingfield
147 | 146: railing
148 | 147: railroad
149 | 148: river
150 | 149: road
151 | 150: rock
152 | 151: roof
153 | 152: rug
154 | 153: salad
155 | 154: sand
156 | 155: sea
157 | 156: shelf
158 | 157: sky-other
159 | 158: skyscraper
160 | 159: snow
161 | 160: solid-other
162 | 161: stairs
163 | 162: stone
164 | 163: straw
165 | 164: structural-other
166 | 165: table
167 | 166: tent
168 | 167: textile-other
169 | 168: towel
170 | 169: tree
171 | 170: vegetable
172 | 171: wall-brick
173 | 172: wall-concrete
174 | 173: wall-other
175 | 174: wall-panel
176 | 175: wall-stone
177 | 176: wall-tile
178 | 177: wall-wood
179 | 178: water-other
180 | 179: waterdrops
181 | 180: window-blind
182 | 181: window-other
183 | 182: wood
184 |
--------------------------------------------------------------------------------
/dataset/code/CocoStuffClasses.m:
--------------------------------------------------------------------------------
1 | classdef CocoStuffClasses
2 | % CocoStuffClasses
3 | %
4 | % Semantic segmentation dataset for stuff classes in COCO
5 | %
6 | % Copyright by Holger Caesar, 2017
7 |
8 | properties (Constant)
9 | thingCount = 91;
10 | stuffCount = 91;
11 | end
12 |
13 | methods (Static)
14 | function[labelNames, labelCount] = getLabelNamesStuff()
15 | % [labelNames, labelCount] = getLabelNamesStuff()
16 | %
17 | % Note that the stuff labels are always sorted alphabetically !!!
18 | % Does not include "unlabeled" class!
19 |
20 | % Retrieve labels from hierarchy to make sure they match
21 | [~, categories, heights] = CocoStuffClasses.getClassHierarchyStuff();
22 |
23 | % Select only leaf nodes
24 | sel = heights == max(heights);
25 | categories = categories(sel);
26 |
27 | % Get stuff and thing labels
28 | labelNames = sort(categories);
29 | labelCount = numel(labelNames);
30 | end
31 |
32 | function[labelNames, labelCount] = getLabelNamesThings()
33 | % [labelNames, labelCount] = getLabelNamesThings()
34 | %
35 | % Note that the thing labels are in the original COCO order and
36 | % not sorted by alphabet !!!
37 | % Does not include "unlabeled" class!
38 |
39 | % Retrieve labels from hierarchy to make sure they match
40 | [~, categories, heights] = CocoStuffClasses.getClassHierarchyThings();
41 |
42 | % Select only leaf nodes
43 | sel = heights == max(heights);
44 | categories = categories(sel);
45 |
46 | % Get stuff and thing labels
47 | labelNames = categories;
48 | labelCount = numel(labelNames);
49 | end
50 |
51 | function[labelNames, labelCount] = getLabelNamesThingsStuff()
52 | % [labelNames, labelCount] = getLabelNamesThingsStuff()
53 | %
54 | % Return thing and stuff classes in order.
55 | % Does not include "unlabeled" class!
56 |
57 | % Get stuff labels
58 | labelNamesStuff = CocoStuffClasses.getLabelNamesStuff();
59 |
60 | % Get thing labels
61 | labelNamesThings = CocoStuffClasses.getLabelNamesThings();
62 |
63 | % Concatenate both
64 | labelNames = [labelNamesThings; labelNamesStuff];
65 | labelCount = numel(labelNames);
66 | end
67 |
68 | function[nodes, categories, heights, parents] = getClassHierarchy()
69 | % Gets a hierarchies of all labels in CocoStuff (things+stuff)
70 | [~, ~, ~, parentsStuff] = CocoStuffClasses.getClassHierarchyStuff();
71 | [~, ~, ~, parentsThings] = CocoStuffClasses.getClassHierarchyThings();
72 |
73 | % Combine both subtrees
74 | parentsStuff{1, 2} = 'root';
75 | parentsThings{1, 2} = 'root';
76 | parents = [{'root'}, {'root'}; ...
77 | parentsThings; parentsStuff];
78 |
79 | % Convert to tree
80 | [nodes, categories, heights] = parentsToTrees(parents);
81 | end
82 |
83 | function[nodes, categories, heights, parents] = getClassHierarchyThings()
84 | % Returns a hierarchy of classes to be plotted with treeplot(nodes)
85 |
86 | parents = { ...
87 | 'things', 'things'; ...
88 | ... % End of level 1
89 | 'indoor-super-things', 'things'; ...
90 | 'outdoor-super-things', 'things'; ...
91 | ... % End of level 2
92 | 'person-things', 'outdoor-super-things'; ...
93 | 'vehicle-things', 'outdoor-super-things'; ...
94 | 'outdoor-things', 'outdoor-super-things'; ...
95 | 'animal-things', 'outdoor-super-things'; ...
96 | 'accessory-things', 'outdoor-super-things'; ...
97 | 'sports-things', 'outdoor-super-things'; ...
98 | 'kitchen-things', 'indoor-super-things'; ...
99 | 'food-things', 'indoor-super-things'; ...
100 | 'furniture-things', 'indoor-super-things'; ...
101 | 'electronic-things', 'indoor-super-things'; ...
102 | 'appliance-things', 'indoor-super-things'; ...
103 | 'indoor-things', 'indoor-super-things'; ...
104 | ... % End of level 3
105 | 'person', 'person-things'; ...
106 | 'bicycle', 'vehicle-things'; ...
107 | 'car', 'vehicle-things'; ...
108 | 'motorcycle', 'vehicle-things'; ...
109 | 'airplane', 'vehicle-things'; ...
110 | 'bus', 'vehicle-things'; ...
111 | 'train', 'vehicle-things'; ...
112 | 'truck', 'vehicle-things'; ...
113 | 'boat', 'vehicle-things'; ...
114 | 'traffic light', 'outdoor-things'; ...
115 | 'fire hydrant', 'outdoor-things'; ...
116 | 'street sign', 'outdoor-things'; ...
117 | 'stop sign', 'outdoor-things'; ...
118 | 'parking meter', 'outdoor-things'; ...
119 | 'bench', 'outdoor-things'; ...
120 | 'bird', 'animal-things'; ...
121 | 'cat', 'animal-things'; ...
122 | 'dog', 'animal-things'; ...
123 | 'horse', 'animal-things'; ...
124 | 'sheep', 'animal-things'; ...
125 | 'cow', 'animal-things'; ...
126 | 'elephant', 'animal-things'; ...
127 | 'bear', 'animal-things'; ...
128 | 'zebra', 'animal-things'; ...
129 | 'giraffe', 'animal-things'; ...
130 | 'hat', 'accessory-things'; ...
131 | 'backpack', 'accessory-things'; ...
132 | 'umbrella', 'accessory-things'; ...
133 | 'shoe', 'accessory-things'; ...
134 | 'eye glasses', 'accessory-things'; ...
135 | 'handbag', 'accessory-things'; ...
136 | 'tie', 'accessory-things'; ...
137 | 'suitcase', 'accessory-things'; ...
138 | 'frisbee', 'sports-things'; ...
139 | 'skis', 'sports-things'; ...
140 | 'snowboard', 'sports-things'; ...
141 | 'sports ball', 'sports-things'; ...
142 | 'kite', 'sports-things'; ...
143 | 'baseball bat', 'sports-things'; ...
144 | 'baseball glove', 'sports-things'; ...
145 | 'skateboard', 'sports-things'; ...
146 | 'surfboard', 'sports-things'; ...
147 | 'tennis racket', 'sports-things'; ...
148 | 'bottle', 'kitchen-things'; ...
149 | 'plate', 'kitchen-things'; ...
150 | 'wine glass', 'kitchen-things'; ...
151 | 'cup', 'kitchen-things'; ...
152 | 'fork', 'kitchen-things'; ...
153 | 'knife', 'kitchen-things'; ...
154 | 'spoon', 'kitchen-things'; ...
155 | 'bowl', 'kitchen-things'; ...
156 | 'banana', 'food-things'; ...
157 | 'apple', 'food-things'; ...
158 | 'sandwich', 'food-things'; ...
159 | 'orange', 'food-things'; ...
160 | 'broccoli', 'food-things'; ...
161 | 'carrot', 'food-things'; ...
162 | 'hot dog', 'food-things'; ...
163 | 'pizza', 'food-things'; ...
164 | 'donut', 'food-things'; ...
165 | 'cake', 'food-things'; ...
166 | 'chair', 'furniture-things'; ...
167 | 'couch', 'furniture-things'; ...
168 | 'potted plant', 'furniture-things'; ...
169 | 'bed', 'furniture-things'; ...
170 | 'mirror', 'furniture-things'; ...
171 | 'dining table', 'furniture-things'; ...
172 | 'window', 'furniture-things'; ...
173 | 'desk', 'furniture-things'; ...
174 | 'toilet', 'furniture-things'; ...
175 | 'door', 'furniture-things'
176 | 'tv', 'electronic-things'; ...
177 | 'laptop', 'electronic-things'; ...
178 | 'mouse', 'electronic-things'; ...
179 | 'remote', 'electronic-things'; ...
180 | 'keyboard', 'electronic-things'; ...
181 | 'cell phone', 'electronic-things'; ...
182 | 'microwave', 'appliance-things'; ...
183 | 'oven', 'appliance-things'; ...
184 | 'toaster', 'appliance-things'; ...
185 | 'sink', 'appliance-things'; ...
186 | 'refrigerator', 'appliance-things'; ...
187 | 'blender', 'appliance-things'; ...
188 | 'book', 'indoor-things'; ...
189 | 'clock', 'indoor-things'; ...
190 | 'vase', 'indoor-things'; ...
191 | 'scissors', 'indoor-things'; ...
192 | 'teddy bear', 'indoor-things'; ...
193 | 'hair drier', 'indoor-things'; ...
194 | 'toothbrush', 'indoor-things'; ...
195 | 'hair brush', 'indoor-things'; ...
196 | };
197 |
198 | % Convert to tree
199 | [nodes, categories, heights] = parentsToTrees(parents);
200 | end
201 |
202 | function[nodes, categories, heights, parents] = getClassHierarchyStuff(~)
203 | % Returns a hierarchy of stuff classes to be plotted with treeplot(nodes)
204 |
205 | parents = { ...
206 | 'stuff', 'stuff'; ...
207 | ... % End of level 1
208 | 'indoor-super-stuff', 'stuff'; ...
209 | 'outdoor-super-stuff', 'stuff'; ...
210 | ... % End of level 2
211 | 'rawmaterial-stuff', 'indoor-super-stuff'; ...
212 | 'wall-stuff', 'indoor-super-stuff'; ...
213 | 'ceiling-stuff', 'indoor-super-stuff'; ...
214 | 'floor-stuff', 'indoor-super-stuff'; ...
215 | 'window-stuff', 'indoor-super-stuff'; ...
216 | 'furniture-stuff', 'indoor-super-stuff'; ...
217 | 'textile-stuff', 'indoor-super-stuff'; ...
218 | 'food-stuff', 'indoor-super-stuff'; ...
219 | 'building-stuff', 'outdoor-super-stuff'; ...
220 | 'structural-stuff', 'outdoor-super-stuff'; ...
221 | 'plant-stuff', 'outdoor-super-stuff'; ...
222 | 'sky-stuff', 'outdoor-super-stuff'; ...
223 | 'solid-stuff', 'outdoor-super-stuff'; ...
224 | 'ground-stuff', 'outdoor-super-stuff'; ...
225 | 'water-stuff', 'outdoor-super-stuff'; ...
226 | ... % End of level 3
227 | 'cardboard', 'rawmaterial-stuff'; ...
228 | 'paper', 'rawmaterial-stuff'; ...
229 | 'plastic', 'rawmaterial-stuff'; ...
230 | 'metal', 'rawmaterial-stuff'; ...
231 | 'wall-tile', 'wall-stuff'; ...
232 | 'wall-panel', 'wall-stuff'; ...
233 | 'wall-wood', 'wall-stuff'; ...
234 | 'wall-brick', 'wall-stuff'; ...
235 | 'wall-stone', 'wall-stuff'; ...
236 | 'wall-concrete', 'wall-stuff'; ...
237 | 'wall-other', 'wall-stuff'; ...
238 | 'ceiling-tile', 'ceiling-stuff'; ...
239 | 'ceiling-other', 'ceiling-stuff'; ...
240 | 'carpet', 'floor-stuff'; ...
241 | 'floor-tile', 'floor-stuff'; ...
242 | 'floor-wood', 'floor-stuff'; ...
243 | 'floor-marble', 'floor-stuff'; ...
244 | 'floor-stone', 'floor-stuff'; ...
245 | 'floor-other', 'floor-stuff'; ...
246 | 'window-blind', 'window-stuff'; ...
247 | 'window-other', 'window-stuff'; ...
248 | 'door-stuff', 'furniture-stuff'; ...
249 | 'desk-stuff', 'furniture-stuff'; ...
250 | 'table', 'furniture-stuff'; ...
251 | 'shelf', 'furniture-stuff'; ...
252 | 'cabinet', 'furniture-stuff'; ...
253 | 'cupboard', 'furniture-stuff'; ...
254 | 'mirror-stuff', 'furniture-stuff'; ...
255 | 'counter', 'furniture-stuff'; ...
256 | 'light', 'furniture-stuff'; ...
257 | 'stairs', 'furniture-stuff'; ...
258 | 'furniture-other', 'furniture-stuff'; ...
259 | 'rug', 'textile-stuff'; ...
260 | 'mat', 'textile-stuff'; ...
261 | 'towel', 'textile-stuff'; ...
262 | 'napkin', 'textile-stuff'; ...
263 | 'clothes', 'textile-stuff'; ...
264 | 'cloth', 'textile-stuff'; ...
265 | 'curtain', 'textile-stuff'; ...
266 | 'blanket', 'textile-stuff'; ...
267 | 'pillow', 'textile-stuff'; ...
268 | 'banner', 'textile-stuff'; ...
269 | 'textile-other', 'textile-stuff'; ...
270 | 'fruit', 'food-stuff'; ...
271 | 'salad', 'food-stuff'; ...
272 | 'vegetable', 'food-stuff'; ...
273 | 'food-other', 'food-stuff'; ...
274 | ... % End of level 4 left
275 | 'house', 'building-stuff'; ...
276 | 'skyscraper', 'building-stuff'; ...
277 | 'bridge', 'building-stuff'; ...
278 | 'tent', 'building-stuff'; ...
279 | 'roof', 'building-stuff'; ...
280 | 'building-other', 'building-stuff'; ...
281 | 'fence', 'structural-stuff'; ...
282 | 'cage', 'structural-stuff'; ...
283 | 'net', 'structural-stuff'; ...
284 | 'railing', 'structural-stuff'; ...
285 | 'structural-other', 'structural-stuff'; ...
286 | 'grass', 'plant-stuff'; ...
287 | 'tree', 'plant-stuff'; ...
288 | 'bush', 'plant-stuff'; ...
289 | 'leaves', 'plant-stuff'; ...
290 | 'flower', 'plant-stuff'; ...
291 | 'branch', 'plant-stuff'; ...
292 | 'moss', 'plant-stuff'; ...
293 | 'straw', 'plant-stuff'; ...
294 | 'plant-other', 'plant-stuff'; ...
295 | 'clouds', 'sky-stuff'; ...
296 | 'sky-other', 'sky-stuff'; ...
297 | 'wood', 'solid-stuff'; ...
298 | 'rock', 'solid-stuff'; ...
299 | 'stone', 'solid-stuff'; ...
300 | 'mountain', 'solid-stuff'; ...
301 | 'hill', 'solid-stuff'; ...
302 | 'solid-other', 'solid-stuff'; ...
303 | 'sand', 'ground-stuff'; ...
304 | 'snow', 'ground-stuff'; ...
305 | 'dirt', 'ground-stuff'; ...
306 | 'mud', 'ground-stuff'; ...
307 | 'gravel', 'ground-stuff'; ...
308 | 'road', 'ground-stuff'; ...
309 | 'pavement', 'ground-stuff'; ...
310 | 'railroad', 'ground-stuff'; ...
311 | 'platform', 'ground-stuff'; ...
312 | 'playingfield', 'ground-stuff'; ...
313 | 'ground-other', 'ground-stuff'; ...
314 | 'fog', 'water-stuff'; ...
315 | 'river', 'water-stuff'; ...
316 | 'sea', 'water-stuff'; ...
317 | 'waterdrops', 'water-stuff'; ...
318 | 'water-other', 'water-stuff'; ...
319 | };
320 |
321 | % Convert to tree
322 | [nodes, categories, heights] = parentsToTrees(parents);
323 | end
324 |
325 | function[nodes, categories, heights, parents] = getClassHierarchyStuffThings()
326 | % [nodes, categories, heights, parents] = getClassHierarchyStuffThings()
327 |
328 | % Get stuff and thing subtrees
329 | [~, ~, ~, parentsS] = CocoStuffClasses.getClassHierarchyStuff();
330 | [~, ~, ~, parentsT] = CocoStuffClasses.getClassHierarchyThings();
331 |
332 | % Add root node which holds both subtrees
333 | parentsS{1, 2} = 'root';
334 | parentsT{1, 2} = 'root';
335 | parents = [{'root', 'root'}; parentsT; parentsS];
336 |
337 | % Convert to tree
338 | [nodes, categories, heights] = parentsToTrees(parents);
339 | end
340 |
341 | function[stuffLabels, thingLabels, stuffLabelInds, thingLabelInds] = getStuffThingLabels()
342 | % [stuffLabels, thingLabels, stuffLabelInds, thingLabelInds] = getStuffThingLabels()
343 | %
344 | % Note that "unlabeled" is neither thing nor stuff!
345 |
346 | % Get all stuff and thing labels
347 | [stuffLabelsAll, thingLabelsAll] = CocoStuffClasses.getStuffThingLabelsAll();
348 |
349 | % Limit to classes used in current annotation
350 | labelNames = CocoStuffClasses.getLabelNamesThingsStuff();
351 | thingLabelInds = find(ismember(labelNames, thingLabelsAll));
352 | stuffLabelInds = find(ismember(labelNames, stuffLabelsAll));
353 | thingLabels = labelNames(thingLabelInds);
354 | stuffLabels = labelNames(stuffLabelInds);
355 |
356 | % Check consistency
357 | allInds = [1; thingLabelInds; stuffLabelInds];
358 | assert(isequal(allInds, unique(allInds)));
359 | end
360 |
361 | function[stuffLabels, thingLabels, stuffLabelInds, thingLabelInds] = getStuffThingLabelsAll()
362 | % [stuffLabels, thingLabels, stuffLabelInds, thingLabelInds] = getStuffThingLabels()
363 | %
364 | % Note that "unlabeled" is neither thing nor stuff!
365 |
366 | labelNamesAll = ['unlabeled'; CocoStuffClasses.getLabelNamesThingsStuff()];
367 | thingLabelInds = (1 + 1 : CocoStuffClasses.thingCount + 1)';
368 | stuffLabelInds = (1 + CocoStuffClasses.thingCount + 1 : numel(labelNamesAll))';
369 | thingLabels = labelNamesAll(thingLabelInds);
370 | stuffLabels = labelNamesAll(stuffLabelInds);
371 |
372 | % Check consistency
373 | allInds = [1; thingLabelInds; stuffLabelInds];
374 | assert(isequal(allInds, unique(allInds)));
375 | end
376 |
377 | function[dists] = hierarchyDistances()
378 | % [dists] = hierarchyDistances()
379 | %
380 | % Returns a symmetric matrix of pairwise distances between
381 | % labels i and j, where the distance function is the path
382 | % length between i and j in the hierarchy.
383 |
384 | % Get dataset label hierarchy
385 | [nodes, categories, heights, ~] = CocoStuffClasses.getClassHierarchy();
386 |
387 | % Init
388 | nodeCount = numel(nodes);
389 | distsN = zeros(nodeCount, nodeCount);
390 |
391 | for i = 2 : nodeCount % skip "unlabeled" class
392 | for j = i + 1 : nodeCount
393 | distI = 0;
394 | distJ = 0;
395 | curI = i;
396 | curJ = j;
397 | while curI ~= curJ
398 | if heights(curI) < heights(curJ)
399 | % Go to parent of j
400 | curJ = nodes(curJ);
401 | distJ = distJ + 1;
402 | elseif heights(curI) > heights(curJ)
403 | % Go to parent of i
404 | curI = nodes(curI);
405 | distI = distI + 1;
406 | else
407 | % Go to parent of j
408 | curJ = nodes(curJ);
409 | distJ = distJ + 1;
410 |
411 | % Go to parent of i
412 | curI = nodes(curI);
413 | distI = distI + 1;
414 | end
415 | end
416 | % The final distance is the sum of both distances
417 | dist = distI + distJ;
418 |
419 | distsN(i, j) = dist;
420 | distsN(j, i) = dist;
421 | end
422 | end
423 |
424 | % Remove all inner nodes of the tree
425 | labelNames = CocoStuffClasses.getLabelNamesThingsStuff();
426 | relInds = indicesOfAInB(labelNames(2:end), categories);
427 | distsN = distsN(relInds, relInds);
428 |
429 | % Add "unlabeled" class with largest distance to any label
430 | maxDist = max(distsN(:));
431 | dists = nan(size(distsN) + 1);
432 | dists(2:end, 2:end) = distsN;
433 | dists(1, 2:end) = maxDist + 1;
434 | dists(2:end, 1) = maxDist + 1;
435 | dists(1, 1) = 0;
436 | end
437 |
438 | function showClassHierarchyStuff()
439 | % showClassHierarchyStuff()
440 |
441 | [nodes, cats] = CocoStuffClasses.getClassHierarchyStuff();
442 | % Make label names nicer/shorter
443 | cats = strrep(cats, '-stuff', '');
444 | cats = strrep(cats, '-things', '');
445 | cats = strrep(cats, '-super', '');
446 |
447 | % Plot label hierarchy
448 | plotTree(nodes, cats);
449 | end
450 |
451 | function showClassHierarchyThings()
452 | % showClassHierarchyThings()
453 |
454 | [nodes, cats] = CocoStuffClasses.getClassHierarchyThings();
455 |
456 | % Make label names nicer/shorter
457 | cats = strrep(cats, '-stuff', '');
458 | cats = strrep(cats, '-things', '');
459 | cats = strrep(cats, '-super', '');
460 |
461 | % Plot label hierarchy
462 | plotTree(nodes, cats);
463 | end
464 |
465 | function showClassHierarchyStuffThings()
466 | % showClassHierarchyStuffThings()
467 |
468 | [nodes, cats] = CocoStuffClasses.getClassHierarchyStuffThings();
469 |
470 | % Make label names nicer/shorter
471 | cats = strrep(cats, '-stuff', '');
472 | cats = strrep(cats, '-things', '');
473 | cats = strrep(cats, '-super', '');
474 |
475 | % Start figure
476 | figLabelHierarchy = figure();
477 | set(gcf, 'Color', 'w');
478 |
479 | % Plot label hierarchy
480 | plotTree(nodes, cats, 1, figLabelHierarchy);
481 | plotTree(nodes, cats, -1, figLabelHierarchy);
482 |
483 | % Set figure size
484 | pos = get(figLabelHierarchy, 'Position');
485 | newPos = pos;
486 | newPos(3) = 1000;
487 | newPos(4) = 1000;
488 | set(figLabelHierarchy, 'Position', newPos);
489 | end
490 | end
491 | end
--------------------------------------------------------------------------------
/dataset/code/cmapStuff.m:
--------------------------------------------------------------------------------
1 | function[cmap] = cmapStuff()
2 | % [cmap] = cmapStuff()
3 | %
4 | % Returns the color map for stuff labels in CocoStuff.
5 | %
6 | % Copyright by Holger Caesar, 2017
7 |
8 | % Settings
9 | stuffCount = CocoStuffClasses.stuffCount;
10 |
11 | % Get jet colormap and modify third dimension of hsv value
12 | stuffColors = jet(stuffCount);
13 | stuffColors = rgb2hsv(stuffColors);
14 | stuffColors(:, 3) = 0.5 * stuffColors(:, 3);
15 |
16 | stuffColors = hsv2rgb(stuffColors);
17 |
18 | % Shuffle colors and reset random number generator
19 | backup = rng;
20 | rng(42);
21 | stuffColors = stuffColors(randperm(stuffCount), :);
22 | rng(backup);
23 |
24 | cmap = [0, 0, 0; stuffColors];
--------------------------------------------------------------------------------
/dataset/code/cmapThings.m:
--------------------------------------------------------------------------------
1 | function[cmap] = cmapThings()
2 | % [cmap] = cmapThings()
3 | %
4 | % Returns the color map for thing labels in CocoStuff.
5 | %
6 | % Copyright by Holger Caesar, 2017
7 |
8 | % Settings
9 | thingColors = jet(CocoStuffClasses.thingCount);
10 |
11 | % Shuffle colors and reset random number generator
12 | backup = rng;
13 | rng(42);
14 | thingColors = thingColors(randperm(CocoStuffClasses.thingCount), :);
15 | rng(backup);
16 |
17 | cmap = [0, 0, 0; thingColors];
--------------------------------------------------------------------------------
/dataset/code/cmapThingsStuff.m:
--------------------------------------------------------------------------------
1 | function[cmap] = cmapThingsStuff()
2 | % [cmap] = cmapThingsStuff()
3 | %
4 | % Returns the color map for stuff and thing labels in CocoStuff.
5 | %
6 | % Copyright by Holger Caesar, 2017
7 |
8 | % Get stuff and thing color
9 | stuffColors = cmapStuff();
10 | thingColors = cmapThings();
11 |
12 | % Remove duplicate backgrund
13 | stuffColors(1, :) = [];
14 | thingColors(1, :) = [];
15 |
16 | % Combine unlabeled (black), things and stuff
17 | cmap = [0, 0, 0; thingColors; stuffColors];
--------------------------------------------------------------------------------
/dataset/code/cocoStuff_root.m:
--------------------------------------------------------------------------------
1 | function[root] = cocoStuff_root()
2 | % [root] = cocoStuff_root()
3 | %
4 | % Returns the absolute path to the root directory of COCO-Stuff.
5 | %
6 | % Copyright by Holger Caesar, 2016
7 |
8 | root = fileparts(fileparts(fileparts(mfilename('fullpath'))));
--------------------------------------------------------------------------------
/dataset/code/conversion/convertAnnotationsDeeplab.m:
--------------------------------------------------------------------------------
1 | function convertAnnotationsDeeplab()
2 | % convertAnnotationsDeeplab()
3 | %
4 | % Convert the COCO-Stuff annotation files into a suitable format for
5 | % DeepLab. Offsets the label indices by -1 and converts them to uint8.
6 | %
7 | % Copyrights by Holger Caesar, 2016
8 |
9 | % Settings
10 | cocoStuffFolder = cocoStuff_root();
11 | annotationFolder = fullfile(cocoStuffFolder, 'dataset', 'annotations');
12 | saveFolder = fullfile(cocoStuffFolder, 'models', 'deeplab', 'cocostuff', 'data', 'annotations');
13 |
14 | % Get all images
15 | imgs_dir = dir(fullfile(annotationFolder, '*.mat'));
16 |
17 | % Create saveFolder if necessary
18 | if ~exist(saveFolder, 'dir')
19 | mkdir(saveFolder)
20 | end
21 |
22 | for i = 1 : numel(imgs_dir)
23 | fprintf(1, 'Processing image %d of %d ...\n', i, numel(imgs_dir));
24 |
25 | labelStruct = load(fullfile(annotationFolder, imgs_dir(i).name));
26 | labelMap = labelStruct.S;
27 | assert(max(labelMap(:)) <= 182);
28 | labelMap = labelMap - 1;
29 | labelMap(labelMap == -1) = 255;
30 | labelMap = uint8(labelMap);
31 |
32 | imwrite(labelMap, fullfile(saveFolder, strrep(imgs_dir(i).name, '.mat', '.png')));
33 | end
34 |
--------------------------------------------------------------------------------
/dataset/code/conversion/convertAnnotationsJSON.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 |
3 | # convertAnnotationsJSON
4 | #
5 | # This script converts the .mat file annotations of the COCO-Stuff v. 1.1
6 | # into a single .json file compatible with the COCO API.
7 | #
8 | # To run this script you need to download the COCO-Stuff code,
9 | # COCO-Stuff dataset, COCO annotations and COCO API.
10 | #
11 | # For more information, go to: https://github.com/nightrome/cocostuff
12 | #
13 | # Copyright by Holger Caesar, 2017
14 |
15 | # Settings
16 | import inspect, os
17 | rootFolder = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))))
18 | annotFolder = os.path.join(rootFolder, 'dataset', 'annotations')
19 | stuffOnly = False
20 | cocoApiFolder = os.path.join(rootFolder, 'downloads', 'cocoApi', 'coco-336d2a27c91e3c0663d2dcf0b13574674d30f88e', 'PythonAPI')
21 | annPath = os.path.join(rootFolder, 'downloads', 'instances_train-val2014', 'annotations', 'instances_train2014.json')
22 | if stuffOnly:
23 | jsonPath = os.path.join(rootFolder, 'dataset', 'cocostuff-10k-v1.1-stuffOnly.json')
24 | else:
25 | jsonPath = os.path.join(rootFolder, 'dataset', 'cocostuff-10k-v1.1.json')
26 | indent = 0
27 | separators = (',', ':')
28 | ensure_ascii = False
29 | oldStuffStartIdx = 92
30 | newStuffStartIdx = 92
31 | useNewMatlabFileFormat = False
32 |
33 | # Add COCO to path
34 | import sys
35 | sys.path.append(cocoApiFolder)
36 |
37 | from pycocotools import mask
38 | import numpy as np
39 | import pylab
40 | import scipy.io # To open matlab < 7.0 files
41 | import h5py # To open matlab >=7.3 files
42 |
43 | import glob # to get the files in a folder
44 | import io
45 | import json
46 |
47 | # Get images
48 | imageList = glob.glob(annotFolder + '/*.mat')
49 | imageCount = len(imageList)
50 | imageIds = [int(imageName[-16:-4]) for imageName in imageList]
51 |
52 | # Load COCO API
53 | print("Loading COCO annotations...")
54 | with open(annPath) as annFile:
55 | data = json.load(annFile)
56 |
57 | # Init
58 | annId = 0
59 |
60 | print("Writing JSON metadata...")
61 | with io.open(jsonPath, 'w', encoding='utf8') as outfile:
62 | # Global start
63 | outfile.write(unicode('{\n'))
64 |
65 | # Write info
66 | infodata = {'description': 'This is the 1.1 release of the COCO-Stuff (10K) dataset.',
67 | 'url': 'https://github.com/nightrome/cocostuff',
68 | 'version': '1.1',
69 | 'year': 2017,
70 | 'contributor': 'H. Caesar, J. Uijlings and V. Ferrari',
71 | 'date_created': '2017-04-06 12:00:00.0'},
72 | infodata = {'info': infodata}
73 | str_ = json.dumps(infodata, indent=indent, sort_keys=True, separators=separators, ensure_ascii=ensure_ascii)
74 | str_ = str_[1:-2] + ',\n' # Remove brackets and add comma
75 | outfile.write(unicode(str_))
76 |
77 | # Write images
78 | imdata = [i for i in data['images'] if i['id'] in imageIds]
79 | imdata = {'images': imdata}
80 | str_ = json.dumps(imdata, indent=indent, sort_keys=True, separators=separators, ensure_ascii=ensure_ascii)
81 | str_ = str_[1:-2] + ',\n' # Remove brackets and add comma
82 | outfile.write(unicode(str_))
83 |
84 | # Write licenses
85 | licdata = {'licenses': data['licenses']}
86 | str_ = json.dumps(licdata, indent=indent, sort_keys=True, separators=separators, ensure_ascii=ensure_ascii)
87 | str_ = str_[1:-2] + ',\n' # Remove brackets and add comma
88 | outfile.write(unicode(str_))
89 |
90 | # Write categories
91 | catdata = data['categories']
92 | catdata.extend([
93 | {'id': 92, 'name': 'banner', 'supercategory': 'textile'},
94 | {'id': 93, 'name': 'blanket', 'supercategory': 'textile'},
95 | {'id': 94, 'name': 'branch', 'supercategory': 'plant'},
96 | {'id': 95, 'name': 'bridge', 'supercategory': 'building'},
97 | {'id': 96, 'name': 'building-other', 'supercategory': 'building'},
98 | {'id': 97, 'name': 'bush', 'supercategory': 'plant'},
99 | {'id': 98, 'name': 'cabinet', 'supercategory': 'furniture-stuff'},
100 | {'id': 99, 'name': 'cage', 'supercategory': 'structural'},
101 | {'id': 100, 'name': 'cardboard', 'supercategory': 'raw-material'},
102 | {'id': 101, 'name': 'carpet', 'supercategory': 'floor'},
103 | {'id': 102, 'name': 'ceiling-other', 'supercategory': 'ceiling'},
104 | {'id': 103, 'name': 'ceiling-tile', 'supercategory': 'ceiling'},
105 | {'id': 104, 'name': 'cloth', 'supercategory': 'textile'},
106 | {'id': 105, 'name': 'clothes', 'supercategory': 'textile'},
107 | {'id': 106, 'name': 'clouds', 'supercategory': 'sky'},
108 | {'id': 107, 'name': 'counter', 'supercategory': 'furniture-stuff'},
109 | {'id': 108, 'name': 'cupboard', 'supercategory': 'furniture-stuff'},
110 | {'id': 109, 'name': 'curtain', 'supercategory': 'textile'},
111 | {'id': 110, 'name': 'desk-stuff', 'supercategory': 'furniture-stuff'},
112 | {'id': 111, 'name': 'dirt', 'supercategory': 'ground'},
113 | {'id': 112, 'name': 'door-stuff', 'supercategory': 'furniture-stuff'},
114 | {'id': 113, 'name': 'fence', 'supercategory': 'structural'},
115 | {'id': 114, 'name': 'floor-marble', 'supercategory': 'floor'},
116 | {'id': 115, 'name': 'floor-other', 'supercategory': 'floor'},
117 | {'id': 116, 'name': 'floor-stone', 'supercategory': 'floor'},
118 | {'id': 117, 'name': 'floor-tile', 'supercategory': 'floor'},
119 | {'id': 118, 'name': 'floor-wood', 'supercategory': 'floor'},
120 | {'id': 119, 'name': 'flower', 'supercategory': 'plant'},
121 | {'id': 120, 'name': 'fog', 'supercategory': 'water'},
122 | {'id': 121, 'name': 'food-other', 'supercategory': 'food-stuff'},
123 | {'id': 122, 'name': 'fruit', 'supercategory': 'food-stuff'},
124 | {'id': 123, 'name': 'furniture-other', 'supercategory': 'furniture-stuff'},
125 | {'id': 124, 'name': 'grass', 'supercategory': 'plant'},
126 | {'id': 125, 'name': 'gravel', 'supercategory': 'ground'},
127 | {'id': 126, 'name': 'ground-other', 'supercategory': 'ground'},
128 | {'id': 127, 'name': 'hill', 'supercategory': 'solid'},
129 | {'id': 128, 'name': 'house', 'supercategory': 'building'},
130 | {'id': 129, 'name': 'leaves', 'supercategory': 'plant'},
131 | {'id': 130, 'name': 'light', 'supercategory': 'furniture-stuff'},
132 | {'id': 131, 'name': 'mat', 'supercategory': 'textile'},
133 | {'id': 132, 'name': 'metal', 'supercategory': 'raw-material'},
134 | {'id': 133, 'name': 'mirror-stuff', 'supercategory': 'furniture-stuff'},
135 | {'id': 134, 'name': 'moss', 'supercategory': 'plant'},
136 | {'id': 135, 'name': 'mountain', 'supercategory': 'solid'},
137 | {'id': 136, 'name': 'mud', 'supercategory': 'ground'},
138 | {'id': 137, 'name': 'napkin', 'supercategory': 'textile'},
139 | {'id': 138, 'name': 'net', 'supercategory': 'structural'},
140 | {'id': 139, 'name': 'paper', 'supercategory': 'raw-material'},
141 | {'id': 140, 'name': 'pavement', 'supercategory': 'ground'},
142 | {'id': 141, 'name': 'pillow', 'supercategory': 'textile'},
143 | {'id': 142, 'name': 'plant-other', 'supercategory': 'plant'},
144 | {'id': 143, 'name': 'plastic', 'supercategory': 'raw-material'},
145 | {'id': 144, 'name': 'platform', 'supercategory': 'ground'},
146 | {'id': 145, 'name': 'playingfield', 'supercategory': 'ground'},
147 | {'id': 146, 'name': 'railing', 'supercategory': 'structural'},
148 | {'id': 147, 'name': 'railroad', 'supercategory': 'ground'},
149 | {'id': 148, 'name': 'river', 'supercategory': 'water'},
150 | {'id': 149, 'name': 'road', 'supercategory': 'ground'},
151 | {'id': 150, 'name': 'rock', 'supercategory': 'solid'},
152 | {'id': 151, 'name': 'roof', 'supercategory': 'building'},
153 | {'id': 152, 'name': 'rug', 'supercategory': 'textile'},
154 | {'id': 153, 'name': 'salad', 'supercategory': 'food-stuff'},
155 | {'id': 154, 'name': 'sand', 'supercategory': 'ground'},
156 | {'id': 155, 'name': 'sea', 'supercategory': 'water'},
157 | {'id': 156, 'name': 'shelf', 'supercategory': 'furniture-stuff'},
158 | {'id': 157, 'name': 'sky-other', 'supercategory': 'sky'},
159 | {'id': 158, 'name': 'skyscraper', 'supercategory': 'building'},
160 | {'id': 159, 'name': 'snow', 'supercategory': 'ground'},
161 | {'id': 160, 'name': 'solid-other', 'supercategory': 'solid'},
162 | {'id': 161, 'name': 'stairs', 'supercategory': 'furniture-stuff'},
163 | {'id': 162, 'name': 'stone', 'supercategory': 'solid'},
164 | {'id': 163, 'name': 'straw', 'supercategory': 'plant'},
165 | {'id': 164, 'name': 'structural-other', 'supercategory': 'structural'},
166 | {'id': 165, 'name': 'table', 'supercategory': 'furniture-stuff'},
167 | {'id': 166, 'name': 'tent', 'supercategory': 'building'},
168 | {'id': 167, 'name': 'textile-other', 'supercategory': 'textile'},
169 | {'id': 168, 'name': 'towel', 'supercategory': 'textile'},
170 | {'id': 169, 'name': 'tree', 'supercategory': 'plant'},
171 | {'id': 170, 'name': 'vegetable', 'supercategory': 'food-stuff'},
172 | {'id': 171, 'name': 'wall-brick', 'supercategory': 'wall'},
173 | {'id': 172, 'name': 'wall-concrete', 'supercategory': 'wall'},
174 | {'id': 173, 'name': 'wall-other', 'supercategory': 'wall'},
175 | {'id': 174, 'name': 'wall-panel', 'supercategory': 'wall'},
176 | {'id': 175, 'name': 'wall-stone', 'supercategory': 'wall'},
177 | {'id': 176, 'name': 'wall-tile', 'supercategory': 'wall'},
178 | {'id': 177, 'name': 'wall-wood', 'supercategory': 'wall'},
179 | {'id': 178, 'name': 'water-other', 'supercategory': 'water'},
180 | {'id': 179, 'name': 'waterdrops', 'supercategory': 'water'},
181 | {'id': 180, 'name': 'window-blind', 'supercategory': 'window'},
182 | {'id': 181, 'name': 'window-other', 'supercategory': 'window'},
183 | {'id': 182, 'name': 'wood', 'supercategory': 'solid'}
184 | ])
185 | catdata = {'categories': catdata}
186 | str_ = json.dumps(catdata, indent=indent, sort_keys=True, separators=separators, ensure_ascii=ensure_ascii)
187 | str_ = str_[1:-2] + ',\n' # Remove brackets and add comma
188 | outfile.write(unicode(str_))
189 |
190 | # Start
191 | outfile.write(unicode('"annotations": [\n'))
192 |
193 | for imageIdx, imageName in enumerate(imageList):
194 |
195 | # Write annotations
196 | print "Writing JSON annotation %d of %d..." % (imageIdx+1, imageCount)
197 |
198 | # Read annotation file
199 | annotPath = os.path.join(annotFolder, imageName)
200 | if useNewMatlabFileFormat:
201 | matfile = h5py.File(annotPath)
202 | S = matfile['S'].value
203 | else:
204 | matfile = scipy.io.loadmat(annotPath)
205 | S = matfile['S']
206 |
207 | [h, w] = S.shape
208 | regionLabelsStuff = matfile['regionLabelsStuff']
209 | labelsAll = np.unique(regionLabelsStuff)
210 | labelsStuff = [i for i in labelsAll if i >= oldStuffStartIdx]
211 |
212 | # Add thing annotations from COCO
213 | if not stuffOnly:
214 | anndatas = [i for i in data['annotations'] if i['image_id'] == imageIds[imageIdx]]
215 |
216 | for i in xrange(0, len(anndatas)):
217 | # Write JSON
218 | str_ = json.dumps(anndatas[i], indent=indent, sort_keys=True, separators=separators, ensure_ascii=ensure_ascii)
219 | outfile.write(unicode(str_))
220 |
221 | # Increment ann id
222 | annId = annId + 1
223 |
224 | # Add a comma and line break after each annotation
225 | outfile.write(unicode(','))
226 | outfile.write(unicode('\n'))
227 |
228 | # Add stuff annotations
229 | for i, labelIdx in enumerate(labelsStuff):
230 | # Create mask and encode it
231 | labelMask = np.zeros((h, w))
232 | labelMask[:, :] = S == labelIdx
233 | labelMask = np.expand_dims(labelMask, axis=2)
234 | labelMask = labelMask.astype('uint8')
235 | labelMask = np.asfortranarray(labelMask)
236 | Rs = mask.encode(labelMask)
237 |
238 | # Create annotation data
239 | anndata = {}
240 | anndata['id'] = annId
241 | anndata['image_id'] = imageIds[imageIdx]
242 | anndata['category_id'] = labelIdx - oldStuffStartIdx + newStuffStartIdx # Stuff classes start from 92 in v. 1.1
243 | anndata['segmentation'] = Rs
244 | anndata['area'] = float(mask.area(Rs))
245 | anndata['bbox'] = mask.toBbox(Rs).tolist()
246 | anndata['iscrowd'] = 1
247 |
248 | # Write JSON
249 | str_ = json.dumps(anndata, indent=indent, sort_keys=True, separators=separators, ensure_ascii=ensure_ascii)
250 | outfile.write(unicode(str_))
251 |
252 | # Increment ann id
253 | annId = annId + 1
254 |
255 | # Add a comma and line break after each annotation
256 | if not (imageIdx == imageCount-1 and i == len(labelsStuff)-1):
257 | outfile.write(unicode(','))
258 | outfile.write(unicode('\n'))
259 |
260 | # End
261 | outfile.write(unicode(']\n'))
262 |
263 | # Global end
264 | outfile.write(unicode('}'))
265 |
--------------------------------------------------------------------------------
/dataset/code/conversion/convertAnnotationsToVersion11.m:
--------------------------------------------------------------------------------
1 | function convertAnnotationsToVersion11()
2 | % convertAnnotationsToVersion11()
3 | %
4 | % This script takes the unzipped contents of cocostuff-10k-v1.0.zip and
5 | % converts the annotations from version 1.0 to 1.1, where COCO has 91 thing
6 | % classes instead of 80. Afterwards the annotations1.1 folder needs to be
7 | % manually renamed to annotations.
8 | %
9 | % Copyright by Holger Caesar, 2017
10 |
11 | % Settings
12 | cocoStuffFolder = '/home/holger/Downloads/cocostuff-10k-v1.0';
13 | inputFolder = fullfile(cocoStuffFolder, 'annotations');
14 | outputFolder = fullfile(cocoStuffFolder, 'annotations1.1');
15 |
16 | % Create output Folder
17 | if ~exist(outputFolder, 'dir')
18 | mkdir(outputFolder);
19 | end
20 |
21 | % Get file list
22 | [fileList, fileCount] = dirSubfolders(inputFolder, '.mat', true);
23 |
24 | for fileIdx = 1 : fileCount
25 | % Check if output file exists
26 | fileName = fileList{fileIdx};
27 | filePath = fullfile(inputFolder, [fileName, '.mat']);
28 | outFilePath = fullfile(outputFolder, [fileName, '.mat']);
29 | if exist(outFilePath, 'file')
30 | fprintf('Skipping existing file: %s\n', outFilePath);
31 | continue;
32 | end
33 |
34 | % Load file
35 | fileStruct = load(filePath);
36 |
37 | % Update names
38 | assert(numel(fileStruct.names) == 172)
39 | thingNames = {'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'street sign', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'hat', 'backpack', 'umbrella', 'shoe', 'eyeglasses', 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', 'bottle', 'plate', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'mirror-things', 'dining table', 'window', 'desk-things', 'toilet', 'door-things', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'blender', 'book', 'clock', 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush', 'hairbrush'}';
40 | stuffNames = fileStruct.names(82:end)';
41 | assert(isempty(intersect(thingNames, stuffNames)));
42 | namesNew = [thingNames; stuffNames]; % Unlabeled is not listed anymore and will take label 0
43 |
44 | % Create mapping from old to new
45 | mapping = [0; find(ismember(namesNew, fileStruct.names))];
46 |
47 | % Map labels
48 | Snew = mapping(fileStruct.S);
49 | regionLabelsStuffNew = mapping(fileStruct.regionLabelsStuff);
50 | assert(isequal(namesNew(Snew(Snew > 0)), fileStruct.names(fileStruct.S(Snew > 0))'));
51 |
52 | % Save changes
53 | fileStruct.names = namesNew;
54 | fileStruct.S = Snew;
55 | fileStruct.regionLabelsStuff = regionLabelsStuffNew;
56 | save(outFilePath, '-struct', 'fileStruct');
57 | end
58 |
--------------------------------------------------------------------------------
/dataset/code/demo_cocoStuff.m:
--------------------------------------------------------------------------------
1 | % demo_cocoStuff()
2 | %
3 | % Shows the basic usage of the COCO-Stuff dataset.
4 | %
5 | % Use the instructions here to install the dataset:
6 | % https://github.com/nightrome/cocostuff
7 | % The scripts loads an image, the ground-truth annotations and captions.
8 | % Matlab's Vision Toolbox is required to display the captions.
9 | %
10 | % Copyright by Holger Caesar, 2017
11 |
12 | % Download the dataset (if it didn't already happen)
13 | downloadData();
14 |
15 | % Get images
16 | datasetFolder = fullfile(cocoStuff_root(), 'dataset');
17 | imageListPath = fullfile(datasetFolder, 'imageLists', 'all.txt');
18 | imageList = textread(imageListPath, '%s'); %#ok
19 |
20 | % Load an image
21 | imageName = imageList{1};
22 | imagePath = fullfile(datasetFolder, 'images', [imageName, '.jpg']);
23 | image = imread(imagePath);
24 |
25 | % Load annotations
26 | labelPath = fullfile(datasetFolder, 'annotations', [imageName, '.mat']);
27 | labelStruct = load(labelPath);
28 | labelMap = labelStruct.S;
29 | labelNames = labelStruct.names;
30 | captions = labelStruct.captions;
31 | regionMapStuff = labelStruct.regionMapStuff;
32 | regionLabelsStuff = labelStruct.regionLabelsStuff;
33 |
34 | % Replace stuff labels with class 'unlabeled'
35 | labelMapThings = labelMap;
36 | labelMapThings(labelMapThings > CocoStuffClasses.thingCount) = 0;
37 |
38 | % Replace thing labels with class 'unlabeled'
39 | labelMapStuff = labelMap;
40 | labelMapStuff(labelMapStuff <= CocoStuffClasses.thingCount) = 0;
41 |
42 | % Alternatively: Get stuff labels from superpixel labels
43 | % labelMapStuff = regionLabelsStuff(regionMapStuff);
44 |
45 | % Convert label maps to images
46 | cmap = cmapThingsStuff();
47 | labelMapThingsIm = ind2rgb(uint16(labelMapThings), cmap);
48 | labelMapStuffIm = ind2rgb(uint16(labelMapStuff), cmap);
49 | labelMapIm = ind2rgb(uint16(labelMap), cmap);
50 |
51 | % Insert label names into label map image
52 | labelMapThingsIm = imageInsertBlobLabels(labelMapThingsIm, labelMapThings, labelNames);
53 | labelMapStuffIm = imageInsertBlobLabels(labelMapStuffIm, labelMapStuff, labelNames);
54 | labelMapIm = imageInsertBlobLabels(labelMapIm, labelMap, labelNames);
55 |
56 | % Open figure
57 | h1 = figure(1);
58 | clf;
59 | h1.Name = 'COCO-Stuff example annotations';
60 |
61 | % Show image
62 | subplot(2, 2, 1);
63 | imshow(image);
64 | title('Image');
65 |
66 | % Show thing labels
67 | subplot(2, 2, 2);
68 | imshow(labelMapThingsIm);
69 | title('Thing labels');
70 |
71 | % Show stuff labels
72 | subplot(2, 2, 3);
73 | imshow(labelMapStuffIm);
74 | title('Stuff labels');
75 |
76 | % Show stuff and thing labels
77 | subplot(2, 2, 4);
78 | imshow(labelMapIm);
79 | title('Thing+stuff labels');
80 |
81 | % Show captions in another figure
82 | h2 = figure(2);
83 | clf;
84 | h2.Name = 'Image captions';
85 | axis off;
86 | h2.Units = 'pixels';
87 | h2.Position(3) = 800;
88 | h2.Position(4) = 200;
89 | captionsStr = strjoin(captions, '\n');
90 | text(0.5, 0.6, captionsStr, 'HorizontalAlignment', 'center', 'FontSize', 15);
91 |
--------------------------------------------------------------------------------
/dataset/code/downloadData.m:
--------------------------------------------------------------------------------
1 | function downloadData()
2 | % downloadData()
3 | %
4 | % Downloads the data files of the COCO-Stuff dataset.
5 | % This data includes annotations, images and imageLists.
6 | %
7 | % Copyright by Holger Caesar, 2017
8 |
9 | % Settings
10 | datasetFile = 'cocostuff-10k-v1.1.zip';
11 | datasetBaseUrl = 'http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset';
12 | datasetUrl = fullfile(datasetBaseUrl, datasetFile);
13 | rootFolder = cocoStuff_root();
14 | datasetFolder = fullfile(rootFolder, 'dataset');
15 | downloadFolder = fullfile(rootFolder, 'downloads');
16 | datasetImageFolder = fullfile(datasetFolder, 'images');
17 | datasetFile = fullfile(downloadFolder, datasetFile);
18 |
19 | % Create download folder if it does not exist
20 | if ~exist(downloadFolder, 'dir')
21 | mkdir(downloadFolder);
22 | end
23 |
24 | % Download the .zip file if it does not exist
25 | if ~exist(datasetFile, 'file')
26 | fprintf('Downloading COCO-Stuff files to: %s...\n', datasetFile);
27 | websave(datasetFile, datasetUrl);
28 | end
29 |
30 | % Unpack the zip file if it hasn't been unpacked already
31 | if ~exist(datasetImageFolder, 'dir')
32 | fprintf('Unpacking COCO-Stuff files to: %s...\n', datasetFolder);
33 | unzip(datasetFile, datasetFolder);
34 | end
--------------------------------------------------------------------------------
/dataset/code/utils/flattenCellArray.m:
--------------------------------------------------------------------------------
1 | function[cellArray] = flattenCellArray(cellArray)
2 | % [cellArray] = flattenCellArray(cellArray)
3 | %
4 | % Flattens a cell array of cell arrays into a simple cell array.
5 | %
6 | % Copyright by Holger Caesar, 2014
7 |
8 | cellArray = cat(1, cellArray{:});
--------------------------------------------------------------------------------
/dataset/code/utils/imageInsertBlobLabels.m:
--------------------------------------------------------------------------------
1 | function[labelImage] = imageInsertBlobLabels(labelImage, labelMap, labelNames, varargin)
2 | % [labelImage] = imageInsertBlobLabels(labelImage, labelMap, labelNames, varargin)
3 | %
4 | % Uses insertText (from Vision Toolbox) to insert a cell of strings into
5 | % the image. Each label is positioned at the center of mass of its blob.
6 | %
7 | % Test case (should output a red 'c' on a white image):
8 | % labelImage = ones(256, 256, 3);
9 | % labelMap = zeros(256, 256);
10 | % labelMap(100, 100) = 3;
11 | % labelMap(101, 100) = 3;
12 | % labelNames = {'a', 'b', 'c'};
13 | % outImage = imageInsertBlobLabels(labelImage, labelMap, labelNames, 'fontColor', [255, 0, 0], 'minComponentSize', 1);
14 | % imshow(outImage);
15 | %
16 | % Copyright by Holger Caesar, 2016
17 |
18 | % Parse input
19 | p = inputParser;
20 | addParameter(p, 'fontSize', 15);
21 | addParameter(p, 'fontWidth', 8);
22 | addParameter(p, 'fontColor', [26, 232, 222]);
23 | addParameter(p, 'minComponentSize', 100); % at least 2px
24 | addParameter(p, 'skipLabelInds', []); % labels that are ignored
25 | parse(p, varargin{:});
26 |
27 | fontSize = p.Results.fontSize;
28 | fontWidth = p.Results.fontWidth;
29 | fontColor = p.Results.fontColor;
30 | minComponentSize = p.Results.minComponentSize;
31 | skipLabelInds = p.Results.skipLabelInds;
32 |
33 | % Check inputs
34 | assert(~isa(labelMap, 'gpuArray'));
35 |
36 | % Get unique list of labels
37 | labelList = double(unique(labelMap(:)));
38 | labelList(labelList == 0) = [];
39 | labelListCount = numel(labelList);
40 | if labelListCount == 0
41 | % Don't do anything if there are no labels
42 | return;
43 | end
44 |
45 | % Init
46 | pixelIdxLists = cell(labelListCount, 1);
47 | pixelIdxLabels = cell(labelListCount, 1);
48 | usedMap = false(size(labelMap));
49 |
50 | % Get the indices for all blobs
51 | for labelMapUnIdx = 1 : labelListCount
52 | labelIdx = labelList(labelMapUnIdx);
53 |
54 | % Get connected components of that label
55 | components = bwconncomp(labelMap == labelIdx);
56 | pixelIdxList = components.PixelIdxList(:);
57 | sel = cellfun(@(x) numel(x), pixelIdxList) >= minComponentSize;
58 | pixelIdxList = pixelIdxList(sel);
59 | pixelIdxLabels{labelMapUnIdx} = ones(numel(pixelIdxList), 1) .* labelIdx;
60 | pixelIdxLists{labelMapUnIdx} = pixelIdxList;
61 | end
62 |
63 | % Convert cell to matrix
64 | pixelIdxLists = flattenCellArray(pixelIdxLists);
65 | pixelIdxLabels = cell2mat(pixelIdxLabels);
66 | assert(numel(pixelIdxLists) == numel(pixelIdxLabels));
67 | compCount = numel(pixelIdxLists);
68 |
69 | % Sort by size
70 | [~, sortOrder] = sort(cellfun(@numel, pixelIdxLists), 'descend');
71 | pixelIdxLists = pixelIdxLists(sortOrder);
72 | pixelIdxLabels = pixelIdxLabels(sortOrder);
73 |
74 | for compIdx = 1 : compCount
75 | labelIdx = pixelIdxLabels(compIdx);
76 | if ismember(labelIdx, skipLabelInds)
77 | continue;
78 | end
79 | labelName = labelNames{labelIdx};
80 |
81 | % Get list of relevant pixels
82 | pixInds = pixelIdxLists{compIdx};
83 | pixInds = setdiff(pixInds, find(usedMap(:)));
84 | if isempty(pixInds)
85 | continue;
86 | end
87 |
88 | % Compute center of mass
89 | [y, x] = ind2sub(size(labelMap), pixInds);
90 | yCenter = median(y);
91 | xCenter = median(x);
92 |
93 | height = fontSize;
94 | width = fontWidth * numel(labelName);
95 | yStart = max(1, round(yCenter - height / 2));
96 | xStart = max(1, round(xCenter - width / 2));
97 | yEnd = min(yStart + height - 1, size(usedMap, 1));
98 | xEnd = min(xStart + width - 1, size(usedMap, 2));
99 |
100 | if any(any(usedMap(yStart:yEnd, xStart:xEnd)))
101 | continue;
102 | end
103 |
104 | % Place label here
105 | labelImage = insertText(labelImage, [xStart, yStart], labelName, 'Font', 'LucidaSansDemiBold', 'FontSize', fontSize, 'TextColor', fontColor, 'BoxOpacity', 0.0, 'AnchorPoint', 'LeftTop');
106 |
107 | % Mark those pixels as used
108 | usedMap(yStart:yEnd, xStart:xEnd) = true;
109 | end;
--------------------------------------------------------------------------------
/dataset/code/utils/parentsToTrees.m:
--------------------------------------------------------------------------------
1 | function[nodes, categories, heights] = parentsToTrees(parents)
2 | % [nodes, categories, heights] = parentsToTrees(parents)
3 | %
4 | % Converts an [s x 2] dimensional cell of strings into a tree where the
5 | % first column indicates nodes and the second column indicates their parent
6 | % nodes.
7 | %
8 | % The output can be plotted using Matlab's treeplot function:
9 | % treeplot(nodes');
10 | % [xs, ys] = treelayout(nodes);
11 | %
12 | % Copyright by Holger Caesar, 2017
13 |
14 | % Extract categories and make sure they are unique
15 | categories = parents(:, 1);
16 | assert(numel(categories) == numel(unique(categories)));
17 |
18 | % Create pointers to parent nodes
19 | categoryCount = size(categories, 1);
20 | nodes = nan(categoryCount, 1);
21 | heights = nan(categoryCount, 1);
22 | nodes(1) = 0;
23 | heights(1) = 0;
24 | for i = 2 : categoryCount
25 | childNode = find(strcmp(parents(:, 1), categories{i}));
26 | if isempty(childNode)
27 | error('Error: No parent node found for %s!', categories{i});
28 | end
29 | parentNode = find(strcmp(categories, parents(childNode, 2)));
30 | assert(numel(parentNode) == 1, 'Error: Node %s has %d parent labels! Should be 1.', parents{childNode, 2}, numel(parentNode));
31 | nodes(i) = parentNode;
32 | heights(i) = heights(parentNode) + 1;
33 | end
--------------------------------------------------------------------------------
/dataset/code/utils/plotTree.m:
--------------------------------------------------------------------------------
1 | function plotTree(nodes, cats, subTree, figLabelHierarchy)
2 | % plotTree(nodes, cats, subTree, figLabelHierarchy)
3 | %
4 | % Plot a tree using the results of the CocoStuffClasses.getClassHierarchyX() functions.
5 | %
6 | % subTree: (optional) +-1 for left/right sub tree, 0 for the entire tree
7 | % figLabelHierarchy: (optional) handle to a figure
8 | %
9 | % Copyright by Holger Caesar, 2017
10 |
11 | % By default we plot the entire tree
12 | if ~exist('subTree', 'var')
13 | subTree = 0;
14 | end
15 |
16 | % Create figure if necessary
17 | if ~exist('figLabelHierarchy', 'var')
18 | figLabelHierarchy = figure();
19 | end
20 |
21 | % Check that tree is binary at the top node
22 | firstChildren = find(nodes == 1);
23 | assert(numel(firstChildren) == 2);
24 |
25 | % Get only relevant nodes and cats
26 | if subTree ~= 0
27 | % Find descendents of the specified startTreeInd node
28 | sel = false(size(nodes));
29 | if subTree == -1
30 | sel(firstChildren(1)) = true;
31 | elseif subTree == 1
32 | sel(firstChildren(2)) = true;
33 | end
34 | while true
35 | oldSel = sel;
36 | sel = sel | ismember(nodes, find(sel));
37 | if isequal(sel, oldSel)
38 | break;
39 | end
40 | end
41 | nodes = nodes(sel);
42 | cats = cats(sel);
43 |
44 | % Remap nodes in 0:x range
45 | map = false(max(nodes), 1);
46 | map(unique(nodes)) = true;
47 | map = cumsum(map)-1;
48 | nodes = map(nodes);
49 | end
50 |
51 | % Plot them
52 | ax = axes('Parent', figLabelHierarchy, 'Units', 'Norm');
53 | axis(ax, 'off');
54 | treeplot(nodes');
55 | moveLeft = 0.08;
56 | if subTree == -1
57 | set(ax, 'Position', [0-moveLeft, 0, 0.5+moveLeft, 1]);
58 | elseif subTree == 1
59 | set(ax, 'Position', [0.5-moveLeft, 0, 0.5+moveLeft, 1]);
60 | end
61 | [xs, ys] = treelayout(nodes);
62 |
63 | % Set appearance settings and show labels
64 | isLeaf = ys == min(ys);
65 | textInner = text(xs(~isLeaf) + 0.01, ys(~isLeaf) - 0.025, cats(~isLeaf), 'VerticalAlignment', 'Bottom', 'HorizontalAlignment', 'right'); %#ok
66 | textLeaf = text(xs( isLeaf) - 0.01, ys( isLeaf) - 0.02, cats( isLeaf), 'VerticalAlignment', 'Bottom', 'HorizontalAlignment', 'left'); %#ok
67 | set(ax, 'XTick', [], 'YTick', [], 'Units', 'Normalized');
68 | ax.XLabel.String = '';
69 | axis off;
70 |
71 | % Rotate view
72 | camroll(90);
--------------------------------------------------------------------------------
/dataset/code/utils/readLinesToCell.m:
--------------------------------------------------------------------------------
1 | function[fileContent] = readLinesToCell(filePath, splitCols)
2 | % [fileContent] = readLinesToCell(filePath, [splitCols])
3 | %
4 | % Read a text file and convert to cell.
5 | % Each row represents one entry.
6 | % If splitOnComma is true, the file will be treated like a csv with element
7 | % separator ',' and line separator '\n'.
8 | %
9 | % Copyright by Holger Caesar, 2014
10 |
11 | % Default arguments
12 | if ~exist('splitCols', 'var')
13 | splitCols = false;
14 | end
15 | rowDelim = '\n';
16 | colDelim = ' ';
17 |
18 | % Check if file exists
19 | assert(exist(filePath, 'file') ~= 0, 'Error: File does not exist: %s', filePath);
20 |
21 | % Read input file
22 | fid = fopen(filePath, 'r');
23 | fileContent = textscan(fid, '%s', 'Delimiter', {rowDelim});
24 | fclose(fid);
25 |
26 | % Unpack
27 | fileContent = fileContent{1};
28 |
29 | % Remove leading and trailing spaces
30 | fileContent = strtrim(fileContent);
31 |
32 | % Split further
33 | if splitCols
34 | % Split each line
35 | fileContent = cellfun(@(x) strsplit(x, colDelim), fileContent, 'UniformOutput', false);
36 |
37 | % Rearrange to correct width and height and convert to number
38 | fileContent = str2double(cat(1, fileContent{:}));
39 | end
--------------------------------------------------------------------------------
/models/deeplab/.gitignore:
--------------------------------------------------------------------------------
1 | Makefile.config
2 | modifypath.sh
3 | common.cuh
4 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/.gitignore:
--------------------------------------------------------------------------------
1 | /features/
2 | /log/
3 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/config/deeplabv2_resnet101/.gitignore:
--------------------------------------------------------------------------------
1 | test.prototxt.bak
2 | solver_train.prototxt
3 | train_train.prototxt
4 | test_val.prototxt
5 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/config/deeplabv2_resnet101/solver.prototxt:
--------------------------------------------------------------------------------
1 | train_net: "${EXP}/config/${NET_ID}/train_${TRAIN_SET}.prototxt"
2 |
3 | iter_size: 10
4 | lr_policy: "poly"
5 | power: 0.9
6 | base_lr: 2.5e-4
7 |
8 | average_loss: 20
9 | display: 20
10 | max_iter: 20000
11 | momentum: 0.9
12 | weight_decay: 0.0005
13 |
14 | snapshot: 10000
15 | snapshot_prefix: "${EXP}/model/${NET_ID}/train"
16 | solver_mode: GPU
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/config/deeplabv2_vgg16/.gitignore:
--------------------------------------------------------------------------------
1 | solver_train.prototxt
2 | test_val.prototxt
3 | train_train.prototxt
4 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/config/deeplabv2_vgg16/solver.prototxt:
--------------------------------------------------------------------------------
1 | train_net: "${EXP}/config/${NET_ID}/train_${TRAIN_SET}.prototxt"
2 |
3 | lr_policy: "poly"
4 | power: 0.9
5 | base_lr: 1e-3
6 |
7 | average_loss: 20
8 | display: 20
9 | max_iter: 20000
10 | momentum: 0.9
11 | weight_decay: 0.0005
12 |
13 | snapshot: 10000
14 | snapshot_prefix: "${EXP}/model/${NET_ID}/train"
15 | solver_mode: GPU
16 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/config/deeplabv2_vgg16/test.prototxt:
--------------------------------------------------------------------------------
1 | # VGG 16-layer network convolutional finetuning
2 | # Network modified to have smaller receptive field (128 pixels)
3 | # and smaller stride (8 pixels) when run in convolutional mode.
4 | #
5 | # In this model we also change max pooling size in the first 4 layers
6 | # from 2 to 3 while retaining stride = 2
7 | # which makes it easier to exactly align responses at different layers.
8 | #
9 |
10 | name: "${NET_ID}"
11 |
12 | layer {
13 | name: "data"
14 | type: "ImageSegData"
15 | top: "data"
16 | top: "label"
17 | top: "data_dim"
18 | include {
19 | phase: TEST
20 | }
21 | transform_param {
22 | mirror: false
23 | crop_size: 641
24 | mean_value: 104.008
25 | mean_value: 116.669
26 | mean_value: 122.675
27 | }
28 | image_data_param {
29 | root_folder: "${DATA_ROOT}"
30 | source: "${EXP}/list/${TEST_SET}.txt"
31 | batch_size: 1
32 | label_type: NONE
33 | }
34 | }
35 |
36 | ###################### DeepLab ##########################
37 | layer {
38 | name: "conv1_1"
39 | type: "Convolution"
40 | bottom: "data"
41 | top: "conv1_1"
42 | convolution_param {
43 | num_output: 64
44 | pad: 1
45 | kernel_size: 3
46 | }
47 | }
48 | layer {
49 | name: "relu1_1"
50 | type: "ReLU"
51 | bottom: "conv1_1"
52 | top: "conv1_1"
53 | }
54 | layer {
55 | name: "conv1_2"
56 | type: "Convolution"
57 | bottom: "conv1_1"
58 | top: "conv1_2"
59 | convolution_param {
60 | num_output: 64
61 | pad: 1
62 | kernel_size: 3
63 | }
64 | }
65 | layer {
66 | name: "relu1_2"
67 | type: "ReLU"
68 | bottom: "conv1_2"
69 | top: "conv1_2"
70 | }
71 | layer {
72 | name: "pool1"
73 | type: "Pooling"
74 | bottom: "conv1_2"
75 | top: "pool1"
76 | pooling_param {
77 | pool: MAX
78 | kernel_size: 3
79 | stride: 2
80 | pad: 1
81 | }
82 | }
83 | layer {
84 | name: "conv2_1"
85 | type: "Convolution"
86 | bottom: "pool1"
87 | top: "conv2_1"
88 | convolution_param {
89 | num_output: 128
90 | pad: 1
91 | kernel_size: 3
92 | }
93 | }
94 | layer {
95 | name: "relu2_1"
96 | type: "ReLU"
97 | bottom: "conv2_1"
98 | top: "conv2_1"
99 | }
100 | layer {
101 | name: "conv2_2"
102 | type: "Convolution"
103 | bottom: "conv2_1"
104 | top: "conv2_2"
105 | convolution_param {
106 | num_output: 128
107 | pad: 1
108 | kernel_size: 3
109 | }
110 | }
111 | layer {
112 | name: "relu2_2"
113 | type: "ReLU"
114 | bottom: "conv2_2"
115 | top: "conv2_2"
116 | }
117 | layer {
118 | name: "pool2"
119 | type: "Pooling"
120 | bottom: "conv2_2"
121 | top: "pool2"
122 | pooling_param {
123 | pool: MAX
124 | kernel_size: 3
125 | stride: 2
126 | pad: 1
127 | }
128 | }
129 | layer {
130 | name: "conv3_1"
131 | type: "Convolution"
132 | bottom: "pool2"
133 | top: "conv3_1"
134 | convolution_param {
135 | num_output: 256
136 | pad: 1
137 | kernel_size: 3
138 | }
139 | }
140 | layer {
141 | name: "relu3_1"
142 | type: "ReLU"
143 | bottom: "conv3_1"
144 | top: "conv3_1"
145 | }
146 | layer {
147 | name: "conv3_2"
148 | type: "Convolution"
149 | bottom: "conv3_1"
150 | top: "conv3_2"
151 | convolution_param {
152 | num_output: 256
153 | pad: 1
154 | kernel_size: 3
155 | }
156 | }
157 | layer {
158 | name: "relu3_2"
159 | type: "ReLU"
160 | bottom: "conv3_2"
161 | top: "conv3_2"
162 | }
163 | layer {
164 | name: "conv3_3"
165 | type: "Convolution"
166 | bottom: "conv3_2"
167 | top: "conv3_3"
168 | convolution_param {
169 | num_output: 256
170 | pad: 1
171 | kernel_size: 3
172 | }
173 | }
174 | layer {
175 | name: "relu3_3"
176 | type: "ReLU"
177 | bottom: "conv3_3"
178 | top: "conv3_3"
179 | }
180 | layer {
181 | name: "pool3"
182 | type: "Pooling"
183 | bottom: "conv3_3"
184 | top: "pool3"
185 | pooling_param {
186 | pool: MAX
187 | kernel_size: 3
188 | stride: 2
189 | pad: 1
190 | }
191 | }
192 | layer {
193 | name: "conv4_1"
194 | type: "Convolution"
195 | bottom: "pool3"
196 | top: "conv4_1"
197 | convolution_param {
198 | num_output: 512
199 | pad: 1
200 | kernel_size: 3
201 | }
202 | }
203 | layer {
204 | name: "relu4_1"
205 | type: "ReLU"
206 | bottom: "conv4_1"
207 | top: "conv4_1"
208 | }
209 | layer {
210 | name: "conv4_2"
211 | type: "Convolution"
212 | bottom: "conv4_1"
213 | top: "conv4_2"
214 | convolution_param {
215 | num_output: 512
216 | pad: 1
217 | kernel_size: 3
218 | }
219 | }
220 | layer {
221 | name: "relu4_2"
222 | type: "ReLU"
223 | bottom: "conv4_2"
224 | top: "conv4_2"
225 | }
226 | layer {
227 | name: "conv4_3"
228 | type: "Convolution"
229 | bottom: "conv4_2"
230 | top: "conv4_3"
231 | convolution_param {
232 | num_output: 512
233 | pad: 1
234 | kernel_size: 3
235 | }
236 | }
237 | layer {
238 | name: "relu4_3"
239 | type: "ReLU"
240 | bottom: "conv4_3"
241 | top: "conv4_3"
242 | }
243 | layer {
244 | bottom: "conv4_3"
245 | top: "pool4"
246 | name: "pool4"
247 | type: "Pooling"
248 | pooling_param {
249 | pool: MAX
250 | kernel_size: 3
251 | pad: 1
252 | stride: 1
253 | }
254 | }
255 | layer {
256 | name: "conv5_1"
257 | type: "Convolution"
258 | bottom: "pool4"
259 | top: "conv5_1"
260 | convolution_param {
261 | num_output: 512
262 | pad: 2
263 | kernel_size: 3
264 | dilation: 2
265 | }
266 | }
267 | layer {
268 | name: "relu5_1"
269 | type: "ReLU"
270 | bottom: "conv5_1"
271 | top: "conv5_1"
272 | }
273 | layer {
274 | name: "conv5_2"
275 | type: "Convolution"
276 | bottom: "conv5_1"
277 | top: "conv5_2"
278 | convolution_param {
279 | num_output: 512
280 | pad: 2
281 | kernel_size: 3
282 | dilation: 2
283 | }
284 | }
285 | layer {
286 | name: "relu5_2"
287 | type: "ReLU"
288 | bottom: "conv5_2"
289 | top: "conv5_2"
290 | }
291 | layer {
292 | name: "conv5_3"
293 | type: "Convolution"
294 | bottom: "conv5_2"
295 | top: "conv5_3"
296 | convolution_param {
297 | num_output: 512
298 | pad: 2
299 | kernel_size: 3
300 | dilation: 2
301 | }
302 | }
303 | layer {
304 | name: "relu5_3"
305 | type: "ReLU"
306 | bottom: "conv5_3"
307 | top: "conv5_3"
308 | }
309 | layer {
310 | bottom: "conv5_3"
311 | top: "pool5"
312 | name: "pool5"
313 | type: "Pooling"
314 | pooling_param {
315 | pool: MAX
316 | kernel_size: 3
317 | stride: 1
318 | pad: 1
319 | }
320 | }
321 |
322 | ### hole = 6
323 | layer {
324 | name: "fc6_1"
325 | type: "Convolution"
326 | bottom: "pool5"
327 | top: "fc6_1"
328 | convolution_param {
329 | num_output: 1024
330 | pad: 6
331 | kernel_size: 3
332 | dilation: 6
333 | }
334 | }
335 | layer {
336 | name: "relu6_1"
337 | type: "ReLU"
338 | bottom: "fc6_1"
339 | top: "fc6_1"
340 | }
341 | layer {
342 | name: "drop6_1"
343 | type: "Dropout"
344 | bottom: "fc6_1"
345 | top: "fc6_1"
346 | dropout_param {
347 | dropout_ratio: 0.5
348 | }
349 | }
350 | layer {
351 | name: "fc7_1"
352 | type: "Convolution"
353 | bottom: "fc6_1"
354 | top: "fc7_1"
355 | convolution_param {
356 | num_output: 1024
357 | kernel_size: 1
358 | }
359 | }
360 | layer {
361 | name: "relu7_1"
362 | type: "ReLU"
363 | bottom: "fc7_1"
364 | top: "fc7_1"
365 | }
366 | layer {
367 | name: "drop7_1"
368 | type: "Dropout"
369 | bottom: "fc7_1"
370 | top: "fc7_1"
371 | dropout_param {
372 | dropout_ratio: 0.5
373 | }
374 | }
375 | layer {
376 | name: "fc8_${EXP}_1"
377 | type: "Convolution"
378 | bottom: "fc7_1"
379 | top: "fc8_${EXP}_1"
380 | convolution_param {
381 | num_output: ${NUM_LABELS}
382 | kernel_size: 1
383 | }
384 | }
385 |
386 | ### hole = 12
387 | layer {
388 | name: "fc6_2"
389 | type: "Convolution"
390 | bottom: "pool5"
391 | top: "fc6_2"
392 | convolution_param {
393 | num_output: 1024
394 | pad: 12
395 | kernel_size: 3
396 | dilation: 12
397 | }
398 | }
399 | layer {
400 | name: "relu6_2"
401 | type: "ReLU"
402 | bottom: "fc6_2"
403 | top: "fc6_2"
404 | }
405 | layer {
406 | name: "drop6_2"
407 | type: "Dropout"
408 | bottom: "fc6_2"
409 | top: "fc6_2"
410 | dropout_param {
411 | dropout_ratio: 0.5
412 | }
413 | }
414 | layer {
415 | name: "fc7_2"
416 | type: "Convolution"
417 | bottom: "fc6_2"
418 | top: "fc7_2"
419 | convolution_param {
420 | num_output: 1024
421 | kernel_size: 1
422 | }
423 | }
424 | layer {
425 | name: "relu7_2"
426 | type: "ReLU"
427 | bottom: "fc7_2"
428 | top: "fc7_2"
429 | }
430 | layer {
431 | name: "drop7_2"
432 | type: "Dropout"
433 | bottom: "fc7_2"
434 | top: "fc7_2"
435 | dropout_param {
436 | dropout_ratio: 0.5
437 | }
438 | }
439 | layer {
440 | name: "fc8_${EXP}_2"
441 | type: "Convolution"
442 | bottom: "fc7_2"
443 | top: "fc8_${EXP}_2"
444 | convolution_param {
445 | num_output: ${NUM_LABELS}
446 | kernel_size: 1
447 | }
448 | }
449 |
450 | ### hole = 18
451 | layer {
452 | name: "fc6_3"
453 | type: "Convolution"
454 | bottom: "pool5"
455 | top: "fc6_3"
456 | convolution_param {
457 | num_output: 1024
458 | pad: 18
459 | kernel_size: 3
460 | dilation: 18
461 | }
462 | }
463 | layer {
464 | name: "relu6_3"
465 | type: "ReLU"
466 | bottom: "fc6_3"
467 | top: "fc6_3"
468 | }
469 | layer {
470 | name: "drop6_3"
471 | type: "Dropout"
472 | bottom: "fc6_3"
473 | top: "fc6_3"
474 | dropout_param {
475 | dropout_ratio: 0.5
476 | }
477 | }
478 | layer {
479 | name: "fc7_3"
480 | type: "Convolution"
481 | bottom: "fc6_3"
482 | top: "fc7_3"
483 | convolution_param {
484 | num_output: 1024
485 | kernel_size: 1
486 | }
487 | }
488 | layer {
489 | name: "relu7_3"
490 | type: "ReLU"
491 | bottom: "fc7_3"
492 | top: "fc7_3"
493 | }
494 | layer {
495 | name: "drop7_3"
496 | type: "Dropout"
497 | bottom: "fc7_3"
498 | top: "fc7_3"
499 | dropout_param {
500 | dropout_ratio: 0.5
501 | }
502 | }
503 | layer {
504 | name: "fc8_${EXP}_3"
505 | type: "Convolution"
506 | bottom: "fc7_3"
507 | top: "fc8_${EXP}_3"
508 | convolution_param {
509 | num_output: ${NUM_LABELS}
510 | kernel_size: 1
511 | }
512 | }
513 |
514 | ### hole = 24
515 | layer {
516 | name: "fc6_4"
517 | type: "Convolution"
518 | bottom: "pool5"
519 | top: "fc6_4"
520 | convolution_param {
521 | num_output: 1024
522 | pad: 24
523 | kernel_size: 3
524 | dilation: 24
525 | }
526 | }
527 | layer {
528 | name: "relu6_4"
529 | type: "ReLU"
530 | bottom: "fc6_4"
531 | top: "fc6_4"
532 | }
533 | layer {
534 | name: "drop6_4"
535 | type: "Dropout"
536 | bottom: "fc6_4"
537 | top: "fc6_4"
538 | dropout_param {
539 | dropout_ratio: 0.5
540 | }
541 | }
542 | layer {
543 | name: "fc7_4"
544 | type: "Convolution"
545 | bottom: "fc6_4"
546 | top: "fc7_4"
547 | convolution_param {
548 | num_output: 1024
549 | kernel_size: 1
550 | }
551 | }
552 | layer {
553 | name: "relu7_4"
554 | type: "ReLU"
555 | bottom: "fc7_4"
556 | top: "fc7_4"
557 | }
558 | layer {
559 | name: "drop7_4"
560 | type: "Dropout"
561 | bottom: "fc7_4"
562 | top: "fc7_4"
563 | dropout_param {
564 | dropout_ratio: 0.5
565 | }
566 | }
567 | layer {
568 | name: "fc8_${EXP}_4"
569 | type: "Convolution"
570 | bottom: "fc7_4"
571 | top: "fc8_${EXP}_4"
572 | convolution_param {
573 | num_output: ${NUM_LABELS}
574 | kernel_size: 1
575 | }
576 | }
577 |
578 | ### SUM the four branches
579 | layer {
580 | bottom: "fc8_${EXP}_1"
581 | bottom: "fc8_${EXP}_2"
582 | bottom: "fc8_${EXP}_3"
583 | bottom: "fc8_${EXP}_4"
584 | top: "fc8_${EXP}"
585 | name: "fc8_${EXP}"
586 | type: "Eltwise"
587 | eltwise_param {
588 | operation: SUM
589 | }
590 | }
591 | ## original resolution
592 | layer {
593 | name: "fc8_interp"
594 | type: "Interp"
595 | bottom: "fc8_${EXP}"
596 | top: "fc8_interp"
597 | interp_param {
598 | zoom_factor: 8
599 | }
600 | }
601 |
602 | layer {
603 | bottom: "fc8_interp"
604 | top: "fc8_interp_argmax"
605 | name: "fc8_interp_argmax"
606 | type: "ArgMax"
607 | argmax_param {
608 | axis: 1
609 | }
610 | }
611 |
612 | layer {
613 | name: "fc8_mat"
614 | type: "MatWrite"
615 | bottom: "fc8_interp_argmax"
616 | # bottom: "fc8_interp"
617 | include {
618 | phase: TEST
619 | }
620 | mat_write_param {
621 | prefix: "${FEATURE_DIR}/${TEST_SET}/fc8/"
622 | source: "${EXP}/list/${TEST_SET}_id.txt"
623 | strip: 0
624 | period: 1
625 | }
626 | }
627 | layer {
628 | name: "silence"
629 | type: "Silence"
630 | bottom: "label"
631 | bottom: "data_dim"
632 | }
633 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/config/deeplabv2_vgg16/train.prototxt:
--------------------------------------------------------------------------------
1 | # VGG 16-layer network convolutional finetuning
2 | # Network modified to have smaller receptive field (128 pixels)
3 | # nand smaller stride (8 pixels) when run in convolutional mode.
4 | #
5 | # In this model we also change max pooling size in the first 4 layers
6 | # from 2 to 3 while retaining stride = 2
7 | # which makes it easier to exactly align responses at different layers.
8 | #
9 | # For alignment to work, we set (we choose 32x so as to be able to evaluate
10 | # the model for all different subsampling sizes):
11 | # (1) input dimension equal to
12 | # $n = 32 * k - 31$, e.g., 321 (for k = 11)
13 | # Dimension after pooling w. subsampling:
14 | # (16 * k - 15); (8 * k - 7); (4 * k - 3); (2 * k - 1); (k).
15 | # For k = 11, these translate to
16 | # 161; 81; 41; 21; 11
17 | #
18 |
19 | name: "${NET_ID}"
20 |
21 | layer {
22 | name: "data"
23 | type: "ImageSegData"
24 | top: "data"
25 | top: "label"
26 | top: "data_dim"
27 | include {
28 | phase: TRAIN
29 | }
30 | transform_param {
31 | mirror: true
32 | crop_size: 321
33 | mean_value: 104.008
34 | mean_value: 116.669
35 | mean_value: 122.675
36 | }
37 | image_data_param {
38 | root_folder: "${DATA_ROOT}"
39 | source: "${EXP}/list/${TRAIN_SET}.txt"
40 | batch_size: 10
41 | shuffle: true
42 | label_type: PIXEL
43 | }
44 | }
45 |
46 | ###################### DeepLab ####################
47 | layer {
48 | name: "conv1_1"
49 | type: "Convolution"
50 | bottom: "data"
51 | top: "conv1_1"
52 | param {
53 | lr_mult: 1
54 | decay_mult: 1
55 | }
56 | param {
57 | lr_mult: 2
58 | decay_mult: 0
59 | }
60 | convolution_param {
61 | num_output: 64
62 | pad: 1
63 | kernel_size: 3
64 | }
65 | }
66 | layer {
67 | name: "relu1_1"
68 | type: "ReLU"
69 | bottom: "conv1_1"
70 | top: "conv1_1"
71 | }
72 | layer {
73 | name: "conv1_2"
74 | type: "Convolution"
75 | bottom: "conv1_1"
76 | top: "conv1_2"
77 | param {
78 | lr_mult: 1
79 | decay_mult: 1
80 | }
81 | param {
82 | lr_mult: 2
83 | decay_mult: 0
84 | }
85 | convolution_param {
86 | num_output: 64
87 | pad: 1
88 | kernel_size: 3
89 | }
90 | }
91 | layer {
92 | name: "relu1_2"
93 | type: "ReLU"
94 | bottom: "conv1_2"
95 | top: "conv1_2"
96 | }
97 | layer {
98 | name: "pool1"
99 | type: "Pooling"
100 | bottom: "conv1_2"
101 | top: "pool1"
102 | pooling_param {
103 | pool: MAX
104 | kernel_size: 3
105 | stride: 2
106 | pad: 1
107 | }
108 | }
109 | layer {
110 | name: "conv2_1"
111 | type: "Convolution"
112 | bottom: "pool1"
113 | top: "conv2_1"
114 | param {
115 | lr_mult: 1
116 | decay_mult: 1
117 | }
118 | param {
119 | lr_mult: 2
120 | decay_mult: 0
121 | }
122 | convolution_param {
123 | num_output: 128
124 | pad: 1
125 | kernel_size: 3
126 | }
127 | }
128 | layer {
129 | name: "relu2_1"
130 | type: "ReLU"
131 | bottom: "conv2_1"
132 | top: "conv2_1"
133 | }
134 | layer {
135 | name: "conv2_2"
136 | type: "Convolution"
137 | bottom: "conv2_1"
138 | top: "conv2_2"
139 | param {
140 | lr_mult: 1
141 | decay_mult: 1
142 | }
143 | param {
144 | lr_mult: 2
145 | decay_mult: 0
146 | }
147 | convolution_param {
148 | num_output: 128
149 | pad: 1
150 | kernel_size: 3
151 | }
152 | }
153 | layer {
154 | name: "relu2_2"
155 | type: "ReLU"
156 | bottom: "conv2_2"
157 | top: "conv2_2"
158 | }
159 | layer {
160 | name: "pool2"
161 | type: "Pooling"
162 | bottom: "conv2_2"
163 | top: "pool2"
164 | pooling_param {
165 | pool: MAX
166 | kernel_size: 3
167 | stride: 2
168 | pad: 1
169 | }
170 | }
171 | layer {
172 | name: "conv3_1"
173 | type: "Convolution"
174 | bottom: "pool2"
175 | top: "conv3_1"
176 | param {
177 | lr_mult: 1
178 | decay_mult: 1
179 | }
180 | param {
181 | lr_mult: 2
182 | decay_mult: 0
183 | }
184 | convolution_param {
185 | num_output: 256
186 | pad: 1
187 | kernel_size: 3
188 | }
189 | }
190 | layer {
191 | name: "relu3_1"
192 | type: "ReLU"
193 | bottom: "conv3_1"
194 | top: "conv3_1"
195 | }
196 | layer {
197 | name: "conv3_2"
198 | type: "Convolution"
199 | bottom: "conv3_1"
200 | top: "conv3_2"
201 | param {
202 | lr_mult: 1
203 | decay_mult: 1
204 | }
205 | param {
206 | lr_mult: 2
207 | decay_mult: 0
208 | }
209 | convolution_param {
210 | num_output: 256
211 | pad: 1
212 | kernel_size: 3
213 | }
214 | }
215 | layer {
216 | name: "relu3_2"
217 | type: "ReLU"
218 | bottom: "conv3_2"
219 | top: "conv3_2"
220 | }
221 | layer {
222 | name: "conv3_3"
223 | type: "Convolution"
224 | bottom: "conv3_2"
225 | top: "conv3_3"
226 | param {
227 | lr_mult: 1
228 | decay_mult: 1
229 | }
230 | param {
231 | lr_mult: 2
232 | decay_mult: 0
233 | }
234 | convolution_param {
235 | num_output: 256
236 | pad: 1
237 | kernel_size: 3
238 | }
239 | }
240 | layer {
241 | name: "relu3_3"
242 | type: "ReLU"
243 | bottom: "conv3_3"
244 | top: "conv3_3"
245 | }
246 | layer {
247 | name: "pool3"
248 | type: "Pooling"
249 | bottom: "conv3_3"
250 | top: "pool3"
251 | pooling_param {
252 | pool: MAX
253 | kernel_size: 3
254 | stride: 2
255 | pad: 1
256 | }
257 | }
258 | layer {
259 | name: "conv4_1"
260 | type: "Convolution"
261 | bottom: "pool3"
262 | top: "conv4_1"
263 | param {
264 | lr_mult: 1
265 | decay_mult: 1
266 | }
267 | param {
268 | lr_mult: 2
269 | decay_mult: 0
270 | }
271 | convolution_param {
272 | num_output: 512
273 | pad: 1
274 | kernel_size: 3
275 | }
276 | }
277 | layer {
278 | name: "relu4_1"
279 | type: "ReLU"
280 | bottom: "conv4_1"
281 | top: "conv4_1"
282 | }
283 | layer {
284 | name: "conv4_2"
285 | type: "Convolution"
286 | bottom: "conv4_1"
287 | top: "conv4_2"
288 | param {
289 | lr_mult: 1
290 | decay_mult: 1
291 | }
292 | param {
293 | lr_mult: 2
294 | decay_mult: 0
295 | }
296 | convolution_param {
297 | num_output: 512
298 | pad: 1
299 | kernel_size: 3
300 | }
301 | }
302 | layer {
303 | name: "relu4_2"
304 | type: "ReLU"
305 | bottom: "conv4_2"
306 | top: "conv4_2"
307 | }
308 | layer {
309 | name: "conv4_3"
310 | type: "Convolution"
311 | bottom: "conv4_2"
312 | top: "conv4_3"
313 | param {
314 | lr_mult: 1
315 | decay_mult: 1
316 | }
317 | param {
318 | lr_mult: 2
319 | decay_mult: 0
320 | }
321 | convolution_param {
322 | num_output: 512
323 | pad: 1
324 | kernel_size: 3
325 | }
326 | }
327 | layer {
328 | name: "relu4_3"
329 | type: "ReLU"
330 | bottom: "conv4_3"
331 | top: "conv4_3"
332 | }
333 | layer {
334 | bottom: "conv4_3"
335 | top: "pool4"
336 | name: "pool4"
337 | type: "Pooling"
338 | pooling_param {
339 | pool: MAX
340 | kernel_size: 3
341 | pad: 1
342 | stride: 1
343 | }
344 | }
345 | layer {
346 | name: "conv5_1"
347 | type: "Convolution"
348 | bottom: "pool4"
349 | top: "conv5_1"
350 | param {
351 | lr_mult: 1
352 | decay_mult: 1
353 | }
354 | param {
355 | lr_mult: 2
356 | decay_mult: 0
357 | }
358 | convolution_param {
359 | num_output: 512
360 | pad: 2
361 | kernel_size: 3
362 | dilation: 2
363 | }
364 | }
365 | layer {
366 | name: "relu5_1"
367 | type: "ReLU"
368 | bottom: "conv5_1"
369 | top: "conv5_1"
370 | }
371 | layer {
372 | name: "conv5_2"
373 | type: "Convolution"
374 | bottom: "conv5_1"
375 | top: "conv5_2"
376 | param {
377 | lr_mult: 1
378 | decay_mult: 1
379 | }
380 | param {
381 | lr_mult: 2
382 | decay_mult: 0
383 | }
384 | convolution_param {
385 | num_output: 512
386 | pad: 2
387 | kernel_size: 3
388 | dilation: 2
389 | }
390 | }
391 | layer {
392 | name: "relu5_2"
393 | type: "ReLU"
394 | bottom: "conv5_2"
395 | top: "conv5_2"
396 | }
397 | layer {
398 | name: "conv5_3"
399 | type: "Convolution"
400 | bottom: "conv5_2"
401 | top: "conv5_3"
402 | param {
403 | lr_mult: 1
404 | decay_mult: 1
405 | }
406 | param {
407 | lr_mult: 2
408 | decay_mult: 0
409 | }
410 | convolution_param {
411 | num_output: 512
412 | pad: 2
413 | kernel_size: 3
414 | dilation: 2
415 | }
416 | }
417 | layer {
418 | name: "relu5_3"
419 | type: "ReLU"
420 | bottom: "conv5_3"
421 | top: "conv5_3"
422 | }
423 |
424 | layer {
425 | bottom: "conv5_3"
426 | top: "pool5"
427 | name: "pool5"
428 | type: "Pooling"
429 | pooling_param {
430 | pool: MAX
431 | kernel_size: 3
432 | stride: 1
433 | pad: 1
434 | }
435 | }
436 |
437 | ### hole = 6
438 | layer {
439 | name: "fc6_1"
440 | type: "Convolution"
441 | bottom: "pool5"
442 | top: "fc6_1"
443 | param {
444 | lr_mult: 1
445 | decay_mult: 1
446 | }
447 | param {
448 | lr_mult: 2
449 | decay_mult: 0
450 | }
451 | convolution_param {
452 | num_output: 1024
453 | pad: 6
454 | kernel_size: 3
455 | dilation: 6
456 | }
457 | }
458 | layer {
459 | name: "relu6_1"
460 | type: "ReLU"
461 | bottom: "fc6_1"
462 | top: "fc6_1"
463 | }
464 | layer {
465 | name: "drop6_1"
466 | type: "Dropout"
467 | bottom: "fc6_1"
468 | top: "fc6_1"
469 | dropout_param {
470 | dropout_ratio: 0.5
471 | }
472 | }
473 | layer {
474 | name: "fc7_1"
475 | type: "Convolution"
476 | bottom: "fc6_1"
477 | top: "fc7_1"
478 | param {
479 | lr_mult: 1
480 | decay_mult: 1
481 | }
482 | param {
483 | lr_mult: 2
484 | decay_mult: 0
485 | }
486 | convolution_param {
487 | num_output: 1024
488 | kernel_size: 1
489 | }
490 | }
491 | layer {
492 | name: "relu7_1"
493 | type: "ReLU"
494 | bottom: "fc7_1"
495 | top: "fc7_1"
496 | }
497 | layer {
498 | name: "drop7_1"
499 | type: "Dropout"
500 | bottom: "fc7_1"
501 | top: "fc7_1"
502 | dropout_param {
503 | dropout_ratio: 0.5
504 | }
505 | }
506 | layer {
507 | name: "fc8_${EXP}_1"
508 | type: "Convolution"
509 | bottom: "fc7_1"
510 | top: "fc8_${EXP}_1"
511 | param {
512 | lr_mult: 10
513 | decay_mult: 1
514 | }
515 | param {
516 | lr_mult: 20
517 | decay_mult: 0
518 | }
519 | convolution_param {
520 | num_output: ${NUM_LABELS}
521 | kernel_size: 1
522 | weight_filler {
523 | type: "gaussian"
524 | std: 0.01
525 | }
526 | bias_filler {
527 | type: "constant"
528 | value: 0
529 | }
530 | }
531 | }
532 |
533 | ### hole = 12
534 | layer {
535 | name: "fc6_2"
536 | type: "Convolution"
537 | bottom: "pool5"
538 | top: "fc6_2"
539 | param {
540 | lr_mult: 1
541 | decay_mult: 1
542 | }
543 | param {
544 | lr_mult: 2
545 | decay_mult: 0
546 | }
547 | convolution_param {
548 | num_output: 1024
549 | pad: 12
550 | kernel_size: 3
551 | dilation: 12
552 | }
553 | }
554 | layer {
555 | name: "relu6_2"
556 | type: "ReLU"
557 | bottom: "fc6_2"
558 | top: "fc6_2"
559 | }
560 | layer {
561 | name: "drop6_2"
562 | type: "Dropout"
563 | bottom: "fc6_2"
564 | top: "fc6_2"
565 | dropout_param {
566 | dropout_ratio: 0.5
567 | }
568 | }
569 | layer {
570 | name: "fc7_2"
571 | type: "Convolution"
572 | bottom: "fc6_2"
573 | top: "fc7_2"
574 | param {
575 | lr_mult: 1
576 | decay_mult: 1
577 | }
578 | param {
579 | lr_mult: 2
580 | decay_mult: 0
581 | }
582 | convolution_param {
583 | num_output: 1024
584 | kernel_size: 1
585 | }
586 | }
587 | layer {
588 | name: "relu7_2"
589 | type: "ReLU"
590 | bottom: "fc7_2"
591 | top: "fc7_2"
592 | }
593 | layer {
594 | name: "drop7_2"
595 | type: "Dropout"
596 | bottom: "fc7_2"
597 | top: "fc7_2"
598 | dropout_param {
599 | dropout_ratio: 0.5
600 | }
601 | }
602 | layer {
603 | name: "fc8_${EXP}_2"
604 | type: "Convolution"
605 | bottom: "fc7_2"
606 | top: "fc8_${EXP}_2"
607 | param {
608 | lr_mult: 10
609 | decay_mult: 1
610 | }
611 | param {
612 | lr_mult: 20
613 | decay_mult: 0
614 | }
615 | convolution_param {
616 | num_output: ${NUM_LABELS}
617 | kernel_size: 1
618 | weight_filler {
619 | type: "gaussian"
620 | std: 0.01
621 | }
622 | bias_filler {
623 | type: "constant"
624 | value: 0
625 | }
626 | }
627 | }
628 |
629 | ### hole = 18
630 | layer {
631 | name: "fc6_3"
632 | type: "Convolution"
633 | bottom: "pool5"
634 | top: "fc6_3"
635 | param {
636 | lr_mult: 1
637 | decay_mult: 1
638 | }
639 | param {
640 | lr_mult: 2
641 | decay_mult: 0
642 | }
643 | convolution_param {
644 | num_output: 1024
645 | pad: 18
646 | kernel_size: 3
647 | dilation: 18
648 | }
649 | }
650 | layer {
651 | name: "relu6_3"
652 | type: "ReLU"
653 | bottom: "fc6_3"
654 | top: "fc6_3"
655 | }
656 | layer {
657 | name: "drop6_3"
658 | type: "Dropout"
659 | bottom: "fc6_3"
660 | top: "fc6_3"
661 | dropout_param {
662 | dropout_ratio: 0.5
663 | }
664 | }
665 | layer {
666 | name: "fc7_3"
667 | type: "Convolution"
668 | bottom: "fc6_3"
669 | top: "fc7_3"
670 | param {
671 | lr_mult: 1
672 | decay_mult: 1
673 | }
674 | param {
675 | lr_mult: 2
676 | decay_mult: 0
677 | }
678 | convolution_param {
679 | num_output: 1024
680 | kernel_size: 1
681 | }
682 | }
683 | layer {
684 | name: "relu7_3"
685 | type: "ReLU"
686 | bottom: "fc7_3"
687 | top: "fc7_3"
688 | }
689 | layer {
690 | name: "drop7_3"
691 | type: "Dropout"
692 | bottom: "fc7_3"
693 | top: "fc7_3"
694 | dropout_param {
695 | dropout_ratio: 0.5
696 | }
697 | }
698 | layer {
699 | name: "fc8_${EXP}_3"
700 | type: "Convolution"
701 | bottom: "fc7_3"
702 | top: "fc8_${EXP}_3"
703 | param {
704 | lr_mult: 10
705 | decay_mult: 1
706 | }
707 | param {
708 | lr_mult: 20
709 | decay_mult: 0
710 | }
711 | convolution_param {
712 | num_output: ${NUM_LABELS}
713 | kernel_size: 1
714 | weight_filler {
715 | type: "gaussian"
716 | std: 0.01
717 | }
718 | bias_filler {
719 | type: "constant"
720 | value: 0
721 | }
722 | }
723 | }
724 |
725 | ### hole = 24
726 | layer {
727 | name: "fc6_4"
728 | type: "Convolution"
729 | bottom: "pool5"
730 | top: "fc6_4"
731 | param {
732 | lr_mult: 1
733 | decay_mult: 1
734 | }
735 | param {
736 | lr_mult: 2
737 | decay_mult: 0
738 | }
739 | convolution_param {
740 | num_output: 1024
741 | pad: 24
742 | kernel_size: 3
743 | dilation: 24
744 | }
745 | }
746 | layer {
747 | name: "relu6_4"
748 | type: "ReLU"
749 | bottom: "fc6_4"
750 | top: "fc6_4"
751 | }
752 | layer {
753 | name: "drop6_4"
754 | type: "Dropout"
755 | bottom: "fc6_4"
756 | top: "fc6_4"
757 | dropout_param {
758 | dropout_ratio: 0.5
759 | }
760 | }
761 | layer {
762 | name: "fc7_4"
763 | type: "Convolution"
764 | bottom: "fc6_4"
765 | top: "fc7_4"
766 | param {
767 | lr_mult: 1
768 | decay_mult: 1
769 | }
770 | param {
771 | lr_mult: 2
772 | decay_mult: 0
773 | }
774 | convolution_param {
775 | num_output: 1024
776 | kernel_size: 1
777 | }
778 | }
779 | layer {
780 | name: "relu7_4"
781 | type: "ReLU"
782 | bottom: "fc7_4"
783 | top: "fc7_4"
784 | }
785 | layer {
786 | name: "drop7_4"
787 | type: "Dropout"
788 | bottom: "fc7_4"
789 | top: "fc7_4"
790 | dropout_param {
791 | dropout_ratio: 0.5
792 | }
793 | }
794 | layer {
795 | name: "fc8_${EXP}_4"
796 | type: "Convolution"
797 | bottom: "fc7_4"
798 | top: "fc8_${EXP}_4"
799 | param {
800 | lr_mult: 10
801 | decay_mult: 1
802 | }
803 | param {
804 | lr_mult: 20
805 | decay_mult: 0
806 | }
807 | convolution_param {
808 | num_output: ${NUM_LABELS}
809 | kernel_size: 1
810 | weight_filler {
811 | type: "gaussian"
812 | std: 0.01
813 | }
814 | bias_filler {
815 | type: "constant"
816 | value: 0
817 | }
818 | }
819 | }
820 |
821 | ### SUM the four branches
822 | layer {
823 | bottom: "fc8_${EXP}_1"
824 | bottom: "fc8_${EXP}_2"
825 | bottom: "fc8_${EXP}_3"
826 | bottom: "fc8_${EXP}_4"
827 | top: "fc8_${EXP}"
828 | name: "fc8_${EXP}"
829 | type: "Eltwise"
830 | eltwise_param {
831 | operation: SUM
832 | }
833 | }
834 |
835 | #################
836 | layer {
837 | bottom: "label"
838 | top: "label_shrink"
839 | name: "label_shrink"
840 | type: "Interp"
841 | interp_param {
842 | shrink_factor: 8
843 | pad_beg: 0
844 | pad_end: 0
845 | }
846 | }
847 | layer {
848 | name: "loss"
849 | type: "SoftmaxWithLoss"
850 | bottom: "fc8_${EXP}"
851 | bottom: "label_shrink"
852 | include {
853 | phase: TRAIN
854 | }
855 | loss_param {
856 | ignore_label: 255
857 | }
858 | }
859 | layer {
860 | name: "accuracy"
861 | type: "SegAccuracy"
862 | bottom: "fc8_${EXP}"
863 | bottom: "label_shrink"
864 | top: "accuracy"
865 | seg_accuracy_param {
866 | ignore_label: 255
867 | }
868 | }
869 | layer {
870 | name: "silence"
871 | type: "Silence"
872 | bottom: "data_dim"
873 | }
874 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/data/.gitignore:
--------------------------------------------------------------------------------
1 | annotations
2 | images
3 | annotations513
4 | images513
5 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/list/.gitignore:
--------------------------------------------------------------------------------
1 | train_diff_.txt
2 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/list/val513_id.txt:
--------------------------------------------------------------------------------
1 | COCO_train2014_000000000825
2 | COCO_train2014_000000000934
3 | COCO_train2014_000000001264
4 | COCO_train2014_000000001386
5 | COCO_train2014_000000001785
6 | COCO_train2014_000000003272
7 | COCO_train2014_000000004490
8 | COCO_train2014_000000005755
9 | COCO_train2014_000000006640
10 | COCO_train2014_000000006780
11 | COCO_train2014_000000007601
12 | COCO_train2014_000000007894
13 | COCO_train2014_000000008160
14 | COCO_train2014_000000008396
15 | COCO_train2014_000000008414
16 | COCO_train2014_000000008564
17 | COCO_train2014_000000008965
18 | COCO_train2014_000000009075
19 | COCO_train2014_000000010881
20 | COCO_train2014_000000011968
21 | COCO_train2014_000000012690
22 | COCO_train2014_000000012728
23 | COCO_train2014_000000013547
24 | COCO_train2014_000000013715
25 | COCO_train2014_000000014546
26 | COCO_train2014_000000014988
27 | COCO_train2014_000000015096
28 | COCO_train2014_000000015195
29 | COCO_train2014_000000015239
30 | COCO_train2014_000000015392
31 | COCO_train2014_000000015546
32 | COCO_train2014_000000016383
33 | COCO_train2014_000000016857
34 | COCO_train2014_000000017167
35 | COCO_train2014_000000017717
36 | COCO_train2014_000000017890
37 | COCO_train2014_000000018171
38 | COCO_train2014_000000018683
39 | COCO_train2014_000000019428
40 | COCO_train2014_000000019647
41 | COCO_train2014_000000019926
42 | COCO_train2014_000000022198
43 | COCO_train2014_000000022564
44 | COCO_train2014_000000024169
45 | COCO_train2014_000000024204
46 | COCO_train2014_000000024289
47 | COCO_train2014_000000024802
48 | COCO_train2014_000000024972
49 | COCO_train2014_000000025401
50 | COCO_train2014_000000026944
51 | COCO_train2014_000000027937
52 | COCO_train2014_000000028154
53 | COCO_train2014_000000029752
54 | COCO_train2014_000000029799
55 | COCO_train2014_000000029816
56 | COCO_train2014_000000030713
57 | COCO_train2014_000000031135
58 | COCO_train2014_000000032458
59 | COCO_train2014_000000032767
60 | COCO_train2014_000000032986
61 | COCO_train2014_000000033077
62 | COCO_train2014_000000034283
63 | COCO_train2014_000000034971
64 | COCO_train2014_000000035093
65 | COCO_train2014_000000035701
66 | COCO_train2014_000000035884
67 | COCO_train2014_000000035964
68 | COCO_train2014_000000036157
69 | COCO_train2014_000000036207
70 | COCO_train2014_000000037123
71 | COCO_train2014_000000037323
72 | COCO_train2014_000000040006
73 | COCO_train2014_000000040569
74 | COCO_train2014_000000040580
75 | COCO_train2014_000000040995
76 | COCO_train2014_000000041442
77 | COCO_train2014_000000043606
78 | COCO_train2014_000000044540
79 | COCO_train2014_000000046265
80 | COCO_train2014_000000047952
81 | COCO_train2014_000000048181
82 | COCO_train2014_000000048394
83 | COCO_train2014_000000048460
84 | COCO_train2014_000000048711
85 | COCO_train2014_000000049673
86 | COCO_train2014_000000049851
87 | COCO_train2014_000000050105
88 | COCO_train2014_000000050246
89 | COCO_train2014_000000050846
90 | COCO_train2014_000000050961
91 | COCO_train2014_000000051606
92 | COCO_train2014_000000051663
93 | COCO_train2014_000000052426
94 | COCO_train2014_000000052629
95 | COCO_train2014_000000053518
96 | COCO_train2014_000000053696
97 | COCO_train2014_000000053999
98 | COCO_train2014_000000055458
99 | COCO_train2014_000000056049
100 | COCO_train2014_000000058248
101 | COCO_train2014_000000058801
102 | COCO_train2014_000000059167
103 | COCO_train2014_000000060482
104 | COCO_train2014_000000060624
105 | COCO_train2014_000000060873
106 | COCO_train2014_000000060952
107 | COCO_train2014_000000060973
108 | COCO_train2014_000000063572
109 | COCO_train2014_000000063874
110 | COCO_train2014_000000064028
111 | COCO_train2014_000000064308
112 | COCO_train2014_000000064460
113 | COCO_train2014_000000064602
114 | COCO_train2014_000000065218
115 | COCO_train2014_000000067356
116 | COCO_train2014_000000067972
117 | COCO_train2014_000000068623
118 | COCO_train2014_000000069051
119 | COCO_train2014_000000069163
120 | COCO_train2014_000000069661
121 | COCO_train2014_000000072373
122 | COCO_train2014_000000072580
123 | COCO_train2014_000000073000
124 | COCO_train2014_000000073554
125 | COCO_train2014_000000074217
126 | COCO_train2014_000000075084
127 | COCO_train2014_000000075324
128 | COCO_train2014_000000075369
129 | COCO_train2014_000000075829
130 | COCO_train2014_000000075882
131 | COCO_train2014_000000076250
132 | COCO_train2014_000000076856
133 | COCO_train2014_000000077155
134 | COCO_train2014_000000077516
135 | COCO_train2014_000000077603
136 | COCO_train2014_000000077874
137 | COCO_train2014_000000079069
138 | COCO_train2014_000000079517
139 | COCO_train2014_000000079720
140 | COCO_train2014_000000080434
141 | COCO_train2014_000000082658
142 | COCO_train2014_000000082844
143 | COCO_train2014_000000084013
144 | COCO_train2014_000000085114
145 | COCO_train2014_000000085339
146 | COCO_train2014_000000087017
147 | COCO_train2014_000000087208
148 | COCO_train2014_000000087604
149 | COCO_train2014_000000089232
150 | COCO_train2014_000000089322
151 | COCO_train2014_000000089563
152 | COCO_train2014_000000091155
153 | COCO_train2014_000000092170
154 | COCO_train2014_000000094946
155 | COCO_train2014_000000095752
156 | COCO_train2014_000000096130
157 | COCO_train2014_000000096573
158 | COCO_train2014_000000096586
159 | COCO_train2014_000000097053
160 | COCO_train2014_000000097078
161 | COCO_train2014_000000097218
162 | COCO_train2014_000000097458
163 | COCO_train2014_000000097712
164 | COCO_train2014_000000098085
165 | COCO_train2014_000000098213
166 | COCO_train2014_000000098495
167 | COCO_train2014_000000098601
168 | COCO_train2014_000000098642
169 | COCO_train2014_000000099064
170 | COCO_train2014_000000099229
171 | COCO_train2014_000000100821
172 | COCO_train2014_000000101968
173 | COCO_train2014_000000102793
174 | COCO_train2014_000000102835
175 | COCO_train2014_000000103822
176 | COCO_train2014_000000104046
177 | COCO_train2014_000000105172
178 | COCO_train2014_000000105531
179 | COCO_train2014_000000105714
180 | COCO_train2014_000000106615
181 | COCO_train2014_000000106772
182 | COCO_train2014_000000107609
183 | COCO_train2014_000000108751
184 | COCO_train2014_000000110159
185 | COCO_train2014_000000110603
186 | COCO_train2014_000000110926
187 | COCO_train2014_000000111103
188 | COCO_train2014_000000111182
189 | COCO_train2014_000000112029
190 | COCO_train2014_000000112122
191 | COCO_train2014_000000112250
192 | COCO_train2014_000000112708
193 | COCO_train2014_000000112726
194 | COCO_train2014_000000112732
195 | COCO_train2014_000000114060
196 | COCO_train2014_000000115421
197 | COCO_train2014_000000116141
198 | COCO_train2014_000000116380
199 | COCO_train2014_000000116717
200 | COCO_train2014_000000117040
201 | COCO_train2014_000000117336
202 | COCO_train2014_000000118022
203 | COCO_train2014_000000118089
204 | COCO_train2014_000000118543
205 | COCO_train2014_000000118590
206 | COCO_train2014_000000118904
207 | COCO_train2014_000000119006
208 | COCO_train2014_000000119808
209 | COCO_train2014_000000120743
210 | COCO_train2014_000000121785
211 | COCO_train2014_000000122459
212 | COCO_train2014_000000122918
213 | COCO_train2014_000000123765
214 | COCO_train2014_000000123967
215 | COCO_train2014_000000124606
216 | COCO_train2014_000000124737
217 | COCO_train2014_000000126127
218 | COCO_train2014_000000126483
219 | COCO_train2014_000000126832
220 | COCO_train2014_000000126921
221 | COCO_train2014_000000127377
222 | COCO_train2014_000000127726
223 | COCO_train2014_000000128665
224 | COCO_train2014_000000129079
225 | COCO_train2014_000000129347
226 | COCO_train2014_000000129359
227 | COCO_train2014_000000129631
228 | COCO_train2014_000000129806
229 | COCO_train2014_000000130132
230 | COCO_train2014_000000130440
231 | COCO_train2014_000000131747
232 | COCO_train2014_000000132041
233 | COCO_train2014_000000132258
234 | COCO_train2014_000000132310
235 | COCO_train2014_000000132607
236 | COCO_train2014_000000132997
237 | COCO_train2014_000000134039
238 | COCO_train2014_000000134430
239 | COCO_train2014_000000135438
240 | COCO_train2014_000000136015
241 | COCO_train2014_000000136158
242 | COCO_train2014_000000137711
243 | COCO_train2014_000000138081
244 | COCO_train2014_000000138137
245 | COCO_train2014_000000138977
246 | COCO_train2014_000000139040
247 | COCO_train2014_000000139095
248 | COCO_train2014_000000140850
249 | COCO_train2014_000000140909
250 | COCO_train2014_000000141051
251 | COCO_train2014_000000142053
252 | COCO_train2014_000000142088
253 | COCO_train2014_000000142276
254 | COCO_train2014_000000142291
255 | COCO_train2014_000000143182
256 | COCO_train2014_000000143965
257 | COCO_train2014_000000145191
258 | COCO_train2014_000000145518
259 | COCO_train2014_000000146586
260 | COCO_train2014_000000146933
261 | COCO_train2014_000000147115
262 | COCO_train2014_000000147392
263 | COCO_train2014_000000148024
264 | COCO_train2014_000000149085
265 | COCO_train2014_000000150197
266 | COCO_train2014_000000150276
267 | COCO_train2014_000000150283
268 | COCO_train2014_000000150462
269 | COCO_train2014_000000150650
270 | COCO_train2014_000000152041
271 | COCO_train2014_000000152238
272 | COCO_train2014_000000152556
273 | COCO_train2014_000000152954
274 | COCO_train2014_000000153126
275 | COCO_train2014_000000153655
276 | COCO_train2014_000000154060
277 | COCO_train2014_000000154171
278 | COCO_train2014_000000154710
279 | COCO_train2014_000000155776
280 | COCO_train2014_000000156471
281 | COCO_train2014_000000156630
282 | COCO_train2014_000000156710
283 | COCO_train2014_000000157603
284 | COCO_train2014_000000157610
285 | COCO_train2014_000000158647
286 | COCO_train2014_000000158718
287 | COCO_train2014_000000158787
288 | COCO_train2014_000000159061
289 | COCO_train2014_000000159128
290 | COCO_train2014_000000159357
291 | COCO_train2014_000000160013
292 | COCO_train2014_000000161414
293 | COCO_train2014_000000163560
294 | COCO_train2014_000000164205
295 | COCO_train2014_000000164655
296 | COCO_train2014_000000164751
297 | COCO_train2014_000000164793
298 | COCO_train2014_000000165571
299 | COCO_train2014_000000166236
300 | COCO_train2014_000000167680
301 | COCO_train2014_000000168338
302 | COCO_train2014_000000168361
303 | COCO_train2014_000000168848
304 | COCO_train2014_000000169766
305 | COCO_train2014_000000170008
306 | COCO_train2014_000000170413
307 | COCO_train2014_000000170780
308 | COCO_train2014_000000171208
309 | COCO_train2014_000000171239
310 | COCO_train2014_000000171472
311 | COCO_train2014_000000171841
312 | COCO_train2014_000000171943
313 | COCO_train2014_000000173228
314 | COCO_train2014_000000176392
315 | COCO_train2014_000000176728
316 | COCO_train2014_000000176729
317 | COCO_train2014_000000178798
318 | COCO_train2014_000000178933
319 | COCO_train2014_000000178966
320 | COCO_train2014_000000181393
321 | COCO_train2014_000000181571
322 | COCO_train2014_000000181623
323 | COCO_train2014_000000181719
324 | COCO_train2014_000000182402
325 | COCO_train2014_000000182497
326 | COCO_train2014_000000182602
327 | COCO_train2014_000000183240
328 | COCO_train2014_000000184520
329 | COCO_train2014_000000184589
330 | COCO_train2014_000000186719
331 | COCO_train2014_000000186784
332 | COCO_train2014_000000187037
333 | COCO_train2014_000000187447
334 | COCO_train2014_000000187738
335 | COCO_train2014_000000187757
336 | COCO_train2014_000000188589
337 | COCO_train2014_000000189045
338 | COCO_train2014_000000189742
339 | COCO_train2014_000000189785
340 | COCO_train2014_000000190141
341 | COCO_train2014_000000190495
342 | COCO_train2014_000000191297
343 | COCO_train2014_000000191327
344 | COCO_train2014_000000191661
345 | COCO_train2014_000000191879
346 | COCO_train2014_000000192048
347 | COCO_train2014_000000192307
348 | COCO_train2014_000000192954
349 | COCO_train2014_000000193972
350 | COCO_train2014_000000194820
351 | COCO_train2014_000000195386
352 | COCO_train2014_000000196460
353 | COCO_train2014_000000196653
354 | COCO_train2014_000000197854
355 | COCO_train2014_000000199093
356 | COCO_train2014_000000199152
357 | COCO_train2014_000000199410
358 | COCO_train2014_000000199899
359 | COCO_train2014_000000200206
360 | COCO_train2014_000000200619
361 | COCO_train2014_000000201213
362 | COCO_train2014_000000201664
363 | COCO_train2014_000000201891
364 | COCO_train2014_000000201893
365 | COCO_train2014_000000202990
366 | COCO_train2014_000000203612
367 | COCO_train2014_000000203867
368 | COCO_train2014_000000204216
369 | COCO_train2014_000000204294
370 | COCO_train2014_000000204345
371 | COCO_train2014_000000204606
372 | COCO_train2014_000000204728
373 | COCO_train2014_000000205313
374 | COCO_train2014_000000205724
375 | COCO_train2014_000000206102
376 | COCO_train2014_000000207573
377 | COCO_train2014_000000208633
378 | COCO_train2014_000000208752
379 | COCO_train2014_000000208961
380 | COCO_train2014_000000209704
381 | COCO_train2014_000000209822
382 | COCO_train2014_000000211161
383 | COCO_train2014_000000211593
384 | COCO_train2014_000000212551
385 | COCO_train2014_000000213204
386 | COCO_train2014_000000213207
387 | COCO_train2014_000000214137
388 | COCO_train2014_000000214489
389 | COCO_train2014_000000214719
390 | COCO_train2014_000000214726
391 | COCO_train2014_000000215092
392 | COCO_train2014_000000216378
393 | COCO_train2014_000000217461
394 | COCO_train2014_000000217958
395 | COCO_train2014_000000218284
396 | COCO_train2014_000000219037
397 | COCO_train2014_000000221425
398 | COCO_train2014_000000225363
399 | COCO_train2014_000000225458
400 | COCO_train2014_000000225669
401 | COCO_train2014_000000227621
402 | COCO_train2014_000000229156
403 | COCO_train2014_000000229312
404 | COCO_train2014_000000229440
405 | COCO_train2014_000000229813
406 | COCO_train2014_000000229947
407 | COCO_train2014_000000230554
408 | COCO_train2014_000000230601
409 | COCO_train2014_000000230777
410 | COCO_train2014_000000231351
411 | COCO_train2014_000000231538
412 | COCO_train2014_000000231881
413 | COCO_train2014_000000232551
414 | COCO_train2014_000000232952
415 | COCO_train2014_000000233292
416 | COCO_train2014_000000234016
417 | COCO_train2014_000000234600
418 | COCO_train2014_000000236350
419 | COCO_train2014_000000236397
420 | COCO_train2014_000000237427
421 | COCO_train2014_000000237834
422 | COCO_train2014_000000237944
423 | COCO_train2014_000000238453
424 | COCO_train2014_000000239670
425 | COCO_train2014_000000239697
426 | COCO_train2014_000000239882
427 | COCO_train2014_000000240322
428 | COCO_train2014_000000241767
429 | COCO_train2014_000000242931
430 | COCO_train2014_000000242979
431 | COCO_train2014_000000243231
432 | COCO_train2014_000000243443
433 | COCO_train2014_000000244812
434 | COCO_train2014_000000247082
435 | COCO_train2014_000000247311
436 | COCO_train2014_000000247515
437 | COCO_train2014_000000247604
438 | COCO_train2014_000000248957
439 | COCO_train2014_000000250223
440 | COCO_train2014_000000250351
441 | COCO_train2014_000000250808
442 | COCO_train2014_000000250849
443 | COCO_train2014_000000251026
444 | COCO_train2014_000000251079
445 | COCO_train2014_000000251557
446 | COCO_train2014_000000251623
447 | COCO_train2014_000000251663
448 | COCO_train2014_000000252025
449 | COCO_train2014_000000252407
450 | COCO_train2014_000000253323
451 | COCO_train2014_000000253942
452 | COCO_train2014_000000254818
453 | COCO_train2014_000000256037
454 | COCO_train2014_000000256706
455 | COCO_train2014_000000257353
456 | COCO_train2014_000000257945
457 | COCO_train2014_000000260741
458 | COCO_train2014_000000260970
459 | COCO_train2014_000000261066
460 | COCO_train2014_000000262001
461 | COCO_train2014_000000262180
462 | COCO_train2014_000000263767
463 | COCO_train2014_000000264158
464 | COCO_train2014_000000264526
465 | COCO_train2014_000000264709
466 | COCO_train2014_000000265179
467 | COCO_train2014_000000265398
468 | COCO_train2014_000000265536
469 | COCO_train2014_000000265938
470 | COCO_train2014_000000266302
471 | COCO_train2014_000000266336
472 | COCO_train2014_000000267106
473 | COCO_train2014_000000268227
474 | COCO_train2014_000000268617
475 | COCO_train2014_000000269903
476 | COCO_train2014_000000270688
477 | COCO_train2014_000000272223
478 | COCO_train2014_000000272679
479 | COCO_train2014_000000273439
480 | COCO_train2014_000000274047
481 | COCO_train2014_000000274521
482 | COCO_train2014_000000275837
483 | COCO_train2014_000000276047
484 | COCO_train2014_000000277204
485 | COCO_train2014_000000277697
486 | COCO_train2014_000000277700
487 | COCO_train2014_000000277857
488 | COCO_train2014_000000279197
489 | COCO_train2014_000000279844
490 | COCO_train2014_000000280177
491 | COCO_train2014_000000280823
492 | COCO_train2014_000000280995
493 | COCO_train2014_000000282252
494 | COCO_train2014_000000282703
495 | COCO_train2014_000000283757
496 | COCO_train2014_000000285667
497 | COCO_train2014_000000286022
498 | COCO_train2014_000000287213
499 | COCO_train2014_000000287760
500 | COCO_train2014_000000287927
501 | COCO_train2014_000000287934
502 | COCO_train2014_000000288171
503 | COCO_train2014_000000288794
504 | COCO_train2014_000000289071
505 | COCO_train2014_000000289158
506 | COCO_train2014_000000289866
507 | COCO_train2014_000000291827
508 | COCO_train2014_000000291915
509 | COCO_train2014_000000292249
510 | COCO_train2014_000000292312
511 | COCO_train2014_000000293340
512 | COCO_train2014_000000294083
513 | COCO_train2014_000000294108
514 | COCO_train2014_000000294186
515 | COCO_train2014_000000295343
516 | COCO_train2014_000000297639
517 | COCO_train2014_000000297678
518 | COCO_train2014_000000297870
519 | COCO_train2014_000000298512
520 | COCO_train2014_000000298878
521 | COCO_train2014_000000299111
522 | COCO_train2014_000000301187
523 | COCO_train2014_000000301296
524 | COCO_train2014_000000301527
525 | COCO_train2014_000000301954
526 | COCO_train2014_000000302065
527 | COCO_train2014_000000302249
528 | COCO_train2014_000000302660
529 | COCO_train2014_000000302715
530 | COCO_train2014_000000303870
531 | COCO_train2014_000000304027
532 | COCO_train2014_000000304459
533 | COCO_train2014_000000304528
534 | COCO_train2014_000000304716
535 | COCO_train2014_000000305014
536 | COCO_train2014_000000305323
537 | COCO_train2014_000000305517
538 | COCO_train2014_000000306232
539 | COCO_train2014_000000306900
540 | COCO_train2014_000000307061
541 | COCO_train2014_000000307435
542 | COCO_train2014_000000307981
543 | COCO_train2014_000000308107
544 | COCO_train2014_000000308768
545 | COCO_train2014_000000312184
546 | COCO_train2014_000000312355
547 | COCO_train2014_000000312800
548 | COCO_train2014_000000314135
549 | COCO_train2014_000000314530
550 | COCO_train2014_000000314904
551 | COCO_train2014_000000315092
552 | COCO_train2014_000000315322
553 | COCO_train2014_000000316524
554 | COCO_train2014_000000317103
555 | COCO_train2014_000000318528
556 | COCO_train2014_000000319741
557 | COCO_train2014_000000320374
558 | COCO_train2014_000000321209
559 | COCO_train2014_000000321306
560 | COCO_train2014_000000321318
561 | COCO_train2014_000000321373
562 | COCO_train2014_000000321711
563 | COCO_train2014_000000322246
564 | COCO_train2014_000000322392
565 | COCO_train2014_000000322402
566 | COCO_train2014_000000322866
567 | COCO_train2014_000000323672
568 | COCO_train2014_000000323728
569 | COCO_train2014_000000323733
570 | COCO_train2014_000000324112
571 | COCO_train2014_000000324413
572 | COCO_train2014_000000325371
573 | COCO_train2014_000000325786
574 | COCO_train2014_000000326805
575 | COCO_train2014_000000328427
576 | COCO_train2014_000000328454
577 | COCO_train2014_000000329188
578 | COCO_train2014_000000329737
579 | COCO_train2014_000000330177
580 | COCO_train2014_000000330395
581 | COCO_train2014_000000332193
582 | COCO_train2014_000000332540
583 | COCO_train2014_000000334158
584 | COCO_train2014_000000334232
585 | COCO_train2014_000000334448
586 | COCO_train2014_000000336335
587 | COCO_train2014_000000336804
588 | COCO_train2014_000000336954
589 | COCO_train2014_000000337609
590 | COCO_train2014_000000338367
591 | COCO_train2014_000000338579
592 | COCO_train2014_000000338597
593 | COCO_train2014_000000339042
594 | COCO_train2014_000000340024
595 | COCO_train2014_000000340454
596 | COCO_train2014_000000342665
597 | COCO_train2014_000000343235
598 | COCO_train2014_000000346450
599 | COCO_train2014_000000346741
600 | COCO_train2014_000000347328
601 | COCO_train2014_000000348299
602 | COCO_train2014_000000352120
603 | COCO_train2014_000000352211
604 | COCO_train2014_000000352264
605 | COCO_train2014_000000352877
606 | COCO_train2014_000000354305
607 | COCO_train2014_000000354493
608 | COCO_train2014_000000354725
609 | COCO_train2014_000000355582
610 | COCO_train2014_000000355603
611 | COCO_train2014_000000355830
612 | COCO_train2014_000000358405
613 | COCO_train2014_000000359147
614 | COCO_train2014_000000359625
615 | COCO_train2014_000000360110
616 | COCO_train2014_000000360157
617 | COCO_train2014_000000361619
618 | COCO_train2014_000000363806
619 | COCO_train2014_000000363947
620 | COCO_train2014_000000365003
621 | COCO_train2014_000000365164
622 | COCO_train2014_000000365458
623 | COCO_train2014_000000365527
624 | COCO_train2014_000000366382
625 | COCO_train2014_000000368044
626 | COCO_train2014_000000368084
627 | COCO_train2014_000000368284
628 | COCO_train2014_000000369201
629 | COCO_train2014_000000369976
630 | COCO_train2014_000000370010
631 | COCO_train2014_000000371244
632 | COCO_train2014_000000372308
633 | COCO_train2014_000000372374
634 | COCO_train2014_000000373045
635 | COCO_train2014_000000373425
636 | COCO_train2014_000000375080
637 | COCO_train2014_000000375153
638 | COCO_train2014_000000375841
639 | COCO_train2014_000000376258
640 | COCO_train2014_000000376701
641 | COCO_train2014_000000377570
642 | COCO_train2014_000000377572
643 | COCO_train2014_000000377666
644 | COCO_train2014_000000378068
645 | COCO_train2014_000000378638
646 | COCO_train2014_000000379672
647 | COCO_train2014_000000379781
648 | COCO_train2014_000000380108
649 | COCO_train2014_000000380191
650 | COCO_train2014_000000380271
651 | COCO_train2014_000000380455
652 | COCO_train2014_000000380520
653 | COCO_train2014_000000381036
654 | COCO_train2014_000000382615
655 | COCO_train2014_000000382789
656 | COCO_train2014_000000383452
657 | COCO_train2014_000000384021
658 | COCO_train2014_000000384605
659 | COCO_train2014_000000385114
660 | COCO_train2014_000000385885
661 | COCO_train2014_000000386876
662 | COCO_train2014_000000388294
663 | COCO_train2014_000000389487
664 | COCO_train2014_000000390969
665 | COCO_train2014_000000393094
666 | COCO_train2014_000000393664
667 | COCO_train2014_000000393721
668 | COCO_train2014_000000393826
669 | COCO_train2014_000000395758
670 | COCO_train2014_000000396793
671 | COCO_train2014_000000396871
672 | COCO_train2014_000000397163
673 | COCO_train2014_000000397212
674 | COCO_train2014_000000397353
675 | COCO_train2014_000000397486
676 | COCO_train2014_000000397645
677 | COCO_train2014_000000397759
678 | COCO_train2014_000000399101
679 | COCO_train2014_000000399746
680 | COCO_train2014_000000400625
681 | COCO_train2014_000000401147
682 | COCO_train2014_000000401167
683 | COCO_train2014_000000401286
684 | COCO_train2014_000000401877
685 | COCO_train2014_000000401977
686 | COCO_train2014_000000402004
687 | COCO_train2014_000000402980
688 | COCO_train2014_000000403222
689 | COCO_train2014_000000404163
690 | COCO_train2014_000000404361
691 | COCO_train2014_000000405312
692 | COCO_train2014_000000405628
693 | COCO_train2014_000000406376
694 | COCO_train2014_000000407381
695 | COCO_train2014_000000407522
696 | COCO_train2014_000000408144
697 | COCO_train2014_000000408460
698 | COCO_train2014_000000410845
699 | COCO_train2014_000000411061
700 | COCO_train2014_000000411441
701 | COCO_train2014_000000411885
702 | COCO_train2014_000000412238
703 | COCO_train2014_000000412734
704 | COCO_train2014_000000413391
705 | COCO_train2014_000000414046
706 | COCO_train2014_000000414492
707 | COCO_train2014_000000414851
708 | COCO_train2014_000000414989
709 | COCO_train2014_000000414999
710 | COCO_train2014_000000415222
711 | COCO_train2014_000000415918
712 | COCO_train2014_000000416172
713 | COCO_train2014_000000416371
714 | COCO_train2014_000000417201
715 | COCO_train2014_000000417369
716 | COCO_train2014_000000417571
717 | COCO_train2014_000000417793
718 | COCO_train2014_000000418964
719 | COCO_train2014_000000419194
720 | COCO_train2014_000000420304
721 | COCO_train2014_000000420552
722 | COCO_train2014_000000420629
723 | COCO_train2014_000000421380
724 | COCO_train2014_000000421630
725 | COCO_train2014_000000422050
726 | COCO_train2014_000000422286
727 | COCO_train2014_000000422314
728 | COCO_train2014_000000423096
729 | COCO_train2014_000000423266
730 | COCO_train2014_000000424912
731 | COCO_train2014_000000425540
732 | COCO_train2014_000000426776
733 | COCO_train2014_000000427990
734 | COCO_train2014_000000428390
735 | COCO_train2014_000000430191
736 | COCO_train2014_000000430346
737 | COCO_train2014_000000430480
738 | COCO_train2014_000000430759
739 | COCO_train2014_000000430890
740 | COCO_train2014_000000431699
741 | COCO_train2014_000000432603
742 | COCO_train2014_000000436626
743 | COCO_train2014_000000436882
744 | COCO_train2014_000000438335
745 | COCO_train2014_000000438964
746 | COCO_train2014_000000439423
747 | COCO_train2014_000000439527
748 | COCO_train2014_000000439875
749 | COCO_train2014_000000441507
750 | COCO_train2014_000000441751
751 | COCO_train2014_000000443243
752 | COCO_train2014_000000443397
753 | COCO_train2014_000000443693
754 | COCO_train2014_000000443764
755 | COCO_train2014_000000444166
756 | COCO_train2014_000000444941
757 | COCO_train2014_000000445080
758 | COCO_train2014_000000445156
759 | COCO_train2014_000000445493
760 | COCO_train2014_000000445528
761 | COCO_train2014_000000446463
762 | COCO_train2014_000000447090
763 | COCO_train2014_000000447785
764 | COCO_train2014_000000449270
765 | COCO_train2014_000000449508
766 | COCO_train2014_000000452500
767 | COCO_train2014_000000452512
768 | COCO_train2014_000000452806
769 | COCO_train2014_000000455313
770 | COCO_train2014_000000455424
771 | COCO_train2014_000000455615
772 | COCO_train2014_000000455677
773 | COCO_train2014_000000456788
774 | COCO_train2014_000000457261
775 | COCO_train2014_000000458281
776 | COCO_train2014_000000458599
777 | COCO_train2014_000000458879
778 | COCO_train2014_000000460092
779 | COCO_train2014_000000460228
780 | COCO_train2014_000000460998
781 | COCO_train2014_000000461519
782 | COCO_train2014_000000461939
783 | COCO_train2014_000000462080
784 | COCO_train2014_000000462238
785 | COCO_train2014_000000462875
786 | COCO_train2014_000000463417
787 | COCO_train2014_000000463823
788 | COCO_train2014_000000464105
789 | COCO_train2014_000000464740
790 | COCO_train2014_000000465045
791 | COCO_train2014_000000466134
792 | COCO_train2014_000000466267
793 | COCO_train2014_000000467572
794 | COCO_train2014_000000469355
795 | COCO_train2014_000000469427
796 | COCO_train2014_000000469556
797 | COCO_train2014_000000469806
798 | COCO_train2014_000000470622
799 | COCO_train2014_000000471020
800 | COCO_train2014_000000472065
801 | COCO_train2014_000000472089
802 | COCO_train2014_000000472432
803 | COCO_train2014_000000472444
804 | COCO_train2014_000000473295
805 | COCO_train2014_000000473375
806 | COCO_train2014_000000473462
807 | COCO_train2014_000000473651
808 | COCO_train2014_000000473912
809 | COCO_train2014_000000474330
810 | COCO_train2014_000000474800
811 | COCO_train2014_000000474832
812 | COCO_train2014_000000475103
813 | COCO_train2014_000000475177
814 | COCO_train2014_000000475370
815 | COCO_train2014_000000475546
816 | COCO_train2014_000000476093
817 | COCO_train2014_000000476553
818 | COCO_train2014_000000476761
819 | COCO_train2014_000000477758
820 | COCO_train2014_000000477861
821 | COCO_train2014_000000478080
822 | COCO_train2014_000000479101
823 | COCO_train2014_000000479325
824 | COCO_train2014_000000479372
825 | COCO_train2014_000000480773
826 | COCO_train2014_000000480790
827 | COCO_train2014_000000480843
828 | COCO_train2014_000000481073
829 | COCO_train2014_000000481759
830 | COCO_train2014_000000482127
831 | COCO_train2014_000000482810
832 | COCO_train2014_000000483573
833 | COCO_train2014_000000483757
834 | COCO_train2014_000000483769
835 | COCO_train2014_000000484033
836 | COCO_train2014_000000486215
837 | COCO_train2014_000000487467
838 | COCO_train2014_000000488432
839 | COCO_train2014_000000488866
840 | COCO_train2014_000000489734
841 | COCO_train2014_000000491259
842 | COCO_train2014_000000491659
843 | COCO_train2014_000000492954
844 | COCO_train2014_000000492973
845 | COCO_train2014_000000495169
846 | COCO_train2014_000000495625
847 | COCO_train2014_000000495902
848 | COCO_train2014_000000496153
849 | COCO_train2014_000000496269
850 | COCO_train2014_000000496322
851 | COCO_train2014_000000496476
852 | COCO_train2014_000000497167
853 | COCO_train2014_000000497350
854 | COCO_train2014_000000497402
855 | COCO_train2014_000000498525
856 | COCO_train2014_000000499179
857 | COCO_train2014_000000499396
858 | COCO_train2014_000000499871
859 | COCO_train2014_000000500077
860 | COCO_train2014_000000501594
861 | COCO_train2014_000000501814
862 | COCO_train2014_000000502134
863 | COCO_train2014_000000502153
864 | COCO_train2014_000000502325
865 | COCO_train2014_000000504147
866 | COCO_train2014_000000504766
867 | COCO_train2014_000000505128
868 | COCO_train2014_000000506034
869 | COCO_train2014_000000506322
870 | COCO_train2014_000000506341
871 | COCO_train2014_000000506379
872 | COCO_train2014_000000506598
873 | COCO_train2014_000000507479
874 | COCO_train2014_000000508227
875 | COCO_train2014_000000508412
876 | COCO_train2014_000000508606
877 | COCO_train2014_000000508878
878 | COCO_train2014_000000508896
879 | COCO_train2014_000000509482
880 | COCO_train2014_000000510260
881 | COCO_train2014_000000512940
882 | COCO_train2014_000000513683
883 | COCO_train2014_000000514939
884 | COCO_train2014_000000515197
885 | COCO_train2014_000000515230
886 | COCO_train2014_000000516500
887 | COCO_train2014_000000517182
888 | COCO_train2014_000000517198
889 | COCO_train2014_000000517508
890 | COCO_train2014_000000517941
891 | COCO_train2014_000000518844
892 | COCO_train2014_000000518898
893 | COCO_train2014_000000520341
894 | COCO_train2014_000000520435
895 | COCO_train2014_000000521218
896 | COCO_train2014_000000522350
897 | COCO_train2014_000000523349
898 | COCO_train2014_000000523981
899 | COCO_train2014_000000524189
900 | COCO_train2014_000000524273
901 | COCO_train2014_000000524297
902 | COCO_train2014_000000525124
903 | COCO_train2014_000000525450
904 | COCO_train2014_000000525876
905 | COCO_train2014_000000526087
906 | COCO_train2014_000000527250
907 | COCO_train2014_000000527623
908 | COCO_train2014_000000527643
909 | COCO_train2014_000000528345
910 | COCO_train2014_000000528550
911 | COCO_train2014_000000528699
912 | COCO_train2014_000000528868
913 | COCO_train2014_000000529645
914 | COCO_train2014_000000531730
915 | COCO_train2014_000000532194
916 | COCO_train2014_000000532342
917 | COCO_train2014_000000533134
918 | COCO_train2014_000000533686
919 | COCO_train2014_000000533888
920 | COCO_train2014_000000534049
921 | COCO_train2014_000000534593
922 | COCO_train2014_000000536039
923 | COCO_train2014_000000536252
924 | COCO_train2014_000000536423
925 | COCO_train2014_000000537337
926 | COCO_train2014_000000539158
927 | COCO_train2014_000000540728
928 | COCO_train2014_000000540831
929 | COCO_train2014_000000542202
930 | COCO_train2014_000000542587
931 | COCO_train2014_000000543182
932 | COCO_train2014_000000543291
933 | COCO_train2014_000000543747
934 | COCO_train2014_000000544384
935 | COCO_train2014_000000544691
936 | COCO_train2014_000000544752
937 | COCO_train2014_000000545072
938 | COCO_train2014_000000545675
939 | COCO_train2014_000000546114
940 | COCO_train2014_000000546140
941 | COCO_train2014_000000547465
942 | COCO_train2014_000000548893
943 | COCO_train2014_000000549098
944 | COCO_train2014_000000549115
945 | COCO_train2014_000000549301
946 | COCO_train2014_000000549400
947 | COCO_train2014_000000550617
948 | COCO_train2014_000000550845
949 | COCO_train2014_000000551679
950 | COCO_train2014_000000551793
951 | COCO_train2014_000000552460
952 | COCO_train2014_000000552678
953 | COCO_train2014_000000552876
954 | COCO_train2014_000000553056
955 | COCO_train2014_000000553149
956 | COCO_train2014_000000554335
957 | COCO_train2014_000000554770
958 | COCO_train2014_000000554943
959 | COCO_train2014_000000556620
960 | COCO_train2014_000000557197
961 | COCO_train2014_000000557483
962 | COCO_train2014_000000559107
963 | COCO_train2014_000000559747
964 | COCO_train2014_000000560573
965 | COCO_train2014_000000560885
966 | COCO_train2014_000000561137
967 | COCO_train2014_000000561251
968 | COCO_train2014_000000561950
969 | COCO_train2014_000000562149
970 | COCO_train2014_000000562461
971 | COCO_train2014_000000562846
972 | COCO_train2014_000000563046
973 | COCO_train2014_000000563168
974 | COCO_train2014_000000564237
975 | COCO_train2014_000000565665
976 | COCO_train2014_000000565684
977 | COCO_train2014_000000565878
978 | COCO_train2014_000000565979
979 | COCO_train2014_000000566969
980 | COCO_train2014_000000569750
981 | COCO_train2014_000000569975
982 | COCO_train2014_000000570225
983 | COCO_train2014_000000570351
984 | COCO_train2014_000000571825
985 | COCO_train2014_000000573241
986 | COCO_train2014_000000574215
987 | COCO_train2014_000000574599
988 | COCO_train2014_000000575202
989 | COCO_train2014_000000575601
990 | COCO_train2014_000000575734
991 | COCO_train2014_000000576675
992 | COCO_train2014_000000577221
993 | COCO_train2014_000000577240
994 | COCO_train2014_000000577876
995 | COCO_train2014_000000578506
996 | COCO_train2014_000000579271
997 | COCO_train2014_000000579907
998 | COCO_train2014_000000579920
999 | COCO_train2014_000000579968
1000 | COCO_train2014_000000581629
1001 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/list/val_id.txt:
--------------------------------------------------------------------------------
1 | COCO_train2014_000000000825
2 | COCO_train2014_000000000934
3 | COCO_train2014_000000001264
4 | COCO_train2014_000000001386
5 | COCO_train2014_000000001785
6 | COCO_train2014_000000003272
7 | COCO_train2014_000000004490
8 | COCO_train2014_000000005755
9 | COCO_train2014_000000006640
10 | COCO_train2014_000000006780
11 | COCO_train2014_000000007601
12 | COCO_train2014_000000007894
13 | COCO_train2014_000000008160
14 | COCO_train2014_000000008396
15 | COCO_train2014_000000008414
16 | COCO_train2014_000000008564
17 | COCO_train2014_000000008965
18 | COCO_train2014_000000009075
19 | COCO_train2014_000000010881
20 | COCO_train2014_000000011968
21 | COCO_train2014_000000012690
22 | COCO_train2014_000000012728
23 | COCO_train2014_000000013547
24 | COCO_train2014_000000013715
25 | COCO_train2014_000000014546
26 | COCO_train2014_000000014988
27 | COCO_train2014_000000015096
28 | COCO_train2014_000000015195
29 | COCO_train2014_000000015239
30 | COCO_train2014_000000015392
31 | COCO_train2014_000000015546
32 | COCO_train2014_000000016383
33 | COCO_train2014_000000016857
34 | COCO_train2014_000000017167
35 | COCO_train2014_000000017717
36 | COCO_train2014_000000017890
37 | COCO_train2014_000000018171
38 | COCO_train2014_000000018683
39 | COCO_train2014_000000019428
40 | COCO_train2014_000000019647
41 | COCO_train2014_000000019926
42 | COCO_train2014_000000022198
43 | COCO_train2014_000000022564
44 | COCO_train2014_000000024169
45 | COCO_train2014_000000024204
46 | COCO_train2014_000000024289
47 | COCO_train2014_000000024802
48 | COCO_train2014_000000024972
49 | COCO_train2014_000000025401
50 | COCO_train2014_000000026944
51 | COCO_train2014_000000027937
52 | COCO_train2014_000000028154
53 | COCO_train2014_000000029752
54 | COCO_train2014_000000029799
55 | COCO_train2014_000000029816
56 | COCO_train2014_000000030713
57 | COCO_train2014_000000031135
58 | COCO_train2014_000000032458
59 | COCO_train2014_000000032767
60 | COCO_train2014_000000032986
61 | COCO_train2014_000000033077
62 | COCO_train2014_000000034283
63 | COCO_train2014_000000034971
64 | COCO_train2014_000000035093
65 | COCO_train2014_000000035701
66 | COCO_train2014_000000035884
67 | COCO_train2014_000000035964
68 | COCO_train2014_000000036157
69 | COCO_train2014_000000036207
70 | COCO_train2014_000000037123
71 | COCO_train2014_000000037323
72 | COCO_train2014_000000040006
73 | COCO_train2014_000000040569
74 | COCO_train2014_000000040580
75 | COCO_train2014_000000040995
76 | COCO_train2014_000000041442
77 | COCO_train2014_000000043606
78 | COCO_train2014_000000044540
79 | COCO_train2014_000000046265
80 | COCO_train2014_000000047952
81 | COCO_train2014_000000048181
82 | COCO_train2014_000000048394
83 | COCO_train2014_000000048460
84 | COCO_train2014_000000048711
85 | COCO_train2014_000000049673
86 | COCO_train2014_000000049851
87 | COCO_train2014_000000050105
88 | COCO_train2014_000000050246
89 | COCO_train2014_000000050846
90 | COCO_train2014_000000050961
91 | COCO_train2014_000000051606
92 | COCO_train2014_000000051663
93 | COCO_train2014_000000052426
94 | COCO_train2014_000000052629
95 | COCO_train2014_000000053518
96 | COCO_train2014_000000053696
97 | COCO_train2014_000000053999
98 | COCO_train2014_000000055458
99 | COCO_train2014_000000056049
100 | COCO_train2014_000000058248
101 | COCO_train2014_000000058801
102 | COCO_train2014_000000059167
103 | COCO_train2014_000000060482
104 | COCO_train2014_000000060624
105 | COCO_train2014_000000060873
106 | COCO_train2014_000000060952
107 | COCO_train2014_000000060973
108 | COCO_train2014_000000063572
109 | COCO_train2014_000000063874
110 | COCO_train2014_000000064028
111 | COCO_train2014_000000064308
112 | COCO_train2014_000000064460
113 | COCO_train2014_000000064602
114 | COCO_train2014_000000065218
115 | COCO_train2014_000000067356
116 | COCO_train2014_000000067972
117 | COCO_train2014_000000068623
118 | COCO_train2014_000000069051
119 | COCO_train2014_000000069163
120 | COCO_train2014_000000069661
121 | COCO_train2014_000000072373
122 | COCO_train2014_000000072580
123 | COCO_train2014_000000073000
124 | COCO_train2014_000000073554
125 | COCO_train2014_000000074217
126 | COCO_train2014_000000075084
127 | COCO_train2014_000000075324
128 | COCO_train2014_000000075369
129 | COCO_train2014_000000075829
130 | COCO_train2014_000000075882
131 | COCO_train2014_000000076250
132 | COCO_train2014_000000076856
133 | COCO_train2014_000000077155
134 | COCO_train2014_000000077516
135 | COCO_train2014_000000077603
136 | COCO_train2014_000000077874
137 | COCO_train2014_000000079069
138 | COCO_train2014_000000079517
139 | COCO_train2014_000000079720
140 | COCO_train2014_000000080434
141 | COCO_train2014_000000082658
142 | COCO_train2014_000000082844
143 | COCO_train2014_000000084013
144 | COCO_train2014_000000085114
145 | COCO_train2014_000000085339
146 | COCO_train2014_000000087017
147 | COCO_train2014_000000087208
148 | COCO_train2014_000000087604
149 | COCO_train2014_000000089232
150 | COCO_train2014_000000089322
151 | COCO_train2014_000000089563
152 | COCO_train2014_000000091155
153 | COCO_train2014_000000092170
154 | COCO_train2014_000000094946
155 | COCO_train2014_000000095752
156 | COCO_train2014_000000096130
157 | COCO_train2014_000000096573
158 | COCO_train2014_000000096586
159 | COCO_train2014_000000097053
160 | COCO_train2014_000000097078
161 | COCO_train2014_000000097218
162 | COCO_train2014_000000097458
163 | COCO_train2014_000000097712
164 | COCO_train2014_000000098085
165 | COCO_train2014_000000098213
166 | COCO_train2014_000000098495
167 | COCO_train2014_000000098601
168 | COCO_train2014_000000098642
169 | COCO_train2014_000000099064
170 | COCO_train2014_000000099229
171 | COCO_train2014_000000100821
172 | COCO_train2014_000000101968
173 | COCO_train2014_000000102793
174 | COCO_train2014_000000102835
175 | COCO_train2014_000000103822
176 | COCO_train2014_000000104046
177 | COCO_train2014_000000105172
178 | COCO_train2014_000000105531
179 | COCO_train2014_000000105714
180 | COCO_train2014_000000106615
181 | COCO_train2014_000000106772
182 | COCO_train2014_000000107609
183 | COCO_train2014_000000108751
184 | COCO_train2014_000000110159
185 | COCO_train2014_000000110603
186 | COCO_train2014_000000110926
187 | COCO_train2014_000000111103
188 | COCO_train2014_000000111182
189 | COCO_train2014_000000112029
190 | COCO_train2014_000000112122
191 | COCO_train2014_000000112250
192 | COCO_train2014_000000112708
193 | COCO_train2014_000000112726
194 | COCO_train2014_000000112732
195 | COCO_train2014_000000114060
196 | COCO_train2014_000000115421
197 | COCO_train2014_000000116141
198 | COCO_train2014_000000116380
199 | COCO_train2014_000000116717
200 | COCO_train2014_000000117040
201 | COCO_train2014_000000117336
202 | COCO_train2014_000000118022
203 | COCO_train2014_000000118089
204 | COCO_train2014_000000118543
205 | COCO_train2014_000000118590
206 | COCO_train2014_000000118904
207 | COCO_train2014_000000119006
208 | COCO_train2014_000000119808
209 | COCO_train2014_000000120743
210 | COCO_train2014_000000121785
211 | COCO_train2014_000000122459
212 | COCO_train2014_000000122918
213 | COCO_train2014_000000123765
214 | COCO_train2014_000000123967
215 | COCO_train2014_000000124606
216 | COCO_train2014_000000124737
217 | COCO_train2014_000000126127
218 | COCO_train2014_000000126483
219 | COCO_train2014_000000126832
220 | COCO_train2014_000000126921
221 | COCO_train2014_000000127377
222 | COCO_train2014_000000127726
223 | COCO_train2014_000000128665
224 | COCO_train2014_000000129079
225 | COCO_train2014_000000129347
226 | COCO_train2014_000000129359
227 | COCO_train2014_000000129631
228 | COCO_train2014_000000129806
229 | COCO_train2014_000000130132
230 | COCO_train2014_000000130440
231 | COCO_train2014_000000131747
232 | COCO_train2014_000000132041
233 | COCO_train2014_000000132258
234 | COCO_train2014_000000132310
235 | COCO_train2014_000000132607
236 | COCO_train2014_000000132997
237 | COCO_train2014_000000134039
238 | COCO_train2014_000000134430
239 | COCO_train2014_000000135438
240 | COCO_train2014_000000136015
241 | COCO_train2014_000000136158
242 | COCO_train2014_000000137711
243 | COCO_train2014_000000138081
244 | COCO_train2014_000000138137
245 | COCO_train2014_000000138977
246 | COCO_train2014_000000139040
247 | COCO_train2014_000000139095
248 | COCO_train2014_000000140850
249 | COCO_train2014_000000140909
250 | COCO_train2014_000000141051
251 | COCO_train2014_000000142053
252 | COCO_train2014_000000142088
253 | COCO_train2014_000000142276
254 | COCO_train2014_000000142291
255 | COCO_train2014_000000143182
256 | COCO_train2014_000000143965
257 | COCO_train2014_000000145191
258 | COCO_train2014_000000145518
259 | COCO_train2014_000000146586
260 | COCO_train2014_000000146933
261 | COCO_train2014_000000147115
262 | COCO_train2014_000000147392
263 | COCO_train2014_000000148024
264 | COCO_train2014_000000149085
265 | COCO_train2014_000000150197
266 | COCO_train2014_000000150276
267 | COCO_train2014_000000150283
268 | COCO_train2014_000000150462
269 | COCO_train2014_000000150650
270 | COCO_train2014_000000152041
271 | COCO_train2014_000000152238
272 | COCO_train2014_000000152556
273 | COCO_train2014_000000152954
274 | COCO_train2014_000000153126
275 | COCO_train2014_000000153655
276 | COCO_train2014_000000154060
277 | COCO_train2014_000000154171
278 | COCO_train2014_000000154710
279 | COCO_train2014_000000155776
280 | COCO_train2014_000000156471
281 | COCO_train2014_000000156630
282 | COCO_train2014_000000156710
283 | COCO_train2014_000000157603
284 | COCO_train2014_000000157610
285 | COCO_train2014_000000158647
286 | COCO_train2014_000000158718
287 | COCO_train2014_000000158787
288 | COCO_train2014_000000159061
289 | COCO_train2014_000000159128
290 | COCO_train2014_000000159357
291 | COCO_train2014_000000160013
292 | COCO_train2014_000000161414
293 | COCO_train2014_000000163560
294 | COCO_train2014_000000164205
295 | COCO_train2014_000000164655
296 | COCO_train2014_000000164751
297 | COCO_train2014_000000164793
298 | COCO_train2014_000000165571
299 | COCO_train2014_000000166236
300 | COCO_train2014_000000167680
301 | COCO_train2014_000000168338
302 | COCO_train2014_000000168361
303 | COCO_train2014_000000168848
304 | COCO_train2014_000000169766
305 | COCO_train2014_000000170008
306 | COCO_train2014_000000170413
307 | COCO_train2014_000000170780
308 | COCO_train2014_000000171208
309 | COCO_train2014_000000171239
310 | COCO_train2014_000000171472
311 | COCO_train2014_000000171841
312 | COCO_train2014_000000171943
313 | COCO_train2014_000000173228
314 | COCO_train2014_000000176392
315 | COCO_train2014_000000176728
316 | COCO_train2014_000000176729
317 | COCO_train2014_000000178798
318 | COCO_train2014_000000178933
319 | COCO_train2014_000000178966
320 | COCO_train2014_000000181393
321 | COCO_train2014_000000181571
322 | COCO_train2014_000000181623
323 | COCO_train2014_000000181719
324 | COCO_train2014_000000182402
325 | COCO_train2014_000000182497
326 | COCO_train2014_000000182602
327 | COCO_train2014_000000183240
328 | COCO_train2014_000000184520
329 | COCO_train2014_000000184589
330 | COCO_train2014_000000186719
331 | COCO_train2014_000000186784
332 | COCO_train2014_000000187037
333 | COCO_train2014_000000187447
334 | COCO_train2014_000000187738
335 | COCO_train2014_000000187757
336 | COCO_train2014_000000188589
337 | COCO_train2014_000000189045
338 | COCO_train2014_000000189742
339 | COCO_train2014_000000189785
340 | COCO_train2014_000000190141
341 | COCO_train2014_000000190495
342 | COCO_train2014_000000191297
343 | COCO_train2014_000000191327
344 | COCO_train2014_000000191661
345 | COCO_train2014_000000191879
346 | COCO_train2014_000000192048
347 | COCO_train2014_000000192307
348 | COCO_train2014_000000192954
349 | COCO_train2014_000000193972
350 | COCO_train2014_000000194820
351 | COCO_train2014_000000195386
352 | COCO_train2014_000000196460
353 | COCO_train2014_000000196653
354 | COCO_train2014_000000197854
355 | COCO_train2014_000000199093
356 | COCO_train2014_000000199152
357 | COCO_train2014_000000199410
358 | COCO_train2014_000000199899
359 | COCO_train2014_000000200206
360 | COCO_train2014_000000200619
361 | COCO_train2014_000000201213
362 | COCO_train2014_000000201664
363 | COCO_train2014_000000201891
364 | COCO_train2014_000000201893
365 | COCO_train2014_000000202990
366 | COCO_train2014_000000203612
367 | COCO_train2014_000000203867
368 | COCO_train2014_000000204216
369 | COCO_train2014_000000204294
370 | COCO_train2014_000000204345
371 | COCO_train2014_000000204606
372 | COCO_train2014_000000204728
373 | COCO_train2014_000000205313
374 | COCO_train2014_000000205724
375 | COCO_train2014_000000206102
376 | COCO_train2014_000000207573
377 | COCO_train2014_000000208633
378 | COCO_train2014_000000208752
379 | COCO_train2014_000000208961
380 | COCO_train2014_000000209704
381 | COCO_train2014_000000209822
382 | COCO_train2014_000000211161
383 | COCO_train2014_000000211593
384 | COCO_train2014_000000212551
385 | COCO_train2014_000000213204
386 | COCO_train2014_000000213207
387 | COCO_train2014_000000214137
388 | COCO_train2014_000000214489
389 | COCO_train2014_000000214719
390 | COCO_train2014_000000214726
391 | COCO_train2014_000000215092
392 | COCO_train2014_000000216378
393 | COCO_train2014_000000217461
394 | COCO_train2014_000000217958
395 | COCO_train2014_000000218284
396 | COCO_train2014_000000219037
397 | COCO_train2014_000000221425
398 | COCO_train2014_000000225363
399 | COCO_train2014_000000225458
400 | COCO_train2014_000000225669
401 | COCO_train2014_000000227621
402 | COCO_train2014_000000229156
403 | COCO_train2014_000000229312
404 | COCO_train2014_000000229440
405 | COCO_train2014_000000229813
406 | COCO_train2014_000000229947
407 | COCO_train2014_000000230554
408 | COCO_train2014_000000230601
409 | COCO_train2014_000000230777
410 | COCO_train2014_000000231351
411 | COCO_train2014_000000231538
412 | COCO_train2014_000000231881
413 | COCO_train2014_000000232551
414 | COCO_train2014_000000232952
415 | COCO_train2014_000000233292
416 | COCO_train2014_000000234016
417 | COCO_train2014_000000234600
418 | COCO_train2014_000000236350
419 | COCO_train2014_000000236397
420 | COCO_train2014_000000237427
421 | COCO_train2014_000000237834
422 | COCO_train2014_000000237944
423 | COCO_train2014_000000238453
424 | COCO_train2014_000000239670
425 | COCO_train2014_000000239697
426 | COCO_train2014_000000239882
427 | COCO_train2014_000000240322
428 | COCO_train2014_000000241767
429 | COCO_train2014_000000242931
430 | COCO_train2014_000000242979
431 | COCO_train2014_000000243231
432 | COCO_train2014_000000243443
433 | COCO_train2014_000000244812
434 | COCO_train2014_000000247082
435 | COCO_train2014_000000247311
436 | COCO_train2014_000000247515
437 | COCO_train2014_000000247604
438 | COCO_train2014_000000248957
439 | COCO_train2014_000000250223
440 | COCO_train2014_000000250351
441 | COCO_train2014_000000250808
442 | COCO_train2014_000000250849
443 | COCO_train2014_000000251026
444 | COCO_train2014_000000251079
445 | COCO_train2014_000000251557
446 | COCO_train2014_000000251623
447 | COCO_train2014_000000251663
448 | COCO_train2014_000000252025
449 | COCO_train2014_000000252407
450 | COCO_train2014_000000253323
451 | COCO_train2014_000000253942
452 | COCO_train2014_000000254818
453 | COCO_train2014_000000256037
454 | COCO_train2014_000000256706
455 | COCO_train2014_000000257353
456 | COCO_train2014_000000257945
457 | COCO_train2014_000000260741
458 | COCO_train2014_000000260970
459 | COCO_train2014_000000261066
460 | COCO_train2014_000000262001
461 | COCO_train2014_000000262180
462 | COCO_train2014_000000263767
463 | COCO_train2014_000000264158
464 | COCO_train2014_000000264526
465 | COCO_train2014_000000264709
466 | COCO_train2014_000000265179
467 | COCO_train2014_000000265398
468 | COCO_train2014_000000265536
469 | COCO_train2014_000000265938
470 | COCO_train2014_000000266302
471 | COCO_train2014_000000266336
472 | COCO_train2014_000000267106
473 | COCO_train2014_000000268227
474 | COCO_train2014_000000268617
475 | COCO_train2014_000000269903
476 | COCO_train2014_000000270688
477 | COCO_train2014_000000272223
478 | COCO_train2014_000000272679
479 | COCO_train2014_000000273439
480 | COCO_train2014_000000274047
481 | COCO_train2014_000000274521
482 | COCO_train2014_000000275837
483 | COCO_train2014_000000276047
484 | COCO_train2014_000000277204
485 | COCO_train2014_000000277697
486 | COCO_train2014_000000277700
487 | COCO_train2014_000000277857
488 | COCO_train2014_000000279197
489 | COCO_train2014_000000279844
490 | COCO_train2014_000000280177
491 | COCO_train2014_000000280823
492 | COCO_train2014_000000280995
493 | COCO_train2014_000000282252
494 | COCO_train2014_000000282703
495 | COCO_train2014_000000283757
496 | COCO_train2014_000000285667
497 | COCO_train2014_000000286022
498 | COCO_train2014_000000287213
499 | COCO_train2014_000000287760
500 | COCO_train2014_000000287927
501 | COCO_train2014_000000287934
502 | COCO_train2014_000000288171
503 | COCO_train2014_000000288794
504 | COCO_train2014_000000289071
505 | COCO_train2014_000000289158
506 | COCO_train2014_000000289866
507 | COCO_train2014_000000291827
508 | COCO_train2014_000000291915
509 | COCO_train2014_000000292249
510 | COCO_train2014_000000292312
511 | COCO_train2014_000000293340
512 | COCO_train2014_000000294083
513 | COCO_train2014_000000294108
514 | COCO_train2014_000000294186
515 | COCO_train2014_000000295343
516 | COCO_train2014_000000297639
517 | COCO_train2014_000000297678
518 | COCO_train2014_000000297870
519 | COCO_train2014_000000298512
520 | COCO_train2014_000000298878
521 | COCO_train2014_000000299111
522 | COCO_train2014_000000301187
523 | COCO_train2014_000000301296
524 | COCO_train2014_000000301527
525 | COCO_train2014_000000301954
526 | COCO_train2014_000000302065
527 | COCO_train2014_000000302249
528 | COCO_train2014_000000302660
529 | COCO_train2014_000000302715
530 | COCO_train2014_000000303870
531 | COCO_train2014_000000304027
532 | COCO_train2014_000000304459
533 | COCO_train2014_000000304528
534 | COCO_train2014_000000304716
535 | COCO_train2014_000000305014
536 | COCO_train2014_000000305323
537 | COCO_train2014_000000305517
538 | COCO_train2014_000000306232
539 | COCO_train2014_000000306900
540 | COCO_train2014_000000307061
541 | COCO_train2014_000000307435
542 | COCO_train2014_000000307981
543 | COCO_train2014_000000308107
544 | COCO_train2014_000000308768
545 | COCO_train2014_000000312184
546 | COCO_train2014_000000312355
547 | COCO_train2014_000000312800
548 | COCO_train2014_000000314135
549 | COCO_train2014_000000314530
550 | COCO_train2014_000000314904
551 | COCO_train2014_000000315092
552 | COCO_train2014_000000315322
553 | COCO_train2014_000000316524
554 | COCO_train2014_000000317103
555 | COCO_train2014_000000318528
556 | COCO_train2014_000000319741
557 | COCO_train2014_000000320374
558 | COCO_train2014_000000321209
559 | COCO_train2014_000000321306
560 | COCO_train2014_000000321318
561 | COCO_train2014_000000321373
562 | COCO_train2014_000000321711
563 | COCO_train2014_000000322246
564 | COCO_train2014_000000322392
565 | COCO_train2014_000000322402
566 | COCO_train2014_000000322866
567 | COCO_train2014_000000323672
568 | COCO_train2014_000000323728
569 | COCO_train2014_000000323733
570 | COCO_train2014_000000324112
571 | COCO_train2014_000000324413
572 | COCO_train2014_000000325371
573 | COCO_train2014_000000325786
574 | COCO_train2014_000000326805
575 | COCO_train2014_000000328427
576 | COCO_train2014_000000328454
577 | COCO_train2014_000000329188
578 | COCO_train2014_000000329737
579 | COCO_train2014_000000330177
580 | COCO_train2014_000000330395
581 | COCO_train2014_000000332193
582 | COCO_train2014_000000332540
583 | COCO_train2014_000000334158
584 | COCO_train2014_000000334232
585 | COCO_train2014_000000334448
586 | COCO_train2014_000000336335
587 | COCO_train2014_000000336804
588 | COCO_train2014_000000336954
589 | COCO_train2014_000000337609
590 | COCO_train2014_000000338367
591 | COCO_train2014_000000338579
592 | COCO_train2014_000000338597
593 | COCO_train2014_000000339042
594 | COCO_train2014_000000340024
595 | COCO_train2014_000000340454
596 | COCO_train2014_000000342665
597 | COCO_train2014_000000343235
598 | COCO_train2014_000000346450
599 | COCO_train2014_000000346741
600 | COCO_train2014_000000347328
601 | COCO_train2014_000000348299
602 | COCO_train2014_000000352120
603 | COCO_train2014_000000352211
604 | COCO_train2014_000000352264
605 | COCO_train2014_000000352877
606 | COCO_train2014_000000354305
607 | COCO_train2014_000000354493
608 | COCO_train2014_000000354725
609 | COCO_train2014_000000355582
610 | COCO_train2014_000000355603
611 | COCO_train2014_000000355830
612 | COCO_train2014_000000358405
613 | COCO_train2014_000000359147
614 | COCO_train2014_000000359625
615 | COCO_train2014_000000360110
616 | COCO_train2014_000000360157
617 | COCO_train2014_000000361619
618 | COCO_train2014_000000363806
619 | COCO_train2014_000000363947
620 | COCO_train2014_000000365003
621 | COCO_train2014_000000365164
622 | COCO_train2014_000000365458
623 | COCO_train2014_000000365527
624 | COCO_train2014_000000366382
625 | COCO_train2014_000000368044
626 | COCO_train2014_000000368084
627 | COCO_train2014_000000368284
628 | COCO_train2014_000000369201
629 | COCO_train2014_000000369976
630 | COCO_train2014_000000370010
631 | COCO_train2014_000000371244
632 | COCO_train2014_000000372308
633 | COCO_train2014_000000372374
634 | COCO_train2014_000000373045
635 | COCO_train2014_000000373425
636 | COCO_train2014_000000375080
637 | COCO_train2014_000000375153
638 | COCO_train2014_000000375841
639 | COCO_train2014_000000376258
640 | COCO_train2014_000000376701
641 | COCO_train2014_000000377570
642 | COCO_train2014_000000377572
643 | COCO_train2014_000000377666
644 | COCO_train2014_000000378068
645 | COCO_train2014_000000378638
646 | COCO_train2014_000000379672
647 | COCO_train2014_000000379781
648 | COCO_train2014_000000380108
649 | COCO_train2014_000000380191
650 | COCO_train2014_000000380271
651 | COCO_train2014_000000380455
652 | COCO_train2014_000000380520
653 | COCO_train2014_000000381036
654 | COCO_train2014_000000382615
655 | COCO_train2014_000000382789
656 | COCO_train2014_000000383452
657 | COCO_train2014_000000384021
658 | COCO_train2014_000000384605
659 | COCO_train2014_000000385114
660 | COCO_train2014_000000385885
661 | COCO_train2014_000000386876
662 | COCO_train2014_000000388294
663 | COCO_train2014_000000389487
664 | COCO_train2014_000000390969
665 | COCO_train2014_000000393094
666 | COCO_train2014_000000393664
667 | COCO_train2014_000000393721
668 | COCO_train2014_000000393826
669 | COCO_train2014_000000395758
670 | COCO_train2014_000000396793
671 | COCO_train2014_000000396871
672 | COCO_train2014_000000397163
673 | COCO_train2014_000000397212
674 | COCO_train2014_000000397353
675 | COCO_train2014_000000397486
676 | COCO_train2014_000000397645
677 | COCO_train2014_000000397759
678 | COCO_train2014_000000399101
679 | COCO_train2014_000000399746
680 | COCO_train2014_000000400625
681 | COCO_train2014_000000401147
682 | COCO_train2014_000000401167
683 | COCO_train2014_000000401286
684 | COCO_train2014_000000401877
685 | COCO_train2014_000000401977
686 | COCO_train2014_000000402004
687 | COCO_train2014_000000402980
688 | COCO_train2014_000000403222
689 | COCO_train2014_000000404163
690 | COCO_train2014_000000404361
691 | COCO_train2014_000000405312
692 | COCO_train2014_000000405628
693 | COCO_train2014_000000406376
694 | COCO_train2014_000000407381
695 | COCO_train2014_000000407522
696 | COCO_train2014_000000408144
697 | COCO_train2014_000000408460
698 | COCO_train2014_000000410845
699 | COCO_train2014_000000411061
700 | COCO_train2014_000000411441
701 | COCO_train2014_000000411885
702 | COCO_train2014_000000412238
703 | COCO_train2014_000000412734
704 | COCO_train2014_000000413391
705 | COCO_train2014_000000414046
706 | COCO_train2014_000000414492
707 | COCO_train2014_000000414851
708 | COCO_train2014_000000414989
709 | COCO_train2014_000000414999
710 | COCO_train2014_000000415222
711 | COCO_train2014_000000415918
712 | COCO_train2014_000000416172
713 | COCO_train2014_000000416371
714 | COCO_train2014_000000417201
715 | COCO_train2014_000000417369
716 | COCO_train2014_000000417571
717 | COCO_train2014_000000417793
718 | COCO_train2014_000000418964
719 | COCO_train2014_000000419194
720 | COCO_train2014_000000420304
721 | COCO_train2014_000000420552
722 | COCO_train2014_000000420629
723 | COCO_train2014_000000421380
724 | COCO_train2014_000000421630
725 | COCO_train2014_000000422050
726 | COCO_train2014_000000422286
727 | COCO_train2014_000000422314
728 | COCO_train2014_000000423096
729 | COCO_train2014_000000423266
730 | COCO_train2014_000000424912
731 | COCO_train2014_000000425540
732 | COCO_train2014_000000426776
733 | COCO_train2014_000000427990
734 | COCO_train2014_000000428390
735 | COCO_train2014_000000430191
736 | COCO_train2014_000000430346
737 | COCO_train2014_000000430480
738 | COCO_train2014_000000430759
739 | COCO_train2014_000000430890
740 | COCO_train2014_000000431699
741 | COCO_train2014_000000432603
742 | COCO_train2014_000000436626
743 | COCO_train2014_000000436882
744 | COCO_train2014_000000438335
745 | COCO_train2014_000000438964
746 | COCO_train2014_000000439423
747 | COCO_train2014_000000439527
748 | COCO_train2014_000000439875
749 | COCO_train2014_000000441507
750 | COCO_train2014_000000441751
751 | COCO_train2014_000000443243
752 | COCO_train2014_000000443397
753 | COCO_train2014_000000443693
754 | COCO_train2014_000000443764
755 | COCO_train2014_000000444166
756 | COCO_train2014_000000444941
757 | COCO_train2014_000000445080
758 | COCO_train2014_000000445156
759 | COCO_train2014_000000445493
760 | COCO_train2014_000000445528
761 | COCO_train2014_000000446463
762 | COCO_train2014_000000447090
763 | COCO_train2014_000000447785
764 | COCO_train2014_000000449270
765 | COCO_train2014_000000449508
766 | COCO_train2014_000000452500
767 | COCO_train2014_000000452512
768 | COCO_train2014_000000452806
769 | COCO_train2014_000000455313
770 | COCO_train2014_000000455424
771 | COCO_train2014_000000455615
772 | COCO_train2014_000000455677
773 | COCO_train2014_000000456788
774 | COCO_train2014_000000457261
775 | COCO_train2014_000000458281
776 | COCO_train2014_000000458599
777 | COCO_train2014_000000458879
778 | COCO_train2014_000000460092
779 | COCO_train2014_000000460228
780 | COCO_train2014_000000460998
781 | COCO_train2014_000000461519
782 | COCO_train2014_000000461939
783 | COCO_train2014_000000462080
784 | COCO_train2014_000000462238
785 | COCO_train2014_000000462875
786 | COCO_train2014_000000463417
787 | COCO_train2014_000000463823
788 | COCO_train2014_000000464105
789 | COCO_train2014_000000464740
790 | COCO_train2014_000000465045
791 | COCO_train2014_000000466134
792 | COCO_train2014_000000466267
793 | COCO_train2014_000000467572
794 | COCO_train2014_000000469355
795 | COCO_train2014_000000469427
796 | COCO_train2014_000000469556
797 | COCO_train2014_000000469806
798 | COCO_train2014_000000470622
799 | COCO_train2014_000000471020
800 | COCO_train2014_000000472065
801 | COCO_train2014_000000472089
802 | COCO_train2014_000000472432
803 | COCO_train2014_000000472444
804 | COCO_train2014_000000473295
805 | COCO_train2014_000000473375
806 | COCO_train2014_000000473462
807 | COCO_train2014_000000473651
808 | COCO_train2014_000000473912
809 | COCO_train2014_000000474330
810 | COCO_train2014_000000474800
811 | COCO_train2014_000000474832
812 | COCO_train2014_000000475103
813 | COCO_train2014_000000475177
814 | COCO_train2014_000000475370
815 | COCO_train2014_000000475546
816 | COCO_train2014_000000476093
817 | COCO_train2014_000000476553
818 | COCO_train2014_000000476761
819 | COCO_train2014_000000477758
820 | COCO_train2014_000000477861
821 | COCO_train2014_000000478080
822 | COCO_train2014_000000479101
823 | COCO_train2014_000000479325
824 | COCO_train2014_000000479372
825 | COCO_train2014_000000480773
826 | COCO_train2014_000000480790
827 | COCO_train2014_000000480843
828 | COCO_train2014_000000481073
829 | COCO_train2014_000000481759
830 | COCO_train2014_000000482127
831 | COCO_train2014_000000482810
832 | COCO_train2014_000000483573
833 | COCO_train2014_000000483757
834 | COCO_train2014_000000483769
835 | COCO_train2014_000000484033
836 | COCO_train2014_000000486215
837 | COCO_train2014_000000487467
838 | COCO_train2014_000000488432
839 | COCO_train2014_000000488866
840 | COCO_train2014_000000489734
841 | COCO_train2014_000000491259
842 | COCO_train2014_000000491659
843 | COCO_train2014_000000492954
844 | COCO_train2014_000000492973
845 | COCO_train2014_000000495169
846 | COCO_train2014_000000495625
847 | COCO_train2014_000000495902
848 | COCO_train2014_000000496153
849 | COCO_train2014_000000496269
850 | COCO_train2014_000000496322
851 | COCO_train2014_000000496476
852 | COCO_train2014_000000497167
853 | COCO_train2014_000000497350
854 | COCO_train2014_000000497402
855 | COCO_train2014_000000498525
856 | COCO_train2014_000000499179
857 | COCO_train2014_000000499396
858 | COCO_train2014_000000499871
859 | COCO_train2014_000000500077
860 | COCO_train2014_000000501594
861 | COCO_train2014_000000501814
862 | COCO_train2014_000000502134
863 | COCO_train2014_000000502153
864 | COCO_train2014_000000502325
865 | COCO_train2014_000000504147
866 | COCO_train2014_000000504766
867 | COCO_train2014_000000505128
868 | COCO_train2014_000000506034
869 | COCO_train2014_000000506322
870 | COCO_train2014_000000506341
871 | COCO_train2014_000000506379
872 | COCO_train2014_000000506598
873 | COCO_train2014_000000507479
874 | COCO_train2014_000000508227
875 | COCO_train2014_000000508412
876 | COCO_train2014_000000508606
877 | COCO_train2014_000000508878
878 | COCO_train2014_000000508896
879 | COCO_train2014_000000509482
880 | COCO_train2014_000000510260
881 | COCO_train2014_000000512940
882 | COCO_train2014_000000513683
883 | COCO_train2014_000000514939
884 | COCO_train2014_000000515197
885 | COCO_train2014_000000515230
886 | COCO_train2014_000000516500
887 | COCO_train2014_000000517182
888 | COCO_train2014_000000517198
889 | COCO_train2014_000000517508
890 | COCO_train2014_000000517941
891 | COCO_train2014_000000518844
892 | COCO_train2014_000000518898
893 | COCO_train2014_000000520341
894 | COCO_train2014_000000520435
895 | COCO_train2014_000000521218
896 | COCO_train2014_000000522350
897 | COCO_train2014_000000523349
898 | COCO_train2014_000000523981
899 | COCO_train2014_000000524189
900 | COCO_train2014_000000524273
901 | COCO_train2014_000000524297
902 | COCO_train2014_000000525124
903 | COCO_train2014_000000525450
904 | COCO_train2014_000000525876
905 | COCO_train2014_000000526087
906 | COCO_train2014_000000527250
907 | COCO_train2014_000000527623
908 | COCO_train2014_000000527643
909 | COCO_train2014_000000528345
910 | COCO_train2014_000000528550
911 | COCO_train2014_000000528699
912 | COCO_train2014_000000528868
913 | COCO_train2014_000000529645
914 | COCO_train2014_000000531730
915 | COCO_train2014_000000532194
916 | COCO_train2014_000000532342
917 | COCO_train2014_000000533134
918 | COCO_train2014_000000533686
919 | COCO_train2014_000000533888
920 | COCO_train2014_000000534049
921 | COCO_train2014_000000534593
922 | COCO_train2014_000000536039
923 | COCO_train2014_000000536252
924 | COCO_train2014_000000536423
925 | COCO_train2014_000000537337
926 | COCO_train2014_000000539158
927 | COCO_train2014_000000540728
928 | COCO_train2014_000000540831
929 | COCO_train2014_000000542202
930 | COCO_train2014_000000542587
931 | COCO_train2014_000000543182
932 | COCO_train2014_000000543291
933 | COCO_train2014_000000543747
934 | COCO_train2014_000000544384
935 | COCO_train2014_000000544691
936 | COCO_train2014_000000544752
937 | COCO_train2014_000000545072
938 | COCO_train2014_000000545675
939 | COCO_train2014_000000546114
940 | COCO_train2014_000000546140
941 | COCO_train2014_000000547465
942 | COCO_train2014_000000548893
943 | COCO_train2014_000000549098
944 | COCO_train2014_000000549115
945 | COCO_train2014_000000549301
946 | COCO_train2014_000000549400
947 | COCO_train2014_000000550617
948 | COCO_train2014_000000550845
949 | COCO_train2014_000000551679
950 | COCO_train2014_000000551793
951 | COCO_train2014_000000552460
952 | COCO_train2014_000000552678
953 | COCO_train2014_000000552876
954 | COCO_train2014_000000553056
955 | COCO_train2014_000000553149
956 | COCO_train2014_000000554335
957 | COCO_train2014_000000554770
958 | COCO_train2014_000000554943
959 | COCO_train2014_000000556620
960 | COCO_train2014_000000557197
961 | COCO_train2014_000000557483
962 | COCO_train2014_000000559107
963 | COCO_train2014_000000559747
964 | COCO_train2014_000000560573
965 | COCO_train2014_000000560885
966 | COCO_train2014_000000561137
967 | COCO_train2014_000000561251
968 | COCO_train2014_000000561950
969 | COCO_train2014_000000562149
970 | COCO_train2014_000000562461
971 | COCO_train2014_000000562846
972 | COCO_train2014_000000563046
973 | COCO_train2014_000000563168
974 | COCO_train2014_000000564237
975 | COCO_train2014_000000565665
976 | COCO_train2014_000000565684
977 | COCO_train2014_000000565878
978 | COCO_train2014_000000565979
979 | COCO_train2014_000000566969
980 | COCO_train2014_000000569750
981 | COCO_train2014_000000569975
982 | COCO_train2014_000000570225
983 | COCO_train2014_000000570351
984 | COCO_train2014_000000571825
985 | COCO_train2014_000000573241
986 | COCO_train2014_000000574215
987 | COCO_train2014_000000574599
988 | COCO_train2014_000000575202
989 | COCO_train2014_000000575601
990 | COCO_train2014_000000575734
991 | COCO_train2014_000000576675
992 | COCO_train2014_000000577221
993 | COCO_train2014_000000577240
994 | COCO_train2014_000000577876
995 | COCO_train2014_000000578506
996 | COCO_train2014_000000579271
997 | COCO_train2014_000000579907
998 | COCO_train2014_000000579920
999 | COCO_train2014_000000579968
1000 | COCO_train2014_000000581629
1001 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/model/deeplabv2_resnet101/.gitignore:
--------------------------------------------------------------------------------
1 | *.caffemodel
2 | *.solverstate
3 |
--------------------------------------------------------------------------------
/models/deeplab/cocostuff/model/deeplabv2_vgg16/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | init.caffemodel
3 | deeplabv2_vgg16_init.caffemodel
4 |
--------------------------------------------------------------------------------
/models/deeplab/rescaleAnnotations.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import os
4 | import scipy.ndimage
5 | import scipy.misc
6 |
7 | # Specify folders
8 | tgt_size = 513
9 | image_src = 'cocostuff/data/annotations'
10 | image_tgt = 'cocostuff/data/annotations' + str(tgt_size)
11 |
12 | # Create output folder
13 | if not os.path.exists(image_tgt):
14 | os.makedirs(image_tgt)
15 |
16 | # Resize and copy annotation files
17 | for file in os.listdir(image_src):
18 | image_path_src = os.path.join(image_src, file)
19 | image_path_tgt = os.path.join(image_tgt, file)
20 | image = scipy.ndimage.imread(image_path_src)
21 | image_out = scipy.misc.imresize(image, (513, 513), 'nearest')
22 | scipy.misc.imsave(image_path_tgt, image_out)
23 | print(file)
24 |
--------------------------------------------------------------------------------
/models/deeplab/rescaleImages.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import os
4 | import scipy.ndimage
5 | import scipy.misc
6 |
7 | # Specify folders
8 | tgt_size = 513
9 | image_src = 'cocostuff/data/images'
10 | image_tgt = 'cocostuff/data/images' + str(tgt_size)
11 |
12 | # Create output folder
13 | if not os.path.exists(image_tgt):
14 | os.makedirs(image_tgt)
15 |
16 | # Resize and copy image files
17 | for file in os.listdir(image_src):
18 | image_path_src = os.path.join(image_src, file)
19 | image_path_tgt = os.path.join(image_tgt, file)
20 | image = scipy.ndimage.imread(image_path_src)
21 | image_out = scipy.misc.imresize(image, (513, 513))
22 | scipy.misc.imsave(image_path_tgt, image_out)
23 | print(file)
24 |
--------------------------------------------------------------------------------
/models/deeplab/run_cocostuff_resnet101.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ## MODIFY PATH for YOUR SETTING
4 | ROOT_DIR=
5 | CAFFE_DIR=deeplab-public-ver2
6 | CAFFE_BIN=${CAFFE_DIR}/.build_release/tools/caffe.bin
7 | EPOCH=20000 # -1 means we don't resume snapshots
8 | EXP=cocostuff
9 |
10 | if [ "${EXP}" = "cocostuff" ]; then
11 | NUM_LABELS=182
12 | DATA_ROOT=${EXP}/data
13 | else
14 | NUM_LABELS=0
15 | echo "Wrong exp name"
16 | fi
17 |
18 |
19 | ## Specify which model to train
20 | ########### voc12 ################
21 | NET_ID=deeplabv2_resnet101
22 | if [ "${EPOCH}" -ne "-1" ]; then
23 | SNAPSHOT=${EXP}/model/${NET_ID}/train_iter_${EPOCH}.solverstate
24 | fi
25 |
26 | DEV_ID=0
27 |
28 | #####
29 |
30 | ## Create dirs
31 |
32 | CONFIG_DIR=${EXP}/config/${NET_ID}
33 | MODEL_DIR=${EXP}/model/${NET_ID}
34 | mkdir -p ${MODEL_DIR}
35 | LOG_DIR=${EXP}/log/${NET_ID}
36 | mkdir -p ${LOG_DIR}
37 | export GLOG_log_dir=${LOG_DIR}
38 |
39 | ## Run
40 | RUN_TRAIN=1
41 | RUN_TEST=1
42 |
43 | ## Training #1
44 |
45 | if [ ${RUN_TRAIN} -eq 1 ]; then
46 | #
47 | LIST_DIR=${EXP}/list
48 | TRAIN_SET=train${TRAIN_SET_SUFFIX}
49 | #
50 | MODEL=${EXP}/model/${NET_ID}/deeplabv2_resnet101_init.caffemodel
51 | #
52 | echo Training net ${EXP}/${NET_ID}
53 | for pname in train solver; do
54 | sed "$(eval echo $(cat sub.sed))" \
55 | ${CONFIG_DIR}/${pname}.prototxt > ${CONFIG_DIR}/${pname}_${TRAIN_SET}.prototxt
56 | done
57 | CMD="${CAFFE_BIN} train \
58 | --solver=${CONFIG_DIR}/solver_${TRAIN_SET}.prototxt \
59 | --gpu=${DEV_ID}"
60 | if [ -f ${SNAPSHOT} ]; then
61 | CMD="${CMD} --snapshot=${SNAPSHOT}"
62 | else
63 | if [ -f ${MODEL} ]; then
64 | CMD="${CMD} --weights=${MODEL}"
65 | fi
66 | fi
67 | echo Running ${CMD} && ${CMD}
68 | fi
69 |
70 | ## Test #1 specification
71 |
72 | if [ ${RUN_TEST} -eq 1 ]; then
73 | #
74 | for TEST_SET in val513; do
75 | TEST_ITER=`cat ${EXP}/list/${TEST_SET}.txt | wc -l`
76 | MODEL=${EXP}/model/${NET_ID}/test.caffemodel
77 | if [ ! -f ${MODEL} ]; then
78 | MODEL=`ls -t ${EXP}/model/${NET_ID}/train_iter_*.caffemodel | head -n 1`
79 | fi
80 | #
81 | echo Testing net ${EXP}/${NET_ID}
82 | FEATURE_DIR=${EXP}/features/${NET_ID}
83 | mkdir -p ${FEATURE_DIR}/${TEST_SET}/fc1
84 | sed "$(eval echo $(cat sub.sed))" \
85 | ${CONFIG_DIR}/test.prototxt > ${CONFIG_DIR}/test_${TEST_SET}.prototxt
86 | CMD="${CAFFE_BIN} test \
87 | --model=${CONFIG_DIR}/test_${TEST_SET}.prototxt \
88 | --weights=${MODEL} \
89 | --gpu=${DEV_ID} \
90 | --iterations=${TEST_ITER}"
91 | echo Running ${CMD} && ${CMD}
92 | done
93 | fi
94 |
--------------------------------------------------------------------------------
/models/deeplab/run_cocostuff_vgg16.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ## MODIFY PATH for YOUR SETTING
4 | ROOT_DIR=
5 | CAFFE_DIR=deeplab-public-ver2
6 | CAFFE_BIN=${CAFFE_DIR}/.build_release/tools/caffe.bin
7 | EPOCH=20000 # -1 means we don't resume snapshots
8 | EXP=cocostuff
9 |
10 | if [ "${EXP}" = "cocostuff" ]; then
11 | NUM_LABELS=182
12 | DATA_ROOT=${EXP}/data
13 | else
14 | NUM_LABELS=0
15 | echo "Wrong exp name"
16 | fi
17 |
18 |
19 | ## Specify which model to train
20 | ########### voc12 ################
21 | NET_ID=deeplabv2_vgg16
22 | if [ "${EPOCH}" -ne "-1" ]; then
23 | SNAPSHOT=${EXP}/model/${NET_ID}/train_iter_${EPOCH}.solverstate
24 | fi
25 |
26 | DEV_ID=0
27 |
28 | #####
29 |
30 | ## Create dirs
31 |
32 | CONFIG_DIR=${EXP}/config/${NET_ID}
33 | MODEL_DIR=${EXP}/model/${NET_ID}
34 | mkdir -p ${MODEL_DIR}
35 | LOG_DIR=${EXP}/log/${NET_ID}
36 | mkdir -p ${LOG_DIR}
37 | export GLOG_log_dir=${LOG_DIR}
38 |
39 | ## Run
40 | RUN_TRAIN=1
41 | RUN_TEST=1
42 |
43 | ## Training #1
44 |
45 | if [ ${RUN_TRAIN} -eq 1 ]; then
46 | #
47 | LIST_DIR=${EXP}/list
48 | TRAIN_SET=train${TRAIN_SET_SUFFIX}
49 | #
50 | MODEL=${EXP}/model/${NET_ID}/deeplabv2_vgg16_init.caffemodel
51 | #
52 | echo Training net ${EXP}/${NET_ID}
53 | for pname in train solver; do
54 | sed "$(eval echo $(cat sub.sed))" \
55 | ${CONFIG_DIR}/${pname}.prototxt > ${CONFIG_DIR}/${pname}_${TRAIN_SET}.prototxt
56 | done
57 | CMD="${CAFFE_BIN} train \
58 | --solver=${CONFIG_DIR}/solver_${TRAIN_SET}.prototxt \
59 | --gpu=${DEV_ID}"
60 | if [ -f ${SNAPSHOT} ]; then
61 | CMD="${CMD} --snapshot=${SNAPSHOT}"
62 | else
63 | if [ -f ${MODEL} ]; then
64 | CMD="${CMD} --weights=${MODEL}"
65 | fi
66 | fi
67 | echo Running ${CMD} && ${CMD}
68 | fi
69 |
70 | ## Test #1 specification
71 |
72 | if [ ${RUN_TEST} -eq 1 ]; then
73 | #
74 | for TEST_SET in val; do
75 | TEST_ITER=`cat ${EXP}/list/${TEST_SET}.txt | wc -l`
76 | MODEL=${EXP}/model/${NET_ID}/test.caffemodel
77 | if [ ! -f ${MODEL} ]; then
78 | MODEL=`ls -t ${EXP}/model/${NET_ID}/train_iter_*.caffemodel | head -n 1`
79 | fi
80 | #
81 | echo Testing net ${EXP}/${NET_ID}
82 | FEATURE_DIR=${EXP}/features/${NET_ID}
83 | mkdir -p ${FEATURE_DIR}/${TEST_SET}/fc8
84 | sed "$(eval echo $(cat sub.sed))" \
85 | ${CONFIG_DIR}/test.prototxt > ${CONFIG_DIR}/test_${TEST_SET}.prototxt
86 | CMD="${CAFFE_BIN} test \
87 | --model=${CONFIG_DIR}/test_${TEST_SET}.prototxt \
88 | --weights=${MODEL} \
89 | --gpu=${DEV_ID} \
90 | --iterations=${TEST_ITER}"
91 | echo Running ${CMD} && ${CMD}
92 | done
93 | fi
94 |
--------------------------------------------------------------------------------
/models/deeplab/sub.sed:
--------------------------------------------------------------------------------
1 | 's,${DATA_ROOT},'"${DATA_ROOT}"',g;s,${DATA_ROOT1},'"${DATA_ROOT1}"',g;s,${EXP},'"${EXP}"',g;s,${EXP1},'"${EXP1}"',g;s,${TRAIN_SET},'"${TRAIN_SET}"',g;s,${TRAIN_SET1},'"${TRAIN_SET1}"',g;s,${TRAIN_SET1_WEAK},'"${TRAIN_SET1_WEAK}"',g;s,${TRAIN_SET1_STRONG},'"${TRAIN_SET1_STRONG}"',g;s,${TEST_SET},'"${TEST_SET}"',g;s,${NET_ID},'"${NET_ID}"',g;s,${FEATURE_DIR},'"${FEATURE_DIR}"',g;s,${NUM_LABELS},'"${NUM_LABELS}"',g;s,${NUM_LABELS1},'"${NUM_LABELS1}"',g;s,${NUM_LABELS_UNION},'"${NUM_LABELS_UNION}"',g;s,${BG_BIAS},'"${BG_BIAS}"',g;s,${FG_BIAS},'"${FG_BIAS}"',g;s,${TRAIN_SET_STRONG},'"${TRAIN_SET_STRONG}"',g;s,${TRAIN_SET_WEAK},'"${TRAIN_SET_WEAK}"',g;s,${BATCH_SIZE},'"${BATCH_SIZE}"',g;s,${TEST_SET_PREFIX},'"${TEST_SET_PREFIX}"',g;s,${TRAIN_STEP},'"${TRAIN_STEP}"',g'
2 |
--------------------------------------------------------------------------------
/startup.m:
--------------------------------------------------------------------------------
1 | function startup()
2 | % startup()
3 | %
4 | % Startup scripts that adds all the required code folders to the Matlab path.
5 | %
6 | % Copyright by Holger Caesar, 2016
7 |
8 | % Check that we are in the right folder
9 | if ~strcmp(pwd(), fileparts(mfilename('fullpath')))
10 | fprintf('Warning: All scripts should be called from the root level of the COCO-Stuff repository!');
11 | end
12 |
13 | % Add folders to path
14 | addpath(genpath(fullfile('dataset', 'code')));
15 | addpath(genpath(fullfile('annotator', 'code')));
16 |
--------------------------------------------------------------------------------