diff --git a/cvat/apps/documentation/static/documentation/images/gif005.gif b/cvat/apps/documentation/static/documentation/images/gif005.gif new file mode 100644 index 00000000000..0f28ab62484 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/gif005.gif differ diff --git a/cvat/apps/documentation/static/documentation/images/image001.jpg b/cvat/apps/documentation/static/documentation/images/image001.jpg index c2b0195aa1a..0fd9e9e68f2 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image001.jpg and b/cvat/apps/documentation/static/documentation/images/image001.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image002.jpg b/cvat/apps/documentation/static/documentation/images/image002.jpg index e3bf1bf4d7c..7c4eb8c314c 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image002.jpg and b/cvat/apps/documentation/static/documentation/images/image002.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image003.jpg b/cvat/apps/documentation/static/documentation/images/image003.jpg index 4a616ece072..b4f8679cb90 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image003.jpg and b/cvat/apps/documentation/static/documentation/images/image003.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image004.jpg b/cvat/apps/documentation/static/documentation/images/image004.jpg index 08396ef9958..fd0410675f4 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image004.jpg and b/cvat/apps/documentation/static/documentation/images/image004.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image005.jpg b/cvat/apps/documentation/static/documentation/images/image005.jpg index a336d1daeec..a6bfd6b3282 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image005.jpg and b/cvat/apps/documentation/static/documentation/images/image005.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image006.jpg b/cvat/apps/documentation/static/documentation/images/image006.jpg index aef5fbbe1fe..ce6e9dd2d3a 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image006.jpg and b/cvat/apps/documentation/static/documentation/images/image006.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image007.jpg b/cvat/apps/documentation/static/documentation/images/image007.jpg index 5f08315dd40..0a4be80ab7d 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image007.jpg and b/cvat/apps/documentation/static/documentation/images/image007.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image008.jpg b/cvat/apps/documentation/static/documentation/images/image008.jpg index d56750ade71..3dc9171c762 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image008.jpg and b/cvat/apps/documentation/static/documentation/images/image008.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image009.jpg b/cvat/apps/documentation/static/documentation/images/image009.jpg index 939d215b531..c8ecbb567de 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image009.jpg and b/cvat/apps/documentation/static/documentation/images/image009.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image010.jpg b/cvat/apps/documentation/static/documentation/images/image010.jpg index dc1880e3f09..36b32705679 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image010.jpg and b/cvat/apps/documentation/static/documentation/images/image010.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image011.jpg b/cvat/apps/documentation/static/documentation/images/image011.jpg index 258b634dc6e..f7e3210708d 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image011.jpg and b/cvat/apps/documentation/static/documentation/images/image011.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image012.jpg b/cvat/apps/documentation/static/documentation/images/image012.jpg index 6255b92ff84..8f1ed7ebe81 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image012.jpg and b/cvat/apps/documentation/static/documentation/images/image012.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image013.jpg b/cvat/apps/documentation/static/documentation/images/image013.jpg index 6338f68035c..121eaf30698 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image013.jpg and b/cvat/apps/documentation/static/documentation/images/image013.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image014.jpg b/cvat/apps/documentation/static/documentation/images/image014.jpg index 76692394427..f2610f30d85 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image014.jpg and b/cvat/apps/documentation/static/documentation/images/image014.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image015.jpg b/cvat/apps/documentation/static/documentation/images/image015.jpg index 7c7209a8676..bc8cf7f6478 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image015.jpg and b/cvat/apps/documentation/static/documentation/images/image015.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image016.jpg b/cvat/apps/documentation/static/documentation/images/image016.jpg index 7193507a2fd..d2ab2f0d513 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image016.jpg and b/cvat/apps/documentation/static/documentation/images/image016.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image017.jpg b/cvat/apps/documentation/static/documentation/images/image017.jpg index 5380ee88953..17fda00ac03 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image017.jpg and b/cvat/apps/documentation/static/documentation/images/image017.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image018.jpg b/cvat/apps/documentation/static/documentation/images/image018.jpg index 6d66f590677..2c946329d24 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image018.jpg and b/cvat/apps/documentation/static/documentation/images/image018.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image019.jpg b/cvat/apps/documentation/static/documentation/images/image019.jpg index 332e954029c..6d95ec2effd 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image019.jpg and b/cvat/apps/documentation/static/documentation/images/image019.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image020.jpg b/cvat/apps/documentation/static/documentation/images/image020.jpg index 5d45a4aa6c4..f1bb9611418 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image020.jpg and b/cvat/apps/documentation/static/documentation/images/image020.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image021.jpg b/cvat/apps/documentation/static/documentation/images/image021.jpg index 8e33df15a72..e933811b2cd 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image021.jpg and b/cvat/apps/documentation/static/documentation/images/image021.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image022.jpg b/cvat/apps/documentation/static/documentation/images/image022.jpg index 8622ba3aaf3..0458bd28dc1 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image022.jpg and b/cvat/apps/documentation/static/documentation/images/image022.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image023.jpg b/cvat/apps/documentation/static/documentation/images/image023.jpg index d0cd8286c28..34932ef1cf6 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image023.jpg and b/cvat/apps/documentation/static/documentation/images/image023.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image024.jpg b/cvat/apps/documentation/static/documentation/images/image024.jpg index eb349b117b4..0f18950b951 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image024.jpg and b/cvat/apps/documentation/static/documentation/images/image024.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image025.jpg b/cvat/apps/documentation/static/documentation/images/image025.jpg index 436b85ecf0c..c2a1699b88a 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image025.jpg and b/cvat/apps/documentation/static/documentation/images/image025.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image026.jpg b/cvat/apps/documentation/static/documentation/images/image026.jpg index eb18f905c0c..fef715ad5a4 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image026.jpg and b/cvat/apps/documentation/static/documentation/images/image026.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image027.jpg b/cvat/apps/documentation/static/documentation/images/image027.jpg index 782f9ba0d11..b44aca0fc04 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image027.jpg and b/cvat/apps/documentation/static/documentation/images/image027.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image028.jpg b/cvat/apps/documentation/static/documentation/images/image028.jpg index 267bc4e67eb..7b83355ed47 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image028.jpg and b/cvat/apps/documentation/static/documentation/images/image028.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image029.jpg b/cvat/apps/documentation/static/documentation/images/image029.jpg new file mode 100644 index 00000000000..6a0c8398e31 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image029.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image030.jpg b/cvat/apps/documentation/static/documentation/images/image030.jpg index 7c2eadb436c..215dd051a0e 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image030.jpg and b/cvat/apps/documentation/static/documentation/images/image030.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image031.jpg b/cvat/apps/documentation/static/documentation/images/image031.jpg index b88942837b9..140810fd91d 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image031.jpg and b/cvat/apps/documentation/static/documentation/images/image031.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image032.jpg b/cvat/apps/documentation/static/documentation/images/image032.jpg index 6da4b28e511..c5d34432c8e 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image032.jpg and b/cvat/apps/documentation/static/documentation/images/image032.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image033.jpg b/cvat/apps/documentation/static/documentation/images/image033.jpg index 3ac7ef5aed9..c689bafa6b7 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image033.jpg and b/cvat/apps/documentation/static/documentation/images/image033.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image034.jpg b/cvat/apps/documentation/static/documentation/images/image034.jpg index 08250372e04..51881406537 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image034.jpg and b/cvat/apps/documentation/static/documentation/images/image034.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image035.jpg b/cvat/apps/documentation/static/documentation/images/image035.jpg index 4ee8614f883..b206f7cdb96 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image035.jpg and b/cvat/apps/documentation/static/documentation/images/image035.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image036.jpg b/cvat/apps/documentation/static/documentation/images/image036.jpg index 3c75f62bfd7..e0a9a315cc3 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image036.jpg and b/cvat/apps/documentation/static/documentation/images/image036.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image037.jpg b/cvat/apps/documentation/static/documentation/images/image037.jpg index b412638d44a..3dd5c1d032f 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image037.jpg and b/cvat/apps/documentation/static/documentation/images/image037.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image038.jpg b/cvat/apps/documentation/static/documentation/images/image038.jpg index 8e0cafc48d2..fe0356b576e 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image038.jpg and b/cvat/apps/documentation/static/documentation/images/image038.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image039.jpg b/cvat/apps/documentation/static/documentation/images/image039.jpg index b745ca51cd9..29d6a05fe8c 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image039.jpg and b/cvat/apps/documentation/static/documentation/images/image039.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image040.jpg b/cvat/apps/documentation/static/documentation/images/image040.jpg index 8ab270be4a7..f5a81f67506 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image040.jpg and b/cvat/apps/documentation/static/documentation/images/image040.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image041.jpg b/cvat/apps/documentation/static/documentation/images/image041.jpg index 1a9b277c5e6..71c307e3437 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image041.jpg and b/cvat/apps/documentation/static/documentation/images/image041.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image042.jpg b/cvat/apps/documentation/static/documentation/images/image042.jpg index b307ba86736..a4283154ad0 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image042.jpg and b/cvat/apps/documentation/static/documentation/images/image042.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image043.jpg b/cvat/apps/documentation/static/documentation/images/image043.jpg index ac69834359a..0364809801c 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image043.jpg and b/cvat/apps/documentation/static/documentation/images/image043.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image044.jpg b/cvat/apps/documentation/static/documentation/images/image044.jpg index ab26d4cd3cf..ab26c368c51 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image044.jpg and b/cvat/apps/documentation/static/documentation/images/image044.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image045.jpg b/cvat/apps/documentation/static/documentation/images/image045.jpg index d28fb049afc..eae038c2013 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image045.jpg and b/cvat/apps/documentation/static/documentation/images/image045.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image046.jpg b/cvat/apps/documentation/static/documentation/images/image046.jpg index 518f7633abc..0b69ac8636a 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image046.jpg and b/cvat/apps/documentation/static/documentation/images/image046.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image047.jpg b/cvat/apps/documentation/static/documentation/images/image047.jpg index d8ac3c0ad90..2a3a734a002 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image047.jpg and b/cvat/apps/documentation/static/documentation/images/image047.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image048.jpg b/cvat/apps/documentation/static/documentation/images/image048.jpg index 910a2838684..1f9497b5e40 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image048.jpg and b/cvat/apps/documentation/static/documentation/images/image048.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image052.jpg b/cvat/apps/documentation/static/documentation/images/image052.jpg index df7759449c5..bd69517760e 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image052.jpg and b/cvat/apps/documentation/static/documentation/images/image052.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image053.jpg b/cvat/apps/documentation/static/documentation/images/image053.jpg index cdde5afc3b2..b555ed24979 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image053.jpg and b/cvat/apps/documentation/static/documentation/images/image053.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image054.jpg b/cvat/apps/documentation/static/documentation/images/image054.jpg index 7414eea8ef5..2b8694f8c75 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image054.jpg and b/cvat/apps/documentation/static/documentation/images/image054.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image055.jpg b/cvat/apps/documentation/static/documentation/images/image055.jpg index 5a63342e21a..c132b8dc3e2 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image055.jpg and b/cvat/apps/documentation/static/documentation/images/image055.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image056.jpg b/cvat/apps/documentation/static/documentation/images/image056.jpg index c10807059d3..e9da7b44e82 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image056.jpg and b/cvat/apps/documentation/static/documentation/images/image056.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image057.jpg b/cvat/apps/documentation/static/documentation/images/image057.jpg index 81485c54ea9..cd66b47c3c6 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image057.jpg and b/cvat/apps/documentation/static/documentation/images/image057.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image058.jpg b/cvat/apps/documentation/static/documentation/images/image058.jpg index 13c3ef098ac..e07bc83e9c6 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image058.jpg and b/cvat/apps/documentation/static/documentation/images/image058.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image059.jpg b/cvat/apps/documentation/static/documentation/images/image059.jpg index 0aa7314bee8..c2afc988c60 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image059.jpg and b/cvat/apps/documentation/static/documentation/images/image059.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image060.jpg b/cvat/apps/documentation/static/documentation/images/image060.jpg index 936dde08183..14098aadb5b 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image060.jpg and b/cvat/apps/documentation/static/documentation/images/image060.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image061.jpg b/cvat/apps/documentation/static/documentation/images/image061.jpg index a1448d81f87..2ffc9a5d574 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image061.jpg and b/cvat/apps/documentation/static/documentation/images/image061.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image062.jpg b/cvat/apps/documentation/static/documentation/images/image062.jpg index cbe16f39800..226c116079a 100644 Binary files a/cvat/apps/documentation/static/documentation/images/image062.jpg and b/cvat/apps/documentation/static/documentation/images/image062.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image063.jpg b/cvat/apps/documentation/static/documentation/images/image063.jpg new file mode 100644 index 00000000000..dfbd820c7a5 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image063.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image064.jpg b/cvat/apps/documentation/static/documentation/images/image064.jpg new file mode 100644 index 00000000000..db531f5ba2d Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image064.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image065.jpg b/cvat/apps/documentation/static/documentation/images/image065.jpg new file mode 100644 index 00000000000..ebe2607bdcb Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image065.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image066.jpg b/cvat/apps/documentation/static/documentation/images/image066.jpg new file mode 100644 index 00000000000..c508ecaa0a4 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image066.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image067.jpg b/cvat/apps/documentation/static/documentation/images/image067.jpg new file mode 100644 index 00000000000..c0d970477a0 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image067.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image068.jpg b/cvat/apps/documentation/static/documentation/images/image068.jpg new file mode 100644 index 00000000000..5812efb7f45 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image068.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image069.jpg b/cvat/apps/documentation/static/documentation/images/image069.jpg new file mode 100644 index 00000000000..df457ac237e Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image069.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image070.jpg b/cvat/apps/documentation/static/documentation/images/image070.jpg new file mode 100644 index 00000000000..57670465bcc Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image070.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image071.jpg b/cvat/apps/documentation/static/documentation/images/image071.jpg new file mode 100644 index 00000000000..da295a3ade9 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image071.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image072.jpg b/cvat/apps/documentation/static/documentation/images/image072.jpg new file mode 100644 index 00000000000..f30c9b83643 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image072.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image073.jpg b/cvat/apps/documentation/static/documentation/images/image073.jpg new file mode 100644 index 00000000000..8f04f801389 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image073.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image074.jpg b/cvat/apps/documentation/static/documentation/images/image074.jpg new file mode 100644 index 00000000000..1c84a747564 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image074.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image075.jpg b/cvat/apps/documentation/static/documentation/images/image075.jpg new file mode 100644 index 00000000000..ceb485486f1 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image075.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image076.jpg b/cvat/apps/documentation/static/documentation/images/image076.jpg new file mode 100644 index 00000000000..29dc91fb309 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image076.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image077.jpg b/cvat/apps/documentation/static/documentation/images/image077.jpg new file mode 100644 index 00000000000..b4b4544a217 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image077.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image078.jpg b/cvat/apps/documentation/static/documentation/images/image078.jpg new file mode 100644 index 00000000000..6e09ffeb8c5 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image078.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image080.jpg b/cvat/apps/documentation/static/documentation/images/image080.jpg new file mode 100644 index 00000000000..ca9f783a0de Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image080.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image081.jpg b/cvat/apps/documentation/static/documentation/images/image081.jpg new file mode 100644 index 00000000000..16d804138f2 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image081.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image082.jpg b/cvat/apps/documentation/static/documentation/images/image082.jpg new file mode 100644 index 00000000000..fe31d6940ef Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image082.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image083.jpg b/cvat/apps/documentation/static/documentation/images/image083.jpg new file mode 100644 index 00000000000..4c8de5fd005 Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image083.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image084.jpg b/cvat/apps/documentation/static/documentation/images/image084.jpg new file mode 100644 index 00000000000..b74ab2b71cd Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image084.jpg differ diff --git a/cvat/apps/documentation/static/documentation/images/image085.jpg b/cvat/apps/documentation/static/documentation/images/image085.jpg new file mode 100644 index 00000000000..2254f3a850e Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image085.jpg differ diff --git a/cvat/apps/documentation/user_guide.md b/cvat/apps/documentation/user_guide.md index 33deb812e7d..5a3105e62e4 100644 --- a/cvat/apps/documentation/user_guide.md +++ b/cvat/apps/documentation/user_guide.md @@ -1,7 +1,5 @@ # User's guide -[toc] - Computer Vision Annotation Tool (CVAT) is a web-based tool which helps to annotate video and images for Computer Vision algorithms. It was inspired by [Vatic](http://carlvondrick.com/vatic/) free, online, interactive video annotation tool. CVAT has many powerful features: __interpolation of bounding boxes between key frames, automatic annotation using TensorFlow OD API, 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. ## Getting started @@ -30,7 +28,7 @@ There you can: ![](static/documentation/images/image004.jpg) -2. Specify mandatory parameters of the task. You have to fill ``Name``, ``Labels`` and ``Select Files`` at least. +2. Specify mandatory parameters of the task. You have to fill ``Name``, ``Labels`` and press ``Select Files`` at least. ![](static/documentation/images/image005.jpg) @@ -52,16 +50,20 @@ There you can: Default value for an attribute is the first value after "``:``". - For ``select`` and ``radio`` input types the special value is available: ``__undefined__``. Specify this value first if an attribute should be annotated explicity. + For ``select`` and ``radio`` input types the special value is available: ``__undefined__``. Specify this value first if an attribute should be annotated explicitly. __Bug Tracker__. Specify full URL your bug tracker if you have it. __Source__. To create huge tasks please use ``shared`` server directory (choose ``Share`` option in the dialog). + __Flip images__. All selected files will be turned around 180. + + __Z-Order__. Defines the order on drawn polygons. Check the box for enable layered dislaying. + __Overlap Size__. Use this option to make overlapped segments. The option makes tracks continuous from one segment into another. Use it for interpolation mode. - __Segment size__. Use this option to divide huge dataset on several segments. + __Segment size__. Use this option to divide huge dataset by a few less size segments. __Image Quality__. Use this option to specify quality of uploaded images. The option makes it faster to load high-quality datasets. Use the value from ``1`` (completely compressed images) to ``95`` (almost not compressed images). @@ -83,24 +85,40 @@ There you can: 3. An image can be moved/shifted by holding left mouse button inside some area without annotated objects. If ``Shift`` key is pressed then all annotated objects are ignored otherwise a highlighted bounding box will be moved instead of the image itself. Usually the functionality is used together with zoom to precisely locate an object of interest. +### Types of Shapes (basic) +There are four shapes you can annotate your images with: +- ``box`` +- ``polygon`` +- ``polyline`` +- ``points`` + +And here how they all look like: + +![](static/documentation/images/image038.jpg) ![](static/documentation/images/image033.jpg) + +![](static/documentation/images/image009.jpg) ![](static/documentation/images/image010.jpg) + ### Annotation mode (basics) Usage examples: - Create new annotations for a set of images. - Add/modify/delete objects for existing annotations. -1. Before start need to be sure that ``Annotation`` is selected. +1. Before start need to check that ``Annotation`` is selected: - ![](static/documentation/images/image009.jpg) + ![](static/documentation/images/image082.jpg) ![](static/documentation/images/image081.jpg) 2. Create a new annotation: - - Choose an object's ``label``. When you created an annotation task you had to specify one or several labels with attributes. - ![](static/documentation/images/image010.jpg) + - Choose right ``Shape`` (e.g. box) and ``Label`` (was specified by you while creating the task) beforehand: - - Create a bounding box by clicking on ``Create Track`` button or ``N`` shortcut. Choose left top and right bottom points. Your first bounding box is ready! It is possible to adjust boundaries and location of the bounding box using mouse. + ![](static/documentation/images/image080.jpg) ![](static/documentation/images/image083.jpg) + + - Create a bounding box by clicking on ``Create Shape`` button or ``N`` shortcut. Choose opposite points. Your first bounding box is ready! ![](static/documentation/images/image011.jpg) + - It is possible to adjust boundaries and location of the bounding box using mouse. In the top right corner size of the box is shown. You can also undo/redo your actions by using ``Ctrl+Z`` / ``Shift+Ctrl+Z Ctrl+Y``. + 3. In the list of objects you can see the labeled car. In the side panel you can perform basic operations under the object. ![](static/documentation/images/image012.jpg) @@ -139,7 +157,7 @@ Usage examples: ![](static/documentation/images/image018.jpg) -4. When the annotated object disappears or becomes too small, you need to finish the track. To do that you need to choose ``Outsided Property``. +4. When the annotated object disappears or becomes too small, you need to finish the track. To do that you need to choose ``Outside Property``. ![](static/documentation/images/image019.jpg) @@ -168,30 +186,20 @@ Usage examples: ![](static/documentation/images/gif003.gif) ### Attribute Annotation mode (basics) -Usage examples: -- Edit attributes using keyboard with fast navigation between objects and frames. -1. To enter into ``Attribute Annotation`` mode press ``Shift+Enter`` shortcut. After that it is possible to change attributes using keyboard. +- In this Mode you can edit attributes with fast navigation between objects and frames using keyboard. Press ``Shift+Enter`` shortcut to enter AAMode. After that it is possible to change attributes using keyboard. ![](static/documentation/images/image023.jpg) -2. The active attribute will be red. In this case it is ``Age``. - - ![](static/documentation/images/image024.jpg) - -3. Look at the bottom side panel to see all possible shortcuts to change the attribute. Press ``4`` key on your keyboard to assign ``adult`` value for the attribute. - - ![](static/documentation/images/image025.jpg) +- The active attribute will be red. In this case it is ``Gender``. Look at the bottom side panel to see all possible shortcuts to change the attribute. Press ``2`` key on your keyboard to assign ``female`` value for the attribute. -4. Press ``Up Arrow``/``Down Arrow`` keys on your keyboard to go to next attribute . + ![](static/documentation/images/image024.jpg) ![](static/documentation/images/image025.jpg) - ![](static/documentation/images/image026.jpg) +- Press ``Up Arrow``/``Down Arrow`` keys on your keyboard to go to next attribute. In this case after pressing ``Down Arrow`` you will be able to edit ``Age`` attribute. -5. In this case after pressing ``Down Arrow`` you will be able to edit ``Gender`` attribute. + ![](static/documentation/images/image026.jpg) ![](static/documentation/images/image027.jpg) - ![](static/documentation/images/image027.jpg) - -6. Use ``Right Arrow``/``Left Arrow`` keys to move on previous/next image. +- Use ``Right Arrow``/``Left Arrow`` keys to move on previous/next image with annotation. ### Downloading annotations @@ -201,8 +209,9 @@ Usage examples: ![](static/documentation/images/image028.jpg) -3. The annotation will be written into **.xml** file. To find the annotation file go to the directory where your browser saves downloaded files by default. For more information visit [XML annotation format](/documentation/xml_format.html) description. +3. The annotation will be written into **.xml** file. To find the annotation file go to the directory where your browser saves downloaded files by default. For more information visit [.xml format page](./documentation/xml_format.html). + ![](static/documentation/images/image029.jpg) ### Vocabulary @@ -212,39 +221,90 @@ Usage examples: | Bounding box |Tight bounding box| | ------------ |:----------------:| -| ![](static/documentation/images/image030.jpg) | ![](static/documentation/images/image031.jpg)| +| ![](static/documentation/images/image031.jpg) | ![](static/documentation/images/image030.jpg)| --- -**Label** is a type of an annotated object (e.g. person, car, face, etc) +**Label** is a type of an annotated object (e.g. person, car, face, etc.) ![](static/documentation/images/image032.jpg) --- -**Attribute** is a property of an annotated object (e.g. color, model, quality, etc). There are two types of attributes: +**Attribute** is a property of an annotated object (e.g. color, model, quality, etc.). There are two types of attributes: + +- __Unique__: immutable and isn't changed from frame to frame (e.g age, gender, color, etc.) -- __Unique__: immutable and isn't changed from frame to frame (e.g age, gender, color, etc) -- __Temporary__: mutable and can be changed on any frame (e.g. quality, pose, truncated, etc) + ![](static/documentation/images/image073.jpg) - ![](static/documentation/images/image033.jpg) +- __Temporary__: mutable and can be changed on any frame (e.g. quality, pose, truncated, etc.) + + ![](static/documentation/images/image072.jpg) --- -**Track** is a set of bounding boxes on different frames which corresponds to one object. Tracks are created in ``Interpolation`` mode. +**Track** is a set of shapes on different frames which corresponds to one object. Tracks are created in ``Interpolation mode`` mode. ![](static/documentation/images/gif004.gif) --- -**Annotation** is a set of bounding boxes and tracks. There are several types of annotations: +**Annotation** is a set of shapes and tracks. There are several types of annotations: - *Manual* which is created by a person -- *Semi-automatic* which is created automatically but modified 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 ## Interface of the annotation tool +The tool is composed of: +- ``Workspace`` — where images are shown; +- ``Bottom panel`` (under workspace) — for navigation, filtering annotation and accessing tools' menu; +- ``Side Panel`` — contain two lists: of Objects (on the frame) and Labels (of Objects on the frame); +- ``Bottom Side Panel`` — for choosing types of/creating/merging/grouping annotation; + ![](static/documentation/images/image034.jpg) +There are also: +- ``Settings`` (F2) — contains different parameters which can be adjusted by the user needs + + +- ``Context menu`` — click right mouse button inside of a shape or at a point (only in poly-shapes) + +![](static/documentation/images/image070.jpg) ![](static/documentation/images/image071.jpg) + +--- +### Settings + +Click ``F2`` to access settings menu. + +![](static/documentation/images/image067.jpg) + +There is ``Player Settings`` which adjusting ``Workspace`` and ``Other Settings``. + +In ``Player Settings`` you can: + - Control step of ``C`` and ``V`` shortcuts + - Control speed of ``Space``/Play button + - Show every image in full or zoomed out like previous (reset by default) + + - Enable ``Grid`` when you don't need too small annotation. ``Grid`` can have different opacity, color and cells' size — use ``F2`` to tune settings. + + ![](static/documentation/images/image068.jpg) + + - Adjust ``Brightness``/``Contrast``/``Saturation`` of too expose or too dark images using ``F2`` — color settings (changes displaying and not the image itself). +Shortcuts: + - ``Shift+B``/``Alt+B`` for brightness + - ``Shift+C``/``Alt+C`` for contrast + - ``Shift+S``/``Alt+S`` for saturation + - ``F2`` —> ``Reset Color Settings`` for default image + + ![](static/documentation/images/image069.jpg) + +``Other Settings`` contain: + - ``Show All Interpolation Tracks`` checkbox — shows hidden object on side panel for every interpolated object (turned off by default) + - ``AAM Zoom Margin`` slider — defines margins for shape in attribute annotation mode + - ``Enable AutoSaving`` checkbox — turned off by default + - ``AutoSaving Interval (Min)`` input box — 15 minutes by default + - ``Propagate Frames`` input box — allow to choose on how many frames selected object will be copied in by ``Ctrl+B`` (50 by default) + --- -### Navigation by frames/images +### Bottom Panel ![](static/documentation/images/image035.jpg) @@ -254,102 +314,139 @@ Go to the first and latest frames. ![](static/documentation/images/image036.jpg) --- -Go to the next/previous frame with a predefined step. Shortcuts: ``v`` — step backward, ``c`` — step forward. By default the step is ``10``. +Go to the next/previous frame with a predefined step. Shortcuts: ``v`` — step backward, ``c`` — step forward. By default the step is ``10`` (change at ``Open Menu`` —> ``Settings`` —> ``Player Step``). ![](static/documentation/images/image037.jpg) -To change the predefined step go to settings (``Open Menu`` —> ``Settings``) and modify ``Player Step`` property. - -![](static/documentation/images/image038.jpg) - -![](static/documentation/images/image039.jpg) - --- Go to the next/previous frame with step equals to 1. Shortcuts: ``d`` — previous, ``f`` — next. ![](static/documentation/images/image040.jpg) --- -Play the sequence of frames or the set of images. Shortcut: ``Space``. +Play the sequence of frames or the set of images. Shortcut: ``Space`` (change at ``Open Menu`` —> ``Settings`` —> ``Player Speed``). ![](static/documentation/images/image041.jpg) -To adjust player speed go to settings (``Open Menu`` —> ``Settings``) and modify a value of ``Player Speed`` property. +--- +Go to specified frame. Press ``~`` to highlight element. -![](static/documentation/images/image042.jpg) +![](static/documentation/images/image060.jpg) -Go to specified frame. +--- +__Open Menu__ button -![](static/documentation/images/image060.jpg) +It is the main menu for the annotation tool. It can be used to download, upload and remove annotations. As well it shows statistics about the current annotation task. +![](static/documentation/images/image051.jpg) -### Bottom side panel +--- +__Filter__ input box -![](static/documentation/images/image043.jpg) +How to use filters is described in the Advanced guide (below). + +![](static/documentation/images/image059.jpg) -### Side panel (list of objects) +--- +__History / Undo-Redo panel__ -In the side panel you can see the list of available objects on the current frame. An example how the list can look like below: +Use shortcuts for undo/redo actions ``Ctrl+Z`` __/__ ``Ctrl+Shift+Z``/``Ctrl+Y`` + +![](static/documentation/images/image061.jpg) + + +### Side panel + +#### Objects +In the Side Panel you can see the list of available objects on the current frame. An example how the list can look like below: |Annotation mode|Interpolation mode| |--|--| |![](static/documentation/images/image044.jpg)|![](static/documentation/images/image045.jpg)| ---- +#### Labels +You also can see all labels that used on this frame and highlight them by clicking needed label. -A bounding box can be locked to prevent its modification or moving by an accident. Shortcut to lock an object: ``l``. +![](static/documentation/images/image062.jpg) -![](static/documentation/images/image046.jpg) --- -A bounding box can be removed. Shortcut: ``Delete``. A locked bounding box can be deleted using ``Shift+Delete`` shortcut. +__Objects' card__ + +A shape can be removed. Shortcut: ``Delete``. A locked shape can be deleted using ``Shift+Delete`` shortcut. ![](static/documentation/images/image047.jpg) --- -A bounding box can be **Occluded**. Shortcut: ``q``. Such bounding boxes have dashed boundaries. +A shape can be locked to prevent its modification or moving by an accident. Shortcut to lock an object: ``l``. + +![](static/documentation/images/image046.jpg) + +--- +A shape can be **Occluded**. Shortcut: ``q``. Such shapes have dashed boundaries. ![](static/documentation/images/image048.jpg) ![](static/documentation/images/image049.jpg) --- -The type of a bounding box can be changed by selecting __Label__ property. For instance, it can look like on the figure below: +You can copy and paste this object on this or other frame. ``Ctrl+C``/``Ctrl+V`` shortcuts works under mouse point. + +![](static/documentation/images/image052.jpg) + +--- +You can propagate this object on next X frames. ``Ctrl+B`` shortcut works under mouse point. ``F2`` for change on how many frames to propagate this object. + +![](static/documentation/images/image053.jpg) + +--- +You can change how this objects' annotation is displayed on this frame. It could be Hide, Shows Only Box, Shows Box and Title. ``H`` is for this object, ``T+H`` for all objects on this frame. + +![](static/documentation/images/image055.jpg) + +--- +The type of a shape can be changed by selecting __Label__ property. For instance, it can look like on the figure below: ![](static/documentation/images/image050.jpg) -To change a type of a bounding box using keyboard you need to press ``Shift+``. +To change a type of a highlighted shape using keyboard you need to press ``Shift+``. -### Open Menu -It is the main menu for the annotation tool. It can be used to download, upload and remove annotations. As well it shows statistics about the current annotation task. +### Bottom side panel -![](static/documentation/images/image051.jpg) +- ``Create Shape`` (``N``) — start/stop draw new shape mode +- ``Merge Shapes`` (``M``) — start/stop merge boxes mode +- ``Group Shapes`` (``G``) — start/stop grouping boxes mode +- ``Label Type`` — (e.g. Face, Person, Vehicle) +- ``Working Mode`` — Annotation or Interpolation modes. You can't interpolate Polygons/Polylines/Points, but you can propagate them using ``Ctrl+B`` or merge into a track +- ``Shape type`` — (e.g. Box, Polygon, Polyline, Points) +- ``Poly Shape Size`` — (optional) hard number of dots for creating Polygon/Polyline shapes -### Settings +![](static/documentation/images/image082.jpg) -The menu contains different parameters which can be adjust by the user needs. For example, ``Auto Saving Internal``, ``Player Step``, ``Player Speed``. +#### Fullscreen player mode -![](static/documentation/images/image052.jpg) +Go to ``Open Menu`` —> ``Fullscreen Player`` +Exit with ``F11`` or ``Ecs``. + +That is how it looks like. - - ``Brightness`` makes it appear that there is more or less light within the image. - - ``Contrast`` controls the difference between dark and light parts of the image - - ``Saturation`` takes away all color or enhance the color. +![](static/documentation/images/image043.jpg) ## Annotation mode (advanced) Basic operations in the mode was described above. -__occluded__ attribute is used if an object is occluded by another object or it isn't fully visible on the frame. Use ``q`` shortcut to set the property quickly. +__occluded__ attribute is used if an object is occluded by another object or it isn't fully visible on the frame. Use ``Q`` shortcut to set the property quickly. -![](static/documentation/images/image053.jpg) +![](static/documentation/images/image065.jpg) Example: both cars on the figure below should be labeled as __occluded__. ![](static/documentation/images/image054.jpg) -If a frame contains too many objects and it is difficult to annotate them due to many bounding boxes are placed mostly in the same place when it makes sense to lock them. Bounding boxes for locked objects are transparent and it is easy to annotate new objects. Also it will not be possible to change previously annotated objects by an accident. Shortcut: ``l``. +If a frame contains too many objects and it is difficult to annotate them due to many shapes are placed mostly in the same place when it makes sense to lock them. Shapes for locked objects are transparent and it is easy to annotate new objects. Also it will not be possible to change previously annotated objects by an accident. Shortcut: ``L``. -![](static/documentation/images/image055.jpg) +![](static/documentation/images/image066.jpg) ## Interpolation mode (advanced) @@ -373,31 +470,118 @@ It is possible to handle many objects on the same frame in the mode. ![](static/documentation/images/image058.jpg) -It is more convenient to annotate objects of the same type. For the purpose it is possible to specify a corresponding filter. For example, the following filter will hide all objects except pedestrians: ``//pedestrian``. +It is more convenient to annotate objects of the same type. For the purpose +it is possible to specify a corresponding filter. For example, the following +filter will hide all objects except pedestrians: ``pedestrian``. To navigate between objects (pedestrians in the case) use the following shortcuts: -- ``Tab`` - go to the next object -- ``Shift+Tab`` - go to the previous object. +- ``Tab`` — go to the next object +- ``Shift+Tab`` — go to the previous object. + +By default in the mode objects are zoomed in to full screen. Check +``Open Menu`` —> ``Settings`` —> ``AAM Zoom Margin`` for adjust that. + +## Annotation with polygons + +It is used for semantic / instance segmentation. + +Be sure ``Z-Order`` flag in ``Create task`` dialog is enabled if you want annotate polygons. Z-Order flag defines order of drawing. It is necessary to get right annotation mask without extra work (additional drawing of borders). Z-order can be changed by `+`/`-` which set maximum/minimum z-order respectively. + +![](static/documentation/images/image074.jpg) + +Before start need to be sure that ``Polygon`` is selected. + +![](static/documentation/images/image084.jpg) + +Click ``N`` for entering drawing mode. Now you can start your polygon. +You can zoom in/out (on mouse wheel scroll) and move (on mouse wheel press +and mouse move) while drawing. Click ``N`` again for completing the shape. +Also you can set fixed number of points in the field "Poly Shape Size", then +drawing will be stopped automatically. You can drag object after it was drawn +and fix a position of an individual points after finishing the object. You +can add/delete points after finishing. + +![](static/documentation/images/gif005.gif) + +Below you can see results with opacity and black stroke: + +![](static/documentation/images/image064.jpg) + +Also if you need annotate small objects, increase ``Image Quality`` to ``95`` in ``Create task`` dialog for annotators convenience. + +## Annotation with polylines + +It is used for road markup annotation etc. + +Before start need to be sure that ``Polyline`` is selected. -By default in the mode objects are zoomed. To disable the functionality uncheck the corresponding setting: ``Open Menu`` —> ``Settings`` —> ``Zoom boxes in Attribute Annotation Mode``. +![](static/documentation/images/image085.jpg) -By default other objects are hidden. To change the behaviour uncheck the corresponding setting: ``Open Menu`` —> ``Setting`` —> ``Hide Other in Attribute Annotation Mode``. +Click ``N`` for entering drawing mode. Now you can start your polyline. +You can zoom in/out (on mouse wheel scroll) and move (on mouse wheel press and +mouse move) while drawing. Click ``N`` again for completing the shape. Also +you can set fixed number of points in the field "Poly Shape Size", then drawing + will be stopped automatically. You can drag object after it was drawn and fix + a position of an individual points after finishing the object. You can + add/delete points after finishing. + +![](static/documentation/images/image039.jpg) + +## Annotation with points + +It is used for face landmarks annotation etc. + +Before start need to be sure that ``Points`` is selected. + +![](static/documentation/images/image042.jpg) + +Click ``N`` for entering drawing mode. Now you can start marking a needed area. +Click ``N`` again for finishing marking an area. Also you can set fixed number +of points in the field "Poly Shape Size", then drawing will be stopped +automatically. Points are automatically grouped — between individual start + and finish all points will be considered linked. You can zoom in/out (on mouse + wheel scroll) and move (on mouse wheel press and mouse move) while drawing. +You can drag object after it was drawn and fix a position of an individual +points after finishing the object. You can add/delete points after finishing. + +![](static/documentation/images/image063.jpg) + +## Shape grouping + +This feature allows to group several shapes. + +You may use ``Group Shapes`` button or shortcuts: + - ``G`` — switch group mode + - ``Alt+G`` — close group mode + - ``Shift+G`` — reset group for selected shapes + +You may select shapes by click or by area selection. + +Grouped shapes will have ``group_id`` filed in dumped annotation. + +Also you may switch color distribution from by instance (default) to by group. For it need switch ``Color By Group`` checkbox. + +Shapes which haven't ``group_id`` will be highlighted with white color. + +![](static/documentation/images/image078.jpg) + +![](static/documentation/images/image077.jpg) ## Filter -![](static/documentation/images/image059.jpg) +![](static/documentation/images/image076.jpg) There are several reasons to use the feature: -1. When use a filter objects which don't correspond to the filter will be hidden. Use ``Settings`` —> ``Hide Filtered Tracks`` or ``K`` shortcut if you want to change the behaviour. -2. Fast navigation between frames which have an object of interest. Use ``Left Arrow/Right Arrow`` keys for the purpose. If the filter is empty the mentioned arrows will go to previous/next frames. +1. When use a filter objects which don't correspond to the filter will be hidden. +2. Fast navigation between frames which have an object of interest. Use ``Left Arrow/Right Arrow`` keys for the purpose. If the filter is empty the mentioned arrows will go to previous/next frames which contain any objects. To use the functionality it is enough to specify a value inside ``Filter`` text box and defocus the text box (for example, click on the image). After that the filter will be applied. --- -In a trivial case a correct filter should correspond to the template: ``//label[prop operator "value"]`` +In a trivial case a correct filter should correspond to the template: ``label[prop operator "value"]`` -``label`` is a type of an object (e.g _person, car, face_, etc). If the type isn't important you can use ``*``. +``label`` is a type of an object (e.g _person, car, face_, etc.). If the type isn't important you can use ``*``. ``prop`` is a property which should be filtered. The following items are available: @@ -417,13 +601,13 @@ In a trivial case a correct filter should correspond to the template: ``//label[ Example | Description -------------------------------|------------- -``//face`` | all faces -``//*[id=4]`` | object with id #4 -``//*[type="annotation"]`` | *annotation* objects only -``//car[occluded="true"]`` | cars with *occluded* property -``//*[lock!="true"]`` | all unlocked objects -``//car[attr/parked="true"]`` | parked cars -``//*[attr/*="__undefined__"]``| any objects with ``__undefined__`` value of an attribute +``face`` | all faces +``*[id=4]`` | object with id #4 +``*[type="annotation"]`` | *annotation* objects only +``car[occluded="true"]`` | cars with *occluded* property +``*[lock!="true"]`` | all unlocked objects +``car[attr/parked="true"]`` | parked cars +``*[attr/*="__undefined__"]``| any objects with ``__undefined__`` value of an attribute --- @@ -431,47 +615,55 @@ The functionality allows to create more complex conditions. Several filters can Example | Description --------------------------------------------------------|------------- -``//person[attr/age>="25" and attr/age<="35"]`` | people with age between 25 and 35. -``//face[attr/glass="sunglass" or attr/glass="no"]`` | faces with sunglasses or without glasses at all. -```//person[attr/race="asian"] | //car[attr/model="bmw" or attr/model="mazda"]``` | asian persons or bmw or mazda cars. +``person[attr/age>="25" and attr/age<="35"]`` | people with age between 25 and 35. +``face[attr/glass="sunglass" or attr/glass="no"]`` | faces with sunglasses or without glasses at all. +```person[attr/race="asian"] | car[attr/model="bmw" or attr/model="mazda"]``` | asian persons or bmw or mazda cars. ## Shortcuts Many UI elements have shortcut hints. Put your pointer to an interesting element to see it. -![](static/documentation/images/image061.jpg) - -![](static/documentation/images/image062.jpg) +![](static/documentation/images/image075.jpg) | Shortcut | Common | -----------------------|------------------------------ -``L`` | lock/unlock a selected object -``L+T`` | lock/unlock all objects and tracks on the current frame -``Q`` or ``Num-`` | set occluded property for a selected object -``N`` | create a new annotated object -``Ctrl+`` | change type of new objects by default -``Shift+`` | change type of a selected object -``Enter`` | change color of bounding box for a selected object -``H`` | hide bounding boxes on every frame +``F1`` | open help +``F1`` in dashboard | open page with documentation +``F2`` | open settings +``L`` | lock/unlock an active shape +``L+T`` | lock/unlock all shapes on the current frame +``Q`` or ``Num/`` | set occluded property for an active shape +``N`` | start/stop draw mode +``Alt+N`` | close draw mode without create +``Ctrl+`` | change type of an active shape +``Shift+`` | change type of new shape by default +``Enter`` | change color of active shape +``H`` | hide active shape +``T+H`` | hide all shapes ``J`` | hide labels with attributes on every frame -``Delete`` | delete a selected object -``Shift+Delete`` | delete a selected object even if it is locked +``Delete`` | delete an active shape +``Shift+Delete`` | delete an active shape even if it is locked ``F`` | go to next frame ``D`` | go to previous frame ``V`` | go forward with a predefined step ``C`` | go backward with a predefined step -``Ctrl+C`` | copy a selected object -``Ctrl+V`` | insert a copied object -``F1`` | open help -``F1`` in dashboard | open page with documentation -``F2`` | open settings +``~`` | focus to ``go to frame`` element +``Ctrl+C`` | copy an active shape +``Ctrl+V`` | insert a copied shape +``Ctrl+Z`` | undo previous action +``Ctrl+Shift+Z``/``Ctrl+Y``| redo previous action +``Shift+B``/``Alt+B`` | increase/decrease brightness on an image +``Shift+C``/``Alt+C`` | increase/decrease contrast on an image +``Shift+S``/``Alt+S`` | increase/decrease saturation on an image ``Ctrl+S`` | save job +``Ctrl+B`` | propagate active shape +``+``/``-`` | change relative order of highlighted polygon | | __Interpolation__ | ``M`` | enter/apply merge mode -``Ctrl+M`` | leave merge mode without saving changes -``R`` | go to the next key frame of a selected object -``E`` | go to the previous key frame of a selected object +``Alt+M`` | close merge mode without apply the merge +``R`` | go to the next key frame of an active shape +``E`` | go to the previous key frame of an active shape | | __Attribute annotation mode__ | ``Shift+Enter`` | enter/leave Attribute Annotation mode ``Up Arrow`` | go to the next attribute (up) @@ -479,7 +671,18 @@ Many UI elements have shortcut hints. Put your pointer to an interesting element ``Tab`` | go to the next annotated object ``Shift+Tab`` | go to the previous annotated object ```` | assign a corresponding value to the current attribute +| | __Grouping__ | +``G`` | switch group mode +``Alt+G`` | close group mode +``Shift+G`` | reset group for selected shapes | | __Filter__ | ``Left Arrow`` | go to the previous frame which corresponds to the specified filter value ``Right Arrow`` | go to the next frame which corresponds to the specified filter value -``K`` | hide all objects which don't correspond to the specified filter value + +### Hints + +Hold ``Mouse Wheel`` in order to move frame (for example during drawing) + +Hold ``Ctrl`` when shape is active and fix it. + +Hold ``Ctrl`` when paste shape from buffer for multiple pasting.