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
run: |
URL="https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files"
PR_FILES=$(curl -s -X GET -G $URL | jq -r '.[] | select(.status != "removed") | .filename')
for files in $PR_FILES; do
extension="${files##*.}"
if [[ $extension == 'md' ]]; then
changed_files_remark+=" ${files}"
fi
done
npm ci
mkdir -p remark_report
if [[ ! -z ${changed_files_remark} ]]; then
npm ci
npm install remark-cli@9.0.0 vfile-reporter-json@2.0.2
mkdir -p remark_report
echo "Remark version: "`npx remark --version`
echo "The files will be checked: "`echo ${changed_files_remark}`
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"
echo "Remark version: "`npx remark --version`
npx remark --quiet --report json --no-stdout . 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
- name: Upload artifacts

@ -1,6 +1,8 @@
exports.settings = { bullet: '*', paddedTable: false };
exports.plugins = [
'remark-frontmatter',
'remark-gfm',
'remark-preset-lint-recommended',
'remark-preset-lint-consistent',
['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/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.5.0] - Unreleased
## \[1.5.0] - Unreleased
### Added
@ -17,11 +17,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Deprecated
-
- TBD
### Removed
-
- TBD
### Fixed
@ -29,9 +29,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Security
-
- TBD
## [1.4.0] - 2021-05-18
## \[1.4.0] - 2021-05-18
### 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>)
- 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
@ -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>)
- [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>)
- 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>)
- [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>
@ -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>)
- 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
@ -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>)
- 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
@ -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>)
- 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
- 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 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>)
- 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>)
- 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] Merging of datasets with different labels (<https://github.com/opencv/cvat/pull/2098>)
- \[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>)
- 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.
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>)
- 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>)
- 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>)
- 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>)
@ -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>)
- 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
- 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] Dataset statistics (<https://github.com/opencv/cvat/pull/1668>)
- \[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>)
- 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>)
- 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>)
@ -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>)
- 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
@ -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 CVAT Dumper/Loader (<https://github.com/opencv/cvat/pull/1192>)
- 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>)
- 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>)
@ -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>)
- 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
@ -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>)
- 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>)
- 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
like image mean and std (https://github.com/opencv/cvat/pull/1734)
- 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
like image mean and std (<https://github.com/opencv/cvat/pull/1734>)
- Add option to upload annotations upon task creation on CLI
- 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>)
@ -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>)
- 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>)
- [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 image copying when exporting datasets, if possible (<https://github.com/opencv/cvat/pull/1799>)
- \[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 image copying when exporting datasets, if possible (<https://github.com/opencv/cvat/pull/1799>)
### 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>)
- 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>)
- 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 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>)
- 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
@ -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>)
## [1.0.0] - 2020-05-29
## \[1.0.0] - 2020-05-29
### 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 debug error message on incorrect XPath (<https://github.com/opencv/cvat/pull/1352>)
- 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>)
- 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>)
@ -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>)
## [1.0.0-beta.2] - 2020-04-30
## \[1.0.0-beta.2] - 2020-04-30
### Added
@ -462,13 +462,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Removed
- Annotation convertation utils, currently supported natively via Datumaro framework
(https://github.com/opencv/cvat/pull/1477)
(<https://github.com/opencv/cvat/pull/1477>)
### 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
(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>)
- 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>)
@ -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>)
- 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>)
- 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>)
- 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)
- Open task button doesn't work (https://github.com/opencv/cvat/pull/1474)
- 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>)
## [1.0.0-beta.1] - 2020-04-15
## \[1.0.0-beta.1] - 2020-04-15
### 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
- Button to reset colors settings (brightness, saturation, contrast) in the new UI
- Option to display shape text always
- 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)
- 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 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
- 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
@ -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
- Merge is allowed for points, but clicks on points conflict with frame dragging logic
- 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)
- UI fails when annotations saving occurs during drag/resize/edit (https://github.com/opencv/cvat/pull/1383)
- 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>)
- 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)
- 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)
- 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)
- Task creation from remote files (https://github.com/opencv/cvat/pull/1392)
(<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>)
- 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>)
- 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
(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)
- 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)
- Uploading annotations for tasks with multiple jobs (https://github.com/opencv/cvat/pull/1396)
(<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>)
- 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>)
- 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
- 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: delete a point from context menu (https://github.com/opencv/cvat/pull/1292)
- 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: delete a point from context menu (<https://github.com/opencv/cvat/pull/1292>)
### Fixed
- 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)
- AWS deployment (https://github.com/opencv/cvat/pull/1316)
- 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>)
- AWS deployment (<https://github.com/opencv/cvat/pull/1316>)
## [0.6.1] - 2020-03-21
## \[0.6.1] - 2020-03-21
### 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))
## [0.6.0] - 2020-03-15
## \[0.6.0] - 2020-03-15
### 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)
- 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
- 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
- Integration with Zenodo.org (DOI)
## [0.5.0] - 2019-09-12
## \[0.5.0] - 2019-09-12
### 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
- 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, ...
- 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/)
### 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
## [0.4.2] - 2019-06-03
## \[0.4.2] - 2019-06-03
### Fixed
- Fixed interaction with the server share in the auto annotation plugin
## [0.4.1] - 2019-05-14
## \[0.4.1] - 2019-05-14
### Fixed
- JavaScript syntax incompatibility with Google Chrome versions less than 72
## [0.4.0] - 2019-05-04
## \[0.4.0] - 2019-05-04
### Added
- 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)
- 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
- REST API (/api/v1/\*, /api/docs)
- 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
- 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)
## [0.3.0] - 2018-12-29
## \[0.3.0] - 2018-12-29
### 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.
- 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, ...)
- 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
- Documentation was improved
- 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)
- Text drawing outside of a frame in some cases (#202)
## [0.2.0] - 2018-09-28
## \[0.2.0] - 2018-09-28
### Added
@ -787,7 +787,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Several memory leaks
- Inconsistent extensions between filenames in an annotation file and real filenames
## [0.1.2] - 2018-08-07
## \[0.1.2] - 2018-08-07
### 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
## [0.1.1] - 2018-07-6
## \[0.1.1] - 2018-07-6
### Added
@ -816,7 +816,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- GitHub documentation
## 0.1.0 - 2018-06-29
## \[0.1.0] - 2018-06-29
### Added

@ -300,13 +300,13 @@ Good bug reports are extremely helpful - thank you!
Guidelines for bug reports:
1. **Use the GitHub issue search** &mdash; check if the issue has already been
reported.
1. **Use the GitHub issue search** &mdash; check if the issue has already been
reported.
1. **Check if the issue has been fixed** &mdash; try to reproduce it using the
latest `develop` branch in the repository.
1. **Check if the issue has been fixed** &mdash; try to reproduce it using the
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
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
project:
1. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the project, clone your fork,
and configure the remotes:
1. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the project, clone your fork,
and configure the remotes:
```bash
# Clone your fork of the repo into the current directory
git clone https://github.com/<your-username>/<repo-name>
# Navigate to the newly cloned directory
cd <repo-name>
# Assign the original repo to a remote called "upstream"
git remote add upstream https://github.com/<upstream-owner>/<repo-name>
```
```bash
# Clone your fork of the repo into the current directory
git clone https://github.com/<your-username>/<repo-name>
# Navigate to the newly cloned directory
cd <repo-name>
# Assign the original repo to a remote called "upstream"
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
git checkout <dev-branch>
git pull upstream <dev-branch>
```
```bash
git checkout <dev-branch>
git pull upstream <dev-branch>
```
1. Create a new topic branch (off the main project development branch) to
contain your feature, change, or fix:
1. Create a new topic branch (off the main project development branch) to
contain your feature, change, or fix:
```bash
git checkout -b <topic-branch-name>
```
```bash
git checkout -b <topic-branch-name>
```
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)
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)
feature to tidy up your commits before making them public.
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)
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)
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
git pull [--rebase] upstream <dev-branch>
```
```bash
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
git push origin <topic-branch-name>
```
```bash
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)
with a clear title and description.
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.
**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.

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

@ -8,10 +8,12 @@ The SSH protocol is used for an authorization.
### 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.
- Setup a repository URL and a path (which is relative for a repository) in the create task dialog.
- Annotate a task.
- Press the button "Git Repository Sync" on the dashboard.
- 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 dependency update
```
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/ )
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/>)
6. (Optional) Create values.override.yaml and override there parameters you want
7. Change postgresql password as described below
8. Add ingress to values.override.yaml(example also below)
@ -43,7 +43,7 @@ postgresql:
## How to describe ingress:
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'?
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.
Just set `postgresql.enabled` or `redis.enabled` to `false`, as described below.
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?
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?
See https://kubernetes.io/
See <https://kubernetes.io/>
## 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",
"nyc": "^15.1.0",
"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-list-item-spacing": "^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-strong-marker": "^2.0.0",
"remark-lint-unordered-list-marker-style": "^2.0.0",
"remark-preset-lint-consistent": "^3.0.0",
"remark-preset-lint-markdown-style-guide": "^3.0.0",
"remark-preset-lint-recommended": "^4.0.0",
"remark-preset-lint-consistent": "^4.0.0",
"remark-preset-lint-markdown-style-guide": "^4.0.0",
"remark-preset-lint-recommended": "^5.0.0",
"source-map-support": "^0.5.19",
"stylelint": "^13.6.1",
"stylelint-config-standard": "^20.0.0"
"stylelint-config-standard": "^20.0.0",
"vfile-reporter-json": "^2.0.2"
},
"scripts": {
"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/
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.

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

@ -12,4 +12,4 @@ boxes between key frames, automatic annotation using deep learning models,
shortcuts for most of critical actions, dashboard with a list of annotation
tasks, LDAP and basic authorization, etc..._ It was created for and used by
a professional data annotation team. UX and UI were optimized especially for
computer vision tasks developed by our team.
computer vision tasks developed by our team.

@ -2,4 +2,4 @@
title: "Advanced"
linkTitle: "Advanced"
weight: 30
---
---

@ -49,4 +49,5 @@ Detectors are used to automatically annotate one frame. Supported DL models are
![](/images/image187.jpg)
- 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.

@ -16,4 +16,4 @@ and how much work they did over any time range.
It also has an activity graph which can be modified with a number of users shown and a timeframe.
![](/images/image096.jpg)
![](/images/image096.jpg)

@ -6,4 +6,4 @@ weight: 11
It is used to annotate 3 dimensional objects such as cars, boxes, etc...
Currently the feature supports one point perspective and has the constraint
where the vertical edges are exactly parallel to the sides.
where the vertical edges are exactly parallel to the sides.

@ -28,4 +28,4 @@ The depth and perspective of the resulting cuboid can be edited.
Example:
![](/images/image182_mapillary_vistas.jpg)
![](/images/image182_mapillary_vistas.jpg)

@ -38,4 +38,4 @@ Simply drag the faces to move them independently from the rest of the cuboid.
![](/images/gif020_mapillary_vistas.gif)
You can also use cuboids in track mode, similar to rectangles in track mode ([basics](/docs/for-users/user-guide/basics/track-mode-basics/) and [advanced](/docs/for-users/user-guide/advanced/track-mode-advanced/)) or [Track mode with polygons](/docs/for-users/user-guide/advanced/annotation-with-polygons/track-mode-with-polygons/)
You can also use cuboids in track mode, similar to rectangles in track mode ([basics](/docs/for-users/user-guide/basics/track-mode-basics/) and [advanced](/docs/for-users/user-guide/advanced/track-mode-advanced/)) or [Track mode with polygons](/docs/for-users/user-guide/advanced/annotation-with-polygons/track-mode-with-polygons/)

@ -6,23 +6,24 @@ weight: 2
You can use linear interpolation for points to annotate a moving object:
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. After that select the `Track`.
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. 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,
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`,
move around keyframes, etc.
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.
You can work with this object as with an interpolated track: you can hide it using the `Outside`,
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)

