在Windows 10上搭建基于YOLOv3和Deep_Sort_Pytorch的多目标跟踪系统,首先需要解决环境配置这个"拦路虎"。不同于Linux系统,Windows下的CUDA环境配置往往让开发者头疼不已。
CUDA版本选择黄金法则:
提示:使用
nvidia-smi命令查看驱动支持的最高CUDA版本,这比安装的CUDA Toolkit版本更重要。
验证环境是否就绪:
bash复制nvcc --version # 查看CUDA编译器版本
python -c "import torch; print(torch.cuda.is_available())" # 检查PyTorch能否识别GPU
常见版本组合参考:
| 组件 | 稳定组合1 | 稳定组合2 |
|---|---|---|
| CUDA | 11.3 | 10.2 |
| PyTorch | 1.12.1 | 1.8.1 |
| torchvision | 0.13.1 | 0.9.1 |
| cuDNN | 8.2.1 | 7.6.5 |
克隆官方仓库后,别急着运行pip install,Windows系统需要特别注意以下几点:
bash复制git clone https://github.com/ZQPei/deep_sort_pytorch.git
cd deep_sort_pytorch
依赖安装避坑指南:
bash复制conda create -n deepsort python=3.8
conda activate deepsort
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
模型文件下载清单:
当执行到NMS编译环节时,Windows用户常会遇到以下典型错误:
问题1:编译器路径错误
code复制UserWarning: Error checking compiler version for cl: [WinError 2]
解决方案:
batch复制call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
问题2:编码错误
code复制'utf-8' codec can't decode byte 0xd3
修改Python安装目录下的cpp_extension.py,将默认编码改为gbk。
问题3:CUDA与VS工具集不兼容
code复制c10/util/variant.h(1187): error C2872: "std": 不明确的符号
这种情况通常需要:
基础运行命令:
bash复制python yolov3_deepsort.py demo.mp4 --config_detection ./configs/yolov3.yaml
性能优化技巧:
--frame_interval 5跳过部分帧处理--display_width 1280调整显示分辨率--cpu强制使用CPU模式实时摄像头处理示例:
bash复制python yolov3_deepsort.py /dev/video0 --camera 0 --config_detection ./configs/yolov3_tiny.yaml
输出结果包含:
想要提升跟踪效果?不妨尝试这些进阶方案:
RE-ID模型训练步骤:
python复制python train.py --dataset_dir ./Market1501 --lr 0.01 --epochs 50
更换检测器的配置方法:
bash复制python deepsort.py input.mp4 --config_detection ./configs/yolov5s.yaml
实际项目中,我们发现这些配置组合效果最佳:
遇到CUDA内存不足时,可以尝试在yolov3_deepsort.py中调整这些参数:
python复制# 减小检测尺寸
'YOLOv3': {'model_cfg': './configs/yolov3.yaml', 'conf_thres': 0.5, 'nms_thres': 0.4, 'img_size': 416}
# 降低batch size
tracker = DeepSort(args.config_deepsort, max_batch_size=8)