Native component to draw lines, bounding boxes, polygons, and keypoints

Open
#875 12 comments 137 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
python

Research direction

No files, tests, or entry points are named. Start by reading the Problem and Solution sections of issue #875 and scope the requested drawing modes and coordinate behavior. Done means an image can support lines, bounding boxes, polygons, and keypoints, with coordinates returned relative to the image dimensions.

Written by the indexing model from the issue text.

Description

area:widgets type:enhancement type:possible-component
Problem

The self-driving car it's a nice tutorial that compares a model vs labeling data. This is a powerful tool to visualize how your model is doing and where it can improve. However, a more powerful statement of how Streamlit could be used for all Data related projects will be if I can create the labels directly on the app. In this case, the input is the model bounding boxes, then we can easily go over every box and fix any issues. This will allow Streamlit to serve both a platform for creating the Datasets and later visualizing how these datasets are doing. Making closer to end-to-end front-end solutions. I can already use Streamlit for prototyping classification labeling, adding drawing on top of images will allow it to do all type of CV problems.

Solution
  1. Allow drawing on images
  2. Draw Line, Bounding Boxes, Polygons and Keypoints
  3. Return coordinates based on image location clicks based on image dimensions

Let me know if this something of interest for Streamlit.

Regards.

Views

Dominant language
Python
Stars
45.8k
Forks
4.4k
Avg merge
21h 22m
Merged PRs (30d)
316

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from streamlit/streamlit

All issues in streamlit/streamlit

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.