# Multi-Object Tracking with Ultralytics YOLO
<img width="1024" src="https://user-images.githubusercontent.com/26833433/243418637-1d6250fd-1515-4c10-a844-a32818ae6d46.png" alt="YOLOv8 trackers visualization">
Object tracking in the realm of video analytics is a critical task that not only identifies the location and class of objects within the frame but also maintains a unique ID for each detected object as the video progresses. The applications are limitless—ranging from surveillance and security to real-time sports analytics.
## Why Choose Ultralytics YOLO for Object Tracking?
The output from Ultralytics trackers is consistent with standard object detection but has the added value of object IDs. This makes it easy to track objects in video streams and perform subsequent analytics. Here's why you should consider using Ultralytics YOLO for your object tracking needs:
- **Efficiency:** Process video streams in real-time without compromising accuracy.
- **Flexibility:** Supports multiple tracking algorithms and configurations.
- **Ease of Use:** Simple Python API and CLI options for quick integration and deployment.
- **Customizability:** Easy to use with custom trained YOLO models, allowing integration into domain-specific applications.
**Video Tutorial:** [Object Detection and Tracking with Ultralytics YOLOv8](https://www.youtube.com/embed/hHyHmOtmEgs?si=VNZtXmm45Nb9s-N-).
## Features at a Glance
Ultralytics YOLO extends its object detection features to provide robust and versatile object tracking:
- **Real-Time Tracking:** Seamlessly track objects in high-frame-rate videos.
- **Multiple Tracker Support:** Choose from a variety of established tracking algorithms.
- **Customizable Tracker Configurations:** Tailor the tracking algorithm to meet specific requirements by adjusting various parameters.
## Available Trackers
Ultralytics YOLO supports the following tracking algorithms. They can be enabled by passing the relevant YAML configuration file such as `tracker=tracker_type.yaml`:
- [BoT-SORT](https://github.com/NirAharon/BoT-SORT) - Use `botsort.yaml` to enable this tracker.
- [ByteTrack](https://github.com/ifzhang/ByteTrack) - Use `bytetrack.yaml` to enable this tracker.
The default tracker is BoT-SORT.
## Tracking
To run the tracker on video streams, use a trained Detect, Segment or Pose model such as YOLOv8n, YOLOv8n-seg and YOLOv8n-pose.
#### Python
```python
from ultralytics import YOLO
# Load an official or custom model
model = YOLO("yolov8n.pt") # Load an official Detect model
model = YOLO("yolov8n-seg.pt") # Load an official Segment model
model = YOLO("yolov8n-pose.pt") # Load an official Pose model
model = YOLO("path/to/best.pt") # Load a custom trained model
# Perform tracking with the model
results = model.track(
source="https://youtu.be/LNwODJXcvt4", show=True
) # Tracking with default tracker
results = model.track(
source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml"
) # Tracking with ByteTrack tracker
```
#### CLI
```bash
# Perform tracking with various models using the command line interface
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" # Official Detect model
yolo track model=yolov8n-seg.pt source="https://youtu.be/LNwODJXcvt4" # Official Segment model
yolo track model=yolov8n-pose.pt source="https://youtu.be/LNwODJXcvt4" # Official Pose model
yolo track model=path/to/best.pt source="https://youtu.be/LNwODJXcvt4" # Custom trained model
# Track using ByteTrack tracker
yolo track model=path/to/best.pt tracker="bytetrack.yaml"
```
As can be seen in the above usage, tracking is available for all Detect, Segment and Pose models run on videos or streaming sources.
## Configuration
### Tracking Arguments
Tracking configuration shares properties with Predict mode, such as `conf`, `iou`, and `show`. For further configurations, refer to the [Predict](https://docs.ultralytics.com/modes/predict/) model page.
#### Python
```python
from ultralytics import YOLO
# Configure the tracking parameters and run the tracker
model = YOLO("yolov8n.pt")
results = model.track(
source="https://youtu.be/LNwODJXcvt4", conf=0.3, iou=0.5, show=True
)
```
#### CLI
```bash
# Configure tracking parameters and run the tracker using the command line interface
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" conf=0.3, iou=0.5 show
```
### Tracker Selection
Ultralytics also allows you to use a modified tracker configuration file. To do this, simply make a copy of a tracker config file (for example, `custom_tracker.yaml`) from [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers) and modify any configurations (except the `tracker_type`) as per your needs.
#### Python
```python
from ultralytics import YOLO
# Load the model and run the tracker with a custom configuration file
model = YOLO("yolov8n.pt")
results = model.track(
source="https://youtu.be/LNwODJXcvt4", tracker="custom_tracker.yaml"
)
```
#### CLI
```bash
# Load the model and run the tracker with a custom configuration file using the command line interface
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" tracker='custom_tracker.yaml'
```
For a comprehensive list of tracking arguments, refer to the [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers) page.
## Python Examples
### Persisting Tracks Loop
Here is a Python script using OpenCV (`cv2`) and YOLOv8 to run object tracking on video frames. This script still assumes you have already installed the necessary packages (`opencv-python` and `ultralytics`). The `persist=True` argument tells the tracker than the current image or frame is the next in a sequence and to expect tracks from the previous image in the current image.
#### Python
```python
import cv2
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO("yolov8n.pt")
# Open the video file
video_path = "path/to/video.mp4"
cap = cv2.VideoCapture(video_path)
# Loop through the video frames
while cap.isOpened():
# Read a frame from the video
success, frame = cap.read()
if success:
# Run YOLOv8 tracking on the frame, persisting tracks between frames
results = model.track(frame, persist=True)
# Visualize the results on the frame
annotated_frame = results[0].plot()
# Display the annotated frame
cv2.imshow("YOLOv8 Tracking", annotated_frame)
# Break the loop if 'q' is pressed
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
# Break the loop if the end of the video is reached
break
# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()
```
Please note the change from `model(frame)` to `model.track(frame)`, which enables object tracking instead of simple detection. This modified script will run the tracker on each frame of the video, visualize the results, and display them in a window. The loop can be exited by pressing 'q'.
### Plotting Tracks Over Time
Visualizing object tracks over consecutive frames can provide valuable insights into the movement patterns and behavior of detected objects within a video. With Ultralytics YOLOv8, plotting these tracks is a seamless and efficient process.
In the following example, we demonstrate how to utilize YOLOv8's tracking capabilities to plot the movement of detected objects across multiple video frames. This script involves opening a video file, reading it frame by frame, and utilizing the YOLO model to identify and track various objects. By retaining the center points of the detected bounding boxes and connecting them, we can draw lines that represent the paths followed by the tracked objects.
#### Python
```python
from collections import defaultdict
import cv2
import numpy as np
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO("y
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、YOLOV8训练好的飞鸟检测模型+pyqt界面,包括训练好的模型,并包含近1000张标注好的鸟类数据集,标签格式为xml和txt两种,类别名为bird, 2、数据集和检测结果参考:https://blog.csdn.net/zhiqingAI/article/details/124230743 3、另外一万多张飞鸟数据集 https://download.csdn.net/download/zhiqingAI/85110825 4、采用pytrch框架,代码是python的
资源推荐
资源详情
资源评论
收起资源包目录
YOLOv8飞鸟检测代码+pyqt界面+训练好的飞鸟检测检测模型+标注好的飞鸟数据集 (2000个子文件)
labels.cache 177KB
labels.cache 32KB
Dockerfile 821B
bus.jpg 476KB
2009_000206.jpg 262KB
2008_006461.jpg 259KB
2008_000532.jpg 254KB
2009_000879.jpg 251KB
2009_002286.jpg 247KB
2008_002200.jpg 247KB
2010_001992.jpg 244KB
2010_004906.jpg 239KB
2009_003911.jpg 236KB
2009_005260.jpg 235KB
2009_002608.jpg 235KB
2010_003648.jpg 233KB
2008_001522.jpg 230KB
2009_004959.jpg 227KB
2011_002767.jpg 226KB
2009_000536.jpg 222KB
2008_007250.jpg 221KB
2010_006084.jpg 218KB
2009_002414.jpg 216KB
2010_004071.jpg 216KB
2008_000515.jpg 215KB
2008_006882.jpg 215KB
2009_004540.jpg 214KB
2008_004551.jpg 212KB
2009_003378.jpg 212KB
2009_002056.jpg 212KB
2009_000146.jpg 211KB
2009_000812.jpg 211KB
2010_003028.jpg 210KB
2008_007714.jpg 208KB
2010_002450.jpg 208KB
2011_001134.jpg 207KB
2008_000960.jpg 204KB
2008_001514.jpg 203KB
2010_005028.jpg 203KB
2011_002245.jpg 202KB
2010_004948.jpg 202KB
2008_004087.jpg 201KB
2011_000002.jpg 201KB
2008_005618.jpg 201KB
2010_001016.jpg 200KB
2008_007854.jpg 200KB
2008_005956.jpg 200KB
2008_008490.jpg 199KB
2008_008447.jpg 198KB
2008_005626.jpg 197KB
2008_006281.jpg 195KB
2008_001185.jpg 195KB
2010_000103.jpg 195KB
2011_001117.jpg 195KB
2011_002464.jpg 195KB
2010_004570.jpg 195KB
2010_000707.jpg 194KB
2011_002295.jpg 194KB
2008_008377.jpg 192KB
2008_003170.jpg 192KB
2010_000814.jpg 191KB
2010_005516.jpg 190KB
2010_000023.jpg 190KB
2009_002153.jpg 188KB
2009_004509.jpg 188KB
2010_003097.jpg 187KB
2010_004559.jpg 187KB
2008_001264.jpg 187KB
2008_008376.jpg 186KB
2008_008423.jpg 186KB
2008_003049.jpg 186KB
2009_004568.jpg 185KB
2010_000502.jpg 185KB
2010_003081.jpg 185KB
2009_001741.jpg 185KB
2011_001084.jpg 184KB
2008_006566.jpg 184KB
2009_000938.jpg 184KB
2011_000912.jpg 183KB
2008_002647.jpg 183KB
2010_001481.jpg 182KB
2011_000554.jpg 181KB
background.jpg 181KB
2008_006058.jpg 181KB
2010_004420.jpg 181KB
2009_001221.jpg 180KB
2008_005584.jpg 180KB
2011_001001.jpg 180KB
2008_004384.jpg 180KB
2008_004763.jpg 180KB
2010_002803.jpg 180KB
2008_007501.jpg 179KB
2009_002264.jpg 179KB
2010_001820.jpg 179KB
2008_007423.jpg 179KB
2008_004942.jpg 178KB
2008_004103.jpg 178KB
2008_008134.jpg 178KB
2008_005296.jpg 178KB
2008_000192.jpg 178KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
stsdddd
- 粉丝: 2w+
- 资源: 686
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功