๐ Real-Time Object Detection with YOLOv10 on Webcam - You Won’t Believe What Happens Next! ๐น๐ฎ
INTRO
Hey there, hacker-wannabe! Ready to turn your webcam into a super-spy surveillance system? Today, we’re gonna make your laptop’s eye roll with YOLOv10, the latest in object detection madness. No more boring cat-dog classifiers, we’re talking real-time action here! So grab your coffee, let’s dive in!
PREREQUISITES
- Python (3.8+) installed
- pipenv for managing dependencies ๐ฑ
pip install pipenv - Basic understanding of Linux/Mac terminal or Windows Command Prompt/PowerShell
THE TUTORIAL
1. Setup your environment - Let’s get this party started! ๐ป๐ถ
First, create a new folder for our project and navigate into it:
mkdir yolov10-webcam
cd yolov10-webcam
Now, let’s setup pipenv and install the required packages:
pipenv shell
pipenv install torch opencv-python-headless numpy --dev
2. Download YOLOv10 weights - Because size matters! ๐ฆ๐ฅ
We’ll use the pre-trained YOLOv10 tiny model for this tutorial. Grab it from here: https://github.com/ultralytics/yolov5/releases/download/v10.0/yolov5-tiny.pt
Save it as yolov5-tiny.pt in your project folder.
3. Create a detector script - Let’s get our hands dirty! ๐ ๏ธ๐ช
Create a new file called detector.py:
import cv2
import torch
import numpy as np
# Load YOLOv5 model
model = torch.hub.load('ultralytics/yolov5', 'yolov5-tiny')
# Set up webcam
cap = cv2.VideoCapture(0)
while True:
# Read frame from webcam
ret, frame = cap.read()
if not ret:
break
# Make detections
results = model(frame)
df = results.pandas().xyxy[0]
# Draw bounding boxes on the frame
for _, row in df.iterrows():
x1, y1, x2, y2, conf, cls = row.values
cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
cv2.putText(frame, f'{cls} {conf:.2f}', (int(x1), int(y1) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 255, 0), 2)
# Display the frame
cv2.imshow('Webcam', frame)
# Break loop on 'q' key press
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Release resources and close windows
cap.release()
cv2.destroyAllWindows()
4. Run the detector - Let’s see some magic! ๐ฉ๐
Now, let’s run our script with:
python detector.py
You should now see your webcam feed with real-time object detection!
โ ๏ธ Tip: If you’re using a Mac and encountering permission issues, try running brew services stop opencv4 first.
EXPECTED RESULT
Your webcam should now be displaying bounding boxes around detected objects along with their confidence levels. Wave your hands, show some toys, or dance like nobody’s watching โ YOLOv10 will detect them all!
GOING FURTHER
Now that you’ve got the basics down, why not:
- ๐ Try other pre-trained models like
yolov5s,yolov5m,yolov5l, oryolov5xfor better detection accuracy. - ๐ Train your own custom YOLOv10 model using the official YOLOv5 tutorial.
- ๐ฌ Play around with different webcam resolutions and frame rates for optimal performance.
- โค๏ธ Share your results on social media โ let’s make object detection go viral! (Don’t forget to tag @ultralytics!)
That’s all, folks! Happy hacking, and remember: keep calm and YOLO on! ๐๐ฅ
๐ฌ Comments
Comments are coming soon! We're setting up our discussion system.
In the meantime, feel free to contact us with your feedback.