YOLOv9项目结合了YOLOv9的快速目标检测能力和DeepSORT的稳定跟踪能力,实现了对视频流中多个对象的实时、准确检测和跟踪。在具体应用中,该项目能够对视频中的行人、车辆或其他物体进行实时定位、识别和持续跟踪,即使在复杂环境、对象互相遮挡或出现短暂消失的情况下也能保持较好的跟踪性能。这样的技术在智能监控、自动驾驶、无人机导航、体育赛事分析等多个领域都有着广泛的应用潜力。
安装:
1.克隆此存储库:
cd YOLOv9_DeepSORT
2.创造新环境 使用conda
conda env create -f conda.yml conda activate yolov9-deepsort
使用点
python3 -m virtualenv -p python3.11 yolov9-deepsort source yolov9-deepsort/bin/activate pip install -r requirements.txt
3.克隆 YOLOv9 存储库:
pip install -r requirements.txt mv ../object_tracking.py ../yolov9
4.下载模型重量
mkdir weights
用法
-
准备视频文件:
- 将视频文件放置在所需位置。
- 更新
video
视频文件路径中的标志或将其设置为0
使用网络摄像头作为输入。
-
下载YOLOv9模型:
- 确保对应的模型权重可用。
-
配置输出视频:
- 更新
output
代码中的标志以指定输出视频文件的路径和文件名。
- 更新
-
设置置信度阈值:
- 调整
conf
代码中的标志以设置对象检测的置信度阈值。置信度低于此阈值的对象将被过滤掉。
- 调整
-
如果您想检测并跟踪视频中的某些对象
- 修改
class_id
代码中的flag,指定检测的类ID。该标志的默认值设置为 None。如果您只想检测和跟踪人员,请将其设置为 0,或参考 coco.names 文件了解其他选项。
- 修改
-
如果您想在跟踪时模糊某些对象
- 修改
bulr_id
代码中的flag,指定检测的类ID。该标志的默认值设置为 None。
- 修改
-
运行代码:
用法
-
准备视频文件:
- 将视频文件放置在所需位置。
- 更新
video
视频文件路径中的标志或将其设置为0
使用网络摄像头作为输入。
-
下载YOLOv9模型:
- 确保对应的模型权重可用。 (YOLOv9-S/YOLOv9-M/ YOLOv9-C / YOLOv9-E )
-
配置输出视频:
- 更新
output
代码中的标志以指定输出视频文件的路径和文件名。
- 更新
-
设置置信度阈值:
- 调整
conf
代码中的标志以设置对象检测的置信度阈值。置信度低于此阈值的对象将被过滤掉。
- 调整
-
如果您想检测并跟踪视频中的某些对象
- 修改
class_id
代码中的flag,指定检测的类ID。该标志的默认值设置为 None。如果您只想检测和跟踪人员,请将其设置为 0,或参考 coco.names 文件了解其他选项。
- 修改
-
如果您想在跟踪时模糊某些对象
- 修改
bulr_id
代码中的flag,指定检测的类ID。该标志的默认值设置为 None。
- 修改
-
运行代码:
Run object tracking
python object_tracking.py --video ./data/test.mp4 --output ./output/output.mp4
Run object tracking on webcam (set video flag to 0)
python object_tracking.py --video 0 --output ./output/webcam.mp4
Run person tracking (set class_id flag to 0 for person)
python object_tracking.py --video ./data/test.mp4 --output ./output/output.mp4 --class_id 0