YOLO:You Only Look Once(你只需看一次)
Detection as Regression
把系统将输入图像分割成S×S网格。
如果一个物体的中心落在一个网格单元中,该网格单元负责检测该物体。每个网格单元格预测B bounding boxes和这些框的confidence scores。这些置信度评分(confidence scores)反映了模型对boxes中包含对象的置信度,以及模型对盒子的预测准确度。我们 定义 confidence 为Pr(Object) ∗ IOUtruth pred 。如果该单元格中不存在对象,则置信度得分应该为零。否则,将置信度得分等于预测框与范围真实值之间的联合(IOU)的交集。
每个边界框由5个预测组成:x、y、w、h和置信度。(x,y坐标表示框相对于网格单元边界的中心。宽度和高度相对于整个图像进行预测。最后,置信预测表示预测框和任何地面真值框之间的IOU。
每个网格单元还预测C条件类概率Pr(Classi对象)。这些概率是在包含对象的网格单元上确定的。只预测每个网格单元的一组类概率,而不考虑框B的数量。在测试时,将条件类概率与单个框的置信度预测相乘,得到每个框的类特定置信度分数。这些分数编码了类出现在框中的概率以及预测框与对象的匹配程度。

对于PASCAL VOC上的YOLO,我们使用S=7,B=2。PASCAL VOC有20个标记类,所以C=20。
最后的预测是7×7×30张量。
调用yolo的方法
1 基于AIstudio 的PaddleDetection使用GPU训练并预测,看另一篇blog
https://blog.youkuaiyun.com/shuzip/article/details/103478636
2 使用Darknet的方法
直接调用COCO(Common Objects in Context)数据集上预训练好的模型和权重。
darknet官方网站:https://pjreddie.com/darknet/
import cv2
import matplotlib.pyplot as plt
from utils import *
from darknet import Darknet
# 指定cfg文件的位置,这个文件包含了模型的结构
cfg_file = './cfg/

本文深入解析YOLO(You Only Look Once)目标检测算法的工作原理,包括如何将图像分割成网格,每个网格如何预测边界框及其置信度,以及如何通过条件类概率实现物体识别。此外,还提供了基于Darknet框架的YOLO v3模型的调用方法,包括模型加载、图像预处理、物体检测及结果可视化。
最低0.47元/天 解锁文章
2804

被折叠的 条评论
为什么被折叠?