@ -41,4 +41,4 @@ Below you can see results with opacity and black stroke:
![](/images/image064_mapillary_vistas.jpg)
If you need to annotate small objects, increase `Image Quality` to
`95` in `Create task` dialog for your convenience.
`95` in `Create task` dialog for your convenience.

@ -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.
- 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 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 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.
If both criteria recommend to cut the same part, algorithm works automatically,
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)

@ -13,13 +13,13 @@ 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
by dragging the mouse on the screen while holding `Shift`.
| Clicking points | Holding Shift+Dragging |
| -------------------------------------------------- | -------------------------------------------------- |
| ![](/images/gif005_detrac.gif) | ![](/images/gif006_detrac.gif) |
| Clicking points | Holding Shift+Dragging |
| ------------------------------ | ------------------------------ |
| ![](/images/gif005_detrac.gif) | ![](/images/gif006_detrac.gif) |
- 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
delete the previous point by right-clicking on it.
- Press `N` again for completing the shape.
- After creating the polygon, you can move the points or delete them by right-clicking and selecting `Delete point`
or clicking with pressed `Alt` key in the context menu.
or clicking with pressed `Alt` key in the context menu.

@ -30,4 +30,4 @@ Polygons in the track mode allow you to mark moving objects more accurately othe
![](/images/image186_detrac.jpg)
There is no need to redraw the polygon every time using `Shift+N`,
instead you can simply move the points or edit a part of the polygon by pressing `Shift+Click`.
instead you can simply move the points or edit a part of the polygon by pressing `Shift+Click`.

