Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking functionality for bounding boxes #211

Closed
savan77 opened this issue Nov 22, 2018 · 34 comments · Fixed by #1988
Closed

Tracking functionality for bounding boxes #211

savan77 opened this issue Nov 22, 2018 · 34 comments · Fixed by #1988
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@savan77
Copy link
Contributor

savan77 commented Nov 22, 2018

Hi,
We are adding several features into CVAT and will be open-sourced. We might need your advice along the way, just wanted to know if you can help. Currently, we are trying to change the interpolation. As of now, interpolation just puts bounding box in the remaining frames at the same position as it is in the first frame. We are trying to change that and add tracking there. Since the code base is huge I am unable to understand the exact flow of process.

For now, say instead of constant coordinates I want to shift box to right a little bit (i.e 10 pixels). I guess its trivial task. Just need your help regarding the same, if possible. Thanks

@bsekachev
Copy link
Member

bsekachev commented Nov 22, 2018

@savan77
If I understood you right, you need "shapes.js" file, "BoxModel" class and "_interpolatePosition" method.
This method computes an interpolation for a bounding box. All shape instances consist a field "this._frame" which is start frame for an interpolation shape. Method has an argument "frame" which is frame for an interpolation. From these data you can compute right offset on each frame.

@nmanovic
Copy link
Contributor

Hi @savan77,

I talked with Donald and Rush. Welcome to our community!

As of now, interpolation just puts bounding box in the remaining frames at the same position as it is in the first frame.

Indeed interpolation works between key frames. It is not only "puts bounding box in the remaining frames at the same position". If you draw a bounding box on first frame it will be propagated as is on next frames. If you change the propagated bounding box on 10th frame all frames between 1st and 10th will be changed (linearly interpolated). It works well for DSS annotation tasks with static cameras.

We are trying to change that and add tracking there.

Tracking is a good feature which will be useful in many scenarios. How are you going to add it? Will it work on clients only using OpenCV.js or it will be a solution on server-side using a DL model?

Just need your help regarding the same, if possible.

Interpolation exists in two places: client (draw bounding boxes between key frames) and server (dump interpolated boxes).

@savan77
Copy link
Contributor Author

savan77 commented Nov 22, 2018

@nmanovic Thanks for the information. Currently, we are planning to use trackers provided by OpenCV, so I guess that won't create any problems. It is shipped with opencv-contrib.

@nmanovic
Copy link
Contributor

Hi @savan77, does it mean that you will support all trackers which are supported by OpenCV (including GOTURN)? As far as I can understand it will be server side implementation. How are you going to enable tracking for an object? I just want to understand how it will look like for an user. Will it be a global option in settings? For example, tracking: "interpolation" (by default), "GOTURN", "TLD", "MedianFlow", ... Or are you going to allow choose the method per track/object?

@nmanovic nmanovic added the enhancement New feature or request label Nov 22, 2018
@nmanovic nmanovic added this to the Backlog milestone Nov 22, 2018
@rushtehrani
Copy link
Contributor

@nmanovic those are great questions. It will be a global setting for the first phase.

We are currently targeting to support GOTURN. @savan77 and I will coordinate to see what it takes to support any OpenCV compatible tracker. Let us know if you have any ideas on a more generic implementation.

@savan77
Copy link
Contributor Author

savan77 commented Nov 23, 2018

@nmanovic Yes, as of now, we are planning to have interpolation work as a tracker. We haven't decided whether we will give an option to choose tracking method. Ideally, we'll have tracker with the best performance as a default. But you can use any opencv-tracker you want including GOTURN. Based on our experiements, GOTURN should give better results but anyhow boxes explode while using GOTURN. However, CSRT gave good results.

@nmanovic nmanovic modified the milestones: Backlog, 0.4.0 - Beta Dec 1, 2018
@nmanovic nmanovic changed the title Changing Interpolation Tracking functionality for bounding boxes Jan 21, 2019
@nmanovic
Copy link
Contributor

Hi @savan77 ,

Do you still want to delivery the feature? If so when?

@bsekachev
Copy link
Member

bsekachev commented Jan 21, 2019

There are some implementation ideas in the duplicated request #38

@savan77
Copy link
Contributor Author

savan77 commented Jan 25, 2019

Hi @nmanovic, @bsekachev ,

I and @rushtehrani are coordinating to implement this feature. So far, we have implemented the tracking part but it is yet to be integrated with CVAT. I will discuss with @rushtehrani to come up with a rough timeline.
Thanks

