Computer Vision / Live video · Independent project
SmartCam: Live Object Detection in the Browser
Dmitri Derevjanko built SmartCam, a YOLOv8 live object-detection demo that streams annotated frames to the browser with FastAPI and OpenCV.
This is one of 10+ independent public projects by Dmitri Derevjanko. 100+ additional workflows were delivered professionally, mostly under confidentiality, and are not documented here.
Open live demo View GitHub Back to portfolio
Problem
Many detection demos are offline clips or heavy client-side models. A useful demo needs a live stream, readable overlays, and CPU-aware cadence so the server does not melt when FPS spikes.
Solution
A server-side YOLOv8 nano loop that resizes frames, runs detection, draws boxes and labels, and emits MJPEG so the browser only displays the annotated stream.
What Dmitri Derevjanko built
Dmitri wired Ultralytics YOLOv8 into FastAPI, built the OpenCV processing loop, MJPEG endpoint, overlay styling, throttling, Docker/Nginx packaging, and the ai-news repository.
Architecture
- Frames are captured, resized, and normalized before YOLOv8 nano inference.
- Cadence control limits how many frames are processed under high input FPS.
- Overlays (box, class, confidence) are drawn server-side for readable motion.
- MJPEG streams annotated frames to a small HTML/JS client.
- Docker plus Nginx keep the demo consistent across environments.
Technologies
- Python
- FastAPI
- YOLOv8
- OpenCV
- MJPEG
- Docker
- Nginx
Result
A browser-visible live detection demo that stays stable on imperfect streams and throttles work when the camera is faster than the CPU.
Limitations
- Nano weights favour throughput over the largest models' accuracy.
- Latency depends on camera, network, and CPU; this is not a guaranteed real-time SLA.
- Classes are the model's trained vocabulary, not a custom factory taxonomy.
Live demo and source
Live demo: https://ai-news.dmitriderevjanko.com
GitHub: https://github.com/DmitriDerevjanko/ai-news
Portfolio case study: https://dmitriderevjanko.com/projects/smartcam/