YOLOv1算法
一、算法背景与核心思想什么是YOLO?YOLO是由Joseph Redmon等人在2016年提出的一种基于深度学习的目标检测算法。核心思想:将检测转化为回归问题传统的两阶段(two-stage)算法(如R-CNN系列)需要先生成候选框,再进行分类和回归,速度较慢(通常只有5FPS)。而YOLO是单阶段(one-stage)算法,它直接将目标检测问题转化为一个回归问题,通过一个神经网络直接预测目标的类别和位置。网络划分YOLOv1将输入图像分成S*S的网络。如果某个物体的中心点落在这,那么这个网格就负责预测这个物体。二、网络架构与输出网格结构:借鉴了GoogLeNet。包含24个卷积层和2个全连接层。它使用了1*1的降维层紧跟3*3的卷积层来替代GoogLeNet的Inception模块。输入与输出:输入:448*448*3的图像。输出:一个7*7*30的张量(Tensor)。7*7*30的含义:7*7代表图像被分成了49个网格。30代表每个网格预测包含的信息量。具体拆解为:2个预测框:每个框包含5个信息(x,y,w,h,c)。其中(x,y)是框中心相对网格的坐标(归一化到0-1),(w,h)是框的宽高(相对整张图归一化),c是置信度。共2*5=10个值。其余20代表20个类别概率。三、置信度与IoU置信度