@nmanovic
Copy link
Contributor

Hi @savan77 ,

Don't hesitate to discuss with us any preliminary ideas, prototype. We can test the feature internally and provide an early feedback. We implemented many annotation tools in the past and some of them had tracking feature. The main difficulty here is the client-server architecture of the app. Need to provide smooth experience for users. In general they should think that the tracking is working in real-time on the client side but it is the final goal.

I have in my mind the following implementation. What do you think?

On the server we should have 1 entry point:

  • Track a list of bounding boxes from frame N till frame N + m for a specific task.

On the client we should have the following behaviour:

  • Choose a list of bounding boxes. UI isn't important for the first version. For example, it can be a shortcut for a specific object or context menu or something else.
  • Send the request to CVAT server
  • Wait the response from the server synchronously (freeze UI till get results).
  • Add new tracked bounding boxes to the client.

@savan77
Copy link
Contributor Author

savan77 commented Feb 1, 2019

Hi @nmanovic,

Thanks for the input. That looks like a potential process flow for the tracking. We are actually in the middle of something else. We won't move forward without your consent on the process flow. So, I will get back to you in few days and we can discuss more about the flow.

@nmanovic
Copy link
Contributor

Onepanel.io is not going to implement the request for now. I will move the on the next release. Hope we will enough time to implement the feature. It should not be very complex.

@nmanovic nmanovic modified the milestones: 0.4.0 - Beta, 0.5.0 - Beta Mar 30, 2019
@mistermult
Copy link

mistermult commented May 20, 2019

@nmanovic @savan77 @bsekachev I hacked a first version of the tracking feature together. It works as expected. Now want to polish it up for a pull request. It has the following flow:

  • User presses T T or clicks 'Tracking' in the context menu to track the active shape.
  • Get the activeShape from the shapeCollection.
  • Error if this is not a bounding box shape and a interpolation shape (ShowMessage)
  • The tracking should start at the current keyframe and end at the next USER DEFINED keyframe (byMachine=false). There are now two types of keyframes. Created by the user (byMachine=false) and created by the machine(byMachine=true). That means the machine generated keyframes will be overwritten by the new frames from the server. (See below)
  • All bounding boxes (without interpolated ones) of this track, start/stop frame number, and the options for the tracker(type etc.) are sent to the server. (Should I send all tracks(maybe good for multi tracking)? Or just the bounding box to start with(then interpolation style tracking is not possible on the server)? )
  • Currently the UI does not freeze.
  • New bounding boxes are calculated on the server with OpenCV and a fixed tracker (all tracker options are ignored). This might take a while but it is all done in the http handler.
  • New bounding boxes are sent back to the client where they are marked with byMachine=true and put into activeShape.updatePosition().

I found this very useful in the following situation: Create a keyframe when the object enters and leaves the image. Press tracking. In the middle the bounding box is often not accurate enough, so correct it (byMachine=false). Press tracking again. The bounding boxes from the middle user defined keyframe to the last user defined keyframe are now updated. To do this, we need to know which frames are from the user or the machine, hence the new attribute byMachine on each frame.

So I need the following modifications in the existing code:

  • Positions/Keyframes get the attributed byMachine that says if this is created by the machine or the user.
  • The function nextKeyframe,... now has a switch to find the next keyframe or the next keyframe with byMachine=false.

Code structure:

  • Currently, I hacked the functionality in the ShapeCollectionController.
  • Should I implement it as a plugin or in new classes? In the former case, are plugins allowed to call ShapeModel.updatePosition() and ShapeModel.nextKeyframe() or are plugins only allowed to call window.cvat.data.export(), window.cvat.data.set(), ... ? In the latter case should I split it into TrackerModel (also does the http request) and TrackerController?
  • Since the tracking is done on the server, there is now the new requirement opencv and opencv-contrib (contains the trackers).

I looking forward to your answers for all the question.

@nmanovic
Copy link
Contributor

@mistermult , missed the comment. Just submit a PR and I will recommend something. First of all need to check it from user experience point of view. When it is fine I will recommend how to change code to make it better.

@nmanovic
Copy link
Contributor

No support from community. We will implement the feature internally. Moved to next release.

@nmanovic
Copy link
Contributor

@korabelnikov , for now it is planned for release 1.0 but I don't think we have enough resources to implement it in the upcoming release. If you can help and propose a PR we will be glad to review and merge.

