YOLOv8-DeepSORT-对象跟踪(车辆识别检测)

本文章为记录使用YOLOv8-DeepSORT-对象跟踪项目。

开发环境

conda activate '环境名'

1、python3.8

2、Anaconda3

开发环境搭建

1、创建一个虚拟环境用于项目

conda create -n '自定义环境名' python=3.8

2、激活虚拟环境

conda activate 环境名

激活陈功如下图:

克隆储存库

GitHub项目地址:YOLOv8-DeepSORT-对象跟踪,需要更详细的了解项目可以查看

git clone https://github.com/MuhammadMoinFaisal/YOLOv8-DeepSORT-Object-Tracking.git

克隆完成如下图:

完整的项目结构如下:

.
└── YOLOv8-DeepSORT-Object-Tracking
    ├── CONTRIBUTING.md
    ├── figure
    │   ├── figure1.png
    │   ├── figure2.png
    │   └── figure3.png
    ├── MANIFEST.in
    ├── mkdocs.yml
    ├── README.md
    ├── requirements.txt
    ├── setup.cfg
    ├── setup.py
    ├── ultralytics
    │   ├── hub
    │   │   ├── auth.py
    │   │   ├── __init__.py
    │   │   ├── __pycache__
    │   │   │   ├── auth.cpython-38.pyc
    │   │   │   ├── __init__.cpython-38.pyc
    │   │   │   ├── session.cpython-38.pyc
    │   │   │   └── utils.cpython-38.pyc
    │   │   ├── session.py
    │   │   └── utils.py
    │   ├── __init__.py
    │   ├── models
    │   │   ├── README.md
    │   │   ├── v3
    │   │   │   ├── yolov3-spp.yaml
    │   │   │   ├── yolov3-tiny.yaml
    │   │   │   └── yolov3.yaml
    │   │   ├── v5
    │   │   │   ├── yolov5l.yaml
    │   │   │   ├── yolov5m.yaml
    │   │   │   ├── yolov5n.yaml
    │   │   │   ├── yolov5s.yaml
    │   │   │   └── yolov5x.yaml
    │   │   └── v8
    │   │       ├── cls
    │   │       │   ├── yolov8l-cls.yaml
    │   │       │   ├── yolov8m-cls.yaml
    │   │       │   ├── yolov8n-cls.yaml
    │   │       │   ├── yolov8s-cls.yaml
    │   │       │   └── yolov8x-cls.yaml
    │   │       ├── seg
    │   │       │   ├── yolov8l-seg.yaml
    │   │       │   ├── yolov8m-seg.yaml
    │   │       │   ├── yolov8n-seg.yaml
    │   │       │   ├── yolov8s-seg.yaml
    │   │       │   └── yolov8x-seg.yaml
    │   │       ├── yolov8l.yaml
    │   │       ├── yolov8m.yaml
    │   │       ├── yolov8n.yaml
    │   │       ├── yolov8s.yaml
    │   │       ├── yolov8x6.yaml
    │   │       └── yolov8x.yaml
    │   ├── nn
    │   │   ├── autobackend.py
    │   │   ├── __init__.py
    │   │   ├── modules.py
    │   │   ├── __pycache__
    │   │   │   ├── autobackend.cpython-38.pyc
    │   │   │   ├── __init__.cpython-38.pyc
    │   │   │   ├── modules.cpython-38.pyc
    │   │   │   └── tasks.cpython-38.pyc
    │   │   └── tasks.py
    │   ├── __pycache__
    │   │   └── __init__.cpython-38.pyc
    │   └── yolo
    │       ├── cli.py
    │       ├── configs
    │       │   ├── default.yaml
    │       │   ├── hydra_patch.py
    │       │   ├── __init__.py
    │       │   └── __pycache__
    │       │       ├── hydra_patch.cpython-38.pyc
    │       │       └── __init__.cpython-38.pyc
    │       ├── data
    │       │   ├── augment.py
    │       │   ├── base.py
    │       │   ├── build.py
    │       │   ├── dataloaders
    │       │   │   ├── __init__.py
    │       │   │   ├── __pycache__
    │       │   │   │   ├── __init__.cpython-38.pyc
    │       │   │   │   ├── stream_loaders.cpython-38.pyc
    │       │   │   │   ├── v5augmentations.cpython-38.pyc
    │       │   │   │   └── v5loader.cpython-38.pyc
    │       │   │   ├── stream_loaders.py
    │       │   │   ├── v5augmentations.py
    │       │   │   └── v5loader.py
    │       │   ├── dataset.py
    │       │   ├── datasets
    │       │   │   ├── Argoverse.yaml
    │       │   │   ├── coco128-seg.yaml
    │       │   │   ├── coco128.yaml
    │       │   │   ├── coco.yaml
    │       │   │   ├── GlobalWheat2020.yaml
    │       │   │   ├── ImageNet.yaml
    │       │   │   ├── Objects365.yaml
    │       │   │   ├── SKU-110K.yaml
    │       │   │   ├── VisDrone.yaml
    │       │   │   ├── VOC.yaml
    │       │   │   └── xView.yaml
    │       │   ├── dataset_wrappers.py
    │       │   ├── __init__.py
    │       │   ├── __pycache__
    │       │   │   ├── augment.cpython-38.pyc
    │       │   │   ├── base.cpython-38.pyc
    │       │   │   ├── build.cpython-38.pyc
    │       │   │   ├── dataset.cpython-38.pyc
    │       │   │   ├── dataset_wrappers.cpython-38.pyc
    │       │   │   ├── __init__.cpython-38.pyc
    │       │   │   └── utils.cpython-38.pyc
    │       │   ├── scripts
    │       │   │   ├── download_weights.sh
    │       │   │   ├── get_coco128.sh
    │       │   │   ├── get_coco.sh
    │       │   │   └── get_imagenet.sh
    │       │   └── utils.py
    │       ├── engine
    │       │   ├── exporter.py
    │       │   ├── __init__.py
    │       │   ├── model.py
    │       │   ├── predictor.py
    │       │   ├── __pycache__
    │       │   │   ├── exporter.cpython-38.pyc
    │       │   │   ├── __init__.cpython-38.pyc
    │       │   │   ├── model.cpython-38.pyc
    │       │   │   ├── predictor.cpython-38.pyc
    │       │   │   ├── trainer.cpython-38.pyc
    │       │   │   └── validator.cpython-38.pyc
    │       │   ├── trainer.py
    │       │   └── validator.py
    │       ├── utils
    │       │   ├── autobatch.py
    │       │   ├── callbacks
    │       │   │   ├── base.py
    │       │   │   ├── clearml.py
    │       │   │   ├── comet.py
    │       │   │   ├── hub.py
    │       │   │   ├── __init__.py
    │       │   │   ├── __pycache__
    │       │   │   │   ├── base.cpython-38.pyc
    │       │   │   │   ├── clearml.cpython-38.pyc
    │       │   │   │   ├── comet.cpython-38.pyc
    │       │   │   │   ├── hub.cpython-38.pyc
    │       │   │   │   ├── __init__.cpython-38.pyc
    │       │   │   │   └── tensorboard.cpython-38.pyc
    │       │   │   └── tensorboard.py
    │       │   ├── checks.py
    │       │   ├── dist.py
    │       │   ├── downloads.py
    │       │   ├── files.py
    │       │   ├── __init__.py
    │       │   ├── instance.py
    │       │   ├── loss.py
    │       │   ├── metrics.py
    │       │   ├── ops.py
    │       │   ├── plotting.py
    │       │   ├── __pycache__
    │       │   │   ├── autobatch.cpython-38.pyc
    │       │   │   ├── checks.cpython-38.pyc
    │       │   │   ├── dist.cpython-38.pyc
    │       │   │   ├── downloads.cpython-38.pyc
    │       │   │   ├── files.cpython-38.pyc
    │       │   │   ├── __init__.cpython-38.pyc
    │       │   │   ├── instance.cpython-38.pyc
    │       │   │   ├── loss.cpython-38.pyc
    │       │   │   ├── metrics.cpython-38.pyc
    │       │   │   ├── ops.cpython-38.pyc
    │       │   │   ├── plotting.cpython-38.pyc
    │       │   │   ├── tal.cpython-38.pyc
    │       │   │   └── torch_utils.cpython-38.pyc
    │       │   ├── tal.py
    │       │   └── torch_utils.py
    │       └── v8
    │           └── detect
    │               ├── deep_sort_pytorch
    │               │   ├── configs
    │               │   │   └── deep_sort.yaml
    │               │   ├── deep_sort
    │               │   │   ├── deep
    │               │   │   │   ├── checkpoint
    │               │   │   │   │   └── ckpt.t7
    │               │   │   │   ├── evaluate.py
    │               │   │   │   ├── feature_extractor.py
    │               │   │   │   ├── __init__.py
    │               │   │   │   ├── model.py
    │               │   │   │   ├── original_model.py
    │               │   │   │   ├── __pycache__
    │               │   │   │   │   ├── feature_extractor.cpython-38.pyc
    │               │   │   │   │   ├── __init__.cpython-38.pyc
    │               │   │   │   │   └── model.cpython-38.pyc
    │               │   │   │   ├── test.py
    │               │   │   │   ├── train.jpg
    │               │   │   │   └── train.py
    │               │   │   ├── deep_sort.py
    │               │   │   ├── __init__.py
    │               │   │   ├── __pycache__
    │               │   │   │   ├── deep_sort.cpython-38.pyc
    │               │   │   │   └── __init__.cpython-38.pyc
    │               │   │   ├── README.md
    │               │   │   ├── sort
    │               │   │   │   ├── detection.py
    │               │   │   │   ├── __init__.py
    │               │   │   │   ├── iou_matching.py
    │               │   │   │   ├── kalman_filter.py
    │               │   │   │   ├── linear_assignment.py
    │               │   │   │   ├── nn_matching.py
    │               │   │   │   ├── preprocessing.py
    │               │   │   │   ├── __pycache__
    │               │   │   │   │   ├── detection.cpython-38.pyc
    │               │   │   │   │   ├── __init__.cpython-38.pyc
    │               │   │   │   │   ├── iou_matching.cpython-38.pyc
    │               │   │   │   │   ├── kalman_filter.cpython-38.pyc
    │               │   │   │   │   ├── linear_assignment.cpython-38.pyc
    │               │   │   │   │   ├── nn_matching.cpython-38.pyc
    │               │   │   │   │   ├── track.cpython-38.pyc
    │               │   │   │   │   └── tracker.cpython-38.pyc
    │               │   │   │   ├── tracker.py
    │               │   │   │   └── track.py
    │               │   │   └── sort - Copy
    │               │   │       ├── __init__.py
    │               │   │       ├── iou_matching.py
    │               │   │       ├── kalman_filter.py
    │               │   │       ├── linear_assignment.py
    │               │   │       ├── nn_matching.py
    │               │   │       └── preprocessing.py
    │               │   ├── LICENSE
    │               │   ├── README.md
    │               │   └── utils
    │               │       ├── asserts.py
    │               │       ├── draw.py
    │               │       ├── evaluation.py
    │               │       ├── __init__.py
    │               │       ├── io.py
    │               │       ├── json_logger.py
    │               │       ├── log.py
    │               │       ├── parser.py
    │               │       ├── __pycache__
    │               │       │   ├── __init__.cpython-38.pyc
    │               │       │   └── parser.cpython-38.pyc
    │               │       └── tools.py
    │               ├── __init__.py
    │               ├── predict.log
    │               ├── predict.py
    │               ├── __pycache__
    │               │   ├── __init__.cpython-38.pyc
    │               │   ├── predict.cpython-38.pyc
    │               │   ├── train.cpython-38.pyc
    │               │   └── val.cpython-38.pyc
    │               ├── test3.mp4
    │               ├── train.py
    │               ├── val.py
    │               ├── yolov8l.pt
    │               └── yolov8n.pt
    ├── ultralytics.egg-info
    │   ├── dependency_links.txt
    │   ├── entry_points.txt
    │   ├── PKG-INFO
    │   ├── requires.txt
    │   ├── SOURCES.txt
    │   └── top_level.txt
    ├── YOLOv8_DeepSORT_TRACKING_SCRIPT.ipynb
    └── YOLOv8_Detection_Tracking_CustomData_Complete.ipynb

运行代码的步骤

转到克隆的文件夹

cd YOLOv8-DeepSORT-Object-Tracking

 在虚拟环境中安装依赖项

pip install -e '.[dev]'

 注意:numpy==1.23.5,numpy版本高于1.23.5可能无法运行,因为代码依赖于旧版的numpy

进入detect文件

cd ultralytics/yolo/v8/detect

 从驱动器下载 DeepSORT Zip 文件后,将其解压缩到子文件夹中,并将 deep_sort_pytorch 文件夹放入 yolo/v8/detect 文件夹中

下载 DeepSORT 文件地址如下:下载 DeepSORT 文件

下载示例视频:示例视频

运行predict.py文件,进行目标检测+跟踪

python predict.py model=yolov8l.pt source="test3.mp4" show=True

 运行效果

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值