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

[WIP] Multiselect #5896

Closed

Conversation

docwhat
Copy link

@docwhat docwhat commented Mar 21, 2023

  • initial commit
  • Added support for multi-select in all the layers, trigger multiselect with shift+click in canvas + object list, made contextmenu show all active items
  • click-drag box multi-select behavior
  • tied up loose ends with multi-select
  • achieved all desired pointer behavior
  • made object keyboard shortcuts work on all selected objects
  • mega merge
  • made label change hotkeys work on multiple selected objects
  • initial label grouping
  • group objects by label, reusable label-item component
  • achieved desired styling
  • fixed merge issues with removing objects from object list menu
  • fixes and todo cleanup
  • prevent clicking on label shortcut dropdown toggling the object group
  • BN-2881 - tie collapseAll button to label groups
  • fixed consecutive selection-box drawing
  • docker-compose sans infrastructure for GCP deployment
  • updating docker-compose
  • update to use gcr images
  • updated readme
  • updated readme
  • more readme stuff
  • added build to readme
  • updated image repos
  • added more envars to readme
  • readme update
  • made ctrl prevent selecting/editing other shapes
  • brought back memoization comparer to prevent unneeded object-item redraws that were impacting performance
  • virtualized the nested object list
  • virtualized the contextmenu
  • delete multiple objects at once as a single action
  • fixed all label contextmenu option
  • use cvat_ui:0.0.1
  • Optimized removing shapes from the canvas during a frame change
  • optimized removing all objects on frame change
  • display version number
  • fixed clearing labels in the optimized reset canvas path

This adds the ability to select multiple bounding boxes at once. This allows
managing labels for many boxes at one time.

I'm posting this now just so that people can look at this. This code is very
and have evolved in private but I'd like to see it in CVAT proper eventually.

Related: #5473

Motivation and context

We work with images that are over 1GiB and that have 100s of bounding boxes.

How has this been tested?

In (our) production.

Checklist

  • I submit my changes into the develop branch
  • I have added a description of my changes into the CHANGELOG file
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • I have linked related issues (see GitHub docs)
  • I have increased versions of npm packages if it is necessary
    (cvat-canvas,
    cvat-core,
    cvat-data and
    cvat-ui)

License

  • I submit my code changes under the same MIT License that covers the project.
    Feel free to contact the maintainers if that's a concern.

… with shift+click in canvas + object list, made contextmenu show all active items
@docwhat
Copy link
Author

docwhat commented Mar 21, 2023

@nmanovic Here is our code. It's not pretty, and I don't know enough about CVAT to offer pre-emptive help. Feel free to ask questions, though. I'll see if I can get you answers.

@nmanovic
Copy link
Contributor

@docwhat , thank you for the contribution. It looks like current patch has a lot of merge conflicts. It will require significant efforts from our team to adapt these changes and cover them by tests. As discussed in the meeting, we are ready to take the task and probably others if you need that. Happy to help our customers.

@GeorgePearse
Copy link

Would love this feature (click and drag to multi-select boxes and delete or relabel)

@bsekachev
Copy link
Member

I will close the PR for now. If you are ready to carry on you work, you are always welcome

@bsekachev bsekachev closed this Jul 18, 2023
@docwhat
Copy link
Author

docwhat commented Aug 11, 2023

Alas; the company I was doing this work for is gone. Sorry. Maybe someone else will be interested in pulling apart the patch.

@kurtjcu
Copy link

kurtjcu commented Jul 11, 2024

This would be great. :)

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

Successfully merging this pull request may close these issues.

None yet

6 participants