-
Notifications
You must be signed in to change notification settings - Fork 469
[WIP] Autopropagate annotations #78
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] Autopropagate annotations #78
Conversation
I haven't inspected all of the code but maybe we could move some of these functions into the imantics library |
Yes, that sounds reasonable; it looks like a few of the new functions may already be present there. I'm also thinking this concept could be something more pluggable in the future, with possible user-defined callback to propose annotations. As it stands, the code could use some optimizations; it works ok (and definitely saves me a lot of time with hand-annotating), but I doubt it's performance under a large multi-user load. I just wanted to get the concept out there for some early feedback. |
I do plan, in the future, of adding a dedicated video annotator webpage with a scrubbing tool and maybe some tracking algorithm (open-cv js) to create annotations though the frames |
@matt-deboer Let me know when this is ready for a review |
c6ced44
to
85db849
Compare
…co-annotator into autopropagate_annotations
@jsbroks ok, will do. |
Closing due to conflicts/inactivity |
This PR adds automated background processing which attempts to automatically match newly created or updated annotations to preceding and proceeding images by testing for similarity of the image patch covered by the annotation.
This implements the feature mentioned in #57.
The main use case for this feature is to simplify the process of annotating video sequences where many object instances may be repeated for a subset of frames while a few objects are moving in the scene. Those repeated objects are automatically detected and annotated based on the previously added annotations.
This feature is configured with the following env vars:
AUTOANNOTATOR_ENABLED
: turn on the autoannotator; off by defaultAUTOANNOTATOR_VERBOSE
: whether to be chatty about autoannotator processingAUTOANNOTATOR_MAX_WORKERS
: max # workers allotted to the executor thread poolAUTOANNOTATOR_QUEUE_SIZE
: max size of queue which holds annotations to be propagatedAUTOANNOTATOR_MAX_MISMATCHED
: the maximum number of subsequent images where the annotation does not match before abandoning the matching test for a given annotationAUTOANNOTATOR_DIFF_THRESHOLD
: the allowed difference threshold used when comparing annotation patches; if theskimage.compare_ssim
score > (1.0 - threshold
), the patch is considered a match