Inspiration
Youth players get delayed, expensive shooting feedback. Parents and youth coaches need a fast loop: record a short clip, learn whether to re-record or run a drill, and hear one actionable sentence. This entry is deliberately narrow: instep shooting only (shot.instep).
What it does
(1) coach-ui requests a presigned S3 upload URL via API Gateway + Lambda; (2) clip uploads to S3 (ap-southeast-1); (3) contest FastAPI POST /analyze/shot with s3_key runs OpenCV 5 decode + quality gates + MoveNet Lightning DNN pose and geometric rules for a 0–100 technique score; (4) deterministic agent policy sets next_action request_re_record | assign_drill | accept_and_coach plus one Chinese coaching sentence; (5) OpenCV measurements change the next action — not a chatbot that only explains a fixed score.
How we built it
OpenCV 5.0.0.93 via cv2.dnn MoveNet ONNX on a separate contest image (Dockerfile.comp). AWS S3 + API Gateway + Lambda presign. Bedrock sentence rewrite and dedicated agent Lambda deferred; decide_next_action runs in the API process today. Live: https://nati-shot-coach-comp.onrender.com
Challenges
Keeping production fundamentals Render free of OpenCV/torch while shipping competition OpenCV 5 path; free-tier memory limits on larger clips; honest Agentic Vision claim without overselling deferred Bedrock.
Accomplishments
Live e2e presign→S3→OpenCV5 MoveNet→agent next_action; technical report + architecture + agent-workflow diagrams on PR #14; quality-gate refusal path verified.
What we learned
Substantive OpenCV 5 video analysis + real AWS upload path makes a clear competition narrative; agent value is vision-driven action branching, not LLM prose alone.
What's next
Record ≤5 min judge video; optional Bedrock rewrite; expand real-shot evaluation traces; keep AWS spend under Free-plan credits.
Demo video
The official judge video is on the Video field. A usable shot demo clip is linked under Try it out.
Team
Ruoli Wang (GitHub ReallyWong) — building NATI 哪踢 / ScoutMind youth football AI; University of Maryland ENTS/engineering alumni ties; team representative for this entry.
Links
- Live demo: https://nati-shot-coach-comp.onrender.com
- Coach UI: https://nati-shot-coach-comp.onrender.com/coach-ui/
- GitHub: https://github.com/ReallyWong/ai-football-coach
- Competition PR: https://github.com/ReallyWong/ai-football-coach/pull/14
- Technical report: https://github.com/ReallyWong/ai-football-coach/blob/comp/opencv26-shot-agent/docs/opencv26/opencv26_technical_report.pdf
- Architecture: https://github.com/ReallyWong/ai-football-coach/blob/comp/opencv26-shot-agent/docs/opencv26/architecture.png
- Agent workflow: https://github.com/ReallyWong/ai-football-coach/blob/comp/opencv26-shot-agent/docs/opencv26/agent-workflow.png
Built With
- amazon-api-gateway
- amazon-web-services
- aws-lambda
- fastapi
- movenet
- onnx-runtime
- opencv
- opencv-5
- python
- render
- s3