Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User documentation for Pascal VOC format #228

Merged
merged 27 commits into from
May 14, 2021

Conversation

sizov-kirill
Copy link

Summary

Added user documentation for Pascal VOC format #224

How to test

Checklist

License

  • I submit my code changes under the same MIT License that covers the project.
    Feel free to contact the maintainers if that's a concern.
  • I have updated the license header for each file (see an example below)
# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

@zhiltsov-max zhiltsov-max linked an issue Apr 29, 2021 that may be closed by this pull request
docs/pascal_voc_user_manual.md Outdated Show resolved Hide resolved
docs/pascal_voc_user_manual.md Outdated Show resolved Hide resolved
docs/pascal_voc_user_manual.md Outdated Show resolved Hide resolved
docs/pascal_voc_user_manual.md Outdated Show resolved Hide resolved
docs/pascal_voc_user_manual.md Outdated Show resolved Hide resolved
datum export -f voc_layout -- --label-map voc
```

## Datumaro functionality
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try to present this part as a tutorial about solving some practical problems. Try to show and explain why we might need to do this. It will much more interesting and useful than just a list of commands.

Unmatched items in the second dataset: {('2011_002719', 'trainval'), ... }

# extract dataset with only car and bus class items from train subset
datum filter --mode items+annotations \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every transform command outputs result into a new project directory. An output directory can be specified with -o.

Copy link
Contributor

@zhiltsov-max zhiltsov-max left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR is good, but it needs to be more practical. There is no need to show everything Datumaro can, but there is need to show how Datumaro can be used with PASCAL VOC to solve relevant tasks.

The Pascal VOC dataset is available for free download
[here](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html#devkit)

There are two ways to create datumaro project and add Pascal VOC dataset to it
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
There are two ways to create datumaro project and add Pascal VOC dataset to it
There are two ways to create datumaro project and add Pascal VOC dataset to it:

Comment on lines 66 to 68
The ImageSets directory should contain at least one of the directories:
Main, Layout, Action, Segmentation. These directories contain `.txt` files
with a list of images in a subset, the subset name is the same as the `.txt` file name .
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The ImageSets directory should contain at least one of the directories:
Main, Layout, Action, Segmentation. These directories contain `.txt` files
with a list of images in a subset, the subset name is the same as the `.txt` file name .
The `ImageSets` directory should contain at least one of the directories:
`Main`, `Layout`, `Action`, `Segmentation`. These directories contain `.txt` files
with a list of images in a subset, the subset name is the same as the `.txt` file name .

Main, Layout, Action, Segmentation. These directories contain `.txt` files
with a list of images in a subset, the subset name is the same as the `.txt` file name .

Also it is possible to add Pascal VOC dataset and specify task for it, for example:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Also it is possible to add Pascal VOC dataset and specify task for it, for example:
Is is also possible to import specific tasks of PASCAL VOC dataset instead of the whole dataset, for example:

Comment on lines 75 to 79
In addition to `voc_detection`, Datumaro supports
`voc_action` (for action classification task),
`voc_classification`,
`voc_segmentation`,
`voc_layout` (for person layout task).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In addition to `voc_detection`, Datumaro supports
`voc_action` (for action classification task),
`voc_classification`,
`voc_segmentation`,
`voc_layout` (for person layout task).
Datumaro supports the following PASCAL VOC tasks:
- Image classification (`voc_classification`)
- Object detection (`voc_detection`)
- Action classification (`voc_action`)
- Class and instance segmentation (`voc_segmentation`)
- Person layout detection (`voc_layout`)

Comment on lines 81 to 82
To make sure that the selected dataset has been added to the project, you can run
`datum info`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To make sure that the selected dataset has been added to the project, you can run
`datum info`
To make sure that the selected dataset has been added to the project, you can run
`datum info`, which will display the project and dataset information.

-o <path/to/output/project>

# delete other labels from dataset
datum trasnform -t remap_labels -- -l person:person --default delete \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest to provide a concrete working example instead of a list of unrelated commands. Ensure they can be executed.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But, this example solve concrete task: preparing Pascal VOC dataset for converting to other dataset format, using related set of Datumaro operations. Isn`t it?

Copy link
Contributor

