Fix all remark warnings (#3261)

* Fix all issues reported by remark

* Move remark dependencies from the workflow definition into package.json

This enables the transitive dependencies to be pinned, just like for all
other packages.

* Add additional remark plugins

These are needed to correctly parse certain constructs in Markdown files
(such as tables and YAML frontmatter), and without them, remark produces
invalid warnings on some files.

* Update the remark-lint preset versions

The previous versions reference the old version of the
`remark-lint-table-cell-padding` plugin, which doesn't work correctly with
the current version of `remark-parse` (and thus produces spurious warnings).

* GitHub Actions: run remark on all Markdown files, not just changed ones

This way, if a PR updates the remark configuration and that causes new errors
to appear, those errors will show up in that PR, instead of the (unrelated) PR
that next updates the affected files.

There is no runtime cost to this, because remark takes approximately 1 second
to check all files.
main
Roman Donchenko 5 years ago committed by GitHub
parent 4960260e35
commit 25975467ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,31 +11,16 @@ jobs:
- name: Run checks - name: Run checks
run: | run: |
URL="https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files" npm ci
PR_FILES=$(curl -s -X GET -G $URL | jq -r '.[] | select(.status != "removed") | .filename') mkdir -p remark_report
for files in $PR_FILES; do
extension="${files##*.}"
if [[ $extension == 'md' ]]; then
changed_files_remark+=" ${files}"
fi
done
if [[ ! -z ${changed_files_remark} ]]; then echo "Remark version: "`npx remark --version`
npm ci npx remark --quiet --report json --no-stdout . 2> ./remark_report/remark_report.json
npm install remark-cli@9.0.0 vfile-reporter-json@2.0.2 get_report=`cat ./remark_report/remark_report.json | jq -r '.[] | select(.messages | length > 0)'`
mkdir -p remark_report if [[ ! -z ${get_report} ]]; then
pip install json2html
echo "Remark version: "`npx remark --version` python ./tests/json_to_html.py ./remark_report/remark_report.json
echo "The files will be checked: "`echo ${changed_files_remark}` exit 1
npx remark --quiet --report json --no-stdout ${changed_files_remark} 2> ./remark_report/remark_report.json
get_report=`cat ./remark_report/remark_report.json | jq -r '.[] | select(.messages | length > 0)'`
if [[ ! -z ${get_report} ]]; then
pip install json2html
python ./tests/json_to_html.py ./remark_report/remark_report.json
exit 1
fi
else
echo "No files with the \"md\" extension found"
fi fi
- name: Upload artifacts - name: Upload artifacts

@ -1,6 +1,8 @@
exports.settings = { bullet: '*', paddedTable: false }; exports.settings = { bullet: '*', paddedTable: false };
exports.plugins = [ exports.plugins = [
'remark-frontmatter',
'remark-gfm',
'remark-preset-lint-recommended', 'remark-preset-lint-recommended',
'remark-preset-lint-consistent', 'remark-preset-lint-consistent',
['remark-lint-list-item-indent', 'space'], ['remark-lint-list-item-indent', 'space'],

@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.5.0] - Unreleased ## \[1.5.0] - Unreleased
### Added ### Added
@ -17,11 +17,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Deprecated ### Deprecated
- - TBD
### Removed ### Removed
- - TBD
### Fixed ### Fixed
@ -29,9 +29,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Security ### Security
- - TBD
## [1.4.0] - 2021-05-18 ## \[1.4.0] - 2021-05-18
### Added ### Added
@ -58,7 +58,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Manifest: migration (<https://github.com/openvinotoolkit/cvat/pull/3146>) - Manifest: migration (<https://github.com/openvinotoolkit/cvat/pull/3146>)
- Fixed cropping polygon in some corner cases (<https://github.com/openvinotoolkit/cvat/pull/3184>) - Fixed cropping polygon in some corner cases (<https://github.com/openvinotoolkit/cvat/pull/3184>)
## [1.3.0] - 3/31/2021 ## \[1.3.0] - 3/31/2021
### Added ### Added
@ -83,7 +83,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
(<https://github.com/openvinotoolkit/cvat/pull/2891>) (<https://github.com/openvinotoolkit/cvat/pull/2891>)
- [Market-1501](https://www.aitribune.com/dataset/2018051063) format support (<https://github.com/openvinotoolkit/cvat/pull/2869>) - [Market-1501](https://www.aitribune.com/dataset/2018051063) format support (<https://github.com/openvinotoolkit/cvat/pull/2869>)
- Ability of upload manifest for dataset with images (<https://github.com/openvinotoolkit/cvat/pull/2763>) - Ability of upload manifest for dataset with images (<https://github.com/openvinotoolkit/cvat/pull/2763>)
- Annotations filters UI using react-awesome-query-builder (https://github.com/openvinotoolkit/cvat/issues/1418) - Annotations filters UI using react-awesome-query-builder (<https://github.com/openvinotoolkit/cvat/issues/1418>)
- Storing settings in local storage to keep them between browser sessions (<https://github.com/openvinotoolkit/cvat/pull/3017>) - Storing settings in local storage to keep them between browser sessions (<https://github.com/openvinotoolkit/cvat/pull/3017>)
- [ICDAR](https://rrc.cvc.uab.es/?ch=2) format support (<https://github.com/openvinotoolkit/cvat/pull/2866>) - [ICDAR](https://rrc.cvc.uab.es/?ch=2) format support (<https://github.com/openvinotoolkit/cvat/pull/2866>)
- Added switcher to maintain polygon crop behavior (<https://github.com/openvinotoolkit/cvat/pull/3021> - Added switcher to maintain polygon crop behavior (<https://github.com/openvinotoolkit/cvat/pull/3021>
@ -131,7 +131,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updating label attributes when label contains number attributes (<https://github.com/openvinotoolkit/cvat/pull/2969>) - Updating label attributes when label contains number attributes (<https://github.com/openvinotoolkit/cvat/pull/2969>)
- Crop a polygon if its points are outside the bounds of the image (<https://github.com/openvinotoolkit/cvat/pull/3025>) - Crop a polygon if its points are outside the bounds of the image (<https://github.com/openvinotoolkit/cvat/pull/3025>)
## [1.2.0] - 2021-01-08 ## \[1.2.0] - 2021-01-08
### Fixed ### Fixed
@ -139,7 +139,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Frame preloading (<https://github.com/openvinotoolkit/cvat/pull/2608>) - Frame preloading (<https://github.com/openvinotoolkit/cvat/pull/2608>)
- Project cannot be removed from the project page (<https://github.com/openvinotoolkit/cvat/pull/2626>) - Project cannot be removed from the project page (<https://github.com/openvinotoolkit/cvat/pull/2626>)
## [1.2.0-beta] - 2020-12-15 ## \[1.2.0-beta] - 2020-12-15
### Added ### Added
@ -179,20 +179,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Reset state (reviews, issues) after logout or changing a job (<https://github.com/openvinotoolkit/cvat/pull/2525>) - Reset state (reviews, issues) after logout or changing a job (<https://github.com/openvinotoolkit/cvat/pull/2525>)
- TypeError: Cannot read property 'id' of undefined when updating a task (<https://github.com/openvinotoolkit/cvat/pull/2544>) - TypeError: Cannot read property 'id' of undefined when updating a task (<https://github.com/openvinotoolkit/cvat/pull/2544>)
## [1.2.0-alpha] - 2020-11-09 ## \[1.2.0-alpha] - 2020-11-09
### Added ### Added
- Ability to login into CVAT-UI with token from api/v1/auth/login (<https://github.com/openvinotoolkit/cvat/pull/2234>) - Ability to login into CVAT-UI with token from api/v1/auth/login (<https://github.com/openvinotoolkit/cvat/pull/2234>)
- Added layout grids toggling ('ctrl + alt + Enter') - Added layout grids toggling ('ctrl + alt + Enter')
- Added password reset functionality (<https://github.com/opencv/cvat/pull/2058>) - Added password reset functionality (<https://github.com/opencv/cvat/pull/2058>)
- Ability to work with data on the fly (https://github.com/opencv/cvat/pull/2007) - Ability to work with data on the fly (<https://github.com/opencv/cvat/pull/2007>)
- Annotation in process outline color wheel (<https://github.com/opencv/cvat/pull/2084>) - Annotation in process outline color wheel (<https://github.com/opencv/cvat/pull/2084>)
- On the fly annotation using DL detectors (<https://github.com/opencv/cvat/pull/2102>) - On the fly annotation using DL detectors (<https://github.com/opencv/cvat/pull/2102>)
- Displaying automatic annotation progress on a task view (<https://github.com/opencv/cvat/pull/2148>) - Displaying automatic annotation progress on a task view (<https://github.com/opencv/cvat/pull/2148>)
- Automatic tracking of bounding boxes using serverless functions (<https://github.com/opencv/cvat/pull/2136>) - Automatic tracking of bounding boxes using serverless functions (<https://github.com/opencv/cvat/pull/2136>)
- [Datumaro] CLI command for dataset equality comparison (<https://github.com/opencv/cvat/pull/1989>) - \[Datumaro] CLI command for dataset equality comparison (<https://github.com/opencv/cvat/pull/1989>)
- [Datumaro] Merging of datasets with different labels (<https://github.com/opencv/cvat/pull/2098>) - \[Datumaro] Merging of datasets with different labels (<https://github.com/opencv/cvat/pull/2098>)
- Add FBRS interactive segmentation serverless function (<https://github.com/openvinotoolkit/cvat/pull/2094>) - Add FBRS interactive segmentation serverless function (<https://github.com/openvinotoolkit/cvat/pull/2094>)
- Ability to change default behaviour of previous/next buttons of a player. - Ability to change default behaviour of previous/next buttons of a player.
It supports regular navigation, searching a frame according to annotations It supports regular navigation, searching a frame according to annotations
@ -212,7 +212,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Used Ubuntu:20.04 as a base image for CVAT Dockerfile (<https://github.com/opencv/cvat/pull/2101>) - Used Ubuntu:20.04 as a base image for CVAT Dockerfile (<https://github.com/opencv/cvat/pull/2101>)
- Right colors of label tags in label mapping when a user runs automatic detection (<https://github.com/openvinotoolkit/cvat/pull/2162>) - Right colors of label tags in label mapping when a user runs automatic detection (<https://github.com/openvinotoolkit/cvat/pull/2162>)
- Nuclio became an optional component of CVAT (<https://github.com/openvinotoolkit/cvat/pull/2192>) - Nuclio became an optional component of CVAT (<https://github.com/openvinotoolkit/cvat/pull/2192>)
- A key to remove a point from a polyshape [Ctrl => Alt] (<https://github.com/openvinotoolkit/cvat/pull/2204>) - A key to remove a point from a polyshape (Ctrl => Alt) (<https://github.com/openvinotoolkit/cvat/pull/2204>)
- Updated `docker-compose` file version from `2.3` to `3.3`(<https://github.com/openvinotoolkit/cvat/pull/2235>) - Updated `docker-compose` file version from `2.3` to `3.3`(<https://github.com/openvinotoolkit/cvat/pull/2235>)
- Added auto inference of url schema from host in CLI, if provided (<https://github.com/openvinotoolkit/cvat/pull/2240>) - Added auto inference of url schema from host in CLI, if provided (<https://github.com/openvinotoolkit/cvat/pull/2240>)
- Track frames in skips between annotation is presented in MOT and MOTS formats are marked `outside` (<https://github.com/openvinotoolkit/cvat/pull/2198>) - Track frames in skips between annotation is presented in MOT and MOTS formats are marked `outside` (<https://github.com/openvinotoolkit/cvat/pull/2198>)
@ -244,15 +244,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- 'List of tasks' Kibana visualization (<https://github.com/openvinotoolkit/cvat/pull/2361>) - 'List of tasks' Kibana visualization (<https://github.com/openvinotoolkit/cvat/pull/2361>)
- An error on exporting not `jpg` or `png` images in TF Detection API format (<https://github.com/openvinotoolkit/datumaro/issues/35>) - An error on exporting not `jpg` or `png` images in TF Detection API format (<https://github.com/openvinotoolkit/datumaro/issues/35>)
## [1.1.0] - 2020-08-31 ## \[1.1.0] - 2020-08-31
### Added ### Added
- Siammask tracker as DL serverless function (<https://github.com/opencv/cvat/pull/1988>) - Siammask tracker as DL serverless function (<https://github.com/opencv/cvat/pull/1988>)
- [Datumaro] Added model info and source info commands (<https://github.com/opencv/cvat/pull/1973>) - \[Datumaro] Added model info and source info commands (<https://github.com/opencv/cvat/pull/1973>)
- [Datumaro] Dataset statistics (<https://github.com/opencv/cvat/pull/1668>) - \[Datumaro] Dataset statistics (<https://github.com/opencv/cvat/pull/1668>)
- Ability to change label color in tasks and predefined labels (<https://github.com/opencv/cvat/pull/2014>) - Ability to change label color in tasks and predefined labels (<https://github.com/opencv/cvat/pull/2014>)
- [Datumaro] Multi-dataset merge (https://github.com/opencv/cvat/pull/1695) - \[Datumaro] Multi-dataset merge (<https://github.com/opencv/cvat/pull/1695>)
- Ability to configure email verification for new users (<https://github.com/opencv/cvat/pull/1929>) - Ability to configure email verification for new users (<https://github.com/opencv/cvat/pull/1929>)
- Link to django admin page from UI (<https://github.com/opencv/cvat/pull/2068>) - Link to django admin page from UI (<https://github.com/opencv/cvat/pull/2068>)
- Notification message when users use wrong browser (<https://github.com/opencv/cvat/pull/2070>) - Notification message when users use wrong browser (<https://github.com/opencv/cvat/pull/2070>)
@ -271,7 +271,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Django RQ dashboard view (<https://github.com/opencv/cvat/pull/2069>) - Django RQ dashboard view (<https://github.com/opencv/cvat/pull/2069>)
- Object's details menu settings (<https://github.com/opencv/cvat/pull/2084>) - Object's details menu settings (<https://github.com/opencv/cvat/pull/2084>)
## [1.1.0-beta] - 2020-08-03 ## \[1.1.0-beta] - 2020-08-03
### Added ### Added
@ -279,7 +279,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Source type support for tags, shapes and tracks (<https://github.com/opencv/cvat/pull/1192>) - Source type support for tags, shapes and tracks (<https://github.com/opencv/cvat/pull/1192>)
- Source type support for CVAT Dumper/Loader (<https://github.com/opencv/cvat/pull/1192>) - Source type support for CVAT Dumper/Loader (<https://github.com/opencv/cvat/pull/1192>)
- Intelligent polygon editing (<https://github.com/opencv/cvat/pull/1921>) - Intelligent polygon editing (<https://github.com/opencv/cvat/pull/1921>)
- Support creating multiple jobs for each task through python cli (https://github.com/opencv/cvat/pull/1950) - Support creating multiple jobs for each task through python cli (<https://github.com/opencv/cvat/pull/1950>)
- python cli over https (<https://github.com/opencv/cvat/pull/1942>) - python cli over https (<https://github.com/opencv/cvat/pull/1942>)
- Error message when plugins weren't able to initialize instead of infinite loading (<https://github.com/opencv/cvat/pull/1966>) - Error message when plugins weren't able to initialize instead of infinite loading (<https://github.com/opencv/cvat/pull/1966>)
- Ability to change user password (<https://github.com/opencv/cvat/pull/1954>) - Ability to change user password (<https://github.com/opencv/cvat/pull/1954>)
@ -319,7 +319,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Clearing frame cache when close a task (<https://github.com/opencv/cvat/pull/1966>) - Clearing frame cache when close a task (<https://github.com/opencv/cvat/pull/1966>)
- Increase rate of throttling policy for unauthenticated users (<https://github.com/opencv/cvat/pull/1969>) - Increase rate of throttling policy for unauthenticated users (<https://github.com/opencv/cvat/pull/1969>)
## [1.1.0-alpha] - 2020-06-30 ## \[1.1.0-alpha] - 2020-06-30
### Added ### Added
@ -334,9 +334,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- ClamAV antivirus integration (<https://github.com/opencv/cvat/pull/1712>) - ClamAV antivirus integration (<https://github.com/opencv/cvat/pull/1712>)
- Added canvas background color selector (<https://github.com/opencv/cvat/pull/1705>) - Added canvas background color selector (<https://github.com/opencv/cvat/pull/1705>)
- SCSS files linting with Stylelint tool (<https://github.com/opencv/cvat/pull/1766>) - SCSS files linting with Stylelint tool (<https://github.com/opencv/cvat/pull/1766>)
- Supported import and export or single boxes in MOT format (https://github.com/opencv/cvat/pull/1764) - Supported import and export or single boxes in MOT format (<https://github.com/opencv/cvat/pull/1764>)
- [Datumaro] Added `stats` command, which shows some dataset statistics - \[Datumaro] Added `stats` command, which shows some dataset statistics
like image mean and std (https://github.com/opencv/cvat/pull/1734) like image mean and std (<https://github.com/opencv/cvat/pull/1734>)
- Add option to upload annotations upon task creation on CLI - Add option to upload annotations upon task creation on CLI
- Polygon and polylines interpolation (<https://github.com/opencv/cvat/pull/1571>) - Polygon and polylines interpolation (<https://github.com/opencv/cvat/pull/1571>)
- Ability to redraw shape from scratch (Shift + N) for an activated shape (<https://github.com/opencv/cvat/pull/1571>) - Ability to redraw shape from scratch (Shift + N) for an activated shape (<https://github.com/opencv/cvat/pull/1571>)
@ -346,9 +346,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added new tag annotation workspace (<https://github.com/opencv/cvat/pull/1570>) - Added new tag annotation workspace (<https://github.com/opencv/cvat/pull/1570>)
- Appearance block in attribute annotation mode (<https://github.com/opencv/cvat/pull/1820>) - Appearance block in attribute annotation mode (<https://github.com/opencv/cvat/pull/1820>)
- Keyframe navigations and some switchers in attribute annotation mode (<https://github.com/opencv/cvat/pull/1820>) - Keyframe navigations and some switchers in attribute annotation mode (<https://github.com/opencv/cvat/pull/1820>)
- [Datumaro] Added `convert` command to convert datasets directly (<https://github.com/opencv/cvat/pull/1837>) - \[Datumaro] Added `convert` command to convert datasets directly (<https://github.com/opencv/cvat/pull/1837>)
- [Datumaro] Added an option to specify image extension when exporting datasets (<https://github.com/opencv/cvat/pull/1799>) - \[Datumaro] Added an option to specify image extension when exporting datasets (<https://github.com/opencv/cvat/pull/1799>)
- [Datumaro] Added image copying when exporting datasets, if possible (<https://github.com/opencv/cvat/pull/1799>) - \[Datumaro] Added image copying when exporting datasets, if possible (<https://github.com/opencv/cvat/pull/1799>)
### Changed ### Changed
@ -358,10 +358,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Settings page move to the modal. (<https://github.com/opencv/cvat/pull/1705>) - Settings page move to the modal. (<https://github.com/opencv/cvat/pull/1705>)
- Implemented import and export of annotations with relative image paths (<https://github.com/opencv/cvat/pull/1463>) - Implemented import and export of annotations with relative image paths (<https://github.com/opencv/cvat/pull/1463>)
- Using only single click to start editing or remove a point (<https://github.com/opencv/cvat/pull/1571>) - Using only single click to start editing or remove a point (<https://github.com/opencv/cvat/pull/1571>)
- Added support for attributes in VOC XML format (https://github.com/opencv/cvat/pull/1792) - Added support for attributes in VOC XML format (<https://github.com/opencv/cvat/pull/1792>)
- Added annotation attributes in COCO format (https://github.com/opencv/cvat/pull/1782) - Added annotation attributes in COCO format (<https://github.com/opencv/cvat/pull/1782>)
- Colorized object items in the side panel (<https://github.com/opencv/cvat/pull/1753>) - Colorized object items in the side panel (<https://github.com/opencv/cvat/pull/1753>)
- [Datumaro] Annotation-less files are not generated anymore in COCO format, unless tasks explicitly requested (<https://github.com/opencv/cvat/pull/1799>) - \[Datumaro] Annotation-less files are not generated anymore in COCO format, unless tasks explicitly requested (<https://github.com/opencv/cvat/pull/1799>)
### Fixed ### Fixed
@ -388,7 +388,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- SQL injection in Django `CVE-2020-9402` (<https://github.com/opencv/cvat/pull/1657>) - SQL injection in Django `CVE-2020-9402` (<https://github.com/opencv/cvat/pull/1657>)
## [1.0.0] - 2020-05-29 ## \[1.0.0] - 2020-05-29
### Added ### Added
@ -425,7 +425,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added directory removal on error during `extract` command (<https://github.com/opencv/cvat/pull/1352>) - Added directory removal on error during `extract` command (<https://github.com/opencv/cvat/pull/1352>)
- Added debug error message on incorrect XPath (<https://github.com/opencv/cvat/pull/1352>) - Added debug error message on incorrect XPath (<https://github.com/opencv/cvat/pull/1352>)
- Exporting frame stepped task - Exporting frame stepped task
(<https://github.com/opencv/cvat/issues/1294, https://github.com/opencv/cvat/issues/1334>) (<https://github.com/opencv/cvat/issues/1294>, <https://github.com/opencv/cvat/issues/1334>)
- Fixed broken command line interface for `cvat` export format in Datumaro (<https://github.com/opencv/cvat/issues/1494>) - Fixed broken command line interface for `cvat` export format in Datumaro (<https://github.com/opencv/cvat/issues/1494>)
- Updated Rest API document, Swagger document serving instruction issue (<https://github.com/opencv/cvat/issues/1495>) - Updated Rest API document, Swagger document serving instruction issue (<https://github.com/opencv/cvat/issues/1495>)
- Fixed cuboid occluded view (<https://github.com/opencv/cvat/pull/1500>) - Fixed cuboid occluded view (<https://github.com/opencv/cvat/pull/1500>)
@ -450,7 +450,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Permission group whitelist check for analytics view (<https://github.com/opencv/cvat/pull/1608>) - Permission group whitelist check for analytics view (<https://github.com/opencv/cvat/pull/1608>)
## [1.0.0-beta.2] - 2020-04-30 ## \[1.0.0-beta.2] - 2020-04-30
### Added ### Added
@ -462,13 +462,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Removed ### Removed
- Annotation convertation utils, currently supported natively via Datumaro framework - Annotation convertation utils, currently supported natively via Datumaro framework
(https://github.com/opencv/cvat/pull/1477) (<https://github.com/opencv/cvat/pull/1477>)
### Fixed ### Fixed
- Auto annotation, TF annotation and Auto segmentation apps (https://github.com/opencv/cvat/pull/1409) - Auto annotation, TF annotation and Auto segmentation apps (<https://github.com/opencv/cvat/pull/1409>)
- Import works with truncated images now: "OSError:broken data stream" on corrupt images - Import works with truncated images now: "OSError:broken data stream" on corrupt images
(https://github.com/opencv/cvat/pull/1430) (<https://github.com/opencv/cvat/pull/1430>)
- Hide functionality (H) doesn't work (<https://github.com/opencv/cvat/pull/1445>) - Hide functionality (H) doesn't work (<https://github.com/opencv/cvat/pull/1445>)
- The highlighted attribute doesn't correspond to the chosen attribute in AAM (<https://github.com/opencv/cvat/pull/1445>) - The highlighted attribute doesn't correspond to the chosen attribute in AAM (<https://github.com/opencv/cvat/pull/1445>)
- Inconvinient image shaking while drawing a polygon (hold Alt key during drawing/editing/grouping to drag an image) (<https://github.com/opencv/cvat/pull/1445>) - Inconvinient image shaking while drawing a polygon (hold Alt key during drawing/editing/grouping to drag an image) (<https://github.com/opencv/cvat/pull/1445>)
@ -476,13 +476,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Block of text information doesn't disappear after deactivating for locked shapes (<https://github.com/opencv/cvat/pull/1445>) - Block of text information doesn't disappear after deactivating for locked shapes (<https://github.com/opencv/cvat/pull/1445>)
- Annotation uploading fails in annotation view (<https://github.com/opencv/cvat/pull/1445>) - Annotation uploading fails in annotation view (<https://github.com/opencv/cvat/pull/1445>)
- UI freezes after canceling pasting with escape (<https://github.com/opencv/cvat/pull/1445>) - UI freezes after canceling pasting with escape (<https://github.com/opencv/cvat/pull/1445>)
- Duplicating keypoints in COCO export (https://github.com/opencv/cvat/pull/1435) - Duplicating keypoints in COCO export (<https://github.com/opencv/cvat/pull/1435>)
- CVAT new UI: add arrows on a mouse cursor (<https://github.com/opencv/cvat/pull/1391>) - CVAT new UI: add arrows on a mouse cursor (<https://github.com/opencv/cvat/pull/1391>)
- Delete point bug (in new UI) (<https://github.com/opencv/cvat/pull/1440>) - Delete point bug (in new UI) (<https://github.com/opencv/cvat/pull/1440>)
- Fix apache startup after PC restart (https://github.com/opencv/cvat/pull/1467) - Fix apache startup after PC restart (<https://github.com/opencv/cvat/pull/1467>)
- Open task button doesn't work (https://github.com/opencv/cvat/pull/1474) - Open task button doesn't work (<https://github.com/opencv/cvat/pull/1474>)
## [1.0.0-beta.1] - 2020-04-15 ## \[1.0.0-beta.1] - 2020-04-15
### Added ### Added
@ -491,12 +491,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Ability to display a bitmap in the new UI - Ability to display a bitmap in the new UI
- Button to reset colors settings (brightness, saturation, contrast) in the new UI - Button to reset colors settings (brightness, saturation, contrast) in the new UI
- Option to display shape text always - Option to display shape text always
- Dedicated message with clarifications when share is unmounted (https://github.com/opencv/cvat/pull/1373) - Dedicated message with clarifications when share is unmounted (<https://github.com/opencv/cvat/pull/1373>)
- Ability to create one tracked point (https://github.com/opencv/cvat/pull/1383) - Ability to create one tracked point (<https://github.com/opencv/cvat/pull/1383>)
- Ability to draw/edit polygons and polylines with automatic bordering feature - Ability to draw/edit polygons and polylines with automatic bordering feature
(https://github.com/opencv/cvat/pull/1394) (<https://github.com/opencv/cvat/pull/1394>)
- Tutorial: instructions for CVAT over HTTPS - Tutorial: instructions for CVAT over HTTPS
- Deep extreme cut (semi-automatic segmentation) to the new UI (https://github.com/opencv/cvat/pull/1398) - Deep extreme cut (semi-automatic segmentation) to the new UI (<https://github.com/opencv/cvat/pull/1398>)
### Changed ### Changed
@ -516,38 +516,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Hidden points (or outsided) are visible after changing a frame - Hidden points (or outsided) are visible after changing a frame
- Merge is allowed for points, but clicks on points conflict with frame dragging logic - Merge is allowed for points, but clicks on points conflict with frame dragging logic
- Removed objects are visible for search - Removed objects are visible for search
- Add missed task_id and job_id fields into exception logs for the new UI (https://github.com/opencv/cvat/pull/1372) - Add missed task_id and job_id fields into exception logs for the new UI (<https://github.com/opencv/cvat/pull/1372>)
- UI fails when annotations saving occurs during drag/resize/edit (https://github.com/opencv/cvat/pull/1383) - UI fails when annotations saving occurs during drag/resize/edit (<https://github.com/opencv/cvat/pull/1383>)
- Multiple savings when hold Ctrl+S (a lot of the same copies of events were sent with the same working time) - Multiple savings when hold Ctrl+S (a lot of the same copies of events were sent with the same working time)
(https://github.com/opencv/cvat/pull/1383) (<https://github.com/opencv/cvat/pull/1383>)
- UI doesn't have any reaction when git repos synchronization failed (https://github.com/opencv/cvat/pull/1383) - UI doesn't have any reaction when git repos synchronization failed (<https://github.com/opencv/cvat/pull/1383>)
- Bug when annotations cannot be saved after (delete - save - undo - save) (https://github.com/opencv/cvat/pull/1383) - Bug when annotations cannot be saved after (delete - save - undo - save) (<https://github.com/opencv/cvat/pull/1383>)
- VOC format exports Upper case labels correctly in lower case (https://github.com/opencv/cvat/pull/1379) - VOC format exports Upper case labels correctly in lower case (<https://github.com/opencv/cvat/pull/1379>)
- Fixed polygon exporting bug in COCO dataset (https://github.com/opencv/cvat/issues/1387) - Fixed polygon exporting bug in COCO dataset (<https://github.com/opencv/cvat/issues/1387>)
- Task creation from remote files (https://github.com/opencv/cvat/pull/1392) - Task creation from remote files (<https://github.com/opencv/cvat/pull/1392>)
- Job cannot be opened in some cases when the previous job was failed during opening - Job cannot be opened in some cases when the previous job was failed during opening
(https://github.com/opencv/cvat/issues/1403) (<https://github.com/opencv/cvat/issues/1403>)
- Deactivated shape is still highlighted on the canvas (https://github.com/opencv/cvat/issues/1403) - Deactivated shape is still highlighted on the canvas (<https://github.com/opencv/cvat/issues/1403>)
- AttributeError: 'tuple' object has no attribute 'read' in ReID algorithm (https://github.com/opencv/cvat/issues/1403) - AttributeError: 'tuple' object has no attribute 'read' in ReID algorithm (<https://github.com/opencv/cvat/issues/1403>)
- Wrong semi-automatic segmentation near edges of an image (https://github.com/opencv/cvat/issues/1403) - Wrong semi-automatic segmentation near edges of an image (<https://github.com/opencv/cvat/issues/1403>)
- Git repos paths (https://github.com/opencv/cvat/pull/1400) - Git repos paths (<https://github.com/opencv/cvat/pull/1400>)
- Uploading annotations for tasks with multiple jobs (https://github.com/opencv/cvat/pull/1396) - Uploading annotations for tasks with multiple jobs (<https://github.com/opencv/cvat/pull/1396>)
## [1.0.0-alpha] - 2020-03-31 ## \[1.0.0-alpha] - 2020-03-31
### Added ### Added
- Data streaming using chunks (https://github.com/opencv/cvat/pull/1007) - Data streaming using chunks (<https://github.com/opencv/cvat/pull/1007>)
- New UI: showing file names in UI (https://github.com/opencv/cvat/pull/1311) - New UI: showing file names in UI (<https://github.com/opencv/cvat/pull/1311>)
- New UI: delete a point from context menu (https://github.com/opencv/cvat/pull/1292) - New UI: delete a point from context menu (<https://github.com/opencv/cvat/pull/1292>)
### Fixed ### Fixed
- Git app cannot clone a repository (https://github.com/opencv/cvat/pull/1330) - Git app cannot clone a repository (<https://github.com/opencv/cvat/pull/1330>)
- New UI: preview position in task details (https://github.com/opencv/cvat/pull/1312) - New UI: preview position in task details (<https://github.com/opencv/cvat/pull/1312>)
- AWS deployment (https://github.com/opencv/cvat/pull/1316) - AWS deployment (<https://github.com/opencv/cvat/pull/1316>)
## [0.6.1] - 2020-03-21 ## \[0.6.1] - 2020-03-21
### Changed ### Changed
@ -567,7 +567,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Bump acorn from 6.3.0 to 6.4.1 in /cvat-ui ([#1270](https://github.com/opencv/cvat/pull/1270)) - Bump acorn from 6.3.0 to 6.4.1 in /cvat-ui ([#1270](https://github.com/opencv/cvat/pull/1270))
## [0.6.0] - 2020-03-15 ## \[0.6.0] - 2020-03-15
### Added ### Added
@ -605,19 +605,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Output labels for VOC format can be specified with Datumaro [#942](https://github.com/opencv/cvat/issues/942) - Output labels for VOC format can be specified with Datumaro [#942](https://github.com/opencv/cvat/issues/942)
- Annotations can be filtered before dumping with Datumaro [#994](https://github.com/opencv/cvat/issues/994) - Annotations can be filtered before dumping with Datumaro [#994](https://github.com/opencv/cvat/issues/994)
## [0.5.2] - 2019-12-15 ## \[0.5.2] - 2019-12-15
### Fixed ### Fixed
- Frozen version of scikit-image==0.15 in requirements.txt because next releases don't support Python 3.5 - Frozen version of scikit-image==0.15 in requirements.txt because next releases don't support Python 3.5
## [0.5.1] - 2019-10-17 ## \[0.5.1] - 2019-10-17
### Added ### Added
- Integration with Zenodo.org (DOI) - Integration with Zenodo.org (DOI)
## [0.5.0] - 2019-09-12 ## \[0.5.0] - 2019-09-12
### Added ### Added
@ -635,7 +635,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added in a command line model manager tester - Added in a command line model manager tester
- Ability to dump/load annotations in several formats from UI (CVAT, Pascal VOC, YOLO, MS COCO, png mask, TFRecord) - Ability to dump/load annotations in several formats from UI (CVAT, Pascal VOC, YOLO, MS COCO, png mask, TFRecord)
- Auth for REST API (api/v1/auth/): login, logout, register, ... - Auth for REST API (api/v1/auth/): login, logout, register, ...
- Preview for the new CVAT UI (dashboard only) is available: http://localhost:9080/ - Preview for the new CVAT UI (dashboard only) is available: <http://localhost:9080/>
- Added command line tool for performing common task operations (/utils/cli/) - Added command line tool for performing common task operations (/utils/cli/)
### Changed ### Changed
@ -669,26 +669,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Upgraded Django, djangorestframework, and other packages - Upgraded Django, djangorestframework, and other packages
## [0.4.2] - 2019-06-03 ## \[0.4.2] - 2019-06-03
### Fixed ### Fixed
- Fixed interaction with the server share in the auto annotation plugin - Fixed interaction with the server share in the auto annotation plugin
## [0.4.1] - 2019-05-14 ## \[0.4.1] - 2019-05-14
### Fixed ### Fixed
- JavaScript syntax incompatibility with Google Chrome versions less than 72 - JavaScript syntax incompatibility with Google Chrome versions less than 72
## [0.4.0] - 2019-05-04 ## \[0.4.0] - 2019-05-04
### Added ### Added
- OpenVINO auto annotation: it is possible to upload a custom model and annotate images automatically. - OpenVINO auto annotation: it is possible to upload a custom model and annotate images automatically.
- Ability to rotate images/video in the client part (Ctrl+R, Shift+Ctrl+R shortcuts) (#305) - Ability to rotate images/video in the client part (Ctrl+R, Shift+Ctrl+R shortcuts) (#305)
- The ReID application for automatic bounding box merging has been added (#299) - The ReID application for automatic bounding box merging has been added (#299)
- Keyboard shortcuts to switch next/previous default shape type (box, polygon etc) [Alt + <, Alt + >] (#316) - Keyboard shortcuts to switch next/previous default shape type (box, polygon etc) (Alt + <, Alt + >) (#316)
- Converter for VOC now supports interpolation tracks - Converter for VOC now supports interpolation tracks
- REST API (/api/v1/\*, /api/docs) - REST API (/api/v1/\*, /api/docs)
- Semi-automatic semantic segmentation with the [Deep Extreme Cut](http://www.vision.ee.ethz.ch/~cvlsegmentation/dextr/) work - Semi-automatic semantic segmentation with the [Deep Extreme Cut](http://www.vision.ee.ethz.ch/~cvlsegmentation/dextr/) work
@ -706,10 +706,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- Django 2.1.5 (security fix, https://nvd.nist.gov/vuln/detail/CVE-2019-3498) - Django 2.1.5 (security fix, [CVE-2019-3498](https://nvd.nist.gov/vuln/detail/CVE-2019-3498))
- Several scenarious which cause code 400 after undo/redo/save have been fixed (#315) - Several scenarious which cause code 400 after undo/redo/save have been fixed (#315)
## [0.3.0] - 2018-12-29 ## \[0.3.0] - 2018-12-29
### Added ### Added
@ -736,7 +736,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Polyshape editing method has been improved. You can redraw part of shape instead of points cloning. - Polyshape editing method has been improved. You can redraw part of shape instead of points cloning.
- Unified shortcut (Esc) for close any mode instead of different shortcuts (Alt+N, Alt+G, Alt+M etc.). - Unified shortcut (Esc) for close any mode instead of different shortcuts (Alt+N, Alt+G, Alt+M etc.).
- Dump file contains information about data source (e.g. video name, archive name, ...) - Dump file contains information about data source (e.g. video name, archive name, ...)
- Update requests library due to https://nvd.nist.gov/vuln/detail/CVE-2018-18074 - Update requests library due to [CVE-2018-18074](https://nvd.nist.gov/vuln/detail/CVE-2018-18074)
- Per task/job permissions to create/access/change/delete tasks and annotations - Per task/job permissions to create/access/change/delete tasks and annotations
- Documentation was improved - Documentation was improved
- Timeout for creating tasks was increased (from 1h to 4h) (#136) - Timeout for creating tasks was increased (from 1h to 4h) (#136)
@ -755,7 +755,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Dashboard loading has been accelerated (#156) - Dashboard loading has been accelerated (#156)
- Text drawing outside of a frame in some cases (#202) - Text drawing outside of a frame in some cases (#202)
## [0.2.0] - 2018-09-28 ## \[0.2.0] - 2018-09-28
### Added ### Added
@ -787,7 +787,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Several memory leaks - Several memory leaks
- Inconsistent extensions between filenames in an annotation file and real filenames - Inconsistent extensions between filenames in an annotation file and real filenames
## [0.1.2] - 2018-08-07 ## \[0.1.2] - 2018-08-07
### Added ### Added
@ -805,7 +805,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- More strict verification for labels with attributes - More strict verification for labels with attributes
## [0.1.1] - 2018-07-6 ## \[0.1.1] - 2018-07-6
### Added ### Added
@ -816,7 +816,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- GitHub documentation - GitHub documentation
## 0.1.0 - 2018-06-29 ## \[0.1.0] - 2018-06-29
### Added ### Added

@ -300,13 +300,13 @@ Good bug reports are extremely helpful - thank you!
Guidelines for bug reports: Guidelines for bug reports:
1. **Use the GitHub issue search** &mdash; check if the issue has already been 1. **Use the GitHub issue search** &mdash; check if the issue has already been
reported. reported.
1. **Check if the issue has been fixed** &mdash; try to reproduce it using the 1. **Check if the issue has been fixed** &mdash; try to reproduce it using the
latest `develop` branch in the repository. latest `develop` branch in the repository.
1. **Isolate the problem** &mdash; ideally create a reduced test case. 1. **Isolate the problem** &mdash; ideally create a reduced test case.
A good bug report shouldn't leave others needing to chase you up for more A good bug report shouldn't leave others needing to chase you up for more
information. Please try to be as detailed as possible in your report. What is information. Please try to be as detailed as possible in your report. What is
@ -358,52 +358,52 @@ accurate comments, etc.) and any other requirements (such as test coverage).
Follow this process if you'd like your work considered for inclusion in the Follow this process if you'd like your work considered for inclusion in the
project: project:
1. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the project, clone your fork, 1. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the project, clone your fork,
and configure the remotes: and configure the remotes:
```bash ```bash
# Clone your fork of the repo into the current directory # Clone your fork of the repo into the current directory
git clone https://github.com/<your-username>/<repo-name> git clone https://github.com/<your-username>/<repo-name>
# Navigate to the newly cloned directory # Navigate to the newly cloned directory
cd <repo-name> cd <repo-name>
# Assign the original repo to a remote called "upstream" # Assign the original repo to a remote called "upstream"
git remote add upstream https://github.com/<upstream-owner>/<repo-name> git remote add upstream https://github.com/<upstream-owner>/<repo-name>
``` ```
1. If you cloned a while ago, get the latest changes from upstream: 1. If you cloned a while ago, get the latest changes from upstream:
```bash ```bash
git checkout <dev-branch> git checkout <dev-branch>
git pull upstream <dev-branch> git pull upstream <dev-branch>
``` ```
1. Create a new topic branch (off the main project development branch) to 1. Create a new topic branch (off the main project development branch) to
contain your feature, change, or fix: contain your feature, change, or fix:
```bash ```bash
git checkout -b <topic-branch-name> git checkout -b <topic-branch-name>
``` ```
1. Commit your changes in logical chunks. Please adhere to these [git commit 1. Commit your changes in logical chunks. Please adhere to these [git commit
message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
or your code is unlikely be merged into the main project. Use Git's or your code is unlikely be merged into the main project. Use Git's
[interactive rebase](https://docs.github.com/en/github/using-git/about-git-rebase) [interactive rebase](https://docs.github.com/en/github/using-git/about-git-rebase)
feature to tidy up your commits before making them public. feature to tidy up your commits before making them public.
1. Locally merge (or rebase) the upstream development branch into your topic branch: 1. Locally merge (or rebase) the upstream development branch into your topic branch:
```bash ```bash
git pull [--rebase] upstream <dev-branch> git pull [--rebase] upstream <dev-branch>
``` ```
1. Push your topic branch up to your fork: 1. Push your topic branch up to your fork:
```bash ```bash
git push origin <topic-branch-name> git push origin <topic-branch-name>
``` ```
1. [Open a Pull Request](hhttps://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) 1. [Open a Pull Request](hhttps://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)
with a clear title and description. with a clear title and description.
**IMPORTANT**: By submitting a patch, you agree to allow the project owner to **IMPORTANT**: By submitting a patch, you agree to allow the project owner to
license your work under the same license as that used by the project. license your work under the same license as that used by the project.

@ -17,52 +17,52 @@ So, we have solved to write patch file for this library.
It modifies source code a little to support our scenario of using. It modifies source code a little to support our scenario of using.
### How to build awc.wasm and Decoder.js ### How to build awc.wasm and Decoder.js
1. Clone Emscripten SDK, install and activate the latest fastcomp SDK: 1. Clone Emscripten SDK, install and activate the latest fastcomp SDK:
```sh ```sh
git clone https://github.com/emscripten-core/emsdk.git && cd emsdk git clone https://github.com/emscripten-core/emsdk.git && cd emsdk
``` ```
```sh ```sh
./emsdk install latest-fastcomp ./emsdk install latest-fastcomp
``` ```
```sh ```sh
./emsdk activate latest-fastcomp ./emsdk activate latest-fastcomp
``` ```
1. Clone Broadway.js 1. Clone Broadway.js
```sh ```sh
git clone https://github.com/mbebenita/Broadway.git && cd Broadway/Decoder git clone https://github.com/mbebenita/Broadway.git && cd Broadway/Decoder
``` ```
1. Edit `make.py`: 1. Edit `make.py`:
- Remove or comment the following options: - Remove or comment the following options:
`'-s', 'NO_BROWSER=1',`\ `'-s', 'NO_BROWSER=1',`\
`'-s', 'PRECISE_I64_MATH=0',` `'-s', 'PRECISE_I64_MATH=0',`
- Remove `"HEAP8", "HEAP16", "HEAP32"` from the `EXPORTED_FUNCTIONS` list. - Remove `"HEAP8", "HEAP16", "HEAP32"` from the `EXPORTED_FUNCTIONS` list.
- Increase total memory to make possible decode 4k videos - Increase total memory to make possible decode 4k videos
(or try to enable `ALLOW_MEMORY_GROWTH`, but this option has not been tested):\ (or try to enable `ALLOW_MEMORY_GROWTH`, but this option has not been tested):\
`'-s', 'TOTAL_MEMORY=' + str(100*1024*1024),` `'-s', 'TOTAL_MEMORY=' + str(100*1024*1024),`
- Add the following options:\ - Add the following options:\
`'-s', "ENVIRONMENT='worker'",`\ `'-s', "ENVIRONMENT='worker'",`\
`'-s', 'WASM=1',` `'-s', 'WASM=1',`
1. Activate emsdk environment and build Broadway.js: 1. Activate emsdk environment and build Broadway.js:
```sh ```sh
. /tmp/emsdk/emsdk_env.sh . /tmp/emsdk/emsdk_env.sh
``` ```
```sh ```sh
python2 make.py python2 make.py
``` ```
1. Copy the following files to cvat-data 3rdparty source folder: 1. Copy the following files to cvat-data 3rdparty source folder:
```sh ```sh
cd .. cd ..
``` ```
```sh ```sh
cp Player/avc.wasm Player/Decoder.js Player/mp4.js <CVAT_FOLDER>/cvat-data/src/ cp Player/avc.wasm Player/Decoder.js Player/mp4.js <CVAT_FOLDER>/cvat-data/src/
``` ```
```sh ```sh
js/3rdparty js/3rdparty
``` ```
### How work with a patch file ### How work with a patch file
```bash ```bash

@ -8,10 +8,12 @@ The SSH protocol is used for an authorization.
### Using ### Using
- Put a private SSH key into the `ssh` directory. The public key corresponding to this private key should be attached to an github user. - Put a private SSH key into the `ssh` directory.
The public key corresponding to this private key should be attached to an github user.
- If you don't put any custom key, it will generated automatically. - If you don't put any custom key, it will generated automatically.
- Setup a repository URL and a path (which is relative for a repository) in the create task dialog. - Setup a repository URL and a path (which is relative for a repository) in the create task dialog.
- Annotate a task. - Annotate a task.
- Press the button "Git Repository Sync" on the dashboard. - Press the button "Git Repository Sync" on the dashboard.
- In the dialog window press the button "Sync" and waiting for some time. - In the dialog window press the button "Sync" and waiting for some time.
- An annotation will be dumped, archived and pushed to the attached remote repository. You can do a pull request manually. - An annotation will be dumped, archived and pushed to the attached remote repository.
You can do a pull request manually.

@ -8,8 +8,8 @@
helm repo update helm repo update
helm dependency update helm dependency update
``` ```
4. (Optional) Install ingress of your choice (for example: https://github.com/kubernetes/ingress-nginx) 4. (Optional) Install ingress of your choice (for example: <https://github.com/kubernetes/ingress-nginx>)
5. (Optional) Create certificates for https (for example: https://github.com/jetstack/cert-manager/ ) 5. (Optional) Create certificates for https (for example: <https://github.com/jetstack/cert-manager/>)
6. (Optional) Create values.override.yaml and override there parameters you want 6. (Optional) Create values.override.yaml and override there parameters you want
7. Change postgresql password as described below 7. Change postgresql password as described below
8. Add ingress to values.override.yaml(example also below) 8. Add ingress to values.override.yaml(example also below)
@ -43,7 +43,7 @@ postgresql:
## How to describe ingress: ## How to describe ingress:
Just set `ingress.enabled:` to `true`, then copy example, uncomment it and change values there Just set `ingress.enabled:` to `true`, then copy example, uncomment it and change values there
## How to understand what diff will be inflicted by 'helm upgrade'? ## How to understand what diff will be inflicted by 'helm upgrade'?
You can use https://github.com/databus23/helm-diff#install for that You can use <https://github.com/databus23/helm-diff#install> for that
## I want to use my own postgresql/redis with your chart. ## I want to use my own postgresql/redis with your chart.
Just set `postgresql.enabled` or `redis.enabled` to `false`, as described below. Just set `postgresql.enabled` or `redis.enabled` to `false`, as described below.
Then - put your instance params to "external" field Then - put your instance params to "external" field
@ -53,6 +53,6 @@ Then reference it in helm update/install command using `-f` flag
## Why you used external charts to provide redis and postgres? ## Why you used external charts to provide redis and postgres?
Because they definitely know what they do better then we are, so we are getting more quality and less support Because they definitely know what they do better then we are, so we are getting more quality and less support
## What is kubernetes and how it is working? ## What is kubernetes and how it is working?
See https://kubernetes.io/ See <https://kubernetes.io/>
## What is helm and how it is working? ## What is helm and how it is working?
See https://helm.sh/ See <https://helm.sh/>

868
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -24,6 +24,9 @@
"micromatch": "^4.0.2", "micromatch": "^4.0.2",
"nyc": "^15.1.0", "nyc": "^15.1.0",
"prettier": "2.1.2", "prettier": "2.1.2",
"remark-cli": "^9.0.0",
"remark-frontmatter": "^3.0.0",
"remark-gfm": "^1.0.0",
"remark-lint-emphasis-marker": "^2.0.0", "remark-lint-emphasis-marker": "^2.0.0",
"remark-lint-list-item-spacing": "^2.0.0", "remark-lint-list-item-spacing": "^2.0.0",
"remark-lint-maximum-heading-length": "^2.0.0", "remark-lint-maximum-heading-length": "^2.0.0",
@ -33,12 +36,13 @@
"remark-lint-ordered-list-marker-style": "^2.0.0", "remark-lint-ordered-list-marker-style": "^2.0.0",
"remark-lint-strong-marker": "^2.0.0", "remark-lint-strong-marker": "^2.0.0",
"remark-lint-unordered-list-marker-style": "^2.0.0", "remark-lint-unordered-list-marker-style": "^2.0.0",
"remark-preset-lint-consistent": "^3.0.0", "remark-preset-lint-consistent": "^4.0.0",
"remark-preset-lint-markdown-style-guide": "^3.0.0", "remark-preset-lint-markdown-style-guide": "^4.0.0",
"remark-preset-lint-recommended": "^4.0.0", "remark-preset-lint-recommended": "^5.0.0",
"source-map-support": "^0.5.19", "source-map-support": "^0.5.19",
"stylelint": "^13.6.1", "stylelint": "^13.6.1",
"stylelint-config-standard": "^20.0.0" "stylelint-config-standard": "^20.0.0",
"vfile-reporter-json": "^2.0.2"
}, },
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",

@ -44,7 +44,7 @@ To build and preview your site locally, use:
cd <your local directory>/cvat/site/ cd <your local directory>/cvat/site/
hugo server hugo server
By default, your site will be available athttp://localhost:1313/ By default, your site will be available at<http://localhost:1313/>.
Instead of a "hugo server" command, you can use the "hugo" command that generates the site into a "public" folder. Instead of a "hugo server" command, you can use the "hugo" command that generates the site into a "public" folder.

@ -5,18 +5,18 @@ weight: 1
no_list: true no_list: true
--- ---
- [CVAT](format-cvat) - [CVAT](format-cvat)
- [Datumaro](format-datumaro) - [Datumaro](format-datumaro)
- [LabelMe](format-labelme) - [LabelMe](format-labelme)
- [MOT](format-mot) - [MOT](format-mot)
- [MOTS](format-mots) - [MOTS](format-mots)
- [COCO](format-coco) - [COCO](format-coco)
- [PASCAL VOC and mask](format-voc) - [PASCAL VOC and mask](format-voc)
- [YOLO](format-yolo) - [YOLO](format-yolo)
- [TF detection API](format-tfrecord) - [TF detection API](format-tfrecord)
- [ImageNet](format-imagenet) - [ImageNet](format-imagenet)
- [CamVid](format-camvid) - [CamVid](format-camvid)
- [WIDER Face](format-widerface) - [WIDER Face](format-widerface)
- [VGGFace2](format-vggface2) - [VGGFace2](format-vggface2)
- [Market-1501](format-market1501) - [Market-1501](format-market1501)
- [ICDAR13/15](format-icdar) - [ICDAR13/15](format-icdar)

@ -161,7 +161,8 @@ the last label:12,28,0:: # color index 200
You can add `~checkbox=difficult:false ~checkbox=truncated:false` You can add `~checkbox=difficult:false ~checkbox=truncated:false`
attributes for each label if you want to use them. attributes for each label if you want to use them.
Select interesting image files (See [Creating an annotation task](/docs/for-users/user-guide/creating_an_annotation_task/) guide for details) Select interesting image files
(See [Creating an annotation task](/docs/for-users/user-guide/creating_an_annotation_task/) guide for details)
1. zip the corresponding annotation files 1. zip the corresponding annotation files

@ -49,4 +49,5 @@ Detectors are used to automatically annotate one frame. Supported DL models are
![](/images/image187.jpg) ![](/images/image187.jpg)
- This action will automatically annotates one frame. - This action will automatically annotates one frame.
In the [Automatic annotation](/docs/for-users/user-guide/advanced/automatic-annotation/) section you can read how to make automatic annotation of all frames. In the [Automatic annotation](/docs/for-users/user-guide/advanced/automatic-annotation/) section you can read
how to make automatic annotation of all frames.

@ -6,23 +6,24 @@ weight: 2
You can use linear interpolation for points to annotate a moving object: You can use linear interpolation for points to annotate a moving object:
1. Before you start, select the `Points`. 1. Before you start, select the `Points`.
1. Linear interpolation works only with one point, so you need to set `Number of points` to 1. 1. Linear interpolation works only with one point, so you need to set `Number of points` to 1.
1. After that select the `Track`. 1. After that select the `Track`.
![](/images/image122.jpg) ![](/images/image122.jpg)
1. Click `Track` to enter the drawing mode left-click to create a point and after that shape will be automatically completed. 1. Click `Track` to enter the drawing mode left-click to create a point
and after that shape will be automatically completed.
![](/images/image163_detrac.jpg) ![](/images/image163_detrac.jpg)
1. Move forward a few frames and move the point to the desired position, 1. Move forward a few frames and move the point to the desired position,
this way you will create a keyframe and intermediate frames will be drawn automatically. this way you will create a keyframe and intermediate frames will be drawn automatically.
You can work with this object as with an interpolated track: you can hide it using the `Outside`, You can work with this object as with an interpolated track: you can hide it using the `Outside`,
move around keyframes, etc. move around keyframes, etc.
![](/images/image165_detrac.jpg) ![](/images/image165_detrac.jpg)
1. This way you'll get linear interpolation using the ` Points`. 1. This way you'll get linear interpolation using the ` Points`.
![](/images/gif013_detrac.gif) ![](/images/gif013_detrac.gif)

@ -7,12 +7,16 @@ weight: 4
To edit a polygon you have to click on it while holding `Shift`, it will open the polygon editor. To edit a polygon you have to click on it while holding `Shift`, it will open the polygon editor.
- In the editor you can create new points or delete part of a polygon by closing the line on another point. - In the editor you can create new points or delete part of a polygon by closing the line on another point.
- When `Intelligent polygon cropping` option is activated in the settings, СVAT considers two criteria to decide which part of a polygon should be cut off during automatic editing. - When `Intelligent polygon cropping` option is activated in the settings,
СVAT considers two criteria to decide which part of a polygon should be cut off during automatic editing.
- The first criteria is a number of cut points. - The first criteria is a number of cut points.
- The second criteria is a length of a cut curve. - The second criteria is a length of a cut curve.
If both criteria recommend to cut the same part, algorithm works automatically, and if not, a user has to make the decision. If both criteria recommend to cut the same part, algorithm works automatically,
If you want to choose manually which part of a polygon should be cut off, disable `Intelligent polygon cropping` in the settings. In this case after closing the polygon, you can select the part of the polygon you want to leave. and if not, a user has to make the decision.
If you want to choose manually which part of a polygon should be cut off,
disable `Intelligent polygon cropping` in the settings.
In this case after closing the polygon, you can select the part of the polygon you want to leave.
![](/images/image209.jpg) ![](/images/image209.jpg)

@ -13,9 +13,9 @@ Before starting, you need to select `Polygon` on the controls sidebar and choose
There are two ways to draw a polygon: either create points by clicking or There are two ways to draw a polygon: either create points by clicking or
by dragging the mouse on the screen while holding `Shift`. by dragging the mouse on the screen while holding `Shift`.
| Clicking points | Holding Shift+Dragging | | Clicking points | Holding Shift+Dragging |
| -------------------------------------------------- | -------------------------------------------------- | | ------------------------------ | ------------------------------ |
| ![](/images/gif005_detrac.gif) | ![](/images/gif006_detrac.gif) | | ![](/images/gif005_detrac.gif) | ![](/images/gif006_detrac.gif) |
- When `Shift` isn't pressed, you can zoom in/out (when scrolling the mouse - When `Shift` isn't pressed, you can zoom in/out (when scrolling the mouse
wheel) and move (when clicking the mouse wheel and moving the mouse), you can also wheel) and move (when clicking the mouse wheel and moving the mouse), you can also

@ -8,44 +8,44 @@ Automatic Annotation is used for creating preliminary annotations.
To use Automatic Annotation you need a DL model. You can use primary models or models uploaded by a user. To use Automatic Annotation you need a DL model. You can use primary models or models uploaded by a user.
You can find the list of available models in the `Models` section. You can find the list of available models in the `Models` section.
1. To launch automatic annotation, you should open the dashboard and find a task which you want to annotate. 1. To launch automatic annotation, you should open the dashboard and find a task which you want to annotate.
Then click the `Actions` button and choose option `Automatic Annotation` from the dropdown menu. Then click the `Actions` button and choose option `Automatic Annotation` from the dropdown menu.
![](/images/image119_detrac.jpg) ![](/images/image119_detrac.jpg)
1. In the dialog window select a model you need. DL models are created for specific labels, e.g. 1. In the dialog window select a model you need. DL models are created for specific labels, e.g.
the Crossroad model was taught using footage from cameras located above the highway and it is best to the Crossroad model was taught using footage from cameras located above the highway and it is best to
use this model for the tasks with similar camera angles. use this model for the tasks with similar camera angles.
If it's necessary select the `Clean old annotations` checkbox. If it's necessary select the `Clean old annotations` checkbox.
Adjust the labels so that the task labels will correspond to the labels of the DL model. Adjust the labels so that the task labels will correspond to the labels of the DL model.
For example, lets consider a task where you have to annotate labels “car” and “person”. For example, lets consider a task where you have to annotate labels “car” and “person”.
You should connect the “person” label from the model to the “person” label in the task. You should connect the “person” label from the model to the “person” label in the task.
As for the “car” label, you should choose the most fitting label available in the model - the “vehicle” label. As for the “car” label, you should choose the most fitting label available in the model - the “vehicle” label.
The task requires to annotate cars only and choosing the “vehicle” label implies annotation of all vehicles, The task requires to annotate cars only and choosing the “vehicle” label implies annotation of all vehicles,
in this case using auto annotation will help you complete the task faster. in this case using auto annotation will help you complete the task faster.
Click `Submit` to begin the automatic annotation process. Click `Submit` to begin the automatic annotation process.
![](/images/image120.jpg) ![](/images/image120.jpg)
1. At runtime - you can see the percentage of completion. 1. At runtime - you can see the percentage of completion.
You can cancel the automatic annotation by clicking on the `Cancel`button. You can cancel the automatic annotation by clicking on the `Cancel`button.
![](/images/image121_detrac.jpg) ![](/images/image121_detrac.jpg)
1. The end result of an automatic annotation is an annotation with separate rectangles (or other shapes) 1. The end result of an automatic annotation is an annotation with separate rectangles (or other shapes)
![](/images/gif014_detrac.gif) ![](/images/gif014_detrac.gif)
1. You can combine separate bounding boxes into tracks using the `Person reidentification ` model. 1. You can combine separate bounding boxes into tracks using the `Person reidentification ` model.
To do this, click on the automatic annotation item in the action menu again and select the model To do this, click on the automatic annotation item in the action menu again and select the model
of the `ReID` type (in this case the `Person reidentification` model). of the `ReID` type (in this case the `Person reidentification` model).
You can set the following parameters: You can set the following parameters:
- Model `Threshold` is a maximum cosine distance between objects embeddings. - Model `Threshold` is a maximum cosine distance between objects embeddings.
- `Maximum distance` defines a maximum radius that an object can diverge between adjacent frames. - `Maximum distance` defines a maximum radius that an object can diverge between adjacent frames.
![](/images/image133.jpg) ![](/images/image133.jpg)
1. You can remove false positives and edit tracks using `Split` and `Merge` functions. 1. You can remove false positives and edit tracks using `Split` and `Merge` functions.
![](/images/gif015_detrac.gif) ![](/images/gif015_detrac.gif)

@ -5,7 +5,8 @@ weight: 12.5
--- ---
When you create a task, you can provide the images with additional contextual images. When you create a task, you can provide the images with additional contextual images.
To do this, create a folder related_images and place a folder with a contextual image in it (make sure the folder has the same name as the image to which it should be tied). To do this, create a folder related_images and place a folder with a contextual image in it
(make sure the folder has the same name as the image to which it should be tied).
An example of the structure: An example of the structure:
- root_directory - root_directory
@ -22,12 +23,14 @@ An example of the structure:
- image_3_to_be_annotated_jpg/ - image_3_to_be_annotated_jpg/
- context_image_for_image_3.jpg - context_image_for_image_3.jpg
The contextual image is displayed in the upper right corner of the workspace. You can hide it by clicking on the corresponding button or maximize the image by clicking on it. The contextual image is displayed in the upper right corner of the workspace.
You can hide it by clicking on the corresponding button or maximize the image by clicking on it.
![contex_images_1](https://user-images.githubusercontent.com/54434686/119321037-e21a2000-bc84-11eb-8352-ca5ad349780a.jpg) ![contex_images_1](https://user-images.githubusercontent.com/54434686/119321037-e21a2000-bc84-11eb-8352-ca5ad349780a.jpg)
When the image is maximized, you can rotate it clockwise/counterclockwise and zoom in/out. When the image is maximized, you can rotate it clockwise/counterclockwise and zoom in/out.
You can also move the image by moving the mouse while holding down the LMB and zoom in/out by scrolling the mouse wheel. You can also move the image by moving the mouse while holding down the LMB
and zoom in/out by scrolling the mouse wheel.
To close the image, just click the `X`. To close the image, just click the `X`.
![contex_images_2](https://user-images.githubusercontent.com/54434686/119327072-4344f200-bc8b-11eb-80ba-86ec4f9e436e.jpg) ![contex_images_2](https://user-images.githubusercontent.com/54434686/119327072-4344f200-bc8b-11eb-80ba-86ec4f9e436e.jpg)

@ -34,12 +34,12 @@ The "Add rule" button adds a rule for objects display. A rule may use the follow
| `Label` | all the label names that are in the task | label name | | `Label` | all the label names that are in the task | label name |
| `Type` | shape, track or tag | type of object | | `Type` | shape, track or tag | type of object |
| `Shape` | all shape types | type of shape | | `Shape` | all shape types | type of shape |
| `Occluded` | true or false | occluded ([read more](/docs/for-users/user-guide/advanced/shape-mode-advanced/))| | `Occluded` | true or false | occluded ([read more](/docs/for-users/user-guide/advanced/shape-mode-advanced/)) |
| `Width` | number of px or field | shape width | | `Width` | number of px or field | shape width |
| `Height` | number of px or field | shape height | | `Height` | number of px or field | shape height |
| `ServerID` | number or field | ID of the object on the server <br>(You can find out by forming a link to the object through the Action menu)| | `ServerID` | number or field | ID of the object on the server <br>(You can find out by forming a link to the object through the Action menu) |
| `ObjectID` | number or field | ID of the object in your client <br>(indicated on the objects sidebar)| | `ObjectID` | number or field | ID of the object in your client <br>(indicated on the objects sidebar) |
| `Attributes`| some other fields including attributes with a <br>similar type or a specific attribute value| any fields specified by a label | | `Attributes` | some other fields including attributes with a <br>similar type or a specific attribute value | any fields specified by a label |
**Supported operators for properties:** **Supported operators for properties:**
@ -57,11 +57,13 @@ Some properties support two types of values that you can choose:
![](/images/image205.jpg) ![](/images/image205.jpg)
You can add multiple rules, to do so click the add rule button and set another rule. Once you've set a new rule, you'll be able to choose which operator they will be connected by: `And` or `Or`. You can add multiple rules, to do so click the add rule button and set another rule.
Once you've set a new rule, you'll be able to choose which operator they will be connected by: `And` or `Or`.
![](/images/image206.jpg) ![](/images/image206.jpg)
All subsequent rules will be joined by the chosen operator. Click `Submit` to apply the filter or if you want multiple rules to be connected by different operators, use groups. All subsequent rules will be joined by the chosen operator.
Click `Submit` to apply the filter or if you want multiple rules to be connected by different operators, use groups.
### Groups ### Groups

@ -3,7 +3,10 @@ title: "OpenCV tools"
linkTitle: "OpenCV tools" linkTitle: "OpenCV tools"
weight: 6 weight: 6
--- ---
The tool based on [Open CV](https://opencv.org/) Computer Vision library which is an open-source product that includes many CV algorithms. Some of these algorithms can be used to simplify the annotation process.
The tool based on [Open CV](https://opencv.org/) Computer Vision library
which is an open-source product that includes many CV algorithms.
Some of these algorithms can be used to simplify the annotation process.
First step to work with OpenCV is to load it into CVAT. Click on the toolbar icon, then click `Load OpenCV`. First step to work with OpenCV is to load it into CVAT. Click on the toolbar icon, then click `Load OpenCV`.
@ -13,7 +16,8 @@ Once it is loaded, the tool's functionality will be available.
### Intelligent scissors ### Intelligent scissors
Intelligent scissors is an CV method of creating a polygon by placing points with automatic drawing of a line between them. Intelligent scissors is an CV method of creating a polygon
by placing points with automatic drawing of a line between them.
The distance between the adjacent points is limited by the threshold of action, The distance between the adjacent points is limited by the threshold of action,
displayed as a red square which is tied to the cursor. displayed as a red square which is tied to the cursor.

@ -27,7 +27,9 @@ or areas in the frame and describe the problem.
![](/images/image196_detrac.jpg) ![](/images/image196_detrac.jpg)
- Once all the problems are marked, save the annotation, open the menu and select "submit the review". After that you'll see a form containing the verification statistics, here you can give an assessment of the job and choose further actions: - Once all the problems are marked, save the annotation, open the menu and select "submit the review".
After that you'll see a form containing the verification statistics,
here you can give an assessment of the job and choose further actions:
- Accept - changes the status of the job to `completed`. - Accept - changes the status of the job to `completed`.
- Review next passes the job to another user for re-review. - Review next passes the job to another user for re-review.

@ -3,24 +3,24 @@ title: "Basic navigation"
linkTitle: "Basic navigation" linkTitle: "Basic navigation"
weight: 1 weight: 1
--- ---
1. Use arrows below to move to the next/previous frame. 1. Use arrows below to move to the next/previous frame.
Use the scroll bar slider to scroll through frames. Use the scroll bar slider to scroll through frames.
Almost every button has a shortcut. Almost every button has a shortcut.
To get a hint about a shortcut, just move your mouse pointer over an UI element. To get a hint about a shortcut, just move your mouse pointer over an UI element.
![](/images/image008.jpg) ![](/images/image008.jpg)
1. To navigate the image, use the button on the controls sidebar. 1. To navigate the image, use the button on the controls sidebar.
Another way an image can be moved/shifted is by holding the left mouse button inside Another way an image can be moved/shifted is by holding the left mouse button inside
an area without annotated objects. an area without annotated objects.
If the `Mouse Wheel` is pressed, then all annotated objects are ignored. Otherwise the If the `Mouse Wheel` is pressed, then all annotated objects are ignored. Otherwise the
a highlighted bounding box will be moved instead of the image itself. a highlighted bounding box will be moved instead of the image itself.
![](/images/image136.jpg) ![](/images/image136.jpg)
1. You can use the button on the sidebar controls to zoom on a region of interest. 1. You can use the button on the sidebar controls to zoom on a region of interest.
Use the button `Fit the image` to fit the image in the workspace. Use the button `Fit the image` to fit the image in the workspace.
You can also use the mouse wheel to scale the image You can also use the mouse wheel to scale the image
(the image will be zoomed relatively to your current cursor position). (the image will be zoomed relatively to your current cursor position).
![](/images/image137.jpg) ![](/images/image137.jpg)

@ -8,39 +8,39 @@ Usage examples:
- Create new annotations for a set of images. - Create new annotations for a set of images.
- Add/modify/delete objects for existing annotations. - Add/modify/delete objects for existing annotations.
1. You need to select `Rectangle` on the controls sidebar: 1. You need to select `Rectangle` on the controls sidebar:
![](/images/image082.jpg) ![](/images/image082.jpg)
Before you start, select the correct ` Label` (should be specified by you when creating the task) Before you start, select the correct ` Label` (should be specified by you when creating the task)
and ` Drawing Method` (by 2 points or by 4 points): and ` Drawing Method` (by 2 points or by 4 points):
![](/images/image080.jpg) ![](/images/image080.jpg)
1. Creating a new annotation in `Shape mode`: 1. Creating a new annotation in `Shape mode`:
- Create a separate `Rectangle` by clicking on `Shape`. - Create a separate `Rectangle` by clicking on `Shape`.
![](/images/image081.jpg) ![](/images/image081.jpg)
- Choose the opposite points. Your first rectangle is ready! - Choose the opposite points. Your first rectangle is ready!
![](/images/image011_detrac.jpg) ![](/images/image011_detrac.jpg)
- To learn about creating a rectangle using the by 4 point drawing method, ([read here](/docs/for-users/user-guide/advanced/annotation-with-rectangle-by-4-points/)). - To learn about creating a rectangle using the by 4 point drawing method, ([read here](/docs/for-users/user-guide/advanced/annotation-with-rectangle-by-4-points/)).
- It is possible to adjust boundaries and location of the rectangle using a mouse. - It is possible to adjust boundaries and location of the rectangle using a mouse.
Rectangle's size is shown in the top right corner , you can check it by clicking on any point of the shape. Rectangle's size is shown in the top right corner , you can check it by clicking on any point of the shape.
You can also undo your actions using `Ctrl+Z` and redo them with `Shift+Ctrl+Z` or `Ctrl+Y`. You can also undo your actions using `Ctrl+Z` and redo them with `Shift+Ctrl+Z` or `Ctrl+Y`.
1. You can see the `Object card` in the objects sidebar or open it by right-clicking on the object. 1. You can see the `Object card` in the objects sidebar or open it by right-clicking on the object.
You can change the attributes in the details section. You can change the attributes in the details section.
You can perform basic operations or delete an object by clicking on the action menu button. You can perform basic operations or delete an object by clicking on the action menu button.
![](/images/image012.jpg) ![](/images/image012.jpg)
1. The following figure is an example of a fully annotated frame with separate shapes. 1. The following figure is an example of a fully annotated frame with separate shapes.
![](/images/image013_detrac.jpg) ![](/images/image013_detrac.jpg)
Read more in the section [shape mode (advanced)](/docs/for-users/user-guide/advanced/shape-mode-advanced/). Read more in the section [shape mode (advanced)](/docs/for-users/user-guide/advanced/shape-mode-advanced/).

@ -9,61 +9,61 @@ Usage examples:
- Add/modify/delete objects for existing annotations. - Add/modify/delete objects for existing annotations.
- Edit tracks, merge several rectangles into one track. - Edit tracks, merge several rectangles into one track.
1. Like in the `Shape mode`, you need to select a `Rectangle` on the sidebar, 1. Like in the `Shape mode`, you need to select a `Rectangle` on the sidebar,
in the appearing form, select the desired `Label` and the `Drawing method`. in the appearing form, select the desired `Label` and the `Drawing method`.
![](/images/image083.jpg) ![](/images/image083.jpg)
1. Creating a track for an object (look at the selected car as an example): 1. Creating a track for an object (look at the selected car as an example):
- Create a `Rectangle` in `Track mode` by clicking on `Track`. - Create a `Rectangle` in `Track mode` by clicking on `Track`.
![](/images/image014.jpg) ![](/images/image014.jpg)
- In `Track mode` the rectangle will be automatically interpolated on the next frames. - In `Track mode` the rectangle will be automatically interpolated on the next frames.
- The cyclist starts moving on frame #2270. Let's mark the frame as a key frame. - The cyclist starts moving on frame #2270. Let's mark the frame as a key frame.
You can press `K` for that or click the `star` button (see the screenshot below). You can press `K` for that or click the `star` button (see the screenshot below).
![](/images/image016.jpg) ![](/images/image016.jpg)
- If the object starts to change its position, you need to modify the rectangle where it happens. - If the object starts to change its position, you need to modify the rectangle where it happens.
It isn't necessary to change the rectangle on each frame, simply update several keyframes It isn't necessary to change the rectangle on each frame, simply update several keyframes
and the frames between them will be interpolated automatically. and the frames between them will be interpolated automatically.
- Let's jump 30 frames forward and adjust the boundaries of the object. See an example below: - Let's jump 30 frames forward and adjust the boundaries of the object. See an example below:
![](/images/image017_detrac.jpg) ![](/images/image017_detrac.jpg)
- After that the rectangle of the object will be changed automatically on frames 2270 to 2300: - After that the rectangle of the object will be changed automatically on frames 2270 to 2300:
![](/images/gif019_detrac.gif) ![](/images/gif019_detrac.gif)
1. When the annotated object disappears or becomes too small, you need to 1. When the annotated object disappears or becomes too small, you need to
finish the track. You have to choose `Outside Property`, shortcut `O`. finish the track. You have to choose `Outside Property`, shortcut `O`.
![](/images/image019.jpg) ![](/images/image019.jpg)
1. If the object isn't visible on a couple of frames and then appears again, 1. If the object isn't visible on a couple of frames and then appears again,
you can use the `Merge` feature to merge several individual tracks you can use the `Merge` feature to merge several individual tracks
into one. into one.
![](/images/image020.jpg) ![](/images/image020.jpg)
- Create tracks for moments when the cyclist is visible: - Create tracks for moments when the cyclist is visible:
![](/images/gif001_detrac.gif) ![](/images/gif001_detrac.gif)
- Click `Merge` button or press key `M` and click on any rectangle of the first track - Click `Merge` button or press key `M` and click on any rectangle of the first track
and on any rectangle of the second track and so on: and on any rectangle of the second track and so on:
![](/images/image162_detrac.jpg) ![](/images/image162_detrac.jpg)
- Click `Merge` button or press `M` to apply changes. - Click `Merge` button or press `M` to apply changes.
![](/images/image020.jpg) ![](/images/image020.jpg)
- The final annotated sequence of frames in `Interpolation` mode can - The final annotated sequence of frames in `Interpolation` mode can
look like the clip below: look like the clip below:
![](/images/gif003_detrac.gif) ![](/images/gif003_detrac.gif)
Read more in the section [track mode (advanced)](/docs/for-users/user-guide/advanced/track-mode-advanced/). Read more in the section [track mode (advanced)](/docs/for-users/user-guide/advanced/track-mode-advanced/).

@ -8,7 +8,7 @@ weight: 15
|-- |-- | |-- |-- |
|![](/images/image148.jpg)|`Cursor` (`Esc`)- a basic annotation pedacting tool. | |![](/images/image148.jpg)|`Cursor` (`Esc`)- a basic annotation pedacting tool. |
|![](/images/image149.jpg)|`Move the image`- a tool for moving around the image without<br/> the possibility of editing.| |![](/images/image149.jpg)|`Move the image`- a tool for moving around the image without<br/> the possibility of editing.|
|![](/images/image102.jpg)|`Rotate`- two buttons to rotate the current frame<br/> a clockwise (`Ctrl+R`) and anticlockwise (`Ctrl+Shift+R`).<br/> You can enable `Rotate all images` in the settings to rotate all the images in the job |![](/images/image102.jpg)|`Rotate`- two buttons to rotate the current frame<br/> a clockwise (`Ctrl+R`) and anticlockwise (`Ctrl+Shift+R`).<br/> You can enable `Rotate all images` in the settings to rotate all the images in the job|
--- ---
@ -23,15 +23,15 @@ weight: 15
**Shapes block** - contains all the tools for creating shapes. **Shapes block** - contains all the tools for creating shapes.
|Icon |Description |Links to section | |Icon |Description |Links to section |
|-- |-- |-- | |-- |-- |-- |
|![](/images/image189.jpg)|`AI Tools` |[AI Tools](/docs/for-users/user-guide/advanced/ai-tools/)| |![](/images/image189.jpg)|`AI Tools`|[AI Tools](/docs/for-users/user-guide/advanced/ai-tools/)|
|![](/images/image201.jpg)|`OpenCV` |[OpenCV](/docs/for-users/user-guide/advanced/opencv-tools/)| |![](/images/image201.jpg)|`OpenCV`|[OpenCV](/docs/for-users/user-guide/advanced/opencv-tools/)|
|![](/images/image167.jpg)|`Rectangle`|[Shape mode](/docs/for-users/user-guide/basics/shape-mode-basics/); [Track mode](/docs/for-users/user-guide/basics/track-mode-basics/);<br/> [Drawing by 4 points](/docs/for-users/user-guide/advanced/annotation-with-rectangle-by-4-points/)| |![](/images/image167.jpg)|`Rectangle`|[Shape mode](/docs/for-users/user-guide/basics/shape-mode-basics/); [Track mode](/docs/for-users/user-guide/basics/track-mode-basics/);<br/> [Drawing by 4 points](/docs/for-users/user-guide/advanced/annotation-with-rectangle-by-4-points/)|
|![](/images/image168.jpg)|`Polygon` |[Annotation with polygons](/docs/for-users/user-guide/advanced/annotation-with-polygons/); [Track mode with polygons](/docs/for-users/user-guide/advanced/annotation-with-polygons/track-mode-with-polygons/) | |![](/images/image168.jpg)|`Polygon`|[Annotation with polygons](/docs/for-users/user-guide/advanced/annotation-with-polygons/); [Track mode with polygons](/docs/for-users/user-guide/advanced/annotation-with-polygons/track-mode-with-polygons/)|
|![](/images/image169.jpg)|`Polyline` |[Annotation with polylines](/docs/for-users/user-guide/advanced/annotation-with-polylines/)| |![](/images/image169.jpg)|`Polyline`|[Annotation with polylines](/docs/for-users/user-guide/advanced/annotation-with-polylines/)|
|![](/images/image170.jpg)|`Points` |[Annotation with points](/docs/for-users/user-guide/advanced/annotation-with-points/) | |![](/images/image170.jpg)|`Points`|[Annotation with points](/docs/for-users/user-guide/advanced/annotation-with-points/)|
|![](/images/image176.jpg)|`Cuboid` |[Annotation with cuboids](/docs/for-users/user-guide/advanced/annotation-with-cuboids/) | |![](/images/image176.jpg)|`Cuboid`|[Annotation with cuboids](/docs/for-users/user-guide/advanced/annotation-with-cuboids/)|
|![](/images/image171.jpg)|`Tag` |[Annotation with tags](/docs/for-users/user-guide/advanced/annotation-with-tags/) | |![](/images/image171.jpg)|`Tag`|[Annotation with tags](/docs/for-users/user-guide/advanced/annotation-with-tags/)|
|![](/images/image195.jpg)|`Open an issue` |[Review](/docs/for-users/user-guide/advanced/review/) (available only in review mode) | |![](/images/image195.jpg)|`Open an issue`|[Review](/docs/for-users/user-guide/advanced/review/) (available only in review mode)|
--- ---

@ -4,216 +4,216 @@ linkTitle: "Creating an annotation task"
weight: 2 weight: 2
--- ---
1. Create an annotation task pressing `Create new task` button on the tasks page or on the project page. 1. Create an annotation task pressing `Create new task` button on the tasks page or on the project page.
![](/images/image004.jpg) ![](/images/image004.jpg)
1. Specify parameters of the task: 1. Specify parameters of the task:
#### Basic configuration #### Basic configuration
**Name** The name of the task to be created. **Name** The name of the task to be created.
![](/images/image005.jpg) ![](/images/image005.jpg)
**Projects** The project that this task will be related with. **Projects** The project that this task will be related with.
![](/images/image193.jpg) ![](/images/image193.jpg)
**Labels**. There are two ways of working with labels (available only if the task is not related to the project): **Labels**. There are two ways of working with labels (available only if the task is not related to the project):
- The `Constructor` is a simple way to add and adjust labels. To add a new label click the `Add label` button. - The `Constructor` is a simple way to add and adjust labels. To add a new label click the `Add label` button.
![](/images/image123.jpg) ![](/images/image123.jpg)
You can set a name of the label in the `Label name` field and choose a color for each label. You can set a name of the label in the `Label name` field and choose a color for each label.
![](/images/image124.jpg) ![](/images/image124.jpg)
If necessary you can add an attribute and set its properties by clicking `Add an attribute`: If necessary you can add an attribute and set its properties by clicking `Add an attribute`:
![](/images/image125.jpg) ![](/images/image125.jpg)
The following actions are available here: The following actions are available here:
1. Set the attributes name. 1. Set the attributes name.
1. Choose the way to display the attribute: 1. Choose the way to display the attribute:
- Select — drop down list of value - Select — drop down list of value
- Radio — is used when it is necessary to choose just one option out of few suggested. - Radio — is used when it is necessary to choose just one option out of few suggested.
- Checkbox — is used when it is necessary to choose any number of options out of suggested. - Checkbox — is used when it is necessary to choose any number of options out of suggested.
- Text — is used when an attribute is entered as a text. - Text — is used when an attribute is entered as a text.
- Number — is used when an attribute is entered as a number. - Number — is used when an attribute is entered as a number.
1. Set values for the attribute. The values could be separated by pressing `Enter`. 1. Set values for the attribute. The values could be separated by pressing `Enter`.
The entered value is displayed as a separate element which could be deleted The entered value is displayed as a separate element which could be deleted
by pressing `Backspace` or clicking the close button (x). by pressing `Backspace` or clicking the close button (x).
If the specified way of displaying the attribute is Text or Number, If the specified way of displaying the attribute is Text or Number,
the entered value will be displayed as text by default (e.g. you can specify the text format). the entered value will be displayed as text by default (e.g. you can specify the text format).
1. Checkbox `Mutable` determines if an attribute would be changed frame to frame. 1. Checkbox `Mutable` determines if an attribute would be changed frame to frame.
1. You can delete the attribute by clicking the close button (x). 1. You can delete the attribute by clicking the close button (x).
Click the `Continue` button to add more labels. Click the `Continue` button to add more labels.
If you need to cancel adding a label - press the `Cancel` button. If you need to cancel adding a label - press the `Cancel` button.
After all the necessary labels are added click the `Done` button. After all the necessary labels are added click the `Done` button.
After clicking `Done` the added labels would be displayed as separate elements of different colour. After clicking `Done` the added labels would be displayed as separate elements of different colour.
You can edit or delete labels by clicking `Update attributes` or `Delete label`. You can edit or delete labels by clicking `Update attributes` or `Delete label`.
- The `Raw` is a way of working with labels for an advanced user. - The `Raw` is a way of working with labels for an advanced user.
Raw presents label data in _json_ format with an option of editing and copying labels as a text. Raw presents label data in _json_ format with an option of editing and copying labels as a text.
The `Done` button applies the changes and the `Reset` button cancels the changes. The `Done` button applies the changes and the `Reset` button cancels the changes.
![](/images/image126.jpg) ![](/images/image126.jpg)
In `Raw` and `Constructor` mode, you can press the `Copy` button to copy the list of labels. In `Raw` and `Constructor` mode, you can press the `Copy` button to copy the list of labels.
**Select files**. Press tab `My computer` to choose some files for annotation from your PC. **Select files**. Press tab `My computer` to choose some files for annotation from your PC.
If you select tab `Connected file share` you can choose files for annotation from your network. If you select tab `Connected file share` you can choose files for annotation from your network.
If you select ` Remote source` , you'll see a field where you can enter a list of URLs (one URL per line). If you select ` Remote source` , you'll see a field where you can enter a list of URLs (one URL per line).
If you upload a video or dataset with images and select `Use cache` option, you can attach a `manifest.jsonl` file. If you upload a video or dataset with images and select `Use cache` option, you can attach a `manifest.jsonl` file.
You can find how to prepare it [here](/docs/for-developers/dataset_manifest/). You can find how to prepare it [here](/docs/for-developers/dataset_manifest/).
![](/images/image127.jpg) ![](/images/image127.jpg)
#### Advanced configuration #### Advanced configuration
![](/images/image128_use_cache.jpg) ![](/images/image128_use_cache.jpg)
**Use zip chunks**. Force to use zip chunks as compressed data. Actual for videos only. **Use zip chunks**. Force to use zip chunks as compressed data. Actual for videos only.
**Use cache**. Defines how to work with data. Select the checkbox to switch to the "on-the-fly data processing", **Use cache**. Defines how to work with data. Select the checkbox to switch to the "on-the-fly data processing",
which will reduce the task creation time (by preparing chunks when requests are received) which will reduce the task creation time (by preparing chunks when requests are received)
and store data in a cache of limited size with a policy of evicting less popular items. and store data in a cache of limited size with a policy of evicting less popular items.
See more [here](/docs/for-developers/data_on_fly/). See more [here](/docs/for-developers/data_on_fly/).
**Image Quality**. Use this option to specify quality of uploaded images. **Image Quality**. Use this option to specify quality of uploaded images.
The option helps to load high resolution datasets faster. The option helps to load high resolution datasets faster.
Use the value from `5` (almost completely compressed images) to `100` (not compressed images). Use the value from `5` (almost completely compressed images) to `100` (not compressed images).
**Overlap Size**. Use this option to make overlapped segments. **Overlap Size**. Use this option to make overlapped segments.
The option makes tracks continuous from one segment into another. The option makes tracks continuous from one segment into another.
Use it for interpolation mode. There are several options for using the parameter: Use it for interpolation mode. There are several options for using the parameter:
- For an interpolation task (video sequence). - For an interpolation task (video sequence).
If you annotate a bounding box on two adjacent segments they will be merged into one bounding box. If you annotate a bounding box on two adjacent segments they will be merged into one bounding box.
If overlap equals to zero or annotation is poor on adjacent segments inside a dumped annotation file, If overlap equals to zero or annotation is poor on adjacent segments inside a dumped annotation file,
you will have several tracks, one for each segment, which corresponds to the object. you will have several tracks, one for each segment, which corresponds to the object.
- For an annotation task (independent images). - For an annotation task (independent images).
If an object exists on overlapped segments, the overlap is greater than zero If an object exists on overlapped segments, the overlap is greater than zero
and the annotation is good enough on adjacent segments, it will be automatically merged into one object. and the annotation is good enough on adjacent segments, it will be automatically merged into one object.
If overlap equals to zero or annotation is poor on adjacent segments inside a dumped annotation file, If overlap equals to zero or annotation is poor on adjacent segments inside a dumped annotation file,
you will have several bounding boxes for the same object. you will have several bounding boxes for the same object.
Thus, you annotate an object on the first segment. Thus, you annotate an object on the first segment.
You annotate the same object on second segment, and if you do it right, you You annotate the same object on second segment, and if you do it right, you
will have one track inside the annotations. will have one track inside the annotations.
If annotations on different segments (on overlapped frames) If annotations on different segments (on overlapped frames)
are very different, you will have two shapes for the same object. are very different, you will have two shapes for the same object.
This functionality works only for bounding boxes. This functionality works only for bounding boxes.
Polygons, polylines, points don't support automatic merge on overlapped segments Polygons, polylines, points don't support automatic merge on overlapped segments
even the overlap parameter isn't zero and match between corresponding shapes on adjacent segments is perfect. even the overlap parameter isn't zero and match between corresponding shapes on adjacent segments is perfect.
**Segment size**. Use this option to divide a huge dataset into a few smaller segments. **Segment size**. Use this option to divide a huge dataset into a few smaller segments.
For example, one job cannot be annotated by several labelers (it isn't supported). For example, one job cannot be annotated by several labelers (it isn't supported).
Thus using "segment size" you can create several jobs for the same annotation task. Thus using "segment size" you can create several jobs for the same annotation task.
It will help you to parallel data annotation process. It will help you to parallel data annotation process.
**Start frame**. Frame from which video in task begins. **Start frame**. Frame from which video in task begins.
**Stop frame**. Frame on which video in task ends. **Stop frame**. Frame on which video in task ends.
**Frame Step**. Use this option to filter video frames. **Frame Step**. Use this option to filter video frames.
For example, enter `25` to leave every twenty fifth frame in the video or every twenty fifth image. For example, enter `25` to leave every twenty fifth frame in the video or every twenty fifth image.
**Chunk size**. Defines a number of frames to be packed in a chunk when send from client to server. **Chunk size**. Defines a number of frames to be packed in a chunk when send from client to server.
Server defines automatically if empty. Server defines automatically if empty.
Recommended values: Recommended values:
- 1080p or less: 36 - 1080p or less: 36
- 2k or less: 8 - 16 - 2k or less: 8 - 16
- 4k or less: 4 - 8 - 4k or less: 4 - 8
- More: 1 - 4 - More: 1 - 4
**Dataset Repository**. URL link of the repository optionally specifies the path to the repository for storage **Dataset Repository**. URL link of the repository optionally specifies the path to the repository for storage
(`default: annotation / <dump_file_name> .zip`). (`default: annotation / <dump_file_name> .zip`).
The .zip and .xml file extension of annotation are supported. The .zip and .xml file extension of annotation are supported.
Field format: `URL [PATH]` example: `https://github.com/project/repos.git [1/2/3/4/annotation.xml]` Field format: `URL [PATH]` example: `https://github.com/project/repos.git [1/2/3/4/annotation.xml]`
Supported URL formats : Supported URL formats :
- `https://github.com/project/repos[.git]` - `https://github.com/project/repos[.git]`
- `github.com/project/repos[.git]` - `github.com/project/repos[.git]`
- `git@github.com:project/repos[.git]` - `git@github.com:project/repos[.git]`
The task will be highlighted in red after creation if annotation isn't synchronized with the repository. The task will be highlighted in red after creation if annotation isn't synchronized with the repository.
**Use LFS**. If the annotation file is large, you can create a repository with **Use LFS**. If the annotation file is large, you can create a repository with
[LFS](https://git-lfs.github.com/) support. [LFS](https://git-lfs.github.com/) support.
**Issue tracker**. Specify full issue tracker's URL if it's necessary. **Issue tracker**. Specify full issue tracker's URL if it's necessary.
Push `Submit` button and it will be added into the list of annotation tasks. Push `Submit` button and it will be added into the list of annotation tasks.
Then, the created task will be displayed on a tasks page: Then, the created task will be displayed on a tasks page:
![](/images/image006_detrac.jpg) ![](/images/image006_detrac.jpg)
1. The tasks page contains elements and each of them relates to a separate task. They are sorted in creation order. 1. The tasks page contains elements and each of them relates to a separate task. They are sorted in creation order.
Each element contains: task name, preview, progress bar, button `Open`, and menu `Actions`. Each element contains: task name, preview, progress bar, button `Open`, and menu `Actions`.
Each button is responsible for a in menu `Actions` specific function: Each button is responsible for a in menu `Actions` specific function:
- `Dump Annotation` and `Export as a dataset` — download annotations or - `Dump Annotation` and `Export as a dataset` — download annotations or
annotations and images in a specific format. The following formats are available: annotations and images in a specific format. The following formats are available:
- [CVAT for video](/docs/for-developers/xml_format/#interpolation) - [CVAT for video](/docs/for-developers/xml_format/#interpolation)
is highlighted if a task has the interpolation mode. is highlighted if a task has the interpolation mode.
- [CVAT for images](/docs/for-developers/xml_format/#annotation) - [CVAT for images](/docs/for-developers/xml_format/#annotation)
is highlighted if a task has the annotation mode. is highlighted if a task has the annotation mode.
- [PASCAL VOC](http://host.robots.ox.ac.uk/pascal/VOC/) - [PASCAL VOC](http://host.robots.ox.ac.uk/pascal/VOC/)
- [(VOC) Segmentation mask](http://host.robots.ox.ac.uk/pascal/VOC/) — - [(VOC) Segmentation mask](http://host.robots.ox.ac.uk/pascal/VOC/) —
archive contains class and instance masks for each frame in the png archive contains class and instance masks for each frame in the png
format and a text file with the value of each color. format and a text file with the value of each color.
- [YOLO](https://pjreddie.com/darknet/yolo/) - [YOLO](https://pjreddie.com/darknet/yolo/)
- [COCO](http://cocodataset.org/#format-data) - [COCO](http://cocodataset.org/#format-data)
- [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord) - [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord)
- [MOT](https://motchallenge.net/) - [MOT](https://motchallenge.net/)
- [LabelMe 3.0](http://labelme.csail.mit.edu/Release3.0/) - [LabelMe 3.0](http://labelme.csail.mit.edu/Release3.0/)
- [Datumaro](https://github.com/openvinotoolkit/cvat/tree/develop/cvat/apps/dataset_manager/formats/datumaro) - [Datumaro](https://github.com/openvinotoolkit/cvat/tree/develop/cvat/apps/dataset_manager/formats/datumaro)
- `Upload annotation` is available in the same formats as in `Dump annotation`. - `Upload annotation` is available in the same formats as in `Dump annotation`.
- [CVAT](/docs/for-developers/xml_format/) accepts both video and image sub-formats. - [CVAT](/docs/for-developers/xml_format/) accepts both video and image sub-formats.
- `Automatic Annotation` — automatic annotation with OpenVINO toolkit. - `Automatic Annotation` — automatic annotation with OpenVINO toolkit.
Presence depends on how you build CVAT instance. Presence depends on how you build CVAT instance.
- `Delete` — delete task. - `Delete` — delete task.
Push `Open` button to go to task details. Push `Open` button to go to task details.
1. Task details is a task page which contains a preview, a progress bar 1. Task details is a task page which contains a preview, a progress bar
and the details of the task (specified when the task was created) and the jobs section. and the details of the task (specified when the task was created) and the jobs section.
![](/images/image131_detrac.jpg) ![](/images/image131_detrac.jpg)
- The next actions are available on this page: - The next actions are available on this page:
1. Change the tasks title. 1. Change the tasks title.
1. Open `Actions` menu. 1. Open `Actions` menu.
1. Change issue tracker or open issue tracker if it is specified. 1. Change issue tracker or open issue tracker if it is specified.
1. Change labels (available only if the task is not related to the project). 1. Change labels (available only if the task is not related to the project).
You can add new labels or add attributes for the existing labels in the Raw mode or the Constructor mode. You can add new labels or add attributes for the existing labels in the Raw mode or the Constructor mode.
By clicking `Copy` you will copy the labels to the clipboard. By clicking `Copy` you will copy the labels to the clipboard.
1. Assigned to — is used to assign a task to a person. Start typing an assignees name and/or 1. Assigned to — is used to assign a task to a person. Start typing an assignees name and/or
choose the right person out of the dropdown list. choose the right person out of the dropdown list.
- `Jobs` — is a list of all jobs for a particular task. Here you can find the next data: - `Jobs` — is a list of all jobs for a particular task. Here you can find the next data:
- Jobs name with a hyperlink to it. - Jobs name with a hyperlink to it.
- Frames — the frame interval. - Frames — the frame interval.
- A status of the job. The status is specified by the user in the menu inside the job. - A status of the job. The status is specified by the user in the menu inside the job.
There are three types of status: annotation, validation or completed. There are three types of status: annotation, validation or completed.
The status of the job is changes the progress bar of the task. The status of the job is changes the progress bar of the task.
- Started on — start date of this job. - Started on — start date of this job.
- Duration — is the amount of time the job is being worked. - Duration — is the amount of time the job is being worked.
- Assignee is the user who is working on the job. - Assignee is the user who is working on the job.
You can start typing an assignees name and/or choose the right person out of the dropdown list. You can start typing an assignees name and/or choose the right person out of the dropdown list.
- Reviewer a user assigned to carry out the review, read more in the [review](/docs/for-users/user-guide/advanced/review/) section. - Reviewer a user assigned to carry out the review, read more in the [review](/docs/for-users/user-guide/advanced/review/) section.
- `Copy`. By clicking `Copy` you will copy the job list to the clipboard. - `Copy`. By clicking `Copy` you will copy the job list to the clipboard.
The job list contains direct links to jobs. The job list contains direct links to jobs.
You can filter or sort jobs by status, as well as by assigner or reviewer. You can filter or sort jobs by status, as well as by assigner or reviewer.
1. Follow a link inside `Jobs` section to start annotation process. 1. Follow a link inside `Jobs` section to start annotation process.
In some cases, you can have several links. It depends on size of your In some cases, you can have several links. It depends on size of your
task and `Overlap Size` and `Segment Size` parameters. To improve task and `Overlap Size` and `Segment Size` parameters. To improve
UX, only the first chunk of several frames will be loaded and you will be able UX, only the first chunk of several frames will be loaded and you will be able
to annotate first images. Other frames will be loaded in background. to annotate first images. Other frames will be loaded in background.
![](/images/image007_detrac.jpg) ![](/images/image007_detrac.jpg)

@ -3,29 +3,30 @@ title: "Downloading annotations"
linkTitle: "Downloading annotations" linkTitle: "Downloading annotations"
weight: 9 weight: 9
--- ---
1. To download the latest annotations, you have to save all changes first.
click the `Save` button. There is a `Ctrl+S` shortcut to save annotations quickly.
1. After that, сlick the `Menu` button.
1. Press the `Dump Annotation` button.
![](/images/image028.jpg) 1. To download the latest annotations, you have to save all changes first.
click the `Save` button. There is a `Ctrl+S` shortcut to save annotations quickly.
1. After that, сlick the `Menu` button.
1. Press the `Dump Annotation` button.
1. Choose format dump annotation file. Dump annotation are available in several formats: ![](/images/image028.jpg)
- [CVAT for video](/docs/for-developers/xml_format/#interpolation) 1. Choose format dump annotation file. Dump annotation are available in several formats:
is highlighted if a task has the interpolation mode.
- [CVAT for images](/docs/for-developers/xml_format/#annotation)
is highlighted if a task has the annotation mode.
![](/images/image029.jpg 'Example XML format') - [CVAT for video](/docs/for-developers/xml_format/#interpolation)
is highlighted if a task has the interpolation mode.
- [CVAT for images](/docs/for-developers/xml_format/#annotation)
is highlighted if a task has the annotation mode.
- [PASCAL VOC](http://host.robots.ox.ac.uk/pascal/VOC/) ![](/images/image029.jpg 'Example XML format')
- [(VOC) Segmentation mask](http://host.robots.ox.ac.uk/pascal/VOC/) —
archive contains class and instance masks for each frame in the png - [PASCAL VOC](http://host.robots.ox.ac.uk/pascal/VOC/)
format and a text file with the value of each color. - [(VOC) Segmentation mask](http://host.robots.ox.ac.uk/pascal/VOC/) —
- [YOLO](https://pjreddie.com/darknet/yolo/) archive contains class and instance masks for each frame in the png
- [COCO](http://cocodataset.org/#format-data) format and a text file with the value of each color.
- [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord) - [YOLO](https://pjreddie.com/darknet/yolo/)
- [MOT](https://motchallenge.net/) - [COCO](http://cocodataset.org/#format-data)
- [LabelMe 3.0](http://labelme.csail.mit.edu/Release3.0/) - [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord)
- [Datumaro](https://github.com/openvinotoolkit/cvat/tree/develop/cvat/apps/dataset_manager/formats/datumaro) - [MOT](https://motchallenge.net/)
- [LabelMe 3.0](http://labelme.csail.mit.edu/Release3.0/)
- [Datumaro](https://github.com/openvinotoolkit/cvat/tree/develop/cvat/apps/dataset_manager/formats/datumaro)

@ -36,7 +36,8 @@ frame. The following figure is an example of how the list might look like:
**Objects** on the side bar **Objects** on the side bar
The type of a shape can be changed by selecting **Label** property. For instance, it can look like shown on the figure below: The type of a shape can be changed by selecting **Label** property.
For instance, it can look like shown on the figure below:
![](/images/image050.jpg) ![](/images/image050.jpg)
@ -48,7 +49,8 @@ The action menu calls up the button:
The action menu contains: The action menu contains:
- `Create object URL` - puts a link to an object on the clipboard. After you open the link, this object will be filtered. - `Create object URL` - puts a link to an object on the clipboard.
After you open the link, this object will be filtered.
- `Make a copy`- copies an object. The keyboard shortcut is `Ctrl + C` `Ctrl + V`. - `Make a copy`- copies an object. The keyboard shortcut is `Ctrl + C` `Ctrl + V`.
- `Propagate` - Сopies the form to several frames, - `Propagate` - Сopies the form to several frames,
invokes a dialog box in which you can specify the number of copies invokes a dialog box in which you can specify the number of copies
@ -99,8 +101,10 @@ this way you will change the label color for all jobs in the task.
**Fast label change** **Fast label change**
You can change the label of an object using hot keys. In order to do it, you need to assign a number (from 0 to 9) to labels. By default numbers 1,2...0 are assigned to the first ten labels. You can change the label of an object using hot keys.
To assign a number, click on the button placed at the right of a label name on the sidebar. In order to do it, you need to assign a number (from 0 to 9) to labels.
By default numbers 1,2...0 are assigned to the first ten labels.
To assign a number, click on the button placed at the right of a label name on the sidebar.
![](/images/image210.jpg) ![](/images/image210.jpg)

@ -3,14 +3,17 @@ title: "Projects"
linkTitle: "Projects" linkTitle: "Projects"
weight: 4 weight: 4
--- ---
At CVAT, you can create a project containing tasks of the same type. All tasks related to the project will inherit a list of labels.
At CVAT, you can create a project containing tasks of the same type.
All tasks related to the project will inherit a list of labels.
To create a project, go to the projects section by clicking on the `Projects` item in the top menu.  To create a project, go to the projects section by clicking on the `Projects` item in the top menu. 
On the projects page, you can see a list of projects, use a search, or create a new project by clicking `Create New Project`. On the projects page, you can see a list of projects, use a search, or create a new project by clicking `Create New Project`.
![](/images/image190.jpg) ![](/images/image190.jpg)
You can change: the name of the project, the list of labels (which will be used for tasks created as parts of this project) and a link to the issue. You can change: the name of the project, the list of labels
(which will be used for tasks created as parts of this project) and a link to the issue.
![](/images/image191.jpg) ![](/images/image191.jpg)
@ -26,7 +29,8 @@ Here you can do the following:
1. Change labels. 1. Change labels.
You can add new labels or add attributes for the existing labels in the Raw mode or the Constructor mode.  You can add new labels or add attributes for the existing labels in the Raw mode or the Constructor mode. 
You can also change the color for different labels. By clicking `Copy` you can copy the labels to the clipboard. You can also change the color for different labels. By clicking `Copy` you can copy the labels to the clipboard.
1. Assigned to — is used to assign a project to a person. Start typing an assignee's name and/or choose the right person out of the dropdown list. 1. Assigned to — is used to assign a project to a person.
 Start typing an assignee's name and/or choose the right person out of the dropdown list.
1. `Tasks` — is a list of all tasks for a particular project. 1. `Tasks` — is a list of all tasks for a particular project.
You can remove the project and all related tasks through the Action menu. You can remove the project and all related tasks through the Action menu.

@ -39,4 +39,5 @@ In tab `Workspace` you can:
- `Attribute annotation mode (AAM) zoom margin` input box — defines margins (in px) - `Attribute annotation mode (AAM) zoom margin` input box — defines margins (in px)
for shape in the attribute annotation mode. for shape in the attribute annotation mode.
- Click `Save` to save settings (settings will be saved on the server and will not change after the page is refreshed). Click `Cancel` or press `F2` to return to the annotation. - Click `Save` to save settings (settings will be saved on the server and will not change after the page is refreshed).
Click `Cancel` or press `F2` to return to the annotation.

@ -3,19 +3,20 @@ title: "Task synchronization with a repository"
linkTitle: "Task synchronization" linkTitle: "Task synchronization"
weight: 10 weight: 10
--- ---
1. At the end of the annotation process, a task is synchronized by clicking
` Synchronize` on the task page. Notice: this feature
works only if a git repository was specified when the task was created.
![](/images/image106.jpg) 1. At the end of the annotation process, a task is synchronized by clicking
`Synchronize` on the task page. Notice: this feature
works only if a git repository was specified when the task was created.
1. After synchronization the button `Sync` is highlighted in green. The ![](/images/image106.jpg)
annotation is now in the repository in a temporary branch.
![](/images/image109.jpg) 1. After synchronization the button `Sync` is highlighted in green. The
annotation is now in the repository in a temporary branch.
1. The next step is to go to the repository and manually create a pull request to the main branch. ![](/images/image109.jpg)
1. After confirming the PR, when the annotation is saved in the main branch, the color of the task changes to blue. 1. The next step is to go to the repository and manually create a pull request to the main branch.
![](/images/image110.jpg) 1. After confirming the PR, when the annotation is saved in the main branch, the color of the task changes to blue.
![](/images/image110.jpg)

@ -55,11 +55,14 @@ Go to the next/previous frame with a predefined step. Shortcuts:
![](/images/image037.jpg) ![](/images/image037.jpg)
The button to go to the next / previous frame has the customization possibility. To customize, right-click on the button and select one of three options: The button to go to the next / previous frame has the customization possibility.
To customize, right-click on the button and select one of three options:
1. The default option - go to the next / previous frame (the step is 1 frame). 1. The default option - go to the next / previous frame (the step is 1 frame).
2. Go to the next / previous frame that has any objects (in particular filtered). Read the [filter](/docs/for-users/user-guide/advanced/filter/) section to know the details how to use it. 2. Go to the next / previous frame that has any objects (in particular filtered).
3. Go to the next / previous frame without annotation at all. Use this option in cases when you need to find missed frames quickly. Read the [filter](/docs/for-users/user-guide/advanced/filter/) section to know the details how to use it.
3. Go to the next / previous frame without annotation at all.
Use this option in cases when you need to find missed frames quickly.
Shortcuts: `D` - previous, `F` - next. Shortcuts: `D` - previous, `F` - next.

@ -9,7 +9,8 @@ If you have any problems with a git repository cloning inside the CVAT:
docker exec -it cvat bash -ic 'ls .ssh' docker exec -it cvat bash -ic 'ls .ssh'
``` ```
- If you need a proxy for connecting to the Internet, specify the socks_proxy variable before build the container. For example: - If you need a proxy for connecting to the Internet, specify the socks_proxy variable before build the container.
For example:
```bash ```bash
socks_proxy=proxy-example.com:1080 docker-compose build socks_proxy=proxy-example.com:1080 docker-compose build

Loading…
Cancel
Save