A specific component for this would make streamlit a really powerful annotation tool.
Standard annotation tools work fine but aren’t easy to customize, and customizing your workflow is the key to efficient data annotation.
Unfortunately I don’t know enough JS to help build this, but would gladly help anyone with testing and feedback.
Those are great. MarkerJS is basically what I need.
I collect sports data from broadcast footage. A lot of that is identifying pitch lines for perspective transformation and detecting objects (the players).
For that, I need to integrate automatic detection with manual input. E.g. suggesting pitch lines but allowing you to make corrections.
So, I made a tkinter GUI for that. But Streamlit would be so much easier to improve and adapt (especially a bunch of dedicated scripts for parts of the workflow).
For example, now I’m working with a different camera perspective and the line angles are different than usual. I could add a parameter for that.
Wrapping the Labelstudio frontend in a bidirectional component would be great as well - it’s quite customizable for various annotation tasks (keypoints, classification, bounding boxes ,segmentation, pairwise etc …). I gave creatign the component a try but am failing quite miserably - not really a frontend guy . Any help would be appreciated!
In the meantime I’ve tried adding background image, bounding box / lines and send back coordinates of objects on canvas as JSON to Streamlit Drawable Canvas. It’s a first step, when I have some time I’ll add a labeled bounding box. See if it answers part of your needs and what other use cases you would want to be added
I wrote a big component tutorial here. Did you try this? I’m open to feedback on this too!
Considering the interest my tweet generated (including from a lot of professionals in the sport), now I got to release it, so I’ll be watching closely the developments in your component. I’ll also try to contribute to it, but my JS skills are non existent, so it’s probably going to be limited help.
Hey @rjtavares I added a tool to draw circles (felt bad for those players crossed by lines ahah) and an argument to prevent Streamlit update everytime you release the mouse, which greyed the canvas a bit too much in my opinion when you draw on the canvas with a heavy image.
Check the updated README and download the latest version!
This component does exactly what you want (annotate images with keypoints, bounding boxes, polygons, classifications, …), but should also support annotation for timeseries, audio, etc.
This is my first go at is, so certainly not complete, but let me know what you think!
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.