@zhiltsov-max zhiltsov-max May 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is. But this example cannot be executed and if it could be, it wouldn't create the expected dataset. Please make sure these commands do what they are supposed to do.

```

- If you don`t need a variety of classes in Pascal VOC dataset,
with datumaro you can group the classes for your task:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
with datumaro you can group the classes for your task:
with Datumaro you can group the classes for your task:

The following command won't group classes, it will rename and join them. I suggest to pick a better term for this.

- Also, `datum stats` includes information about how many items each class contains,
example for Pascal VOC 2012:

<details>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The formatting is broken here


## Dataset statistics

Datumaro can calculate dataset statistics, the command `datum stats` creating
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section looks too generic and unrelated to PASCAL VOC.

datum diff -p ./proect2012 ./project2007

Datasets have different lengths: 14974 vs 34314
Unmatched items in the first dataset: {('00973', 'train'), ...}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will be good to show that the final result actually matches the expected difference, which is shown in the official dataset description. Now it is just a result with no meaning.

Comment on lines 247 to 248
datum import -n ./project2007 -f voc -i <path/to/voc/2007>
datum import -n ./project2012 -f voc -i <path/to/voc/2012>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
datum import -n ./project2007 -f voc -i <path/to/voc/2007>
datum import -n ./project2012 -f voc -i <path/to/voc/2012>
datum import -o ./project2007 -f voc -i <path/to/voc/2007>
datum import -o ./project2012 -f voc -i <path/to/voc/2012>

--default delete
```

- Example 4. When choosing a dataset for research, it is often useful to find out how the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Example 4. When choosing a dataset for research, it is often useful to find out how the
- Example 4. When multiple datasets are used for research, it can be useful to find out how the

datum info
```

- Example 2. Pascal VOC 2007 use about 900MB disk space, you can store half as much if keep
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disk space is a faintly weak argument. I suggest to consider cross-validation scenario, where the validation subset is split into N parts, a model is trained N times on N-1 parts and validated on the rest 1 part.


``` bash
# create Datumaro project with Pascal VOC dataset
datum import -n myproject -f voc -i <path/to/voc/dataset>
Copy link
Contributor

@zhiltsov-max zhiltsov-max May 5, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using -o instead of -n might be more convenient. -n is going to be deprecated, apparently.

There are few examples of using Datumaro operations to solve
particular problems:

- Example 1. Preparing Pascal VOC dataset for converting to Market-1501 dataset format.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add an explanation, why these transformations needed for the conversion.

To make sure that the selected dataset has been added to the project, you can run
`datum info`, which will display the project and dataset information.

## Export to other formats
Copy link
Contributor

@zhiltsov-max zhiltsov-max May 6, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a section about supported annotation types, attributes and their interpretation, import and export options, optional and mandatory files. Add a link to tests for code examples. Add an example of import results (DatasetItems and their contents). Add notes about annotation values and their relationships. Refer to https://github.com/openvinotoolkit/cvat/blob/develop/cvat/apps/dataset_manager/formats/README.md

datum import -o myproject -f voc -i <path/to/voc/dataset>

# convert labeled shapes into bboxes
datum transform -t shapes_to_boxes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
datum transform -t shapes_to_boxes
datum transform -p myproject -t shapes_to_boxes

# train and validate the model ...
```

- Example 3. If you don`t need a variety of classes in Pascal VOC dataset,
Copy link
Contributor

@zhiltsov-max zhiltsov-max May 6, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's redo the examples this way:

  • how to prepare an original dataset for training
  • how to create a custom dataset in this format
  • how to parse such dataset in the code
  • maybe, add small examples of specific features (mask format conversion, mask color manipulation etc)

Keep them simple, but informative.

Copy link
Contributor

@zhiltsov-max zhiltsov-max left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, looks almost finished.

To get information about them, run
`datum export -f <FORMAT> -- -h`
These options are passed after double dash (`--`) in the command line.
For example, the `voc_segmentation` format has an extra argument
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This information is described twice. Better replace it with --save-images, for example.

datum convert -if voc -i <path/to/voc> -f coco -o <path/to/output/dir>
```

Also it is possible using filters for converting, check
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure filtering options should be described here.

There are few ways to convert Pascal VOC dataset to other dataset format:

