未验证 提交 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,32 +11,17 @@ 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
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
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
else
echo "No files with the \"md\" extension found"
fi
- name: Upload artifacts
if: failure()
......
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'],
......
此差异已折叠。
......@@ -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
......
......@@ -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.
......@@ -12,7 +12,8 @@ You can use linear interpolation for points to annotate a moving object:
![](/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)
......
......@@ -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)
......
......@@ -14,7 +14,7 @@ Before starting, you need to select `Polygon` on the controls sidebar and choose
by dragging the mouse on the screen while holding `Shift`.
| 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
......
......@@ -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.
......
......@@ -27,7 +27,9 @@ 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.
......
......@@ -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)|
---
......
......@@ -3,6 +3,7 @@ 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.
......
......@@ -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.
......@@ -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,8 +3,9 @@ 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
`Synchronize` on the task page. Notice: this feature
works only if a git repository was specified when the task was created.
![](/images/image106.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.
......
......@@ -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.
先完成此消息的编辑!
想要评论请 注册