未验证 提交 25975467 编写于 作者: R Roman Donchenko 提交者: GitHub

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.
上级 4960260e
......@@ -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
......
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'],
......
此差异已折叠。
......@@ -300,13 +300,13 @@ Good bug reports are extremely helpful - thank you!
Guidelines for bug reports:
1. **Use the GitHub issue search** — check if the issue has already been
reported.
1. **Use the GitHub issue search** — check if the issue has already been
reported.
1. **Check if the issue has been fixed** — try to reproduce it using the
latest `develop` branch in the repository.
1. **Check if the issue has been fixed** — try to reproduce it using the
latest `develop` branch in the repository.
1. **Isolate the problem** — ideally create a reduced test case.
1. **Isolate the problem** — 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/>
此差异已折叠。
......@@ -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 at http://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.
\ No newline at end of file
computer vision tasks developed by our team.
......@@ -2,4 +2,4 @@
title: "Advanced"
linkTitle: "Advanced"
weight: 30
---
\ No newline at end of file
---
......@@ -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)
\ No newline at end of file
![](/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.
\ No newline at end of file
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)
\ No newline at end of file
![](/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/)
\ No newline at end of file
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.
\ No newline at end of file
`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.
\ No newline at end of file
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`.
\ No newline at end of file
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)
\ No newline at end of file
![](/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)
\ No newline at end of file
![](/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, let’s 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, let’s 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/)).
\ No newline at end of file
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)
\ No newline at end of file
![](/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)
\ No newline at end of file
![](/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 |
\ No newline at end of file
| `<number>` | Assign a corresponding value to the current attribute |
......@@ -2,4 +2,4 @@
title: "Basics"
linkTitle: "Basics"
weight: 8
---
\ No newline at end of file
---
......@@ -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/)|
---
\ No newline at end of file
---
......@@ -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)
\ No newline at end of file
![](/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)
\ No newline at end of file
![](/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
\ No newline at end of file
- _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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册