``` bash
datum project import -f voc -i <path/to/voc>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
datum project import -f voc -i <path/to/voc>
datum import -f voc -i <path/to/voc>


Argument `--tasks` allow to specify tasks for export dataset,
by default Datumaro uses all tasks.
Argument `--label_map` allow to define user label map, for example
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add descriptions for all the export parameters. Add information how to use colormap to change colors in an existing dataset. Add information how colormap should look like to import a dataset in the grayscale format.

datum stats -p project # check statisctics.json -> repeated images
datum transform -p project -o ndr_project -t ndr -- -w trainval -k 2500
datum filter -p ndr_project -o trainval2500 -e '/item[subset="trainval"]'
datum transform -p trainval2500 -o semantic_seg -t merge_instance_segments
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merge_instance_segments doesn't make sense for this format.

docs/pascal_voc_user_manual.md Show resolved Hide resolved
], categories=['person', 'sky', 'water', 'lion'])

dataset.transform('polygons_to_masks')
dataset.export('./mydataset', 'voc', label_map='my_labelmap.txt')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dataset.export('./mydataset', 'voc', label_map='my_labelmap.txt')
dataset.export('./mydataset', format='voc', label_map='my_labelmap.txt')


train_dataset.select(only_jumping)

train_dataset.export('./jumping_label_me', 'label_me', save_images=True)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
train_dataset.export('./jumping_label_me', 'label_me', save_images=True)
train_dataset.export('./jumping_label_me', format='label_me', save_images=True)

```python
from datumaro.components.dataset import Dataset

dataset = Dataset.import_from('./VOC2012', 'voc')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dataset = Dataset.import_from('./VOC2012', 'voc')
dataset = Dataset.import_from('./VOC2012', format='voc')

from datumaro.components.dataset import Dataset
from datumaro.components.extractor import AnnotationType

dataset = Dataset.import_from('./VOC2012', 'voc')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dataset = Dataset.import_from('./VOC2012', 'voc')
dataset = Dataset.import_from('./VOC2012', format='voc')

Extra options for export to Pascal VOC format:

- `--save-images` allow to export dataset with saving images
(be default `False`);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(be default `False`);
(by default `False`);

zhiltsov-max
zhiltsov-max previously approved these changes May 11, 2021
Copy link
Contributor

@zhiltsov-max zhiltsov-max left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good for me.

datum export -f voc_segmentation -- --label-map mycolormap.txt

# or you can use original voc colomap:
datum export -f voc_segmentation -- --label-map mycolormap.txt
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
datum export -f voc_segmentation -- --label-map mycolormap.txt
datum export -f voc_segmentation -- --label-map voc

(be default `False`);

- `--image-ext IMAGE_EXT` allow to specify image extension
for exporting dataset (by default `.jpg`);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
for exporting dataset (by default `.jpg`);
for exporting dataset (by default - use original or `.jpg`, if none);

Extra options for export to Pascal VOC format:

- `--save-images` allow to export dataset with saving images
(be default `False`);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(be default `False`);
(by default `False`);

and instance masks (by default `True`);

- `--allow-attributes ALLOW_ATTRIBUTES` allow export of attributes
(by default `ALLOW_ATTRIBUTES = True`);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(by default `ALLOW_ATTRIBUTES = True`);
(by default `True`);

zhiltsov-max
zhiltsov-max previously approved these changes May 14, 2021
@zhiltsov-max
Copy link
Contributor

Please, update the changelog, and merge.