@korabelnikov
Copy link

Thanks for info

@ksenyakor
Copy link

Could you please explain, how to use tracking tool in CVAT?
There is demo video https://www.youtube.com/watch?v=Rjf9IRmk_o4&feature=youtu.be
But I don't have "Track" in the context menu....

@nmanovic
Copy link
Contributor

@ksenyakor , the tracking feature isn't integrated yet. The PR is here: #1003

Probably it will be integrated only after our next release in February. If you like you can manually apply the patch on your local git copy.

@ksenyakor
Copy link

@ksenyakor , the tracking feature isn't integrated yet. The PR is here: #1003

Probably it will be integrated only after our next release in February. If you like you can manually apply the patch on your local git copy.

Thanks for your answer!

@hasanahmedfaisal
Copy link

hasanahmedfaisal commented Jan 22, 2020

Hi @nmanovic

Indeed interpolation works between key frames. It is not only "puts bounding box in the remaining frames at the same position". If you draw a bounding box on first frame it will be propagated as is on next frames. If you change the propagated bounding box on 10th frame all frames between 1st and 10th will be changed (linearly interpolated).

Cloud you please share any details on how this interpolation is done , any code or any articles , is it done using opencv , and are bounding boxes edge points used or centre point, scale , aspect ratio are used ,

please please share , i would like to implement this myself with few changes i am thinking of , So please help
Any one if you know please share

Thank you

@korabelnikov
Copy link

why don't look sources?

@hasanahmedfaisal
Copy link

Hi @korabelnikov , Do you mean source code of cvat , i tried to look into it , as per my search , most code is return in JavaScript and i donot know java script , so having hard time understanding

If you cloud point me any sources in python , please share , or any other advice please share

Thank you

@nmanovic nmanovic modified the milestones: 1.0.0 - Beta, 1.1.0 - Beta Mar 21, 2020
@kaustubhharapanahalli
Copy link

kaustubhharapanahalli commented Jun 5, 2020

@nmanovic Hi, Any progress on this?

@mingweihe
Copy link

mingweihe commented Aug 4, 2020

@nmanovic Thank you for the hard work. I was recently trying to deploy this function using the nuctl command "nuctl deploy --project-name cvat --path serverless/pytorch/foolwood/siammask/nuclio", it seems that it is not working.
So may I happen to know if this function is ongoing now?
error message is as follows:

Verifying transaction: ...working... done
Executing transaction: ...working... done
#
# To activate this environment, use
#
#     $ conda activate siammask
#
# To deactivate an active environment, use
#
#     $ conda deactivate



==> WARNING: A newer version of conda exists. <==
  current version: 4.8.2
  latest version: 4.8.3

Please update conda by running

    $ conda update -n base -c defaults conda


Removing intermediate container 4952a8bb92d5
 ---> 18fcb57d7c72
Step 7/20 : RUN source activate siammask
 ---> Running in 4bb228f86d01
/bin/sh: 1: source: not found
Removing intermediate container 4bb228f86d01

stderr:
The command '/bin/sh -c source activate siammask' returned a non-zero code: 127

    /nuclio/pkg/cmdrunner/cmdrunner.go:124
Failed to build docker image
    .../pkg/containerimagebuilderpusher/docker.go:56
Failed to build processor image
    /nuclio/pkg/processor/build/builder.go:250
Failed to deploy function
    ...//nuclio/pkg/platform/abstract/platform.go:171

@nmanovic nmanovic linked a pull request Aug 5, 2020 that will close this issue
8 tasks
TOsmanov pushed a commit to TOsmanov/cvat that referenced this issue Aug 23, 2021
…i#211)

