Image Annotator Web-app using Plotly-Dash, MongoDB, and MLflow
- multi-page web-app
- image uploader to external MongoDB
- ingest selected images
- ingest zipped images
- annotator
- query/display images from external MongoDB
- manual annotation (save to external MongoDB)
- box
- editable
- free-hand lasso
- opened/closed
- polygon-lasso (Ctrl+MouseClick)
- opened/closed
- box
- DeepLearning model prediction (pyfunc models on MLflow server)
- one image at a time
- batch process
- image uploader to external MongoDB
- Dockerfile
- Tests
- Jupyter example notebooks:
- database interaction
- create train/validation splits with masks
- upload images with pre-existing masks
- python (version=3.6.7)
- Plotly-Dash
- Visdcc
- MongoDB/GridFS
- MLflow
- Pillow
$ conda create -n dash_img_app python=3.6.7
$ pip install -r requirements.txt
- set env variables shown in apps/config.py
- MLFLOW_URI variable is optional
$ pyhton index.py
- click Navigate to uploader link
- drag and drop or select images or zipped images
- click Navigate to annotator link
- select number of images
- select annotation_label_name
- optional annotation label-name keyword filter
- add ! to keyword for logical NOT
- click Download button
- Select Images datatable will be populated with filenames in MongoDB
- click a row's radio button in Select Images datatable to display images
- Select manual annoation buttons for box. free-hand lasso, and polygon-lasso
- additional button info:
- polygon-lasso requires the
Ctrl
keyboard button to be held down continuously for each mouse click. releaseCtrl
button upon completion - only boxes can be edited
- toggle Edit boxes True after drawing boxes to make them editable
- boxes will appear dotted while editable
- toggle Edit boxes False to stop edit mode
- toggle Close lasso to connect starting and ending points with a staight line
- toggle Open lasso to not connect starting and ending points
- polygon-lasso requires the
- additional button info:
- annotation label names can be set in two ways:
- edit Select/Edit Labels datatable labels and colors
- select a row's radio button before drawing annotation
- click the legend to edit a lable name for a trace and
Enter
on keyboard
- edit Select/Edit Labels datatable labels and colors
- traces can be hidden by clicking on their respective legends
- hidden traces can be removed by clicking the Remove Hidden Traces button
- annotations can be saved to the MongoDB by clicking the Save button
TODO: add mlflow model instructions