Assignment 2: Streamlit/HuggingFace Demo & Peer Review
Due May 20th, 2026 at 11:59pm
Overview
This assignment is open-ended. You will build an interactive Streamlit app that teaches one image analysis concept from the course, deploy it publicly on Hugging Face Spaces, and present it in class.
Estimated Time: 10-15 hours
Learning Objectives
By completing this assignment, you will:
- Translate one lecture topic into an interactive educational tool
- Explore parameter sensitivity and algorithm trade-offs
- Build a reliable Streamlit app for non-expert users
- Deploy your app to a public platform (Hugging Face Spaces)
- Explain your method clearly in a short technical demo
Required Format
- Deployment target: Hugging Face Spaces
- Framework: Streamlit
- Presentation: 4 minutes total (about 3 min demo + 1 min Q&A)
Choose One Topic
Pick one topic from the course, for example:
- Segmentation (thresholding, k-means, watershed)
- Edge detection (Sobel, Laplacian, Canny)
- Registration (feature matching + transforms)
- Color spaces and color processing
- Filtering and denoising
- Template matching
If you want a different topic, ask for approval and explain how it maps to course content.
Minimum App Requirements
Your app must include:
- Input and controls
- File upload plus at least one built-in sample image
- Meaningful interactive controls for parameter exploration
- Clear parameter labels and defaults
- Visualization
- Side-by-side input/output comparison
- At least one diagnostic view (heatmap, mask, histogram, feature matches, etc.)
- Metrics
- Include at least one informative way to evaluate behavior (quantitative metric, diagnostic plot, or reasoned qualitative comparison)
- Brief interpretation text for what the evidence means
- Reliability
- Handles invalid input without crashing
- Runs responsively on normal image sizes
- Deployment
- Public, working Hugging Face Space URL
Deliverables
Create a repository like the example shown below, with the following suggested structure:
app.py- supporting modules (
processing.py,metrics.py,utils.py, etc.) sample_images/requirements.txtREADME.mdwith:- project summary
- local run instructions
- Hugging Face Space URL
- screenshots/GIF
- known limitations
- short design notes (
docs/design_choices.mdrecommended)
Grading Rubric (counts for 10% of the course)
We use a simple rubric (0-5 each, total 20):
- Concept clarity and technical correctness (0-5)
- Insight from exploration (0-5)
- Demo quality and usability (0-5)
- Reproducibility and deployment readiness (0-5)
Presentation Expectations
Suggested 4-minute structure:
- 0:00-0:30: problem and topic
- 0:30-1:45: walkthrough of the working app with images
- 1:45-2:30: exploration of parameter levels and performance trade-offs
- 2:30-3:00: limitation and possible improvements
- 3:00-4:00: Q&A
Recommended Build Workflow with Coding Agents
- Define your topic and learning objective in one paragraph.
- Ask your coding agent to scaffold the app structure.
- Implement one feature at a time (control, visualization, metric, error handling).
- Test after each feature.
- Ask your agent to prepare Hugging Face deployment files and troubleshooting checklist.
- Rehearse your 3-minute explanation + one minute of Q&A.
Coding agents are encouraged, but you are expected to understand and explain submitted code and interface.
Example References
- Colorspaces demo: https://huggingface.co/spaces/ubern-image-analysis/colorspaces
- Camera model projection demo: https://huggingface.co/spaces/ubern-image-analysis/camera-model-projection
- Streamlit docs: https://docs.streamlit.io
- Hugging Face Spaces docs: https://huggingface.co/docs/hub/spaces