@ -20,4 +20,4 @@ and selecting `Delete point`. Click with pressed `Shift` will open a polyline ed
There you can create new points(by clicking or dragging) or delete part of a polygon closing
the red line on another point. Press `Esc` to cancel editing.
![](/images/image039_mapillary_vistas.jpg)
![](/images/image039_mapillary_vistas.jpg)

@ -15,4 +15,4 @@ the top, bottom, left- and right-most physical points on the object.
Drawing will be automatically completed right after clicking the fourth point.
Press `Esc` to cancel editing.
![](/images/gif016_mapillary_vistas.gif)
![](/images/gif016_mapillary_vistas.gif)

@ -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.
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.
Then click the `Actions` button and choose option `Automatic Annotation` from the dropdown menu.
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.
![](/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.
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.
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.
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.
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,
in this case using auto annotation will help you complete the task faster.
Click `Submit` to begin the automatic annotation process.
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
use this model for the tasks with similar camera angles.
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.
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.
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,
in this case using auto annotation will help you complete the task faster.
Click `Submit` to begin the automatic annotation process.
![](/images/image120.jpg)
![](/images/image120.jpg)
1. At runtime - you can see the percentage of completion.
You can cancel the automatic annotation by clicking on the `Cancel`button.
1. At runtime - you can see the percentage of completion.
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.
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).
You can set the following parameters:
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
of the `ReID` type (in this case the `Person reidentification` model).
You can set the following parameters:
- Model `Threshold` is a maximum cosine distance between objects embeddings.
- `Maximum distance` defines a maximum radius that an object can diverge between adjacent frames.
- Model `Threshold` is a maximum cosine distance between objects embeddings.
- `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.
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:
- root_directory
@ -22,12 +23,14 @@ An example of the structure:
- image_3_to_be_annotated_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)
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`.
![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 |
| `Type` | shape, track or tag | type of object |
| `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 |
| `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)|
| `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 |
| `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) |
| `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:**
@ -57,11 +57,13 @@ Some properties support two types of values that you can choose:
![](/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)
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

@ -3,7 +3,10 @@ title: "OpenCV tools"
linkTitle: "OpenCV tools"
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`.
@ -13,7 +16,8 @@ Once it is loaded, the tool's functionality will be available.
### 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,
displayed as a red square which is tied to the cursor.
@ -33,4 +37,4 @@ displayed as a red square which is tied to the cursor.
During the drawing process you can remove the last point by clicking on it with the left mouse button.
- Once all the points are placed, you can complete the creation of the object by clicking on the icon or clicking `N`.
As a result, a polygon will be created (read more about the polygons in the [annoation with polygons](/docs/for-users/user-guide/advanced/annotation-with-polygons/)).
As a result, a polygon will be created (read more about the polygons in the [annoation with polygons](/docs/for-users/user-guide/advanced/annotation-with-polygons/)).

