YOLO helps computers find and recognize many objects in pictures quickly and all at once.
YOLO concept in PyTorch
import torch from ultralytics import YOLO model = YOLO("yolov8n.pt") outputs = model(images)
YOLO models take images and output boxes with object labels and confidence scores.
Pretrained models are ready to detect common objects without extra training.
model = YOLO("yolov8n.pt")
outputs = model([image_tensor])model = YOLO("yolov8n.pt")
outputs = model([image1, image2])This code loads a sample image, runs YOLOv8 to detect objects, and prints the bounding boxes, labels, and confidence scores.
import torch from ultralytics import YOLO from torchvision.transforms import functional as F from PIL import Image # Load image and convert to tensor image = Image.open('sample.jpg').convert('RGB') image_tensor = F.to_tensor(image) # Load pretrained YOLOv8 model model = YOLO("yolov8n.pt") # Run model on image with torch.no_grad(): outputs = model([image_tensor]) # Extract detections boxes = outputs[0].boxes.xyxy.cpu() labels = outputs[0].boxes.cls.cpu() scores = outputs[0].boxes.conf.cpu() # Print detected objects and scores for box, label, score in zip(boxes, labels, scores): print(f"Box coordinates: {box.tolist()}") print(f"Label: {int(label.item())}, Confidence: {score.item():.2f}")
YOLO stands for 'You Only Look Once' because it detects all objects in one pass.
YOLO models are fast and good for real-time applications.
Labels are numbers that map to object names like 'person' or 'car'.
YOLO detects many objects in images quickly and all at once.
It outputs boxes, labels, and confidence scores for each object.
Pretrained YOLO models can be used easily with PyTorch for fast object detection.
Practice
Solution
Step 1: Understand YOLO's detection method
YOLO processes the entire image once to detect all objects, unlike methods that scan multiple times.Step 2: Compare options with YOLO's feature
It detects multiple objects in an image quickly in a single pass correctly states YOLO's speed and single-pass detection. Other options contradict this.Final Answer:
It detects multiple objects in an image quickly in a single pass. -> Option BQuick Check:
YOLO speed = single pass detection [OK]
- Thinking YOLO scans image multiple times
- Believing YOLO detects only one object
- Confusing YOLO with slow detection methods
Solution
Step 1: Recall PyTorch hub usage for YOLO
PyTorch hub uses torch.hub.load with repo and model name to load pretrained models.Step 2: Check each option
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True) uses correct torch.hub.load syntax with pretrained=True. model = torch.load('yolov5s.pt') loads a file but not via hub. model = torch.yolo.load('yolov5s') and D use invalid methods.Final Answer:
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True) -> Option DQuick Check:
PyTorch hub load syntax = model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True) [OK]
- Using torch.load without specifying hub
- Trying non-existent torch.yolo module
- Confusing download with load
import torch
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
img = torch.zeros((1, 3, 640, 640))
pred = model(img)
print(len(pred.xyxy[0]))What does the printed number represent?
Solution
Step 1: Understand pred.xyxy output
pred.xyxy[0] contains bounding boxes for detected objects in the first image of the batch.Step 2: len(pred.xyxy[0]) counts detected boxes
Counting these boxes gives the number of objects detected in the image.Final Answer:
The number of detected objects in the image -> Option CQuick Check:
Length of pred.xyxy[0] = detected objects count [OK]
- Confusing output length with image channels
- Thinking it shows batch size
- Assuming it counts model layers
AttributeError: 'NoneType' object has no attribute 'xyxy'. What is the most likely cause?Solution
Step 1: Analyze the error message
'NoneType' means prediction output is None, so accessing .xyxy fails.Step 2: Identify cause of None output
If model loading fails or is incorrect, model(img) returns None, causing this error.Final Answer:
The model was not loaded correctly, so prediction returned None. -> Option AQuick Check:
None output means model load failed [OK]
- Blaming input shape without checking model load
- Assuming batch size 1 is unsupported
- Ignoring error message details
Solution
Step 1: Understand YOLO output structure
YOLO outputs boxes with class IDs; pred.names maps IDs to labels like 'person'.Step 2: Filter detections by class label
Filtering pred.xyxy[0] by checking if class label equals 'person' keeps only person detections.Final Answer:
Filter pred.xyxy[0] by checking if pred.names[class_id] == 'person' for each detected box. -> Option AQuick Check:
Filter detections by class label = Filter pred.xyxy[0] by checking if pred.names[class_id] == 'person' for each detected box. [OK]
- Trying to limit classes at model load (not supported directly)
- Using separate model unnecessarily
- Cropping image instead of filtering results
Ready to prove it?
Pass the test and this pattern moves unknown
