__yolov8+deepsort 部署 win10
1.源码及环境准备
实现源码git仓库位置:
https://github.com/MuhammadMoinFaisal/YOLOv8-DeepSORT-Object-Tracking
谷歌原始deepsort 源码下载地址:
https://drive.google.com/drive/folders/1kna8eWGrSfzaR6DtNJ8_GchGgPMv3VC8
下载文件及路径:
deep_sort_pytorch-20240724T025234Z-001.zip
实际上是deep_sort_pytorch 的历史版本:
原始仓库位置:
https://github.com/ZQPei/deep_sort_pytorch.git
环境:
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 2.59 GHz NVIDIA GeForce GTX 1660 Ti with Max-Q Design 20.0 GB (19.8 GB 可用) Windows 10 教育版 19044.1826
C:\Users\shaun>nvidia-smi Thu Jul 25 08:49:45 2024 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 512.72 Driver Version: 512.72 CUDA Version: 11.6 | |-------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA GeForce ... WDDM | 00000000:01:00.0 On | N/A | | N/A 48C P8 4W / N/A | 93MiB / 6144MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| +-----------------------------------------------------------------------------+
C:\Users\shaun>nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Fri_Dec_17_18:28:54_Pacific_Standard_Time_2021 Cuda compilation tools, release 11.6, V11.6.55 Build cuda_11.6.r11.6/compiler.30794723_0
2.部署
主要参考:源码仓库的readme.md 来部署:
YOLOv8-DeepSORT-Object-Tracking
conda create -n YOLOv8-DeepSORT-Object-TrackingPy python=3.8 conda activate YOLOv8-DeepSORT-Object-TrackingPy
git clone https://github.com/MuhammadMoinFaisal/YOLOv8-DeepSORT-Object-Tracking.git
cd YOLOv8-DeepSORT-Object-Tracking
pip install -e '.[dev]'
cd ultralytics/yolo/v8/detect
解压下载的deep_sort 包到当前目录:
deep_sort_pytorch-20240724T025234Z-001.zip
在遇到下载torch 等大文件下载时间太长的,直接在浏览器下载,然后cd 进入到下载的安装包的位置,运行pip install 安装包全称
例如更换torch 本地下载,直接安装: cd D:\__ai pip install torch-1.13.1+cu116-cp38-cp38-win_amd64.whl pip install torchvision-0.14.1+cu116-cp38-cp38-win_amd64.whl
环境pip list
Package Version Editable project location -------------------------- -------------------- ----------------------------------------------------------------------------------------- absl-py 2.1.0 antlr4-python3-runtime 4.9.3 asttokens 2.4.1 astunparse 1.6.3 Babel 2.15.0 backcall 0.2.0 backports.strenum 1.3.1 beautifulsoup4 4.12.3 build 1.2.1 cachetools 5.4.0 certifi 2024.7.4 charset-normalizer 3.3.2 check-manifest 0.49 click 8.1.7 colorama 0.4.6 contourpy 1.1.1 coverage 7.6.0 cycler 0.12.1 decorator 5.1.1 easydict 1.13 exceptiongroup 1.2.2 executing 2.0.1 filelock 3.15.4 fonttools 4.53.1 fsspec 2024.6.1 gdown 5.2.0 ghp-import 2.1.0 gitdb 4.0.11 GitPython 3.1.43 google-auth 2.32.0 google-auth-oauthlib 1.0.0 griffe 0.48.0 grpcio 1.65.1 hydra-core 1.3.2 idna 3.7 importlib_metadata 8.1.0 importlib_resources 6.4.0 iniconfig 2.0.0 intel-openmp 2021.4.0 ipython 8.12.3 jedi 0.19.1 Jinja2 3.1.4 kiwisolver 1.4.5 Markdown 3.6 MarkupSafe 2.1.5 matplotlib 3.7.5 matplotlib-inline 0.1.7 mergedeep 1.3.4 mkdocs 1.6.0 mkdocs-autorefs 1.0.1 mkdocs-get-deps 0.2.0 mkdocs-material 9.5.30 mkdocs-material-extensions 1.3.1 mkdocstrings 0.25.1 mkdocstrings-python 1.10.5 mkl 2021.4.0 mpmath 1.3.0 networkx 3.1 numpy 1.23.5 oauthlib 3.2.2 omegaconf 2.3.0 opencv-python 4.10.0.84 packaging 24.1 paginate 0.5.6 pandas 2.0.3 parso 0.8.4 pathspec 0.12.1 pickleshare 0.7.5 pillow 10.4.0 pip 24.0 platformdirs 4.2.2 pluggy 1.5.0 prompt_toolkit 3.0.47 protobuf 5.27.2 psutil 6.0.0 pure_eval 0.2.3 pyasn1 0.6.0 pyasn1_modules 0.4.0 Pygments 2.18.0 pymdown-extensions 10.8.1 pyparsing 3.1.2 pyproject_hooks 1.1.0 PySocks 1.7.1 pytest 8.3.1 pytest-cov 5.0.0 python-dateutil 2.9.0.post0 pytz 2024.1 PyYAML 6.0.1 pyyaml_env_tag 0.1 regex 2024.5.15 requests 2.32.3 requests-oauthlib 2.0.0 rsa 4.9 scipy 1.10.1 seaborn 0.13.2 setuptools 71.0.4 six 1.16.0 smmap 5.0.1 soupsieve 2.5 stack-data 0.6.3 sympy 1.13.1 tbb 2021.13.0 tensorboard 2.14.0 tensorboard-data-server 0.7.2 thop 0.1.1.post2209072238 tomli 2.0.1 torch 1.13.1+cu116 torchvision 0.14.1+cu116 tqdm 4.66.4 traitlets 5.14.3 typing_extensions 4.12.2 tzdata 2024.1 ultralytics 8.0.3 d:\__ai\__deepsort\yolov8-deepsort-object-tracking\__code\yolov8-deepsort-object-tracking urllib3 2.2.2 watchdog 4.0.1 wcwidth 0.2.13 Werkzeug 3.0.3 wheel 0.43.0 zipp 3.19.2
下载测试视频文件:安装了pip gdown也无法下载。直接打开浏览器,是个播放器页面,直接点击旁边的三个点,另存为,弹窗保存,然后修改名称为test3.mp4
gdown "https://drive.google.com/uc?id=1rjBn8Fl1E_9d0EMVtL24S9aNQOJAveR5&confirm=t"
测试部署:
第一次会下载 yolov8l.pt,直接在浏览器地址栏输入 https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8l.pt 直接下载
在miniconda 的powershell 运行下载会中断,故直接在浏览器下载。
下载后将文件直接放到:YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\ 目录下
python predict.py model=yolov8l.pt source="test3.mp4" show=True
【报错1】
============================== 报错: ModuleNotFoundError: No module named 'easydict' 解决办法: pip install easydict ========================
【报错2】我的环境是需要更换torch版本,其他的资料提示需要安装VC_redist.x64.exe 环境的。
============== 运行报错: (YOLOv8-DeepSORT-Object-TrackingPy) PS D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect> python predict.py model=yolov8l.pt source="test3.mp4" show=True Traceback (most recent call last): File "predict.py", line 4, in <module> import torch File "C:\Users\shaun\.conda\envs\YOLOv8-DeepSORT-Object-TrackingPy\lib\site-packages\torch\__init__.py", line 143, in <module> raise err OSError: [WinError 126] 找不到指定的模块。 Error loading "C:\Users\shaun\.conda\envs\YOLOv8-DeepSORT-Object-TrackingPy\lib\site-packages\torch\lib\shm.dll" or one of its dependencies. 【解决办法】 更换pytoch 版本 离线更换 位置在: D:\__ai 本地下载,直接安装: cd D:\__ai pip install torch-1.13.1+cu116-cp38-cp38-win_amd64.whl pip install torchvision-0.14.1+cu116-cp38-cp38-win_amd64.whl
【报错3】
【报错】 AttributeError: module 'numpy' has no attribute 'float'. `np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here. The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace. 【解决办法】 由于 numpy 新版已经没有 float 属性了,降版本解决 pip install numpy==1.23.5 pip install numpy==1.23.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
【运行结果】
[2024-07-24 20:57:07,561][root.tracker][INFO] - Loading weights from deep_sort_pytorch/deep_sort/deep/checkpoint/ckpt.t7... Done! Ultralytics YOLOv8.0.3 Python-3.8.19 torch-1.13.1+cu116 CUDA:0 (NVIDIA GeForce GTX 1660 Ti with Max-Q Design, 6144MiB) Fusing layers... YOLOv8l summary: 268 layers, 43668288 parameters, 0 gradients, 165.2 GFLOPs video 1/1 (1/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 3 cars, 1 truck, 52.0ms video 1/1 (2/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 1 truck, 34.1ms video 1/1 (3/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 1 truck, 35.1ms video 1/1 (4/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 2 trucks, 36.1ms video 1/1 (5/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 5 cars, 2 trucks, 36.1ms video 1/1 (6/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 5 cars, 2 trucks, 35.9ms video 1/1 (7/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 5 cars, 1 truck, 35.3ms video 1/1 (8/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 5 cars, 1 truck, 35.9ms video 1/1 (9/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 5 cars, 1 truck, 35.1ms video 1/1 (10/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 5 cars, 1 truck, 31.2ms video 1/1 (11/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 6 cars, 2 trucks, 31.2ms video 1/1 (12/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 5 cars, 1 truck, 37.4ms video 1/1 (13/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 6 cars, 1 truck, 31.2ms video 1/1 (14/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 6 cars, 1 truck, 32.0ms video 1/1 (15/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 7 cars, 1 truck, 45.0ms
.......
video 1/1 (502/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 3 trucks, 46.9ms video 1/1 (503/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 3 trucks, 31.2ms video 1/1 (504/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 1 train, 3 trucks, 37.8ms video 1/1 (505/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 3 cars, 3 trucks, 37.7ms video 1/1 (506/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 1 train, 3 trucks, 31.2ms video 1/1 (507/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 1 train, 3 trucks, 31.2ms video 1/1 (508/508) D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect\test3.mp4: 384x640 4 cars, 1 train, 3 trucks, 46.9ms Speed: 0.6ms pre-process, 36.0ms inference, 1.7ms postprocess per image at shape (1, 3, 640, 640) Results saved to D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\runs\detect\train5 (YOLOv8-DeepSORT-Object-TrackingPy) PS D:\__ai\__deepsort\YOLOv8-DeepSORT-Object-Tracking\__code\YOLOv8-DeepSORT-Object-Tracking\ultralytics\yolo\v8\detect>