Upgrade remark to the latest version (#9394)

The new version seems to be better at parsing Markdown and emits more
useful warnings (which I fixed). The new warnings are mostly of the
following categories:

1. Inconsistent table formatting.
2. Inconsistent list numbering.
3. Overlong lines.
4. Missing quote markers.

WRT tables, I converted a few of them to the compact style, because I
can't be bothered to align rows that are >100 characters long, and I
don't think anyone else should have to.
This commit is contained in:
Roman Donchenko
2025-05-06 11:51:34 +03:00
committed by GitHub
parent faffb1bfd5
commit 92d376e600
26 changed files with 2326 additions and 1446 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ exports.plugins = [
'remark-gfm',
'remark-preset-lint-recommended',
'remark-preset-lint-consistent',
['remark-lint-list-item-indent', 'space'],
['remark-lint-list-item-indent', 'one'],
['remark-lint-no-dead-urls', false], // Does not work because of github protection system
['remark-lint-maximum-line-length', 120],
['remark-lint-maximum-heading-length', 120],
+12 -5
View File
@@ -1546,7 +1546,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Formats with the custom `track_id` attribute should import `outside` track shapes properly (e.g. `COCO`, `COCO Keypoints`, `Datumaro`, `PASCAL VOC`)
- Formats with the custom `track_id` attribute should import `outside` track shapes properly
(e.g. `COCO`, `COCO Keypoints`, `Datumaro`, `PASCAL VOC`)
(<https://github.com/opencv/cvat/pull/7669>)
- Inefficient resources fetching in admin panel leading to 504 Gateway Timeout
@@ -2611,7 +2612,8 @@ This release has changes only in the Enterprise version.
- Relocated SAM masks decoder to frontend operation.
(<https://github.com/opencv/cvat/pull/6019>)
- Switched `person-reidentification-retail-0300` and `faster_rcnn_inception_v2_coco` Nuclio functions with `person-reidentification-retail-0277` and `faster_rcnn_inception_resnet_v2_atrous_coco` respectively.
- Switched `person-reidentification-retail-0300` and `faster_rcnn_inception_v2_coco` Nuclio functions
with `person-reidentification-retail-0277` and `faster_rcnn_inception_resnet_v2_atrous_coco` respectively.
(<https://github.com/opencv/cvat/pull/6129>)
- Upgraded OpenVINO-based Nuclio functions to utilize the OpenVINO 2022.3 runtime.
(<https://github.com/opencv/cvat/pull/6129>)
@@ -2814,7 +2816,10 @@ This release has changes only in the Enterprise version.
polygon-minus, returning masks from online detectors & interactors)
(<https://github.com/opencv/cvat/pull/4543>)
- Added Webhooks (<https://github.com/opencv/cvat/pull/4863>)
- Authentication with social accounts: Google & GitHub (<https://github.com/opencv/cvat/pull/5147>, <https://github.com/opencv/cvat/pull/5181>, <https://github.com/opencv/cvat/pull/5295>)
- Authentication with social accounts: Google & GitHub
(<https://github.com/opencv/cvat/pull/5147>,
<https://github.com/opencv/cvat/pull/5181>,
<https://github.com/opencv/cvat/pull/5295>)
- REST API tests for exporting job datasets & annotations and validating their structure (<https://github.com/opencv/cvat/pull/5160>)
- Backward propagation on UI (<https://github.com/opencv/cvat/pull/5355>)
- Keyboard shortcut to delete a frame (Alt + Del) (<https://github.com/opencv/cvat/pull/5369>)
@@ -2824,7 +2829,8 @@ This release has changes only in the Enterprise version.
### Changed
- `api/docs`, `api/swagger`, `api/schema`, `server/about` endpoints now allow unauthorized access (<https://github.com/opencv/cvat/pull/4928>, <https://github.com/opencv/cvat/pull/4935>)
- `api/docs`, `api/swagger`, `api/schema`, `server/about` endpoints now allow unauthorized access
(<https://github.com/opencv/cvat/pull/4928>, <https://github.com/opencv/cvat/pull/4935>)
- 3D canvas now can be dragged in IDLE mode (<https://github.com/opencv/cvat/pull/5385>)
- Datumaro version is upgraded to 0.3 (dev) (<https://github.com/opencv/cvat/pull/4984>)
- Allowed trailing slashes in the SDK host address (<https://github.com/opencv/cvat/pull/5057>)
@@ -3867,7 +3873,8 @@ This release has changes only in the Enterprise version.
- 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
- Semi-automatic semantic segmentation with the
[Deep Extreme Cut](http://www.vision.ee.ethz.ch/~cvlsegmentation/dextr/) work
### Changed
+5 -5
View File
@@ -151,7 +151,7 @@ For more information about the supported formats, see:
<!--lint disable maximum-line-length-->
| Annotation format | Import | Export |
|--------------------------------------------------------------------------------------------------| ------ | ------ |
| ------------------------------------------------------------------------------------------------ | ------ | ------ |
| [CVAT for images](https://docs.cvat.ai/docs/manual/advanced/xml_format/#annotation) | ✔️ | ✔️ |
| [CVAT for a video](https://docs.cvat.ai/docs/manual/advanced/xml_format/#interpolation) | ✔️ | ✔️ |
| [Datumaro](https://github.com/cvat-ai/datumaro) | ✔️ | ✔️ |
@@ -176,10 +176,10 @@ For more information about the supported formats, see:
| [LFW](http://vis-www.cs.umass.edu/lfw/) | ✔️ | ✔️ |
| [Supervisely Point Cloud Format](https://docs.supervise.ly/data-organization/00_ann_format_navi) | ✔️ | ✔️ |
| [Ultralytics YOLO Detection](https://docs.ultralytics.com/datasets/detect/) | ✔️ | ✔️ |
| [Ultralytics YOLO Oriented Bounding Boxes](https://docs.ultralytics.com/datasets/obb/) | ✔️ | ✔️ |
| [Ultralytics YOLO Segmentation](https://docs.ultralytics.com/datasets/segment/) | ✔️ | ✔️ |
| [Ultralytics YOLO Pose](https://docs.ultralytics.com/datasets/pose/) | ✔️ | ✔️ |
| [Ultralytics YOLO Classification](https://docs.ultralytics.com/datasets/classify/) | ✔️ | ✔️ |
| [Ultralytics YOLO Oriented Bounding Boxes](https://docs.ultralytics.com/datasets/obb/) | ✔️ | ✔️ |
| [Ultralytics YOLO Segmentation](https://docs.ultralytics.com/datasets/segment/) | ✔️ | ✔️ |
| [Ultralytics YOLO Pose](https://docs.ultralytics.com/datasets/pose/) | ✔️ | ✔️ |
| [Ultralytics YOLO Classification](https://docs.ultralytics.com/datasets/classify/) | ✔️ | ✔️ |
<!--lint enable maximum-line-length-->
+15 -15
View File
@@ -57,21 +57,21 @@
"postcss-loader": "^7.3.3",
"postcss-preset-env": "^9.0.0",
"react-svg-loader": "^3.0.3",
"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",
"remark-lint-maximum-line-length": "^2.0.0",
"remark-lint-no-dead-urls": "^1.0.2",
"remark-lint-no-file-name-irregular-characters": "^1.0.3",
"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": "^4.0.0",
"remark-preset-lint-markdown-style-guide": "^4.0.0",
"remark-preset-lint-recommended": "^5.0.0",
"remark-cli": "^12.0.1",
"remark-frontmatter": "^5.0.0",
"remark-gfm": "^4.0.1",
"remark-lint-emphasis-marker": "^4.0.1",
"remark-lint-list-item-spacing": "^5.0.1",
"remark-lint-maximum-heading-length": "^4.1.1",
"remark-lint-maximum-line-length": "^4.1.1",
"remark-lint-no-dead-urls": "^2.0.1",
"remark-lint-no-file-name-irregular-characters": "^3.0.1",
"remark-lint-ordered-list-marker-style": "^4.0.1",
"remark-lint-strong-marker": "^4.0.1",
"remark-lint-unordered-list-marker-style": "^4.0.1",
"remark-preset-lint-consistent": "^6.0.1",
"remark-preset-lint-markdown-style-guide": "^6.0.1",
"remark-preset-lint-recommended": "^7.0.1",
"sass": "^1.42.1",
"sass-loader": "^10.0.0",
"source-map-support": "^0.5.19",
@@ -197,7 +197,8 @@ postgresql:
secret:
password: cvat_postgresql
```
In example above corresponding secret will be created automatically, but if you want to use existing secret change `secret.create` to `false` and set `name` of existing secret:
In example above corresponding secret will be created automatically,
but if you want to use existing secret change `secret.create` to `false` and set `name` of existing secret:
```yml
postgresql:
enabled: false
@@ -119,12 +119,12 @@ Webhook payload object for `create:<resource>` events:
<!--lint disable maximum-line-length-->
| Key | Type | Description |
| ------------ | --------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `event` | `string` | Identifies the event that triggered the webhook, following the `create:<resource>` pattern. |
| Key | Type | Description |
| ------------ | --------- | ----------- |
| `event` | `string` | Identifies the event that triggered the webhook, following the `create:<resource>` pattern. |
| `<resource>` | `object` | Complete information about the created resource. Refer to the [Swagger](#webhooks-with-api-calls) docs for individual resource details. |
| `webhook_id` | `integer` | The identifier for the webhook that sends the payload. |
| `sender` | `object` | Details about the user that triggered the webhook. |
| `webhook_id` | `integer` | The identifier for the webhook that sends the payload. |
| `sender` | `object` | Details about the user that triggered the webhook. |
<!--lint enable maximum-line-length-->
@@ -144,14 +144,14 @@ and replaces the label IDs in the shape objects with those defined in the datase
For example, suppose the AA function's spec defines the following labels:
| Name | ID |
|-------|----|
| `bat` | 0 |
| `rat` | 1 |
| ----- | -- |
| `bat` | 0 |
| `rat` | 1 |
And the dataset defines the following labels:
| Name | ID |
|-------|-----|
| ----- | --- |
| `bat` | 100 |
| `cat` | 101 |
| `rat` | 102 |
@@ -173,7 +173,7 @@ and sometimes setting some attributes to fixed values.
The following helpers are available for building specifications:
| Name | Model type | Fixed attributes |
|---------------------------|-----------------------|-------------------------------------------------------|
| ------------------------- | --------------------- | ----------------------------------------------------- |
| `label_spec` | `PatchedLabelRequest` | - |
| `skeleton_label_spec` | `PatchedLabelRequest` | `type="skeleton"` |
| `keypoint_spec` | `SublabelRequest` | `type="points"` |
@@ -197,7 +197,7 @@ cvataa.number_attribute_spec("size", 1, number_attribute_values(0, 10))
The following helpers are available for use in `detect`:
| Name | Model type | Fixed attributes |
|-------------|--------------------------|-------------------------------|
| ----------- | ------------------------ | ----------------------------- |
| `shape` | `LabeledShapeRequest` | `frame=0` |
| `mask` | `LabeledShapeRequest` | `frame=0`, `type="mask"` |
| `polygon` | `LabeledShapeRequest` | `frame=0`, `type="polygon"` |
@@ -339,10 +339,10 @@ extra common arguments which control invocation logic:
Read more about file uploads [here](#sending-data). Default is `application/json`.
> **NOTE**: the API is autogenerated. In some cases the server API schema may be incomplete
or underspecified. Please report to us all the problems found. A typical problem is that a
response data can't be parsed automatically due to the incorrect schema. In this case, the
simplest workaround is to disable response parsing using the `_parse_response=False`
method argument.
> or underspecified. Please report to us all the problems found. A typical problem is that a
> response data can't be parsed automatically due to the incorrect schema. In this case, the
> simplest workaround is to disable response parsing using the `_parse_response=False`
> method argument.
You can find many examples of API client usage in REST API tests [here](https://github.com/cvat-ai/cvat/tree/develop/tests/python).
@@ -13,10 +13,10 @@ Guidelines for bug reports:
1. **Use the GitHub issue search** &mdash; check if the issue has already been
reported.
2. **Check if the issue has been fixed** &mdash; try to reproduce it using the
1. **Check if the issue has been fixed** &mdash; try to reproduce it using the
latest `develop` branch in the repository.
3. **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
@@ -104,7 +104,7 @@ To attach to a container, run one of the following tasks:
- `REST API tests: Attach to RQ low` for the low priority queue worker
- `REST API tests: Attach to RQ default` for the default priority queue worker
> If you have a custom development environment setup, you need to adjust
If you have a custom development environment setup, you need to adjust
host-remote path mappings in the `.vscode/launch.json`:
```json
...
@@ -32,7 +32,7 @@ the parameters any time.
> in the
> {{< ilink "/docs/manual/basics/quality-control#how-to-enable-quality-control" "quality overview" >}}
> section or in the
{{< ilink "/docs/manual/advanced/analytics-and-monitoring/auto-qa#configuring-quality-estimation" "full guide" >}}.
> {{< ilink "/docs/manual/advanced/analytics-and-monitoring/auto-qa#configuring-quality-estimation" "full guide" >}}.
1. Open the task **Actions** menu > **Quality control** > **Settings**
@@ -19,7 +19,7 @@ objects (polygons and masks) to track them forward for a specified number of fra
> **Note**: This feature is not available in the community CVAT version.
> **Note**: This feature requires the enhanced actions UI plugin, which is enabled by default.
Usually, no additional steps are necessary on this.
> Usually, no additional steps are necessary on this.
### Docker
@@ -30,37 +30,37 @@ With more to come soon. Stay tuned!
To enable authentication, do the following:
1. Log in to the [Google Cloud console](https://console.cloud.google.com/)
2. [Create a project](https://cloud.google.com/resource-manager/docs/creating-managing-projects),
1. [Create a project](https://cloud.google.com/resource-manager/docs/creating-managing-projects),
and go to [APIs & Services](https://console.cloud.google.com/apis/)
3. On the left menu, select **OAuth consent**, then select
1. On the left menu, select **OAuth consent**, then select
**User type** (**Internal** or **External**), and click **Create**.
4. On the **OAuth consent screen** fill all required fields, and click **Save and Continue**.
5. On the **Scopes** screen, click **Add or remove scopes** and
1. On the **OAuth consent screen** fill all required fields, and click **Save and Continue**.
1. On the **Scopes** screen, click **Add or remove scopes** and
select `auth/userinfo.email`, `auth/userinfo.profile`, and `openid`.
Click **Update**, and **Save and Continue**.
<br>For more information, see [Configure Auth Consent](https://developers.google.com/workspace/guides/configure-oauth-consent).
6. On the left menu, click **Credentials**, on the top
1. On the left menu, click **Credentials**, on the top
menu click **+ Create credentials**, and select **OAuth client ID**.
7. From the **Application Type** select **Web application** and
1. From the **Application Type** select **Web application** and
configure: **Application name**, **Authorized JavaScript origins**, **Authorized redirect URIs**.
<br> For example, if you plan to deploy CVAT instance on `https://localhost:8080`, add `https://localhost:8080`
to authorized JS origins and `https://localhost:8080/api/auth/social/goolge/login/callback/` to redirect URIs.
8. Create configuration file in CVAT:
1. Create configuration file in CVAT:
1. Create the `auth_config.yml` file with the following content:
```yaml
---
social_account:
enabled: true
google:
client_id: <some_client_id>
client_secret: <some_client_secret>
```
```yaml
---
social_account:
enabled: true
google:
client_id: <some_client_id>
client_secret: <some_client_secret>
```
2. Set `AUTH_CONFIG_PATH="<path_to_auth_config>` environment variable.
1. Set `AUTH_CONFIG_PATH="<path_to_auth_config>` environment variable.
9. In a terminal, run the following command:
1. In a terminal, run the following command:
```bash
docker compose -f docker-compose.yml -f docker-compose.dev.yml -f docker-compose.override.yml up -d --build
@@ -71,26 +71,26 @@ To enable authentication, do the following:
There are 2 basic steps to enable GitHub account authentication.
1. Open the GitHub settings page.
2. On the left menu, click **<> Developer settings** > **OAuth Apps** > **Register new application**.
1. On the left menu, click **<> Developer settings** > **OAuth Apps** > **Register new application**.
<br>For more information, see [Creating an OAuth App](https://docs.github.com/en/developers/apps/building-oauth-apps/creating-an-oauth-app)
3. Fill in the name field, set the homepage URL (for example: `https://localhost:8080`),
1. Fill in the name field, set the homepage URL (for example: `https://localhost:8080`),
and authentication callback URL (for example: `https://localhost:8080/api/auth/social/github/login/callback/`).
4. Create configuration file in CVAT:
1. Create configuration file in CVAT:
1. Create the `auth_config.yml` file with the following content:
```yaml
---
social_account:
enabled: true
github:
client_id: <some_client_id>
client_secret: <some_client_secret>
```
```yaml
---
social_account:
enabled: true
github:
client_id: <some_client_id>
client_secret: <some_client_secret>
```
2. Set `AUTH_CONFIG_PATH="<path_to_auth_config>` environment variable.
1. Set `AUTH_CONFIG_PATH="<path_to_auth_config>` environment variable.
5. In a terminal, run the following command:
1. In a terminal, run the following command:
```bash
docker compose -f docker-compose.yml -f docker-compose.dev.yml -f docker-compose.override.yml up -d --build
@@ -102,14 +102,14 @@ Consensus annotation is configured at the Task level. It can only be specified a
If you want to enable consensus for one of your existing tasks, you'll need to recreate the task.
1. Go to the {{< ilink "/docs/manual/basics/create-annotation-task" "task creation" >}} page
2. Configure basic and advanced parameters according to your requirements,
1. Configure basic and advanced parameters according to your requirements,
and attach a dataset to be annotated.
3. To enable consensus for the task, open the **Advanced** section and
1. To enable consensus for the task, open the **Advanced** section and
set **Consensus Replicas** to a value greater than 1.
![Consensus replicas parameter image](/images/consensus-replicas-task-parameter.png)
4. Create the task and open the task page
1. Create the task and open the task page
If a task has consensus enabled, you'll see the **Consensus** tag in the task summary.
Existing **Consensus replica** jobs will be displayed in the job list under their parent
@@ -142,11 +142,11 @@ the next merging and avoid losing the reviewed annotations.
### How to merge all replicas in a task
1. Open the task **Actions** menu
2. Click **Merge consensus jobs**
1. Click **Merge consensus jobs**
![Task actions menu](/images/consensus-merge-task-jobs-button.png)
3. Click **Merge** in the dialog window
1. Click **Merge** in the dialog window
![Consensus merge dialog](/images/consensus-merge-task-dialog.png)
@@ -156,11 +156,11 @@ the next merging and avoid losing the reviewed annotations.
### How to merge replicas in a specific parent job
1. Open the job **Actions** menu
2. Click **Merge consensus job**
1. Click **Merge consensus job**
![Job actions menu](/images/consensus-merge-job-actions.png)
3. Click **Merge** in the dialog window
1. Click **Merge** in the dialog window
![Consensus merge dialog](/images/consensus-merge-job-dialog.png)
@@ -92,7 +92,7 @@ List of pre-installed models:
| Model | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Attributed face detection | Three OpenVINO models work together: <br><br><li> [Face Detection 0205](https://docs.openvino.ai/2022.3/omz_models_model_face_detection_0205.html): face detector based on MobileNetV2 as a backbone with a FCOS head for indoor and outdoor scenes shot by a front-facing camera. <li>[Emotions recognition retail 0003](https://docs.openvino.ai/2022.3/omz_models_model_emotions_recognition_retail_0003.html#emotions-recognition-retail-0003): fully convolutional network for recognition of five emotions (neutral, happy, sad, surprise, anger). <li>[Age gender recognition retail 0013](https://docs.openvino.ai/2022.3/omz_models_model_age_gender_recognition_retail_0013.html): fully convolutional network for simultaneous Age/Gender recognition. The network can recognize the age of people in the [18 - 75] years old range; it is not applicable for children since their faces were not in the training set. |
| Attributed face detection | Three OpenVINO models work together: <br><br><li> [Face Detection 0205](https://docs.openvino.ai/2022.3/omz_models_model_face_detection_0205.html): face detector based on MobileNetV2 as a backbone with a FCOS head for indoor and outdoor scenes shot by a front-facing camera. <li>[Emotions recognition retail 0003](https://docs.openvino.ai/2022.3/omz_models_model_emotions_recognition_retail_0003.html#emotions-recognition-retail-0003): fully convolutional network for recognition of five emotions (neutral, happy, sad, surprise, anger). <li>[Age gender recognition retail 0013](https://docs.openvino.ai/2022.3/omz_models_model_age_gender_recognition_retail_0013.html): fully convolutional network for simultaneous Age/Gender recognition. The network can recognize the age of people in the \[18 - 75\] years old range; it is not applicable for children since their faces were not in the training set. |
| RetinaNet R101 | RetinaNet is a one-stage object detection model that utilizes a focal loss function to address class imbalance during training. Focal loss applies a modulating term to the cross entropy loss to focus learning on hard negative examples. RetinaNet is a single, unified network composed of a backbone network and two task-specific subnetworks. <br><br>For more information, see: <li>[Site: RetinaNET](https://paperswithcode.com/lib/detectron2/retinanet) |
| Text detection | Text detector based on PixelLink architecture with MobileNetV2, depth_multiplier=1.4 as a backbone for indoor/outdoor scenes. <br><br> For more information, see: <li>[Site: OpenVINO Text detection 004](https://docs.openvino.ai/2022.3/omz_models_model_text_detection_0004.html) |
| YOLO v3 | YOLO v3 is a family of object detection architectures and models pre-trained on the COCO dataset. <br><br> For more information, see: <li>[Site: YOLO v3](https://docs.openvino.ai/2022.3/omz_models_model_yolo_v3_tf.html) |
@@ -129,11 +129,11 @@ small toolbar will appear on the top of the screen, with the following elements:
<!--lint disable maximum-line-length-->
| Element | Description |
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Element | Description |
| ---------------------------------------------- | ----------- |
| ![contex_images_4](/images/context_img_04.jpg) | **Fit views**. Click to restore the layout to its original appearance. <p>If you've expanded any images in the layout, they will returned to their original size. <p>This won't affect the number of context images on the screen. |
| ![contex_images_5](/images/context_img_05.jpg) | **Add new image**. Click to add context image to the layout. |
| ![contex_images_6](/images/context_img_06.jpg) | **Reload layout**. Click to reload layout to the default view. <p>Note, that this action can change the number of context images resetting them back to three. |
| ![contex_images_5](/images/context_img_05.jpg) | **Add new image**. Click to add context image to the layout. |
| ![contex_images_6](/images/context_img_06.jpg) | **Reload layout**. Click to reload layout to the default view. <p>Note, that this action can change the number of context images resetting them back to three. |
<!--lint enable maximum-line-length-->
@@ -117,8 +117,8 @@ pip install -r utils/dataset_manifest/requirements.in
```
> Please note that if used with video this way, the results may be different from what
would the server decode. It is related to the ffmpeg library version. For this reason,
using the Docker-based version of the tool is recommended.
> would the server decode. It is related to the ffmpeg library version. For this reason,
> using the Docker-based version of the tool is recommended.
### Examples
@@ -58,4 +58,4 @@ You can also restore deleted frames in the task.
![](/images/image248.jpg)
2. Click on the **Restore** icon. The frame will be restored immediately.
1. Click on the **Restore** icon. The frame will be restored immediately.
@@ -24,7 +24,7 @@ The table below outlines the available formats for data export in CVAT.
<!--lint disable maximum-line-length-->
| Format | Type | Computer Vision Task | Models | Shapes | Attributes | Video Tracks |
|-----------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------| -------------------- |---------------|
| --------------------------------------------------------------------------------------------------------------------------- | ------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -------------------- | ------------- |
| [CamVid 1.0](format-camvid) | .txt <br>.png | Semantic <br>Segmentation | U-Net, SegNet, DeepLab, <br>PSPNet, FCN, Mask R-CNN, <br>ICNet, ERFNet, HRNet, <br>V-Net, and others. | Polygons | Not supported | Not supported |
| [Cityscapes 1.0](format-cityscapes) | .txt<br>.png | Semantic<br>Segmentation | U-Net, SegNet, DeepLab, <br>PSPNet, FCN, ERFNet, <br>ICNet, Mask R-CNN, HRNet, <br>ENet, and others. | Polygons | Specific attributes | Not supported |
| [COCO 1.0](format-coco) | JSON | Detection, Semantic <br>Segmentation | YOLO (You Only Look Once), <br>Faster R-CNN, Mask R-CNN, SSD (Single Shot MultiBox Detector), <br> RetinaNet, EfficientDet, UNet, <br>DeepLabv3+, CenterNet, Cascade R-CNN, and others. | Bounding Boxes, Polygons | Specific attributes | Not supported |
@@ -47,10 +47,10 @@ The table below outlines the available formats for data export in CVAT.
| [WIDER Face 1.0](format-widerface) | .txt | Detection | SSD (Single Shot MultiBox Detector), Faster R-CNN, YOLO, <br>and others. | Bounding Boxes, Tags | Specific attributes | Not supported |
| [YOLO 1.0](format-yolo) | .txt | Detection | YOLOv1, YOLOv2 (YOLO9000), <br>YOLOv3, YOLOv4, and others. | Bounding Boxes | No attributes | Not supported |
| [Ultralytics YOLO Detection 1.0](format-yolo-ultralytics) | .txt | Detection | YOLOv8 | Bounding Boxes | No attributes | Supported |
| [Ultralytics YOLO Segmentation 1.0](format-yolo-ultralytics) | .txt | Instance Segmentation | YOLOv8 | Polygons, Masks | No attributes | Supported |
| [Ultralytics YOLO Pose 1.0](format-yolo-ultralytics) | .txt | Keypoints | YOLOv8 | Skeletons | No attributes | Supported |
| [Ultralytics YOLO Oriented Bounding Boxes 1.0](format-yolo-ultralytics) | .txt | Detection | YOLOv8 | Bounding Boxes | No attributes | Supported |
| [Ultralytics YOLO Classification 1.0](format-yolo-ultralytics-classification) | .jpg | Classification | YOLOv8 | Tags | No attributes | Not supported |
| [Ultralytics YOLO Segmentation 1.0](format-yolo-ultralytics) | .txt | Instance Segmentation | YOLOv8 | Polygons, Masks | No attributes | Supported |
| [Ultralytics YOLO Pose 1.0](format-yolo-ultralytics) | .txt | Keypoints | YOLOv8 | Skeletons | No attributes | Supported |
| [Ultralytics YOLO Oriented Bounding Boxes 1.0](format-yolo-ultralytics) | .txt | Detection | YOLOv8 | Bounding Boxes | No attributes | Supported |
| [Ultralytics YOLO Classification 1.0](format-yolo-ultralytics-classification) | .jpg | Classification | YOLOv8 | Tags | No attributes | Not supported |
<!--lint enable maximum-line-length-->
@@ -18,7 +18,7 @@ These shortcuts are organized by scopes. Some are global, meaning they work acro
in both the Standard Workspace and the Standard 3D Workspace, as these two do not coexist.
| **Scope** | **Shortcut Conflicts** |
|----------------------------------|---------------------------------------------------------------------------------|
| -------------------------------- | ------------------------------------------------------------------------------- |
| **Global** | Must be unique across all scopes, as they apply universally. |
| **Annotation Page** | Must be unique across all scopes, except Labels Editor. |
| **Standard Workspace** | Must be unique across itself, Annotation Page and Global Scope. |
@@ -56,7 +56,8 @@ You can customize shortcuts in CVAT settings.
to assign to the action. As an example `f3` has been set here for Show Shortcuts along with `f1`:\
![](/images/shortcuts05.png)
- Shortcuts can be any combination of modifiers (ctrl, shift or alt) and up to one non-modifier key e.g. `ctrl+shift+f1` etc.\
- Shortcuts can be any combination of modifiers (ctrl, shift or alt)
and up to one non-modifier key e.g. `ctrl+shift+f1` etc.\
![](/images/shortcuts06.png)
- If you try to add a shortcut that is already in use, you will get a warning message:\
@@ -119,16 +119,16 @@ Fill in the following fields:
<!--lint disable maximum-line-length-->
| CVAT | AWS S3 |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Display name** | Preferred display name for your storage. |
| **Description** | (Optional) Add description of storage. |
| **Provider** | From drop-down list select **AWS S3**. |
| **Bucket name** | Name of the [Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket). |
| CVAT | AWS S3 |
| ----------------------- | ------ |
| **Display name** | Preferred display name for your storage. |
| **Description** | (Optional) Add description of storage. |
| **Provider** | From drop-down list select **AWS S3**. |
| **Bucket name** | Name of the [Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket). |
| **Authentication type** | Depends on the bucket setup: <br><li>**Key id and secret access key pair**: available on [IAM](https://console.aws.amazon.com/iamv2/home?#/users). <br><li>**Anonymous access**: for anonymous access. Public access to the bucket must be enabled. |
| **Region** | (Optional) Choose a region from the list or add a new one. For more information, consult [**Available locations**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions). |
| **Prefix** | (Optional) Prefix is used to filter bucket content. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| **Manifests** | (Optional) Select **+ Add manifest** and enter the name of the manifest file with an extension. For example: `manifest.jsonl`. |
| **Region** | (Optional) Choose a region from the list or add a new one. For more information, consult [**Available locations**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions). |
| **Prefix** | (Optional) Prefix is used to filter bucket content. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| **Manifests** | (Optional) Select **+ Add manifest** and enter the name of the manifest file with an extension. For example: `manifest.jsonl`. |
<!--lint enable maximum-line-length-->
@@ -281,17 +281,17 @@ Fill in the following fields:
<!--lint disable maximum-line-length-->
| CVAT | Google Cloud Storage |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Display name** | Preferred display name for your storage. |
| **Description** | (Optional) Add description of storage. |
| **Provider** | From drop-down list select **Google Cloud Storage**. |
| **Bucket name** | Name of the bucket. You can find it on the [storage browser page](https://console.cloud.google.com/storage/browser). |
| CVAT | Google Cloud Storage |
| ----------------------- | -------------------- |
| **Display name** | Preferred display name for your storage. |
| **Description** | (Optional) Add description of storage. |
| **Provider** | From drop-down list select **Google Cloud Storage**. |
| **Bucket name** | Name of the bucket. You can find it on the [storage browser page](https://console.cloud.google.com/storage/browser). |
| **Authentication type** | Depends on the bucket setup: <br><li>**Authenticated access**: Select **Key file** and upload the key file from computer. <br> **Advanced**: For self-hosted solution, if the key file was not attached, then environment variable `GOOGLE_APPLICATION_CREDENTIALS` that was specified for an environment will be used. For more information, consult [Authenticate to Cloud services using client libraries](https://cloud.google.com/docs/authentication/client-libraries#setting_the_environment_variable).<br><li> **Anonymous access**: for anonymous access. Public access to the bucket must be enabled. |
| **Prefix** | (Optional) Used to filter data from the bucket. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| **Project ID** | [Project ID](#authenticated-access). <br>For more information, consult [projects page](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and [cloud resource manager page](https://console.cloud.google.com/cloud-resource-manager). <br>**Note:** Project name does not match the project ID. |
| **Location** | (Optional) Choose a region from the list or add a new one. For more information, consult [**Available locations**](https://cloud.google.com/storage/docs/locations#available-locations). |
| **Manifests** | (Optional) Select **+ Add manifest** and enter the name of the manifest file with an extension. For example: `manifest.jsonl`. |
| **Prefix** | (Optional) Used to filter data from the bucket. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| **Project ID** | [Project ID](#authenticated-access). <br>For more information, consult [projects page](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and [cloud resource manager page](https://console.cloud.google.com/cloud-resource-manager). <br>**Note:** Project name does not match the project ID. |
| **Location** | (Optional) Choose a region from the list or add a new one. For more information, consult [**Available locations**](https://cloud.google.com/storage/docs/locations#available-locations). |
| **Manifests** | (Optional) Select **+ Add manifest** and enter the name of the manifest file with an extension. For example: `manifest.jsonl`. |
<!--lint enable maximum-line-length-->
@@ -424,15 +424,15 @@ Fill in the following fields:
<!--lint disable maximum-line-length-->
| CVAT | Azure |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Display name** | Preferred display name for your storage. |
| **Description** | (Optional) Add description of storage. |
| **Provider** | From drop-down list select **Azure Blob Container**. |
| **Container name`** | Name of the cloud storage container. |
| CVAT | Azure |
| ----------------------- | ----- |
| **Display name** | Preferred display name for your storage. |
| **Description** | (Optional) Add description of storage. |
| **Provider** | From drop-down list select **Azure Blob Container**. |
| **Container name`** | Name of the cloud storage container. |
| **Authentication type** | Depends on the container setup. <br>**[Account name and SAS token](https://docs.microsoft.com/en-us/azure/cognitive-services/translator/document-translation/create-sas-tokens?tabs=blobs)**: <ul><li>**Account name** enter storage account name. <li>**SAS token** is located in the **Shared access signature** section of your [Storage account](#sas-token).</ul>. **[Anonymous access](https://docs.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-configure?tabs=portal)**: for anonymous access **Allow enabling public access on containers** must be enabled. |
| **Prefix** | (Optional) Used to filter data from the bucket. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| **Manifests** | (Optional) Select **+ Add manifest** and enter the name of the manifest file with an extension. For example: `manifest.jsonl`. |
| **Prefix** | (Optional) Used to filter data from the bucket. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| **Manifests** | (Optional) Select **+ Add manifest** and enter the name of the manifest file with an extension. For example: `manifest.jsonl`. |
<!--lint enable maximum-line-length-->
@@ -138,8 +138,8 @@ To add an attribute:
![Attributes](/images/attributes_01.png)
2. In the **Name** field, enter the attribute name.
3. In the drop-down menu, select the way to display the attribute in the **Objects menu**:
1. In the **Name** field, enter the attribute name.
1. In the drop-down menu, select the way to display the attribute in the **Objects menu**:
- `Select` enables a drop-down list, from which you can select an attribute. <br>If in
the **Attribute value** field you add `__undefined__`,
@@ -253,21 +253,21 @@ The following parameters are available:
<!--lint disable maximum-line-length-->
| Element | Description |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Sorting method | **Note:** Does not work for the video data. <br><br>Several methods to sort the data. <br> For example, the sequence `2.jpeg`, `10.jpeg`, `1.jpeg` after sorting will be: <br><br><li> **Lexicographica**: `1.jpeg`, `10.jpeg`, `2.jpeg` <li> **Natural**: `1.jpeg`, `2.jpeg`, `10.jpeg` <li> **Predefined**: `2.jpeg`, `10.jpeg`, `1.jpeg` <li> **Random** uploads data in random order. |
| Prefer zip chunks | Use this parameter to divide your video or image dataset for annotation into short video clips a zip file of frames. <br>Zip files are larger but do not require decoding on the client side, and video clips are smaller but require decoding. <br>It is recommended to turn off this parameter for video tasks to reduce traffic between the client side and the server. |
| Use cache | Select the checkbox to enable _on-the-fly_ data processing to reduce task creation time and store data in a cache with a policy of <br>evicting less popular items. <br><br>For more information, see {{< ilink "/docs/manual/advanced/data-on-fly" "Data preparation on the fly" >}}. |
| Image quality | CVAT has two types of data: original quality and compressed. Original quality images are used for dataset export<br> and automatic annotation. Compressed images are used only for annotations to reduce traffic between the server <br>and client side. <br> It is recommended to adjust the compression level only if the images contain small objects that are not <br>visible in the original quality. <br> Values range from `5` (highly compressed images) to `100` (not compressed). |
| Element | Description |
| ----------------- | ----------- |
| Sorting method | **Note:** Does not work for the video data. <br><br>Several methods to sort the data. <br> For example, the sequence `2.jpeg`, `10.jpeg`, `1.jpeg` after sorting will be: <br><br><li> **Lexicographica**: `1.jpeg`, `10.jpeg`, `2.jpeg` <li> **Natural**: `1.jpeg`, `2.jpeg`, `10.jpeg` <li> **Predefined**: `2.jpeg`, `10.jpeg`, `1.jpeg` <li> **Random** uploads data in random order. |
| Prefer zip chunks | Use this parameter to divide your video or image dataset for annotation into short video clips a zip file of frames. <br>Zip files are larger but do not require decoding on the client side, and video clips are smaller but require decoding. <br>It is recommended to turn off this parameter for video tasks to reduce traffic between the client side and the server. |
| Use cache | Select the checkbox to enable _on-the-fly_ data processing to reduce task creation time and store data in a cache with a policy of <br>evicting less popular items. <br><br>For more information, see {{< ilink "/docs/manual/advanced/data-on-fly" "Data preparation on the fly" >}}. |
| Image quality | CVAT has two types of data: original quality and compressed. Original quality images are used for dataset export<br> and automatic annotation. Compressed images are used only for annotations to reduce traffic between the server <br>and client side. <br> It is recommended to adjust the compression level only if the images contain small objects that are not <br>visible in the original quality. <br> Values range from `5` (highly compressed images) to `100` (not compressed). |
| Overlap size | Use this parameter to create overlapped segments, making tracking continuous from one segment to another. <br><br>**Note** that this functionality only works for bounding boxes. <br><br>This parameter has the following options: <br><br>**Interpolation task** (video sequence). If you annotate with a bounding box on two adjacent segments, they will be<br> merged into a single bounding box. In case the overlap is zero or the bounding box is inaccurate (not enclosing the object <br>properly, misaligned or distorted) on the adjacent segments, it may be difficult to accurately interpolate the object's <br>movement between the segments. As a result, multiple tracks will be created for the same object. <br><br>**Annotation task** (independent images). If an object exists on overlapped segments with overlap greater than zero, <br>and the annotation of these segments is done properly, then the segments will be automatically merged into a single<br> object. If the overlap is zero or the annotation is inaccurate (not enclosing the object properly, misaligned, distorted) on the<br> adjacent segments, it may be difficult to accurately track the object. As a result, multiple bounding boxes will be <br>created for the same object. <br><br>If the annotations on different segments (on overlapped frames) are very different, you will have two shapes <br>for the same object. <br><br>To avoid this, accurately annotate the object on the first segment and the same object on the second segment to create a track <br>between two annotations. |
| Segment size | Use this parameter to divide a dataset into smaller parts. For example, if you want to share a dataset among multiple<br> annotators, you can split it into smaller sections and assign each section to a separate job. <br>This allows annotators to work on the same dataset concurrently. |
| Start frame | Defines the first frame of the video. |
| Stop frame | Defines the last frame of the video. |
| Frame step | Use this parameter to filter video frames or images in a dataset. Specify frame step value to include only <br>certain frames or images in the dataset. <br>For example, if the frame step value is `25`, the dataset will include every 25th frame or image. If a video <br>has `100` frames, setting the frame step to `25` will include only frames `1`, `26`, `51`, `76`, and `100` in the dataset. <br>This can be useful for reducing the size of the dataset, or for focusing on specific frames or images<br>of particular interest. |
| Chunk size | Defines amount of frames to be packed in a chunk when send from client to server. <br>The server defines automatically if the chunk is empty. <br>Recommended values: <li> 1080p or less: 36 <li> 2k or less: 8 <li>16 - 4k or less: 4 <li>8 - More: 1 - 4 |
| Issue tracker | Use this parameter to specify the issue tracker URL. |
| Source storage | Specify the source storage for importing resources like annotations and backups. <br>If the task was assigned to the project, use the **Use project source storage** toggle to determine whether to <br>use project values or specify new ones. |
| Target storage | Specify the target storage (local or cloud) for exporting resources like annotations and backups. <br>If the task is created in the project, use the **Use project target storage** toggle to determine whether to<br> use project values or specify new ones. |
| Segment size | Use this parameter to divide a dataset into smaller parts. For example, if you want to share a dataset among multiple<br> annotators, you can split it into smaller sections and assign each section to a separate job. <br>This allows annotators to work on the same dataset concurrently. |
| Start frame | Defines the first frame of the video. |
| Stop frame | Defines the last frame of the video. |
| Frame step | Use this parameter to filter video frames or images in a dataset. Specify frame step value to include only <br>certain frames or images in the dataset. <br>For example, if the frame step value is `25`, the dataset will include every 25th frame or image. If a video <br>has `100` frames, setting the frame step to `25` will include only frames `1`, `26`, `51`, `76`, and `100` in the dataset. <br>This can be useful for reducing the size of the dataset, or for focusing on specific frames or images<br>of particular interest. |
| Chunk size | Defines amount of frames to be packed in a chunk when send from client to server. <br>The server defines automatically if the chunk is empty. <br>Recommended values: <li> 1080p or less: 36 <li> 2k or less: 8 <li>16 - 4k or less: 4 <li>8 - More: 1 - 4 |
| Issue tracker | Use this parameter to specify the issue tracker URL. |
| Source storage | Specify the source storage for importing resources like annotations and backups. <br>If the task was assigned to the project, use the **Use project source storage** toggle to determine whether to <br>use project values or specify new ones. |
| Target storage | Specify the target storage (local or cloud) for exporting resources like annotations and backups. <br>If the task is created in the project, use the **Use project target storage** toggle to determine whether to<br> use project values or specify new ones. |
<!--lint enable maximum-line-length-->
@@ -58,19 +58,19 @@ Next, specify the parameters in the task configurator:
A step-by-step example for creating the multiple tasks:
1. In the **Name** field, enter the `Create_multitask-{{index}}-{{file_name}}`.
2. Add labels.
3. Select files. <br>In case there are more than four files,
1. Add labels.
1. Select files. <br>In case there are more than four files,
only the total number of selected files will be displayed:
![](/images/create_multi_tasks_3.png)
4. Select **Submit `N` tasks**
1. Select **Submit `N` tasks**
![](/images/create_multi_tasks_4.png)
5. You will see a progress bar that shows the progress of the tasks being created:
1. You will see a progress bar that shows the progress of the tasks being created:
![](/images/create_multi_tasks_5.png)
6. Select **Ok**.
1. Select **Ok**.
![](/images/create_multi_tasks_6.png)
@@ -30,7 +30,7 @@ On the **Requests** page, requests are displayed as cards. Each card contains th
The following statuses are used to indicate the state of each request:
| Status | Description |
| --------------| --------------------------------------------------------------------------- |
| ------------- | --------------------------------------------------------------------------- |
| `In Progress` | The requested job is being executed. The progress percentage is shown. |
| `Queued` | The requested job is waiting to be picked up by a worker. |
| `Finished` | The requested job is finished. Downloading the result is available. |
@@ -24,7 +24,7 @@ In the **Player** tab, you can:
- `Smooth image` checkbox — smooth image when zoom-in it.
| _smoothed_ | _pixelized_ |
|---------------------------|----------------------------|
| :-----------------------: | :------------------------: |
| ![](/images/smoothed.jpg) | ![](/images/pixelized.jpg) |
## Workspace
+2168 -1297
View File
File diff suppressed because it is too large Load Diff