YOLOv3网络结构

这篇具有很好参考价值的文章主要介绍了YOLOv3网络结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

YOLOv3网络结构

简介

YOLOv3是一种基于深度学习的目标检测算法,由Joseph Redmon等人于2018年提出。YOLOv3是YOLO系列的第三个版本,相比于前两个版本,YOLOv3在速度和精度上都有了很大的提升,相较于YOLOv2的主要变化在于引入了多尺度的概念。

实现原理

YOLOv3实现的大致原理是由卷积神经网络(CNN)网络的输出把图片分成N×N个网格,然后每个网格负责去检测那些中心点落在该格子内的目标。YOLOv3设定的是每个网格单元预测3个box,所以每个box需要有 (x, y, w, h, confidence)五个基本参数,然后根据数据集的类型的不同还要有20或80个类别的概率。

整体结构图示

yolov3网络结构,深度学习,计算机视觉,目标检测

各结构组成及分析

1. backbone部分

YOLOv3使用了darknet-53的前面的52层(没有用于图像分类的全连接层)作为backbone部分,这部分是通用的,也可以加上全连接层拿来做图像分类等任务。

DarkNet53中大量使用残差结构的跳层连接,并且为了降低池化带来的梯度负面效果,作者直接摒弃了POOLing,用conv的stride来实现降采样。yolov3网络结构,深度学习,计算机视觉,目标检测

如上图所示,蓝色方块×1,×2,×8分别表示该模块重复1次、2次和8次,橙色方块是该模块的名字,Conv Block 表示该模块是一个普通的卷积模块,Residual Block 代表该模块是一个残差网络结构(残差网络具体结构见《常用的卷积结构》)。

2. neck部分

YOLOv3的neck部分使用的是FPN,FPN是特征金字塔网络的缩写。它是一种特征提取方法,可用于目标检测任务。FPN可以从图像中提取不同尺度和分辨率的特征,然后将它们组合成一个特征金字塔。这个特征金字塔可以用于检测图像中不同大小的物体。

yolov3网络结构,深度学习,计算机视觉,目标检测

如上图所示,backbone部分输出的shape分别为(13,13,1024),(26,26,512),(52,52,256)。将这三个输出分别输入到FPN中,(13,13,1024)这一个输入,经过5次卷积后,输出(13,13,512),然后兵分两路,一路传入到head中,一路再经过一个卷积和上采样,得到(26,26,256),将这个输出和backbone的第2个输出也就是(26,26,512)进行堆叠操作(concat),得到(26,26,768)。以此类推:(26,26,768)再经过5次卷积,然后兵分两路,将上采样输出和backbone的输出进行堆叠操作;最后对(52,52,256)的输出也进行相同操作。最终得到三个分支来传给head部分。

区别concat与add操作:concat操作是把两个矩阵通道堆叠到一起,里面的数据不变,通道数为两者相加;add操作是把两个矩阵数据加在一起,两者通道数相同且不变,只是单纯的数据相加。

3. head部分

YOLOv3的head部分是YOLOv3的检测头部分,用于将neck部分的输出特征图转换为检测结果。YOLOv3的head部分包括三个卷积层,其中两个卷积层使用1×1卷积核,以减少特征图的通道数,最后一个卷积层使用1×1卷积核和3×3卷积核,以生成最终的检测结果。

yolov3网络结构,深度学习,计算机视觉,目标检测

如上图,FPN输出的3个分支,通过两层卷积输出预测head。这里最终输出的形式为:batchSize×(4+1+类别总数)×特征图宽×特征图宽。其中的4为预测框的tx,ty,tw,th。这里假定采用coco数据集,有80个类别,所以输出的tensor的channel输为255。

输出解耦

YOLOv3网络在head部分输出后还要经历对输出解耦的部分。具体实现过程如下:

我们以13×13的输出为例,原本416×416大小变成13×13,相当于缩小了416/13=32倍,也就是说原图32×32个小方块对应于最后输出的1×1的像素点。

如下图,蓝色的是实际的标注框,粉红色的是对应到13×13上的先验框,先验框是固定不变的,它的中心就是落在13×13的交点上,长宽就是除以32的结果每个特征图。由于先验框是我们一开始自己确定的,显然是不正确,需要模型对它调整。

yolov3网络结构,深度学习,计算机视觉,目标检测

我们将初始先验框坐标记为(cx,cy,pw,ph),模型输出的4为(tx,ty,tw,th),调整的公式如上图所示,中心点取sigmoid激活函数,sigmoid函数范围是0~1,也就是中心点的调整范围永远在右下角的框内,这也就是我们说的,物体的中心落在哪个格子里,该物体就由哪个框负责预测。

