yolov8-deepsort安装
时间: 2025-05-07 16:26:32 浏览: 37
### YOLOv8-DeepSort 环境搭建教程
#### 创建 Anaconda 虚拟环境并激活
为了确保兼容性和稳定性,推荐使用Anaconda创建一个新的Python虚拟环境来安装YOLOv8和DeepSort所需的依赖项。
```bash
conda create -n yolov8_deepsort python=3.9
conda activate yolov8_deepsort
```
#### 安装 PyTorch 和 CUDA 支持
考虑到性能优化的需求以及硬件加速的支持,需确认PyTorch版本与CUDA版本相匹配。对于YOLOv8而言,通常建议采用最新稳定版的PyTorch,并搭配相应的CUDA驱动程序。
```bash
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
```
此命令适用于NVIDIA GPU用户;如果目标设备不具备GPU,则可省略`--extra-index-url`参数以默认安装CPU-only版本[^1]。
#### 获取 YOLOv8 项目源码
通过Git克隆官方仓库获取最新开源代码:
```bash
git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics/
pip install -r requirements.txt
pip install -e .
```
上述操作不仅下载了必要的库文件还完成了本地包链接,使得后续开发更加便捷高效[^2]。
#### 配置 DeepSort 组件
鉴于DeepSort作为多目标跟踪算法的重要性,在完成基础框架部署之后还需进一步集成该模块。可以从GitHub上拉取对应的实现版本:
```bash
git clone https://github.com/nwojke/deep_sort_pytorch.git
cd deep_sort_pytorch/
pip install -r requirements.txt
```
值得注意的是,由于不同开发者可能基于各自需求定制化修改过原始代码结构,因此实际路径可能会有所差异,请参照具体README文档指示调整相应指令[^3]。
#### 测试验证安装成果
最后一步是对整个系统的功能性进行全面检测,确保各部分组件能够协同工作正常运行。可以尝试执行预训练模型推理任务或者启动简单的追踪实例来进行初步检验。
```python
from ultralytics import YOLO
import cv2
from deep_sort.deep_sort.tracker import Tracker as DSTracker
from deep_sort.tools.generate_detections import create_box_encoder
model = YOLO('yolov8s.pt') # 加载小型YOLOv8权重
cap = cv2.VideoCapture(0)
encoder = create_box_encoder('./deep_sort/resources/networks/mars-small128.pb', batch_size=32)
tracker = DSTracker(max_age=30, n_init=3)
while True:
ret, frame = cap.read()
results = model(frame)[0].boxes.data.tolist() # 推理得到边界框列表
detections = []
for r in results:
bbox = list(map(int, r[:4]))
conf = float(r[4])
cls = int(r[-1])
if conf > 0.5 and cls == 0: # 只处理行人类别且置信度大于阈值的情况
detections.append([bbox[0], bbox[1], bbox[2]-bbox[0], bbox[3]-bbox[1]])
features = encoder(frame, np.array(detections))
dets = [Detection(bbox, score=conf, feature=f) for bbox, f in zip(detections, features)]
tracker.predict()
matches = tracker.update(dets)
for track_id, det_idx in enumerate(matches[:, 1]):
x1,y1,w,h = map(int,detections[int(det_idx)])
label = str(track_id)
color=(randint(0,255), randint(0,255), randint(0,255))
cv2.rectangle(frame,(x1,y1),(x1+w,y1+h),color=color,thickness=2)
cv2.putText(frame,label,(x1,y1-10),cv2.FONT_HERSHEY_SIMPLEX,.5,color,thickness=2)
cv2.imshow("Frame",frame)
key=cv2.waitKey(1)&0xFF
if key==ord('q'):
break
cap.release()
cv2.destroyAllWindows()
```
这段脚本实现了摄像头实时视频流中的物体识别与跟踪功能展示,其中涉及到了YOLOv8的目标定位能力结合DeepSort的身份持续关联机制共同作用的结果呈现[^4]。
阅读全文
相关推荐


















