YOLOv5实战记录01-安装环境 CPU版

仅供自己记录使用,不够详细,慎看。

指路大佬课程:【手把手带你实战YOLOv5-入门篇】YOLOv5 模型检测_哔哩哔哩_bilibili


我的电脑配置比较低,显卡也不知道怎么选择,就先安装了CPU版本的,如果之后遇到问题,再考虑显卡。

  1. 首先是参考博客标题一到四的内容:在CPU上跑yolov5(详细步骤+适合入门)_yolo 怎么跑起来-优快云博客
  2. 在我install requirement.txt时遇到了问题:  pip is configured with locations that require TLS/SSL, however the ssl module in Python is not 已解决,参考了博客:解决 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not-优快云博客

  3. 注意pycharm里如果安装包,最好挂v。我装的时候误打误撞正好挂着v,安装这些requirement.txt里的包很顺利。所以我推荐挂v。
### 使用YOLOv5与DeepSort结合进行目标跟踪的实战教程 #### 创建环境安装依赖库 为了确保能够顺利运行YOLOv5和DeepSort,建议创建一个新的Python虚拟环境来管理所需的包。可以使用`conda`或者`venv`工具。 ```bash python -m venv yolo_deepsort_env source yolo_deepsort_env/bin/activate # Linux or macOS yolo_deepsort_env\Scripts\activate # Windows pip install -r requirements.txt # 安装必要的依赖项 ``` #### 下载预训练权重文件 下载YOLOv5官方提供的预训练模型以及DeepSort所需的支持文件。通常这些资源可以在项目的GitHub页面找到链接说明[^1]。 #### 初始化项目结构 按照给定的[Yolov5-deepsort-inference](https://gitcode.com/gh_mirrors/yo/Yolov5-deepsort-inference)仓库中的指导设置工作目录布局: - `config`: 存放配置文件如数据集定义(`data.yaml`)等。 - `models`: 放置自定义网络架构或其他辅助模块。 - `utils`: 工具函数集合用于处理图像输入输出、日志记录等功能。 - `weights`: 预先训练好的权重量化版本(.pt,.pth)。 #### 编写核心逻辑代码 基于提供的[Detector类][^1]作为基础构建应用程序的核心功能。下面是一个简化的例子展示如何集成YOLOv5和DeepSort来进行实时视频流上的对象检测与追踪操作: ```python import torch from models.experimental import attempt_load from utils.datasets import LoadStreams, LoadImages from utils.general import non_max_suppression, scale_coords from deep_sort.utils.parser import get_config from deep_sort.deep_sort import DeepSort class Detector(object): def __init__(self): self.device = 'cuda' if torch.cuda.is_available() else 'cpu' # 加载YOLOv5模型 self.model = attempt_load('weights/yolov5s.pt', map_location=self.device) # 设置DeepSort参数 cfg = get_config() cfg.merge_from_file("deep_sort/configs/deep_sort.yaml") # 初始化DeepSort实例 self.deepsort = DeepSort(cfg.DEEPSORT.REID_CKPT, max_dist=cfg.DEEPSORT.MAX_DIST, min_confidence=cfg.DEEPSORT.MIN_CONFIDENCE, nms_max_overlap=cfg.DEEPSORT.NMS_MAX_OVERLAP, max_iou_distance=cfg.DEEPSORT.MAX_IOU_DISTANCE, max_age=cfg.DEEPSORT.MAX_AGE, n_init=cfg.DEEPSORT.N_INIT, nn_budget=cfg.DEEPSORT.NN_BUDGET, use_cuda=True) def detect(): detector = Detector() dataset = LoadStreams(source='0') # 或者其他视频源路径 for path, img, im0s, vid_cap in dataset: with torch.no_grad(): pred = detector.model(img.to(detector.device), augment=False)[0] det = non_max_suppression(pred, conf_thres=0.4, iou_thres=0.5) for _, det_in_img in enumerate(det): if len(det_in_img): xywh_bboxs = [] confidences = [] classes = [] for *xyxy, conf, cls in reversed(det_in_img): xywh = (scale_coords(img.shape[2:], xyxy, im0s.shape).reshape(-1)).tolist() xywh_bboxs.append(xywh) confidences.append(conf.item()) classes.append(int(cls)) outputs = detector.deepsort.update(torch.tensor(xywh_bboxs), torch.tensor(confidences), torch.tensor(classes), im0s) for output in list(outputs): bbox_xyxy = output[:4] identity = output[-1] # 进一步处理识别结果... ``` 此段程序展示了如何通过继承`Detector`类的方法完成从摄像头读取帧到执行物体检测再到应用DeepSort算法实现多目标持续跟踪的过程。 #### 启动训练过程(可选) 如果想要调整或重新训练YOLOv5模型,则可以通过如下命令行指令开启训练流程[^2]: ```bash python train.py --img 640 --batch 16 --epochs 50 --data ./path/to/data.yaml --weights yolov5s.pt ``` 请注意,在实际部署之前还需要考虑更多细节优化性能表现,比如GPU加速支持、内存管理和错误恢复机制等方面的内容。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值