* split unlabeled data into subsets for classification, detection. for re-id, 'not-supported' subsets for this data
TOsmanov pushed a commit to TOsmanov/cvat that referenced this issue Aug 23, 2021
* Rename 'openvino' plugin to 'openvino_plugin' (cvat-ai#205)

Co-authored-by: Jihyeon Yi <[email protected]>

* Make remap labels more accurate, allow explicit label deletion, add docs, update tests (cvat-ai#203)

* Kate/handling multiple attributes and speed up detection split (cvat-ai#207)

* better handling multi-attributes for classification_split

* handling multi-attributes better for detection

* bugfix in calculating required number of images for splitting 2 correct side effect of the changes for re-id split

* allow multiple subsets with arbitrary names

* rename _is_number to _is_float and improve it

* Fix voc to coco example (cvat-ai#209)

* Fix export filtering

* update example in readme

* Fix export filename for LabelMe format (cvat-ai#200)

* change export filename for LabelMe format

* Allow simple merge for datasets with no labels

* Add a more complex test on relative paths

* Support escaping in attributes

* update changelog

Co-authored-by: Maxim Zhiltsov <[email protected]>

* split unlabeled data into subsets for task-specific splitters (cvat-ai#211)

* split unlabeled data into subsets for classification, detection. for re-id, 'not-supported' subsets for this data

* Fix image ext on saving in cvat format (cvat-ai#214)

* fix image saving in cvat format

* update changelog

* Label "face" for bounding boxes in Wider Face (cvat-ai#215)

* add face label

* update changelog

* Adding "difficult", "truncated", "occluded" attributes when converting to Pascal VOC if they are not present (cvat-ai#216)

* remove check for 'difficult' attribute

* remove check for 'truncated' and 'occluded' attributes

* update changelog

* Ignore empty lines in YOLO annotations (cvat-ai#221)

* Ignore empty lines in yolo annotations

* Add type hints for image class, catch image opening errors in image.size

* update changelog

* Classification task in LFW dataset format (cvat-ai#222)

* add classification

* update changelog

* update documentation

* Add splitter for segmentation task  (cvat-ai#223)

* added segmentation_split

* updated changelog

* rename reidentification to reid

* Support for CIFAR-10/100 format (cvat-ai#225)

* add CIFAR dataset format

* add CIFAR to documentation

* update Changelog

* add validation item for instance segmentation (cvat-ai#227)

* add validation item for instance segmentation

* Add panoptic and stuff COCO format (cvat-ai#210)

* add coco stuff and panoptic formats

* update CHANGELOG

Co-authored-by: Maxim Zhiltsov <[email protected]>

* update detection splitter algorithm from # of samples to # of instances (cvat-ai#235)

* add documentation for validator (cvat-ai#233)

* add documentation for validator

* add validation item description (cvat-ai#237)

* Fix converter for Pascal VOC format (cvat-ai#239)

* User documentation for Pascal VOC format (cvat-ai#228)

* add user documentation for Pascal VOC format

* add integration tests

* update changelog

* Support for MNIST dataset format (cvat-ai#234)

* add mnist format

* add mnist csv format

* add mnist to documentation

* make formats docs folder, create COCO format documentation (cvat-ai#241)

* Make formats docs folder, move format docs

* Create COCO format documentation

* Fixes in CIFAR dataset format (cvat-ai#243)

* Add folder creation

* Update changelog

* Add user documentation file and integration tests for YOLO format (cvat-ai#246)

* add user documentation file for yolo

* add integraion tests

* update user manual

* update changelog

* Add Cityscapes format (cvat-ai#249)

* add cityscapes format

* add format docs

* update changelog

* Fix saving attribute in WiderFace extractor (cvat-ai#251)

* add fixes

* update changelog

* Fix spelling errors (cvat-ai#252)

* Configurable Threshold CLI support (cvat-ai#250)

* add validator cli

* add configurable validator threshold

* update changelog

* CI. Move to GitHub actions. (cvat-ai#263)

* Moving to GitHub Actions

* Sending a coverage report if python3.6 (cvat-ai#264)

* Rename workflows (cvat-ai#265)

* Rename workflows

* Update repo config and badge (cvat-ai#266)

* Update PR template

* Update build status badge

* Fix deprecation warnings (cvat-ai#270)

* Update RISE docs (cvat-ai#255)

* Update rise docs

* Update cli help

* Pytest related changes (cvat-ai#248)

* Tests moved to pytest. Updated CI. Updated requirements.

* Updated contribution guide

* Added annotations for tests

* Updated tests

* Added code style guide

* Fix CI (cvat-ai#272)

* Fix script call

* change script call to binary call

* Fix help program name, add mark_bug (cvat-ai#275)

* Fix prog name

* Add mark_bug test annotation

* Fix labelmap parameter in CamVid (cvat-ai#262)

* Fix labelmap parameter in camvid

* Release 0.1.9 (dev) (cvat-ai#276)

* Update version

* Update changelog

* Fix numpy conflict (cvat-ai#278)

Co-authored-by: Emily Chun <[email protected]>
Co-authored-by: Jihyeon Yi <[email protected]>
Co-authored-by: Kirill Sizov <[email protected]>
Co-authored-by: Anastasia Yasakova <[email protected]>
Co-authored-by: Harim Kang <[email protected]>
Co-authored-by: Zoya Maslova <[email protected]>
Co-authored-by: Roman Donchenko <[email protected]>
Co-authored-by: Seungyoon Woo <[email protected]>
Co-authored-by: Dmitry Kruchinin <[email protected]>
Co-authored-by: Slawomir Strehlke <[email protected]>
TOsmanov pushed a commit to TOsmanov/cvat that referenced this issue Aug 23, 2021
* Rename 'openvino' plugin to 'openvino_plugin' (cvat-ai#205)

Co-authored-by: Jihyeon Yi <[email protected]>

* Make remap labels more accurate, allow explicit label deletion, add docs, update tests (cvat-ai#203)

* Kate/handling multiple attributes and speed up detection split (cvat-ai#207)

* better handling multi-attributes for classification_split

* handling multi-attributes better for detection

* bugfix in calculating required number of images for splitting 2 correct side effect of the changes for re-id split

* allow multiple subsets with arbitrary names

* rename _is_number to _is_float and improve it

* Fix voc to coco example (cvat-ai#209)

* Fix export filtering

* update example in readme

* Fix export filename for LabelMe format (cvat-ai#200)

* change export filename for LabelMe format

* Allow simple merge for datasets with no labels

* Add a more complex test on relative paths

* Support escaping in attributes

* update changelog

Co-authored-by: Maxim Zhiltsov <[email protected]>

* split unlabeled data into subsets for task-specific splitters (cvat-ai#211)

* split unlabeled data into subsets for classification, detection. for re-id, 'not-supported' subsets for this data

* Fix image ext on saving in cvat format (cvat-ai#214)

* fix image saving in cvat format

* update changelog

* Label "face" for bounding boxes in Wider Face (cvat-ai#215)

* add face label

* update changelog

* Adding "difficult", "truncated", "occluded" attributes when converting to Pascal VOC if they are not present (cvat-ai#216)

* remove check for 'difficult' attribute

* remove check for 'truncated' and 'occluded' attributes

* update changelog

* Ignore empty lines in YOLO annotations (cvat-ai#221)

* Ignore empty lines in yolo annotations

* Add type hints for image class, catch image opening errors in image.size

* update changelog

* Classification task in LFW dataset format (cvat-ai#222)

* add classification

* update changelog

* update documentation

* Add splitter for segmentation task  (cvat-ai#223)

* added segmentation_split

* updated changelog

* rename reidentification to reid

* Support for CIFAR-10/100 format (cvat-ai#225)

* add CIFAR dataset format

* add CIFAR to documentation

* update Changelog

* add validation item for instance segmentation (cvat-ai#227)

* add validation item for instance segmentation

* Add panoptic and stuff COCO format (cvat-ai#210)

* add coco stuff and panoptic formats

* update CHANGELOG

Co-authored-by: Maxim Zhiltsov <[email protected]>

* update detection splitter algorithm from # of samples to # of instances (cvat-ai#235)

* add documentation for validator (cvat-ai#233)

* add documentation for validator

* add validation item description (cvat-ai#237)

* Fix converter for Pascal VOC format (cvat-ai#239)

* User documentation for Pascal VOC format (cvat-ai#228)

* add user documentation for Pascal VOC format

* add integration tests

* update changelog

* Support for MNIST dataset format (cvat-ai#234)

* add mnist format

* add mnist csv format

* add mnist to documentation

* make formats docs folder, create COCO format documentation (cvat-ai#241)

* Make formats docs folder, move format docs

* Create COCO format documentation

* Fixes in CIFAR dataset format (cvat-ai#243)

* Add folder creation

* Update changelog

* Add user documentation file and integration tests for YOLO format (cvat-ai#246)

* add user documentation file for yolo

* add integraion tests

* update user manual

* update changelog

* Add Cityscapes format (cvat-ai#249)

* add cityscapes format

* add format docs

* update changelog

* Fix saving attribute in WiderFace extractor (cvat-ai#251)

* add fixes

* update changelog

* Fix spelling errors (cvat-ai#252)

* Configurable Threshold CLI support (cvat-ai#250)

* add validator cli

* add configurable validator threshold

* update changelog

* CI. Move to GitHub actions. (cvat-ai#263)

* Moving to GitHub Actions

* Sending a coverage report if python3.6 (cvat-ai#264)

* Rename workflows (cvat-ai#265)

* Rename workflows

* Update repo config and badge (cvat-ai#266)

* Update PR template

* Update build status badge

* Fix deprecation warnings (cvat-ai#270)

* Update RISE docs (cvat-ai#255)

* Update rise docs

* Update cli help

* Pytest related changes (cvat-ai#248)

* Tests moved to pytest. Updated CI. Updated requirements.

* Updated contribution guide

* Added annotations for tests

* Updated tests

* Added code style guide

* Fix CI (cvat-ai#272)

* Fix script call

* change script call to binary call

* Fix help program name, add mark_bug (cvat-ai#275)

* Fix prog name

* Add mark_bug test annotation

* Fix labelmap parameter in CamVid (cvat-ai#262)

* Fix labelmap parameter in camvid

* Release 0.1.9 (dev) (cvat-ai#276)

* Update version

* Update changelog

* Fix numpy conflict (cvat-ai#278)

* Add changelog stub (cvat-ai#279)

* tests/requirements.py: remove the test_wrapper functions (cvat-ai#285)

* Subformat importers for VOC and COCO (cvat-ai#281)

* Document find_sources

* Add VOC subformat importers

* Add coco subformat importers

* Fix LFW

* Reduce voc detect dataset cases

* Reorganize coco tests, add subformat tests

* Fix default subset handling in Dataset

* Fix getting subset

* Fix coco tests

* Fix voc tests

* Update changelog

* Add image zip format (cvat-ai#273)

* add tests

* add image_zip format

* update changelog

Co-authored-by: Maxim Zhiltsov <[email protected]>

* Add KITTI detection and segmentation formats (cvat-ai#282)

* Add KITTI detection and segmentation formats

* Remove unused import

* Add KITTI user manual

Co-authored-by: Maxim Zhiltsov <[email protected]>

* Fix loading file and image processing in CIFAR (cvat-ai#284)

* Fix image layout and encoding problems

* Update Changelog

Co-authored-by: Maxim Zhiltsov <[email protected]>

* CLI tests for convert command for VOC dataset (cvat-ai#286)

* Add tests for convert command

* Convert most enum definitions from the functional style to the class style (cvat-ai#290)

* yolo format documentation update (cvat-ai#295)

* add info about coordinates in yolo format doc

* Fix merged dataset item filtering (cvat-ai#258)

* Add tests

* Fix xpathfilter transform

* Update changelog

* Sms/pytest marking cityscapes and zip (cvat-ai#298)

* Updated pytest marking for cityscapes and imagezip.

* Introduce Validator plugin type (cvat-ai#299)

* Introduce Validator plugin type

* Fix validator definitions (cvat-ai#303)

* update changelog

* Fixes in validator definitions

* Update validator cli

* Make TF availability check optional (cvat-ai#305)

* Make tf availability check optional

* update changelog

* Update pylint (cvat-ai#304)

* Add import order check in pylint

* Fix some linter problems

* Remove warning suppression comments

* Add lazy loading for builtin plugins (cvat-ai#306)

* Refactor env code

* Load builtin plugins lazily

* update changelog

* Update transforms handling in Dataset (cvat-ai#297)

* Update builtin transforms

* Optimize dataset length computation when no source

* Add filter test

* Fix transforms affecting categories

* Optimize categories transforms

* Update filters

* fix imports

* Avoid using default docstrings in plugins

* Fix patch saving in VOC, add keep_empty export parameter

* Fix flush_changes

* Fix removed images and subsets in dataset patch

* Update changelog

* Update voc doc

* Skip item transform base class in plugins

* Readable COCO and datumaro format for CJK (cvat-ai#307)

* Do not force ASCII in COCO and Datumaro JSONs for readable CJK

* Add tests

* Use utf-8 encoding for writing

Co-authored-by: Maxim Zhiltsov <[email protected]>

* Force utf-8 everywhere (cvat-ai#309)

* Fix in ImageNet_txt (cvat-ai#302)

* Add extensions for images to annotation file

* Remove image search in extractor

* Update changelog

Co-authored-by: Maxim Zhiltsov <[email protected]>

* Reduce duplication of dependency information (cvat-ai#308)

* Move requirements from setup.py to requirements-base.txt

* Add whitespace error checking to GitHub Actions (cvat-ai#311)

* Fix whitespace errors

As detected with `git diff --check`.

* Add a job to check for whitespace errors

I called it "lint" so that other checks could be added to it later.

* Bump copyright years in changed files

* Add initial support for the Open Images dataset (cvat-ai#291)

* Support reading or Labels in Open Images (v4, v5, v6)

* Add tests for the Open Images extractor/importer

* Add Open Images documentation

* Update changelog

* Fix tensorboardX dependency (cvat-ai#318)

* Fixing remark-lint issues. Adding remark-linter check. (cvat-ai#321)

* Fix remark-lint issues.

* Align continuation lines with the first line.

Apply comments

* Added remark check

* Add an upper bound on the Pillow dependency to work around a regression in 8.3 (cvat-ai#323)

* open_images_user_manual.md: fix image description file URLs

I accidentally swapped the URLs for test and validation sets.

* Fix COCO Panoptic (cvat-ai#319)

* add test

* Fix integer overflow in bgr2index

* Fix pylint issues. Added pylint checking. (cvat-ai#322)

* Added pylint job for CI

* Rework pip install

* Fixed remaining pylint warnings

Co-authored-by: Andrey Zhavoronkov <[email protected]>

* Open Images: add writing support (cvat-ai#315)

* open_images_user_manual.md: fix image description file URLs

* open_images_format: add conversion support

* open_images_format: add support for images in subdirectories

* open_images_format: add tests for writing support

* open_images_format: add documentation for the writing support

* Update the changelog entry for the Open Images support

* Add python bandit checks. (cvat-ai#316)

* Add bandit dependency

* Add bandit checks on CI

* Disable some warnings

Co-authored-by: Andrey Zhavoronkov <[email protected]>
Co-authored-by: Maxim Zhiltsov <[email protected]>

* Remove Pylint unused-import warning suppressions (cvat-ai#326)

* Remove Pylint unused-import warning suppressions

* Add a job to check import formatting using isort (cvat-ai#333)

* Reformat all imports using isort

* Implement a workflow for checking import formatting based on isort

* Reformat the enabled checker list in .pylintrc (cvat-ai#335)

Put each code on its own line and add a comment with its symbolic name.
That makes the list more understandable and easier to edit.

* Merge all linting jobs into one workflow file (cvat-ai#331)

Doing it this way means that on GitHub's Checks page, all jobs are displayed
under one "Linter" category, instead of multiple indistinguishable "Linter"
categories with one job each.

Move the whitespace checking job into the Linter workflow as well, since
that's where it logically belongs.

I also took the opportunity to slightly rename the jobs in order to spell
the linter names correctly.

* Fix cuboids / 3d / M6 (cvat-ai#320)

* CVAT-3D Milestone-6: Added Supervisely Point Cloud and KITTI Raw 3D formats

* Added Cuboid3d annotations

* Added docs for new formats

Co-authored-by: cdp <cdp123>
Co-authored-by: Jayraj <[email protected]>
Co-authored-by: Roman Donchenko <[email protected]>

* Clean up .pylintrc (cvat-ai#340)

* Clean up the list of messages in .pylintrc

* Remove obsolete Pylint options

* .pylintrc: move the disable setting and its documentation together

* Remove the commented-out setting.

* Revert "Add an upper bound on the Pillow dependency to work around a regression in 8.3 (cvat-ai#323)" (cvat-ai#341)

The regression was fixed in 8.3.1.

This reverts commit 9a85616.

* Enable pylint checkers that find invalid escape sequences (cvat-ai#344)

Fix the issues that they found.

* Factor out the images.meta loading code from YoloExtractor (cvat-ai#343)

* Factor out the images.meta loading code from YoloExtractor

It looks like the same thing will be needed for Open Images, so I'm
moving it to a common module.

* Rework image.meta parsing code to use shell syntax

This allows comments and improves extensibility.

* Support for CIFAR-100 (cvat-ai#301)

* Add support for CIFAR-100

* Update Changelog

* Update user_manual.md

* Add notes about differences in formats

* Fix importing for VGG Face 2 (cvat-ai#345)

* correct asset according the original vgg_face2 dataset

* fix importing of the original dataset

Co-authored-by: Maxim Zhiltsov <[email protected]>

* Dataset caching fixes (cvat-ai#351)

* Fix importing arbitrary file names in COCO subformats

* Optimize subset iteration in a simple scenario

* Fix subset iteration in dataset with transforms

* Cuboid 3D for Datumaro format (cvat-ai#349)

* Support cuboid_3d and point cloud in datumaro format

* Add cuboid_3d and point cloud tests in datumaro format

* Add image size type conversions

Co-authored-by: Maxim Zhiltsov <[email protected]>

* Add e2e tests for cuboids (cvat-ai#353)

* Add attr name check in kitti raw

* Add sly pcd e2e test

* Rename "object" attribute to "track_id" in sly point cloud

* Add kitti raw e2e test

* Update kitti raw example

* update changelog

* Release 0.1.10 (dev) (cvat-ai#354)

* Update changelog

* Add cifar security notice

* Update version

Co-authored-by: Emily Chun <[email protected]>
Co-authored-by: Jihyeon Yi <[email protected]>
Co-authored-by: Kirill Sizov <[email protected]>
Co-authored-by: Anastasia Yasakova <[email protected]>
Co-authored-by: Harim Kang <[email protected]>
Co-authored-by: Zoya Maslova <[email protected]>
Co-authored-by: Roman Donchenko <[email protected]>
Co-authored-by: Seungyoon Woo <[email protected]>
Co-authored-by: Dmitry Kruchinin <[email protected]>
Co-authored-by: Slawomir Strehlke <[email protected]>
Co-authored-by: Jaesun Park <[email protected]>
Co-authored-by: Andrey Zhavoronkov <[email protected]>
Co-authored-by: Jayraj <[email protected]>
@483415258
Copy link

@korabelnikov @rushtehrani @savan77 @ksenyakor @kaustubhharapanahalli
Hello everyone, I have encountered the same problem as mingweihe above. How can I solve it

Thank you for the hard work. I was recently trying to deploy this function using the nuctl command "nuctl deploy --project-name cvat --path serverless/pytorch/foolwood/siammask/nuclio", it seems that it is not working.
So may I happen to know if this function is ongoing now?
error message is as follows:

Verifying transaction: ...working... done
Executing transaction: ...working... done

To activate this environment, use

$ conda activate siammask

To deactivate an active environment, use

$ conda deactivate

==> WARNING: A newer version of conda exists. <==
current version: 4.8.2
latest version: 4.8.3

Please update conda by running

$ conda update -n base -c defaults conda

Removing intermediate container 4952a8bb92d5
---> 18fcb57d7c72
Step 7/20 : RUN source activate siammask
---> Running in 4bb228f86d01
/bin/sh: 1: source: not found
Removing intermediate container 4bb228f86d01

stderr:
The command '/bin/sh -c source activate siammask' returned a non-zero code: 127

/nuclio/pkg/cmdrunner/cmdrunner.go:124

Failed to build docker image
.../pkg/containerimagebuilderpusher/docker.go:56
Failed to build processor image
/nuclio/pkg/processor/build/builder.go:250
Failed to deploy function
...//nuclio/pkg/platform/abstract/platform.go:171

@Teagueporter
Copy link

Teagueporter commented May 26, 2022

Hi I'm pretty new to using cvat as a tool, and right now I'm trying to create bounding boxes for fish in an ocean, the main thing is the fish will leave the screen or hid behind something for a few frames, but the problem that I ran in to was I delete the bounding box when they left and that just deleted it for every frame, the other was I hid the box but that too hides it for all frames.
And I would rather not have a box just floating around while the fish is not in the frame.

By the way I'm using the open cv tracking tool

@bsekachev
Copy link
Member

Hi I'm pretty new to using cvat as a tool, and right now I'm trying to create bounding boxes for fish in an ocean, the main thing is the fish will leave the screen or hid behind something for a few frames, but the problem that I ran in to was I delete the bounding box when they left and that just deleted it for every frame, the other was I hid the box but that too hides it for all frames. And I would rather not have a box just floating around while the fish is not in the frame.

By the way I'm using the open cv tracking tool

Hi, @Teagueporter

"Outside" feature is exactly what you need. You can hide track starting from frame N, and show it again starting from N+M. To do that please use setting: "Show all interpolation tracks". Or another way is to create two independent tracks and merge them, using "Merge" feature.

Please, refer to the documentation for details:
https://openvinotoolkit.github.io/cvat/docs/manual/basics/track-mode-basics/
https://openvinotoolkit.github.io/cvat/docs/manual/basics/settings/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.