@ -27,10 +27,12 @@ or areas in the frame and describe the problem.
![](/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`.
- Review next passes the job to another user for re-review.
- Reject - changes the status of the job to `annotation`.
![](/images/image197.jpg)
![](/images/image197.jpg)

@ -23,4 +23,4 @@ to lock them. Shapes for locked objects are transparent, and it is easy to
annotate new objects. Besides, you can't change previously annotated objects
by accident. Shortcut: `L`.
![](/images/image066.jpg)
![](/images/image066.jpg)

@ -73,4 +73,4 @@ Many UI elements have shortcut hints. Put your pointer to a required element to
| `Down Arrow` | Go to the next attribute (down) |
| `Tab` | Go to the next annotated object in current frame |
| `Shift+Tab` | Go to the previous annotated object in current frame |
| `<number>` | Assign a corresponding value to the current attribute |
| `<number>` | Assign a corresponding value to the current attribute |

@ -2,4 +2,4 @@
title: "Basics"
linkTitle: "Basics"
weight: 8
---
---

@ -3,24 +3,24 @@ title: "Basic navigation"
linkTitle: "Basic navigation"
weight: 1
---
1. Use arrows below to move to the next/previous frame.
Use the scroll bar slider to scroll through frames.
Almost every button has a shortcut.
To get a hint about a shortcut, just move your mouse pointer over an UI element.
1. Use arrows below to move to the next/previous frame.
Use the scroll bar slider to scroll through frames.
Almost every button has a shortcut.
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.
Another way an image can be moved/shifted is by holding the left mouse button inside
an area without annotated objects.
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.
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
an area without annotated objects.
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.
![](/images/image136.jpg)
![](/images/image136.jpg)
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.
You can also use the mouse wheel to scale the image
(the image will be zoomed relatively to your current cursor position).
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.
You can also use the mouse wheel to scale the image
(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.
- 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)
and ` Drawing Method` (by 2 points or by 4 points):
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):
![](/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.
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`.
- 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.
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.
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.
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 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.
- Edit tracks, merge several rectangles into one track.
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`.
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`.
![](/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.
- 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).
- 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.
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.
It isn't necessary to change the rectangle on each frame, simply update several keyframes
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:
- 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
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:
![](/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
finish the track. You have to choose `Outside Property`, shortcut `O`.
1. When the annotated object disappears or becomes too small, you need to
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,
you can use the `Merge` feature to merge several individual tracks
into one.
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
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
and on any rectangle of the second track and so on:
- 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:
![](/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
look like the clip below:
- The final annotated sequence of frames in `Interpolation` mode can
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/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.
|Icon |Description |Links to section |
|-- |-- |-- |
|![](/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/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/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/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/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/image195.jpg)|`Open an issue` |[Review](/docs/for-users/user-guide/advanced/review/) (available only in review mode) |
|![](/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/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/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)|
---
@ -42,4 +42,4 @@ weight: 15
|![](/images/image173.jpg)|`Group Shapes` (`G`) — starts/stops the grouping shapes mode.|[Shape grouping](/docs/for-users/user-guide/advanced/shape-grouping/)|
|![](/images/image174.jpg)|`Split` — splits a track. |[Track mode (advanced)](/docs/for-users/user-guide/advanced/track-mode-advanced/)|
---
---

@ -4,216 +4,216 @@ linkTitle: "Creating an annotation task"
weight: 2
---
1. Create an annotation task pressing `Create new task` button on the tasks page or on the project page.
![](/images/image004.jpg)
1. Create an annotation task pressing `Create new task` button on the tasks page or on the project page.
![](/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.
![](/images/image123.jpg)
- The `Constructor` is a simple way to add and adjust labels. To add a new label click the `Add label` button.
![](/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. Choose the way to display the attribute:
- Select — drop down list of value
- 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.
- Text — is used when an attribute is entered as a text.
- 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`.
The entered value is displayed as a separate element which could be deleted
by pressing `Backspace` or clicking the close button (x).
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).
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. Set the attributes name.
1. Choose the way to display the attribute:
- Select — drop down list of value
- 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.
- Text — is used when an attribute is entered as a text.
- 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`.
The entered value is displayed as a separate element which could be deleted
by pressing `Backspace` or clicking the close button (x).
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).
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).
Click the `Continue` button to add more labels.
If you need to cancel adding a label - press the `Cancel` 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.
You can edit or delete labels by clicking `Update attributes` or `Delete label`.
Click the `Continue` button to add more labels.
If you need to cancel adding a label - press the `Cancel` 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.
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.
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.
![](/images/image126.jpg)
- 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.
The `Done` button applies the changes and the `Reset` button cancels the changes.
![](/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.
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 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/).
**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 ` 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.
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",
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.
See more [here](/docs/for-developers/data_on_fly/).
**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)
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/).
**Image Quality**. Use this option to specify quality of uploaded images.
The option helps to load high resolution datasets faster.
Use the value from `5` (almost completely compressed images) to `100` (not compressed images).
**Image Quality**. Use this option to specify quality of uploaded images.
The option helps to load high resolution datasets faster.
Use the value from `5` (almost completely compressed images) to `100` (not compressed images).
**Overlap Size**. Use this option to make overlapped segments.
The option makes tracks continuous from one segment into another.
Use it for interpolation mode. There are several options for using the parameter:
**Overlap Size**. Use this option to make overlapped segments.
The option makes tracks continuous from one segment into another.
Use it for interpolation mode. There are several options for using the parameter:
- 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 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.
- For an annotation task (independent images).
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.
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.
Thus, you annotate an object on the first segment.
You annotate the same object on second segment, and if you do it right, you
will have one track inside the annotations.
If annotations on different segments (on overlapped frames)
are very different, you will have two shapes for the same object.
This functionality works only for bounding boxes.
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.
**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).
Thus using "segment size" you can create several jobs for the same annotation task.
It will help you to parallel data annotation process.
**Start frame**. Frame from which video in task begins.
**Stop frame**. Frame on which video in task ends.
**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.
**Chunk size**. Defines a number of frames to be packed in a chunk when send from client to server.
Server defines automatically if empty.
Recommended values:
- 1080p or less: 36
- 2k or less: 8 - 16
- 4k or less: 4 - 8
- More: 1 - 4
**Dataset Repository**. URL link of the repository optionally specifies the path to the repository for storage
(`default: annotation / <dump_file_name> .zip`).
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]`
Supported URL formats :
- `https://github.com/project/repos[.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.
**Use LFS**. If the annotation file is large, you can create a repository with
[LFS](https://git-lfs.github.com/) support.
**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.
Then, the created task will be displayed on a tasks page:
![](/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.
Each element contains: task name, preview, progress bar, button `Open`, and menu `Actions`.
Each button is responsible for a in menu `Actions` specific function:
- `Dump Annotation` and `Export as a dataset` — download annotations or
annotations and images in a specific format. The following formats are available:
- [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/)
- [(VOC) Segmentation mask](http://host.robots.ox.ac.uk/pascal/VOC/) —
archive contains class and instance masks for each frame in the png
format and a text file with the value of each color.
- [YOLO](https://pjreddie.com/darknet/yolo/)
- [COCO](http://cocodataset.org/#format-data)
- [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord)
- [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)
- `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.
- `Automatic Annotation` — automatic annotation with OpenVINO toolkit.
Presence depends on how you build CVAT instance.
- `Delete` — delete task.
Push `Open` button to go to task details.
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.
![](/images/image131_detrac.jpg)
- The next actions are available on this page:
1. Change the tasks title.
1. Open `Actions` menu.
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).
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.
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.
- `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.
- Frames — the frame interval.
- 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.
The status of the job is changes the progress bar of the task.
- Started on — start date of this job.
- Duration — is the amount of time the job is being worked.
- 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.
- 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.
The job list contains direct links to jobs.
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.
In some cases, you can have several links. It depends on size of your
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
to annotate first images. Other frames will be loaded in background.
![](/images/image007_detrac.jpg)
- 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 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.
- For an annotation task (independent images).
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.
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.
Thus, you annotate an object on the first segment.
You annotate the same object on second segment, and if you do it right, you
will have one track inside the annotations.
If annotations on different segments (on overlapped frames)
are very different, you will have two shapes for the same object.
This functionality works only for bounding boxes.
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.
**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).
Thus using "segment size" you can create several jobs for the same annotation task.
It will help you to parallel data annotation process.
**Start frame**. Frame from which video in task begins.
**Stop frame**. Frame on which video in task ends.
**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.
**Chunk size**. Defines a number of frames to be packed in a chunk when send from client to server.
Server defines automatically if empty.
Recommended values:
- 1080p or less: 36
- 2k or less: 8 - 16
- 4k or less: 4 - 8
- More: 1 - 4
**Dataset Repository**. URL link of the repository optionally specifies the path to the repository for storage
(`default: annotation / <dump_file_name> .zip`).
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]`
Supported URL formats :
- `https://github.com/project/repos[.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.
**Use LFS**. If the annotation file is large, you can create a repository with
[LFS](https://git-lfs.github.com/) support.
**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.
Then, the created task will be displayed on a tasks page:
![](/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.
Each element contains: task name, preview, progress bar, button `Open`, and menu `Actions`.
Each button is responsible for a in menu `Actions` specific function:
- `Dump Annotation` and `Export as a dataset` — download annotations or
annotations and images in a specific format. The following formats are available:
- [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/)
- [(VOC) Segmentation mask](http://host.robots.ox.ac.uk/pascal/VOC/) —
archive contains class and instance masks for each frame in the png
format and a text file with the value of each color.
- [YOLO](https://pjreddie.com/darknet/yolo/)
- [COCO](http://cocodataset.org/#format-data)
- [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord)
- [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)
- `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.
- `Automatic Annotation` — automatic annotation with OpenVINO toolkit.
Presence depends on how you build CVAT instance.
- `Delete` — delete task.
Push `Open` button to go to task details.
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.
![](/images/image131_detrac.jpg)
- The next actions are available on this page:
1. Change the tasks title.
1. Open `Actions` menu.
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).
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.
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.
- `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.
- Frames — the frame interval.
- 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.
The status of the job is changes the progress bar of the task.
- Started on — start date of this job.
- Duration — is the amount of time the job is being worked.
- 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.
- 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.
The job list contains direct links to jobs.
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.
In some cases, you can have several links. It depends on size of your
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
to annotate first images. Other frames will be loaded in background.
![](/images/image007_detrac.jpg)

@ -3,29 +3,30 @@ title: "Downloading annotations"
linkTitle: "Downloading annotations"
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)
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.
1. Choose format dump annotation file. Dump annotation are available in several formats:
![](/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/)
- [(VOC) Segmentation mask](http://host.robots.ox.ac.uk/pascal/VOC/) —
archive contains class and instance masks for each frame in the png
format and a text file with the value of each color.
- [YOLO](https://pjreddie.com/darknet/yolo/)
- [COCO](http://cocodataset.org/#format-data)
- [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord)
- [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)
![](/images/image029.jpg 'Example XML format')
- [PASCAL VOC](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
format and a text file with the value of each color.
- [YOLO](https://pjreddie.com/darknet/yolo/)
- [COCO](http://cocodataset.org/#format-data)
- [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord)
- [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)

@ -34,4 +34,4 @@ Go to the [Django administration panel](http://localhost:8080/admin). There you
- Create / edit / delete users
- Control permissions of users and access to the tool.
![](/images/image115.jpg)
![](/images/image115.jpg)

@ -36,7 +36,8 @@ frame. The following figure is an example of how the list might look like:
**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)
@ -48,7 +49,8 @@ The action menu calls up the button:
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`.
- `Propagate` - Сopies the form to several frames,
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**
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.
To assign a number, click on the button placed at the right of a label name on the sidebar.
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.
To assign a number, click on the button placed at the right of a label name on the sidebar.
![](/images/image210.jpg)

@ -3,14 +3,17 @@ title: "Projects"
linkTitle: "Projects"
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. 
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)
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)
@ -26,7 +29,8 @@ Here you can do the following:
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 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.
You can remove the project and all related tasks through the Action menu.

@ -22,4 +22,4 @@ There are several options how to use the search.
The search is case insensitive.
![](/images/image100_detrac.jpg)
![](/images/image100_detrac.jpg)

@ -39,4 +39,5 @@ In tab `Workspace` you can:
- `Attribute annotation mode (AAM) zoom margin` input box — defines margins (in px)
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"
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
annotation is now in the repository in a temporary branch.
![](/images/image106.jpg)
![](/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)
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).
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.
3. Go to the next / previous frame without annotation at all. Use this option in cases when you need to find missed frames quickly.
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.
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.

@ -33,4 +33,4 @@ Tracks are created in `Track mode`
- _Manual_ which is created by a person
- _Semi-automatic_ which is created mainly automatically, but the user provides some data (e.g. interpolation)
- _Automatic_ which is created automatically without a person in the loop
- _Automatic_ which is created automatically without a person in the loop

@ -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'
```
- 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
socks_proxy=proxy-example.com:1080 docker-compose build

Loading…
Cancel
Save