Inspiration
Most “AI vision” demos classify a photo and stop. Real troubleshooting is messier: the first shot is glared, blurry, or too far, and a wrong claim (“safe to ride”, a disease name) is worse than no answer. I wanted an agent that lets OpenCV measurements choose the next action—retake, remediate, compare, inspect, or escalate—not a single forward pass.
What it does
LookAgain is agentic visual troubleshooting for three allowlisted packs: appliance_leds, bike_brake_pad, and leaf_spot.
- Phone capture (or no-prop fixture pairs) → triage_frame (sharpness, glare, exposure, ROI)
- On failure → remediate_frame, else request_capture with a reason (
less_glare,blur,move_closer, …) - On retake → compare_shots (SIFT + USAC_MAGSAC, reason-aware scale/overlap) gates whether the new shot is good enough
- inspect_pack → evidence_gate → finalize_report with bounded claims only (or escalate_human)
Amazon Bedrock Converse tool-use picks the next tool from vision JSON; LOOKAGAIN_AGENT=heuristic is a deterministic fallback. Packs outside the allowlist never finalize.
How I built it
- OpenCV 5 locally (
opencv-python==5.0.0.93) for triage, remediate, SIFT matching, pack inspectors - FastAPI session API + phone UI; one-click demo pairs via
/api/demo/run_pair - Bedrock (Claude Haiku 4.5 inference profile) for the agentic loop
- AWS COOL on Graviton (
c8g.large): honest KleidiCV / OpenCV 4.x path on AMI—SIFT locked (no ALIKED); benches report parity, not inflated speedup
Challenges
- COOL AMI is not OpenCV 5 and lacks ALIKED → design for SIFT + honest dual-build storytelling
- Bedrock document types reject Python
tuples in tool results →json_safecoercion - Software remediate can “fix” glare too well for demos → fixtures that still force a guided retake
- Claim safety: forbid “safe to ride” / disease names so finalize stays competition-safe
What’s next
Face-on demo video with live Bedrock tool trace + short COOL /health proof; optional stock Arm demo box through judging.
Built With
- 5
- amazon
- amazon-web-services
- bedrock
- boto3
- cool
- ec2
- fastapi
- graviton
- numpy
- opencv
- pytest
- python
- sift
- usac-magsac
- uvicorn
Log in or sign up for Devpost to join the conversation.