YOLO

知乎文章:
YOLO:实时快速目标检测
YOLO详解
后面再发现的!

优快云:
所以如何判断一个grid cell中是否包含object呢?
答案是:如果一个object的ground truth的中心点坐标在一个grid cell中,那么这个grid cell就是包含这个object,也就是说这个object的预测就由该grid cell负责。
每个grid cell都预测C个类别概率。
这一段具体分析

在loss function中,前面两行表示localization error(即坐标误差),第一行是box中心坐标(x,y)的预测,第二行为宽和高的预测。这里注意用宽和高的开根号代替原来的宽和高,这样做主要是因为相同的宽和高误差对于小的目标精度影响比大的目标要大。举个例子,原来w=10,h=20,预测出来w=8,h=22,跟原来w=3,h=5,预测出来w1,h=7相比,其实前者的误差要比后者小,但是如果不加开根号,那么损失都是一样:4+4=8,但是加上根号后,变成0.15和0.7。

B站视频:
这里我用自己的话写一段感受:

已经知道输入图片都被归一化到 0-1 之间, YOLO网络输出的值为 7X7X30 的矩阵(FC结果reshape的),所以每一个grid cell 的预测结果为 30 个数值(机体的分析见 2. 的文章)。可以知道两个bbox 的值 w, h 范围都在 0~1之间!!!这就看出每一个grid cell 预测的 bbox都可以在整张图片画框框!!!

另外,对于每一个object,如何确定负责他预测的grid cell 呢? 依据是 ground truth 的中心点落到的那个cell!其他 grid cell 就算有object 的某一部分落到这个grid cell ,P(Object) 也 不会因为他 变为1.
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
LOSS:
在这里插入图片描述

Predict:
首先使用nms,这里会存在为某一类置零的操作! 强烈建议任何疑问看视频3!!!
在这里插入图片描述

如何筛选,并画框设定类别 ? 横向一列是一组!!!
三步

  1. 对每一个 class ,对他的一组 scores(所有bbox,后20个类别值与所有B的confidence的乘积), 使用阈值为 0.2 ,进行筛选,小于0.2 的,socre 置 0。

  2. 对剩下的,对每一组 scores ,每一个bbox的每一个score都是这个bbox属于某一类的概率。对横向的同一类的一组scores 做从大到小排列 , 前后两个bbox的 IOU 按照是否大于 0.5 进行筛选,大于0.5 , 后一个score 置 0!

  3. 对每一个bbox , 选取它 所有不同类的score中大于零的数值!那么这个类就是这个bbox的类,画框输出

YOLO译文

### YOLO 目标检测模型使用教程 YOLO(You Only Look Once)是一种广泛使用的实时目标检测算法,其核心思想是将目标检测问题转化为单次前向传播的回归问题。以下是使用 YOLO 模型进行目标检测的基本步骤。 --- #### 1. 环境准备 在开始之前,确保你的环境中安装了必要的库和工具。YOLO 的实现通常依赖于深度学习框架,如 PyTorch 或 Darknet。 - **Python 版本**:建议使用 Python 3.x。 - **深度学习框架**:PyTorch 是常用的框架之一,支持 YOLOv5 和 YOLOv8 的实现[^2]。 - **安装依赖包**: ```bash pip install torch torchvision ``` --- #### 2. 下载 YOLO 模型代码 根据需求选择合适的 YOLO 版本(如 YOLOv5、YOLOv8)。以 YOLOv8 为例,可以从 Ultralytics 官方仓库下载代码: ```bash git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -r requirements.txt ``` --- #### 3. 数据集准备 目标检测任务需要标注的数据集。通常,数据集包含图像文件和对应的标签文件(每个标签文件对应一张图像,描述目标的位置和类别)。 - **数据格式**:YOLO 使用 `.txt` 文件存储标签信息,每行表示一个目标,格式为 `class_id x_center y_center width height`。 - **数据配置文件**:创建一个 `data.yaml` 文件,定义训练集、验证集路径以及类别信息。 示例 `data.yaml` 文件内容: ```yaml train: D:/yolo/dataset/images/train val: D:/yolo/dataset/images/val nc: 80 # 类别数量 names: ['person', 'bicycle', 'car', ...] # 类别名称 ``` --- #### 4. 模型训练 使用预训练的权重作为起点,可以加速训练过程并提高模型性能。 - **运行训练命令**: ```bash yolo detect train data=D:/yolo/model/data.yaml model=D:/yolo/model/yolov8n.pt epochs=18 imgsz=640 batch=8 device=cpu project=D:/yolo/my_train name=exp1 rect=True ``` - `data`:指定数据配置文件路径。 - `model`:加载预训练模型权重。 - `epochs`:训练轮数。 - `imgsz`:输入图像尺寸。 - `batch`:批量大小。 - `device`:指定设备(`cpu` 或 `cuda`)。 - `project`:保存训练结果的目录。 - `name`:实验名称。 - `rect`:是否启用矩形训练(减少推理时的填充)。 --- #### 5. 模型推理与测试 训练完成后,可以使用训练好的模型对新图像进行目标检测。 - **运行推理命令**: ```bash yolo detect predict model=D:/yolo/my_train/exp1/weights/best.pt source=D:/yolo/test_images save=True ``` - `model`:指定训练好的模型权重路径。 - `source`:输入图像或视频路径。 - `save`:是否保存检测结果。 --- #### 6. 结果可视化 YOLO 会生成带有边界框和类别标签的检测结果图像,保存在指定的输出目录中。可以通过查看这些图像来评估模型的性能。 --- #### 7. 进一步优化 - **调整超参数**:可以通过修改 `hyp.yaml` 文件来调整学习率、权重衰减等超参数。 - **数据增强**:增加数据增强技术(如随机裁剪、旋转)可以提升模型泛化能力。 - **模型评估**:使用 mAP(Mean Average Precision)指标评估模型在验证集上的表现。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值