🎥 Full Video Tutorial: YOLO26 Explained Step-by-Step
Watch the complete video demonstration covering webcam activation, custom training, annotation, and real-time inference.
Beautiful real-time detection with bounding boxes and confidence labels 🚀
Assalam-o-Alaikum! Welcome to this complete hands-on guide. In this tutorial (and the video above), we cover YOLO26 – everything from training custom models to real-time inference on webcam/video with clean annotations using Ultralytics and Supervision.
We will go through:
- ✅ 1. Installation
- ✅ 2. Dataset preparation & annotation
- ✅ 3. Training a custom model
- ✅ 4. Real-time inference script (CLI app)
- ✅ 5. Running on webcam/video
1. Installation
pip install ultralytics supervision opencv-python typer
2. Dataset Preparation & Annotation
Standard YOLO dataset folder structure
data.yaml example:
train: ./dataset/images/train
val: ./dataset/images/val
nc: 2
names: ['person', 'car']
Recommended annotation tools: makesense.ai, labelImg, or Roboflow.
3. Training a Custom Model
from ultralytics import YOLO
model = YOLO("yolov8n.pt") # or yolov8s.pt/m.pt
model.train(
data="data.yaml",
epochs=100,
imgsz=640,
batch=16,
name="yolo26_custom"
)
4. Real-Time Inference Script
Full yolo_detect.py:
import cv2
import supervision as sv
from ultralytics import YOLO
import typer
app = typer.Typer(help="YOLO26 real-time detection")
model = YOLO("best.pt") # Apna trained model path yahan dalo
def process(source: str, output_file: str, conf_threshold: float = 0.25):
cap = cv2.VideoCapture(int(source) if source.isdigit() else source)
if not cap.isOpened():
raise typer.Exit("Source open nahi hua")
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = cap.get(cv2.CAP_PROP_FPS) or 30
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_file, fourcc, fps, (width, height))
box_annotator = sv.BoundingBoxAnnotator()
label_annotator = sv.LabelAnnotator()
while True:
ret, frame = cap.read()
if not ret:
break
results = model(frame, conf=conf_threshold, verbose=False)[0]
detections = sv.Detections.from_ultralytics(results)
annotated = box_annotator.annotate(scene=frame.copy(), detections=detections)
annotated = label_annotator.annotate(scene=annotated, detections=detections)
out.write(annotated)
cv2.imshow("YOLO26 Detection", annotated)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()
@app.command()
def run(source: str = "0", output: str = "output.mp4", conf: float = 0.25):
process(source, output, conf)
if __name__ == "__main__":
app()
5. Run Commands
# Webcam
python yolo_detect.py --source 0 --conf 0.3
# Video file
python yolo_detect.py --source video.mp4 --output result.mp4
📚 Resources from the Video
🌟 Unlock the Full Potential with PyResearch
AI Projects • Custom Solutions • Annotation Tool • Membership • Consultancy
Stay Connected:
YouTube •
GitHub •
Discord
Let’s revolutionize AI and Computer Vision together! 🌟
Happy detecting! Don’t forget to like, share, and subscribe to the channel 🚀