从目标检测任务(Object Detection Task)发展来看,主要有两类方法。一类是R-CNN系列及其类似算法,称为two-stage,将目标检测任务分为边界框回归和物体分类两个模块。虽然模型前面大量的提取特征以及候选框的选取都是单个网络完成,但回归和分类任务毕竟还是分开的,分开训练造成网络较难收敛,且预测时速度慢,但准确度较高。另一类是本文描述以及后面会更新换代的YOLO算法,称为one-stage,将目标检测任务单纯看做回归任务。YOLOv1使用端到端的网络训练模型,速度快,但准确度相对低些,主要用于实时检测,例如视频目标检测。
由于YOLOv1是端到端进行训练,因此YOLOv1只有一条单一的网络分支。YOLOv1输入为 的图像,经过一个修改的GoogLeNet网络(网络到底什么样的其实不用管,只要知道是一堆卷积和池化的堆叠即可),后面接一些全连接层(同样无所谓接什么全连接层,看下参数或者源码就直接懂了),最后接到一个 的全连接层,直接reshape为 (这里reshape成这样是有意图的,具体参见下面部分)。
YOLOv1将一张图像(例如 )划分为 个网格(YOLOv1中 ,如下图所示),一共 个网格。
损失函数有多个部分,我们现在把它们分开来说,后面直接挨个加起来即可。
第一部分如下所示,计算预测边界框和GT框中心点之间的差距。其中 表示第 个网格的第 个边界框是否负责一个物体,是为1,不是为0。
第二部分类似第一部分,主要计算预测宽高和GT宽高损失。这里加上根号表示大边界框小偏差应该比小边界框小偏差更重要。
第三部分计算对于每个边界框的置信度分数与预测的置信度分数之间差距。 表示置信度分数, 表示预测的边界框和对应GT框的IoU。
最后一部分计算类概率损失, 表示当网格中没有物体时不惩罚。
其中, , 。
论文原文: https://arxivorg/pdf/150602640pdf
英文博客: https://mediumcom/hackernoon/understanding-yolo-f5a74bbc7967
NMS参考: https://docsgooglecom/presentation/d/1aeRvtKG21KHdD5lg6Hgyhx5rPq_ZOsGjG5rJ1HP7BbA/pubstart=false&loop=false&delayms=3000#slide=idp
Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测。
首先将输入resize到448x448,然后送入CNN网络,最后处理网络预测结果得到检测的目标。相比R-CNN算法,其是一个统一的框架,其速度更快,而且Yolo的训练过程也是end-to-end的。
相关信息:
Yolo采用卷积网络来提取特征,然后使用全连接层来得到预测值。网络结构参考GooLeNet模型,包含24个卷积层和2个全连接层,如图8所示。对于卷积层,主要使用1x1卷积来做channle reduction,然后紧跟3x3卷积。
不会。
yolov5对于游戏和系统的代码没有进行任何的修改,而是通过外接的视频采集卡+AI+一个输入控制器来实现。不会电脑软件检测出来。
yolov5是一款配置wandb,一个动态展示训练状态的web portal,用以观察loss和设备情况。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)