Stop 10 · Computer VisionProjects · 2/2

Object Detection Demo

Part of the AI Engineer Roadmap

In short

A demo that draws live boxes around objects on a webcam or video is instantly impressive. It also teaches you speed, thresholds and the gap between a notebook and something that runs in real time.

A working demo that draws bounding boxes around detected objects in an image or video feed — showcases a higher-complexity vision skill than classification alone.

The blob crouches in a forest by a camera on a tripod, watching a deer and a peacock outlined by glowing boxes.

Think of it like this

The forest camera trap

Wildlife researchers strap a camera to a tree and leave it for weeks. Every frame it checks: deer? leopard? just leaves? It saves only the interesting moments. Your demo is a camera trap that labels every object it spots, frame after frame.

Watch it happen

One frame through the demo

Webcam
App loop
YOLO model
Window

frame 640x480

1/5OpenCV grabs the next frame from the camera.

The big ideas

What you need to know

Show the FPS

Print frames per second on screen. It proves real-time performance and helps you compare model sizes.

Tunable threshold

Add a slider or flag for confidence so viewers can see the trade-off between misses and false alarms.

One custom class

Fine-tune on one class COCO lacks, like auto-rickshaws or your college ID card. That's what stands out.

Record a clip

Save a short annotated video for your README, so people see it working without running it.

See it in code

Walk through the code

python
1import time2import cv23from ultralytics import YOLO4 5model = YOLO("yolov8n.pt")6cap = cv2.VideoCapture(0)7 8while cap.isOpened():9    ok, frame = cap.read()10    if not ok:11        break12    t = time.time()13    annotated = model(frame, conf=0.4, verbose=False)[0].plot()14    cv2.putText(annotated, f"{1 / (time.time() - t):.1f} FPS", (10, 30),15                cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)16    cv2.imshow("detector", annotated)17    if cv2.waitKey(1) & 0xFF == ord("q"):18        break

1/4Load the smallest YOLO model and open the default webcam.

A minimal live webcam detector with an FPS counter. Press q to quit.

Save yourself the pain

Common mistakes

Oops

Using the largest model and getting 2 FPS on a laptop.

Do this instead

Start with a nano or small model. Only go bigger if accuracy truly needs it and FPS stays usable.

Oops

Only testing on clear daytime footage.

Do this instead

Try night, rain, crowds and motion blur. Show where it struggles in your write-up.

Your mission

First milestone: live boxes

~30 min

Quick check

Your demo flickers: boxes appear and vanish on an object every few frames. What helps most?

Go deeper

  1. 1Use a pretrained YOLO model and build a simple app around it (image or webcam input).
  2. 2Add confidence thresholds and class filtering as configurable options.
  3. 3Deploy it as a small web demo so it's shareable in a portfolio.

More projects at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge