YOLO
YOLO(you only look once)是一个基于CNN的高效实时物体检测模型。YOLO将物体检测视为一种回归模型,对于输入的图象将输出图象对应类别的概率以及边框的坐标。
其结构如下
- 进行计算前,调整输入图形大小为448x448
- 在卷积网络中计算
- 选择概率最高的类别作为结果输出
YOLO如何工作
-
图象分割
YOLO首先将原始图象分割为NxN的单元格。如图为N=4的示例
-
边框回归
这一步将确定所有物体的边界框,其中每一个边界框用向量表示
-
pc表示单元格中含有物体的概率。例如下图中,红色单元格表示而黄色单元格表示
-
bx, by则表示边界框中心点的相对坐标。。例如表示物体中心位于单元格中心
-
bh, bw表示边界框的相对宽和高。同样其长度单位也是一个单元格的宽和高,但是
-
c表示出现物体条件下是某一种类的条件概率:
-
-
IOU
Intersection Over Unions,交集与并集之比。 通常一个物体往往被多个单元格包括,而且并不是所有单元格都与物体有这强烈的关系,所以我们通过计算IOU并设定阈值去筛选掉无关的单元格。
-
NMS Non-Max Suppression。IOU的阈值并不足够,虽然这能帮助我们筛选掉一部分,但是一个物体可能含有多个符合条件的边界框。为了避免全部保留而产生噪声,我们选择概率最高的一个边界框作为检测结果
如何让YOLO在自定义训练集上训练
我一定会填坑的~
参考文献:
[1]: YOLO Object Detection Explained
[2]: Understanding a Real-Time Object Detection Network: You Only Look Once (YOLOv1)
[3]: Train YOLOv8 on Custom Dataset – A Complete Tutorial
[4]: YOLO offical