YOLO v3(学习笔记)

目录

[1.YOLO v3 网络介绍](#1.YOLO v3 网络介绍)

(1)网络结构

(2)输入尺度3种

(3)网络输出

(4)边界框预测

(5)正负样本的划分

2.损失计算

[(1)置信度损失(confidence loss)](#(1)置信度损失(confidence loss))

(2)分类损失

(3)目标定位损失


1.YOLO v3 网络介绍
(1)网络结构
  • 网络叫Darknet-53是因为有53个卷积层,右下角有计算
  • 其中框起来的部分是残差结构,可以看出来整体Darknet-53的网络结构和残差网络区别不大,都是堆叠残差结构,但是Darknet-53中没有最大池化层(max pooling layer),所有的下采样都是通过卷积层(s=2)来实现的
  • 每个Convolutional也是由卷积+BN+激活函数组成;残差结构如图。
(2)输入尺度3种
  • YOLO v3选取了三种预测尺度(三种尺度的输出),每种尺度有对应的3种anchor。
(3)网络输出
  • YOLO v3每个网格生成3个边界框,80个类别,所以最后的输出维度为 N×N×(3×(5+80))
  • 上图是以YOLO v3 416模型进行绘制的,所以输入的尺寸是416x416,预测的三个特征层大小分别是13,26,52。
  • 可以看到,13×13的特征图,先经过第一个Convolutional Set,一个分支是去输出第一个尺度(13×13)的预测结果;另一个分支是通过上采样 ,使宽高扩大两倍变为26×26,并和上面浅层网络26×26的特征图拼接 ,得到的特征图再去进行第二个尺度(26×26)的预测;同样的操作,进行第三个尺度(52×52)的预测
(4)边界框预测
  • 在 YOLO v2 中没有仔细将关于目标边界框预测的东西,这里详细讲一下。
  • 和Faster RNN不同,YOLO v3的边界框预测不是相对于anchor,而是相对于每个网格的左上角的。
  • 如上图,虚线框是anchor,蓝色框是我们最终预测的目标框,cx、cy是当前cell左上角的坐标。我们网络输出的四个参数tx,ty,tw,th,套入公式得到bx,by,bw,bh。
(5)正负样本的划分
  • 每张图片中有几个目标就分配几个正样本。

  • 划分原则:对于每个目标:<1>每个和目标重合程度最大的anchor作为正样本;<2>重合程度不是最大的anchor,但超过了设定阈值的,直接丢弃;<3>其余的作为负样本

  • 上面是原论文中的划分方法,但是这种方法会使得样本数量太少,ultralytics版的划分方法更好一点:

  • ultralytics版中的划分方法是:针对每个目标每个预测特征层,将三个anchor和目标框左上角对齐,然后计算IOU,IOU大于设定阈值的anchor作为正样本(目标框中心落在哪个cell,就作为那个cell的正样本)。

2.损失计算
  • 损失包含三部分:置信度损失,分类损失,定位损失
(1)置信度损失(confidence loss)
  • 目标置信度可以理解为预测目标矩形框内存在目标的概率,目标置信度损失Lconf(o,c) ,其中oi​∈{0,1},表示预测目标边界框i中是否真实存在目标,0表示不存在,1表示存在。c^i表示预测目标矩形框i内是否存在目标的Sigmoid概率(将预测值​ci通过sigmoid函数得到)。
(2)分类损失
  • 目标类别损失Lcla(O,C)同样采用的是二值交叉熵损失(采用二值交叉熵损失的原因是,作者认为同一目标可同时归为多类,比如猫可归为猫类以及动物类,这样能够应对更加复杂的场景),注意论文中作者说了只有正样本才有目标类别损失。其中Oij∈{0,1},表示预测目标边界框i中是否真实存在第j类目标,0表示不存在,1表示存在。C^ij表示网络预测目标边界框i内存在第j类目标的Sigmoid概率(将预测值Cij通过sigmoid函数得到)。
(3)目标定位损失
  • 目标定位损失采用的是(Sum of Squared Error Loss),注意只有正样本才有目标定位损失。( gx, gy , gw , gh ) 分别代表真实目标框中心点的坐标x, y以及宽度和高度(映射在Grid网格中的)。
相关推荐
魔术师Grace14 小时前
从传统企业架构到 OPC 模式,AI 到底改变了什么?
人工智能·程序员
沪漂阿龙14 小时前
LangGraph 持久化完全指南:从零搭建永不丢失状态的 AI Agent 系统
人工智能·流程图
杨浦老苏14 小时前
大模型安全接入网关LinkAI
人工智能·docker·ai·群晖·隐私保护
档案宝档案管理14 小时前
权限分级管控,全程可追溯,筑牢会计档案安全防线
运维·网络·人工智能
Chat_zhanggong34514 小时前
主推RK3567J作用有哪些?
人工智能·嵌入式硬件
qq_4112624214 小时前
四博 AI 机械臂台灯智能音箱方案:让台灯具备视觉、语音、动作和学习陪伴能力
人工智能·语音识别
AI+程序员在路上14 小时前
VS Code 完全使用指南:下载、安装、核心功能与 内置AI 编程助手实战
开发语言·人工智能·windows·开源
coderyi15 小时前
Agent协作简析
人工智能
霍小毛15 小时前
破局工业数据孤岛!数字孪生+AI智慧设备资产管理平台,重构智能运维新范式
人工智能·重构
AI人工智能+15 小时前
基于深度学习的银行回单识别技术,成为连接物理票据与数字财务系统的桥梁
深度学习·计算机视觉·ocr·银行回单识别