范围永远在右下角的框内,这也就是我们说的,物体的中心落在哪个格子里,该物体就由哪个框负责预测。

最后将长宽取exp后与先验框对应坐标相乘。这就得到了在13×13尺寸图上的预测框,然后再乘以32缩放回来就得到了最后的预测框。文章来源地址https://www.toymoban.com/news/detail-843808.html

到了这里,关于YOLOv3网络结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv2和YOLOv3基础

    2024年02月12日
    浏览(71)
  • yolov3

    本文主要讲解yolov3的基本知识,如有错误请指出。 本文主要来自 博客1 博客2 53是因为有53层。 1、darknet53没有使用pooling 来进行下采样,而是用一个3 3,步长为2的卷积来进行下采样,该下采样之后的特征层会压缩图片的宽和高,得到一个特征层。之后该特征层经过残差网络。

    2024年02月08日
    浏览(77)
  • YOLOv3详解

    yolo 算法是一种 one-stage 的目标检测算法,与 two-stage 目标检测算法最大区别在于运算速度上, YOLO 系列算法将图片划分成若干个网格,再基于anchor机制生成先验框,只用一步就生成检测框,这种方法大大提升了算法的预测速度,今天我们主要学习的是 YOLOv3 算法的主要实现过

    2024年02月04日
    浏览(33)
  • YOLOv3&YOLOv5输出结果说明

    本文使用的yolov3和yolov5工程文件均为github上ultralytics基于pytorch的v3和v5代码,其训练集输出结果类型基本一致,主要介绍了其输出结果,本文是一篇学习笔记 本文使用的yolov3代码github下载地址:yolov3 模型训练具体步骤可查看此篇博客: yolov3模型训练——使用yolov3训练自己的模

    2023年04月08日
    浏览(50)
  • 目标检测——yoloV3案例

    labellmage使用方法 获取数据集 加载模型 模型训练

    2024年02月16日
    浏览(42)
  • YOLO技术概要学习笔记2——YOLOV2到YOLOV3

    实时物体检测已经成为众多邻域应用的关键组成部分,这些领域包括:自动驾驶车辆、机器人、视频监控和增强现实等。在众多物体检测算法中,近年来,YOLO(You Only Look Once)框架以其卓越的速度和准确性脱颖而出,实际证明能够快速可靠地识别图像中的物体。自诞生以来,

    2024年02月08日
    浏览(34)
  • 【矩池云】YOLOv3~YOLOv5训练红外小目标数据集

    数据集下载地址:https://github.com/YimianDai/sirst 参考链接:https://github.com/pprp/voc2007_for_yolo_torch 1.1 检测图片及其xml文件 1.2 划分训练集 1.3 转为txt标签 1.4 构造数据集 最终数据集格式如下: 根据以上数据集 需要单独构建一个datasets文件夹,存放标签和图像,具体格式如下: 可以

    2024年02月08日
    浏览(65)
  • YOLOv3目标检测算法——通俗易懂的解析

    前两篇文章我们讲了下关于 YOLOv1 和 YOLOv2 的原理,有不懂的小伙伴可以回到前面再看看: YOLOv1目标检测算法——通俗易懂的解析 YOLOv2目标检测算法——通俗易懂的解析   作者出于道德问题从 YOLOv3 开始将不再更新 YOLO 系列算法,俄罗斯的一位大佬Alexey Bochkovskiy接过了 YO

    2024年02月08日
    浏览(47)
  • FPGA实现YOLOv3 tiny 代码分析

    目录 总体概览:​编辑 卷积加速器部分代码:  视频接收与输出部分Block design结构 global_para_gen 代码 疑问 interface_axilite_ctrl 代码  generate_ctrl_signal 代码 引用模块 com_ctrl_task 疑问 interface_axis_slave 代码  疑问 interface_axis_master 代码 疑问 axis_buf_sel 代码 global_data_beat(头疼!看不

    2024年02月08日
    浏览(46)
  • YOLO物体检测系列3:YOLOV3改进解读

    上篇内容: YOLOV2整体解读 YOLOV3提出论文:《Yolov3: An incremental improvement》 这张图讲道理真的过分了!!!我不是针对谁,在座的各位都是** 故意将yolov3画到了第二象限 终于到V3了,最大的改进就是网络结构,使其更适合小目标检测 特征做的更细致,融入多持续特征图信息来

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包