@zhiltsov-max zhiltsov-max merged commit ef003ca into develop May 14, 2021
@zhiltsov-max zhiltsov-max deleted the sk/pascal-voc-user-documentation branch May 27, 2021 11:00
zhiltsov-max pushed a commit that referenced this pull request Jun 3, 2021
* Rename 'openvino' plugin to 'openvino_plugin' (#205)

Co-authored-by: Jihyeon Yi <jihyeon.yi@intel.com>

* Make remap labels more accurate, allow explicit label deletion, add docs, update tests (#203)

* Kate/handling multiple attributes and speed up detection split (#207)

* better handling multi-attributes for classification_split

* handling multi-attributes better for detection

* bugfix in calculating required number of images for splitting 2 correct side effect of the changes for re-id split

* allow multiple subsets with arbitrary names

* rename _is_number to _is_float and improve it

* Fix voc to coco example (#209)

* Fix export filtering

* update example in readme

* Fix export filename for LabelMe format (#200)

* change export filename for LabelMe format

* Allow simple merge for datasets with no labels

* Add a more complex test on relative paths

* Support escaping in attributes

* update changelog

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* split unlabeled data into subsets for task-specific splitters (#211)

* split unlabeled data into subsets for classification, detection. for re-id, 'not-supported' subsets for this data

* Fix image ext on saving in cvat format (#214)

* fix image saving in cvat format

* update changelog

* Label "face" for bounding boxes in Wider Face (#215)

* add face label

* update changelog

* Adding "difficult", "truncated", "occluded" attributes when converting to Pascal VOC if they are not present (#216)

* remove check for 'difficult' attribute

* remove check for 'truncated' and 'occluded' attributes

* update changelog

* Ignore empty lines in YOLO annotations (#221)

* Ignore empty lines in yolo annotations

* Add type hints for image class, catch image opening errors in image.size

* update changelog

* Classification task in LFW dataset format (#222)

* add classification

* update changelog

* update documentation

* Add splitter for segmentation task  (#223)

* added segmentation_split

* updated changelog

* rename reidentification to reid

* Support for CIFAR-10/100 format (#225)

* add CIFAR dataset format

* add CIFAR to documentation

* update Changelog

* add validation item for instance segmentation (#227)

* add validation item for instance segmentation

* Add panoptic and stuff COCO format (#210)

* add coco stuff and panoptic formats

* update CHANGELOG

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* update detection splitter algorithm from # of samples to # of instances (#235)

* add documentation for validator (#233)

* add documentation for validator

* add validation item description (#237)

* Fix converter for Pascal VOC format (#239)

* User documentation for Pascal VOC format (#228)

* add user documentation for Pascal VOC format

* add integration tests

* update changelog

* Support for MNIST dataset format (#234)

* add mnist format

* add mnist csv format

* add mnist to documentation

* make formats docs folder, create COCO format documentation (#241)

* Make formats docs folder, move format docs

* Create COCO format documentation

* Fixes in CIFAR dataset format (#243)

* Add folder creation

* Update changelog

* Add user documentation file and integration tests for YOLO format (#246)

* add user documentation file for yolo

* add integraion tests

* update user manual

* update changelog

* Add Cityscapes format (#249)

* add cityscapes format

* add format docs

* update changelog

* Fix saving attribute in WiderFace extractor (#251)

* add fixes

* update changelog

* Fix spelling errors (#252)

* Configurable Threshold CLI support (#250)

* add validator cli

* add configurable validator threshold

* update changelog

* CI. Move to GitHub actions. (#263)

* Moving to GitHub Actions

* Sending a coverage report if python3.6 (#264)

* Rename workflows (#265)

* Rename workflows

* Update repo config and badge (#266)

* Update PR template

* Update build status badge

* Fix deprecation warnings (#270)

* Update RISE docs (#255)

* Update rise docs

* Update cli help

* Pytest related changes (#248)

* Tests moved to pytest. Updated CI. Updated requirements.

* Updated contribution guide

* Added annotations for tests

* Updated tests

* Added code style guide

* Fix CI (#272)

* Fix script call

* change script call to binary call

* Fix help program name, add mark_bug (#275)

* Fix prog name

* Add mark_bug test annotation

* Fix labelmap parameter in CamVid (#262)

* Fix labelmap parameter in camvid

* Release 0.1.9 (dev) (#276)

* Update version

* Update changelog

* Fix numpy conflict (#278)

Co-authored-by: Emily Chun <emily.chun@intel.com>
Co-authored-by: Jihyeon Yi <jihyeon.yi@intel.com>
Co-authored-by: Kirill Sizov <kirill.sizov@intel.com>
Co-authored-by: Anastasia Yasakova <anastasia.yasakova@intel.com>
Co-authored-by: Harim Kang <harimx.kang@intel.com>
Co-authored-by: Zoya Maslova <zoya.maslova@intel.com>
Co-authored-by: Roman Donchenko <roman.donchenko@intel.com>
Co-authored-by: Seungyoon Woo <seung.woo@intel.com>
Co-authored-by: Dmitry Kruchinin <33020454+dvkruchinin@users.noreply.github.com>
Co-authored-by: Slawomir Strehlke <slawomir.strehlke@intel.com>
zhiltsov-max pushed a commit that referenced this pull request Jul 14, 2021
* Rename 'openvino' plugin to 'openvino_plugin' (#205)

Co-authored-by: Jihyeon Yi <jihyeon.yi@intel.com>

* Make remap labels more accurate, allow explicit label deletion, add docs, update tests (#203)

* Kate/handling multiple attributes and speed up detection split (#207)

* better handling multi-attributes for classification_split

* handling multi-attributes better for detection

* bugfix in calculating required number of images for splitting 2 correct side effect of the changes for re-id split

* allow multiple subsets with arbitrary names

* rename _is_number to _is_float and improve it

* Fix voc to coco example (#209)

* Fix export filtering

* update example in readme

* Fix export filename for LabelMe format (#200)

* change export filename for LabelMe format

* Allow simple merge for datasets with no labels

* Add a more complex test on relative paths

* Support escaping in attributes

* update changelog

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* split unlabeled data into subsets for task-specific splitters (#211)

* split unlabeled data into subsets for classification, detection. for re-id, 'not-supported' subsets for this data

* Fix image ext on saving in cvat format (#214)

* fix image saving in cvat format

* update changelog

* Label "face" for bounding boxes in Wider Face (#215)

* add face label

* update changelog

* Adding "difficult", "truncated", "occluded" attributes when converting to Pascal VOC if they are not present (#216)

* remove check for 'difficult' attribute

* remove check for 'truncated' and 'occluded' attributes

* update changelog

* Ignore empty lines in YOLO annotations (#221)

* Ignore empty lines in yolo annotations

* Add type hints for image class, catch image opening errors in image.size

* update changelog

* Classification task in LFW dataset format (#222)

* add classification

* update changelog

* update documentation

* Add splitter for segmentation task  (#223)

* added segmentation_split

* updated changelog

* rename reidentification to reid

* Support for CIFAR-10/100 format (#225)

* add CIFAR dataset format

* add CIFAR to documentation

* update Changelog

* add validation item for instance segmentation (#227)

* add validation item for instance segmentation

* Add panoptic and stuff COCO format (#210)

* add coco stuff and panoptic formats

* update CHANGELOG

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* update detection splitter algorithm from # of samples to # of instances (#235)

* add documentation for validator (#233)

* add documentation for validator

* add validation item description (#237)

* Fix converter for Pascal VOC format (#239)

* User documentation for Pascal VOC format (#228)

* add user documentation for Pascal VOC format

* add integration tests

* update changelog

* Support for MNIST dataset format (#234)

* add mnist format

* add mnist csv format

* add mnist to documentation

* make formats docs folder, create COCO format documentation (#241)

* Make formats docs folder, move format docs

* Create COCO format documentation

* Fixes in CIFAR dataset format (#243)

* Add folder creation

* Update changelog

* Add user documentation file and integration tests for YOLO format (#246)

* add user documentation file for yolo

* add integraion tests

* update user manual

* update changelog

* Add Cityscapes format (#249)

* add cityscapes format

* add format docs

* update changelog

* Fix saving attribute in WiderFace extractor (#251)

* add fixes

* update changelog

* Fix spelling errors (#252)

* Configurable Threshold CLI support (#250)

* add validator cli

* add configurable validator threshold

* update changelog

* CI. Move to GitHub actions. (#263)

* Moving to GitHub Actions

* Sending a coverage report if python3.6 (#264)

* Rename workflows (#265)

* Rename workflows

* Update repo config and badge (#266)

* Update PR template

* Update build status badge

* Fix deprecation warnings (#270)

* Update RISE docs (#255)

* Update rise docs

* Update cli help

* Pytest related changes (#248)

* Tests moved to pytest. Updated CI. Updated requirements.

* Updated contribution guide

* Added annotations for tests

* Updated tests

* Added code style guide

* Fix CI (#272)

* Fix script call

* change script call to binary call

* Fix help program name, add mark_bug (#275)

* Fix prog name

* Add mark_bug test annotation

* Fix labelmap parameter in CamVid (#262)

* Fix labelmap parameter in camvid

* Release 0.1.9 (dev) (#276)

* Update version

* Update changelog

* Fix numpy conflict (#278)

* Add changelog stub (#279)

* tests/requirements.py: remove the test_wrapper functions (#285)

* Subformat importers for VOC and COCO (#281)

* Document find_sources

* Add VOC subformat importers

* Add coco subformat importers

* Fix LFW

* Reduce voc detect dataset cases

* Reorganize coco tests, add subformat tests

* Fix default subset handling in Dataset

* Fix getting subset

* Fix coco tests

* Fix voc tests

* Update changelog

* Add image zip format (#273)

* add tests

* add image_zip format

* update changelog

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* Add KITTI detection and segmentation formats (#282)

* Add KITTI detection and segmentation formats

* Remove unused import

* Add KITTI user manual

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* Fix loading file and image processing in CIFAR (#284)

* Fix image layout and encoding problems

* Update Changelog

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* CLI tests for convert command for VOC dataset (#286)

* Add tests for convert command

* Convert most enum definitions from the functional style to the class style (#290)

* yolo format documentation update (#295)

* add info about coordinates in yolo format doc

* Fix merged dataset item filtering (#258)

* Add tests

* Fix xpathfilter transform

* Update changelog

* Sms/pytest marking cityscapes and zip (#298)

* Updated pytest marking for cityscapes and imagezip.

* Introduce Validator plugin type (#299)

* Introduce Validator plugin type

* Fix validator definitions (#303)

* update changelog

* Fixes in validator definitions

* Update validator cli

* Make TF availability check optional (#305)

* Make tf availability check optional

* update changelog

* Update pylint (#304)

* Add import order check in pylint

* Fix some linter problems

* Remove warning suppression comments

* Add lazy loading for builtin plugins (#306)

* Refactor env code

* Load builtin plugins lazily

* update changelog

* Update transforms handling in Dataset (#297)

* Update builtin transforms

* Optimize dataset length computation when no source

* Add filter test

* Fix transforms affecting categories

* Optimize categories transforms

* Update filters

* fix imports

* Avoid using default docstrings in plugins

* Fix patch saving in VOC, add keep_empty export parameter

* Fix flush_changes

* Fix removed images and subsets in dataset patch

* Update changelog

* Update voc doc

* Skip item transform base class in plugins

* Readable COCO and datumaro format for CJK (#307)

* Do not force ASCII in COCO and Datumaro JSONs for readable CJK

* Add tests

* Use utf-8 encoding for writing

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* Force utf-8 everywhere (#309)

* Fix in ImageNet_txt (#302)

* Add extensions for images to annotation file

* Remove image search in extractor

* Update changelog

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* Reduce duplication of dependency information (#308)

* Move requirements from setup.py to requirements-base.txt

* Add whitespace error checking to GitHub Actions (#311)

* Fix whitespace errors

As detected with `git diff --check`.

* Add a job to check for whitespace errors

I called it "lint" so that other checks could be added to it later.

* Bump copyright years in changed files

* Add initial support for the Open Images dataset (#291)

* Support reading or Labels in Open Images (v4, v5, v6)

* Add tests for the Open Images extractor/importer

* Add Open Images documentation

* Update changelog

* Fix tensorboardX dependency (#318)

* Fixing remark-lint issues. Adding remark-linter check. (#321)

* Fix remark-lint issues.

* Align continuation lines with the first line.

Apply comments

* Added remark check

* Add an upper bound on the Pillow dependency to work around a regression in 8.3 (#323)

* open_images_user_manual.md: fix image description file URLs

I accidentally swapped the URLs for test and validation sets.

* Fix COCO Panoptic (#319)

* add test

* Fix integer overflow in bgr2index

* Fix pylint issues. Added pylint checking. (#322)

* Added pylint job for CI

* Rework pip install

* Fixed remaining pylint warnings

Co-authored-by: Andrey Zhavoronkov <andrey.zhavoronkov@intel.com>

* Open Images: add writing support (#315)

* open_images_user_manual.md: fix image description file URLs

* open_images_format: add conversion support

* open_images_format: add support for images in subdirectories

* open_images_format: add tests for writing support

* open_images_format: add documentation for the writing support

* Update the changelog entry for the Open Images support

* Add python bandit checks. (#316)

* Add bandit dependency

* Add bandit checks on CI

* Disable some warnings

Co-authored-by: Andrey Zhavoronkov <andrey.zhavoronkov@intel.com>
Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* Remove Pylint unused-import warning suppressions (#326)

* Remove Pylint unused-import warning suppressions

* Add a job to check import formatting using isort (#333)

* Reformat all imports using isort

* Implement a workflow for checking import formatting based on isort

* Reformat the enabled checker list in .pylintrc (#335)

Put each code on its own line and add a comment with its symbolic name.
That makes the list more understandable and easier to edit.

* Merge all linting jobs into one workflow file (#331)

Doing it this way means that on GitHub's Checks page, all jobs are displayed
under one "Linter" category, instead of multiple indistinguishable "Linter"
categories with one job each.

Move the whitespace checking job into the Linter workflow as well, since
that's where it logically belongs.

I also took the opportunity to slightly rename the jobs in order to spell
the linter names correctly.

* Fix cuboids / 3d / M6 (#320)

* CVAT-3D Milestone-6: Added Supervisely Point Cloud and KITTI Raw 3D formats

* Added Cuboid3d annotations

* Added docs for new formats

Co-authored-by: cdp <cdp123>
Co-authored-by: Jayraj <jayrajsolanki96@gmail.com>
Co-authored-by: Roman Donchenko <roman.donchenko@intel.com>

* Clean up .pylintrc (#340)

* Clean up the list of messages in .pylintrc

* Remove obsolete Pylint options

* .pylintrc: move the disable setting and its documentation together

* Remove the commented-out setting.

* Revert "Add an upper bound on the Pillow dependency to work around a regression in 8.3 (#323)" (#341)

The regression was fixed in 8.3.1.

This reverts commit 9a85616.

* Enable pylint checkers that find invalid escape sequences (#344)

Fix the issues that they found.

* Factor out the images.meta loading code from YoloExtractor (#343)

* Factor out the images.meta loading code from YoloExtractor

It looks like the same thing will be needed for Open Images, so I'm
moving it to a common module.

* Rework image.meta parsing code to use shell syntax

This allows comments and improves extensibility.

* Support for CIFAR-100 (#301)

* Add support for CIFAR-100

* Update Changelog

* Update user_manual.md

* Add notes about differences in formats

* Fix importing for VGG Face 2 (#345)

* correct asset according the original vgg_face2 dataset

* fix importing of the original dataset

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* Dataset caching fixes (#351)

* Fix importing arbitrary file names in COCO subformats

* Optimize subset iteration in a simple scenario

* Fix subset iteration in dataset with transforms

* Cuboid 3D for Datumaro format (#349)

* Support cuboid_3d and point cloud in datumaro format

* Add cuboid_3d and point cloud tests in datumaro format

* Add image size type conversions

Co-authored-by: Maxim Zhiltsov <maxim.zhiltsov@intel.com>

* Add e2e tests for cuboids (#353)

* Add attr name check in kitti raw

* Add sly pcd e2e test

* Rename "object" attribute to "track_id" in sly point cloud

* Add kitti raw e2e test

* Update kitti raw example

* update changelog

* Release 0.1.10 (dev) (#354)

* Update changelog

* Add cifar security notice

* Update version

Co-authored-by: Emily Chun <emily.chun@intel.com>
Co-authored-by: Jihyeon Yi <jihyeon.yi@intel.com>
Co-authored-by: Kirill Sizov <kirill.sizov@intel.com>
Co-authored-by: Anastasia Yasakova <anastasia.yasakova@intel.com>
Co-authored-by: Harim Kang <harimx.kang@intel.com>
Co-authored-by: Zoya Maslova <zoya.maslova@intel.com>
Co-authored-by: Roman Donchenko <roman.donchenko@intel.com>
Co-authored-by: Seungyoon Woo <seung.woo@intel.com>
Co-authored-by: Dmitry Kruchinin <33020454+dvkruchinin@users.noreply.github.com>
Co-authored-by: Slawomir Strehlke <slawomir.strehlke@intel.com>
Co-authored-by: Jaesun Park <diligensloth@gmail.com>
Co-authored-by: Andrey Zhavoronkov <andrey.zhavoronkov@intel.com>
Co-authored-by: Jayraj <jayrajsolanki96@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

User documentation for Pascal VOC format
3 participants