cvat-ai / cvat

Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale.
https://cvat.ai
MIT License
12.45k stars 2.99k forks source link

Cut one shape into two parts within a frame #690

Closed synsis closed 11 months ago

synsis commented 5 years ago

I used merged shapes function, but when I download annotations by CVAT xml format, it shows nothing about the merged groups relations. BTW, I mark a whole thing as a shape, but I want to separate it to parts, can you guys provide functions to change one shape to two or more, just by changing several points, instead of reshaping all of them?

Many thanks

bsekachev commented 5 years ago

@synsis Probably you need CVAT format for videos, not for images.

bsekachev commented 5 years ago

@synsis Couldn't understand your feature request. Could you please describe more detailed? Also it would be nice if you provide an example.

synsis commented 5 years ago

@bsekachev For example, I mark two rope as one by mistake, such as follow, and it should be marked as two separated ropes, as the second image. It would be much easier to add a separating function, I click the separating button, choose the shape I wanna change, then, draw a line between them, and it become two separated parts along the line I draw. Without this function, I might have to redraw everything. image image

Thansk a lot.

bsekachev commented 5 years ago

@synsis How often do you need it? How many time such the feature can save for you?

synsis commented 5 years ago

@bsekachev At the beginning of the project, people may make wrong decisions, and they may think marking it a whole thing is enough to solve the problem, however, it might not work, and all the annotations should be draw again, which is the situation I faced now. I think this issues always happen, and if you add this function, it would definitely save my life.

BTW, the relation between groups and the objects is one-to-many, but the relation between object to group is one-to-one. It is enough for easy projects, but I am doing something complicated, and if you can change the structures between the groups and objects, it would be very useful as well.

Cheers

bsekachev commented 5 years ago

@synsis We can submit an issue for that feature, but I can't promise you us will start doing it at near time.

Also you can submit your second request as another one.

nmanovic commented 4 years ago

Looks very similar: #774

aguadopd commented 4 years ago

Hello! This would be a very useful feature for our workflow too. We are starting to use CVAT to correct the annotations made by our computer vision algorithms. A very common case for us is to have different objects that have been segmented as one thing and then the annotator has to divide.

Our current approaches for splitting the blob in CVAT are:

  1. Keep one and redraw the other.
    • Shift+Double-Click to edit the polygon.
    • Mark the line that divides the two objects
    • Choose one side to keep.
    • Manually redraw the other one.

Peek 2020-07-03 16-11

  1. Same than 1 but twice
    • Copy the polygon with Ctrl+C.
    • Paste it nearby with Ctrl+V, for later usage. We need to do this since the copied polygon (in the "clipboard") is modified if you change the original one. (a bug or a feature?)
    • Keep one side of the original polygon doing the process in 1.
    • Since we cannot move a shape, we copy again and paste again the original shape, from the backup shape, trying to put it in the same place than the original.
    • Keep the other side doing the process in 1.
    • Delete the backup shape.

Peek 2020-07-03 16-12

The examples I'm showing are of two objects only, but it could be the case of more than two. The same splitting tool would still be useful, since you'd only have to apply it many times on the big blob to separate the objects.

I think that duplicating the common nodes/points could suffice, but maybe there's a better idea, since duplicated points would make it difficult to edit. Perhaps adding a little offset so that one can see both... or perhaps not moving is OK since you can hide objects very easily.