单阶段目标检测算法之YOLOv1详解

article/2025/8/24 17:30:27

官方网站C语言版本:https://pjreddie.com/darknet/yolov1/

tensorflow版本的代码下载: https://github.com/hizhangp/yolo_tensorflow

论文: http://arxiv.org/abs/1506.02640 

目录

一、YOLO介绍

二、YOLOv1的结构

三、YOLOV1原理

(一)基本核心思想

(二)网络结构

(三)输出7x7的理解

(四)输出维度30的理解

(五)一次预测98个框

(六)对98个预测框处理

(七)回归坐标xywh

(八)训练样本标签

四、总结


一、YOLO介绍

YOLO的全称叫做“You Only Look Once”,简单来说,YOLO可以做到将一张图片输入,直接输出最终结果,包括框和框内物体的名称及score(得分)。

相比RCNN系列的算法(提取候选框+分类回归),YOLO仅仅一个网络就能完成检测框和分类任务,所以说它是单阶段目标检测算法;

YOLO主要特点是:

  1. 速度快,能够达到实时的要求。在 Titan X 的 GPU 上 能够达到 45 帧每秒。
  2. 使用全图作为 Context 信息,背景错误(把背景错认为物体)比较少。
  3. 泛化能力强。

二、YOLOv1的结构

YOLO V1是单阶段one stage体系开创者,一次卷积可得结果。

如下:

 YOLOv1是端到端进行训练,因此YOLOv1只有一条单一的网络分支。

步骤:

  1. 输入图像(固定大小到448x448)到卷积神经网络,得到特征图;
  2. 经过全连接网络,然后分类和回归;输出包含分类信息、置信度、坐标等信息;
  3. 使用NMS方法筛选获得结果。

三、YOLOV1原理

(一)基本核心思想

如下图:

  1. 首先将原图像分成S x S grid;在论文里S=7,即将图像分为7 x 7 grid;
  2. 每个grid cell都会预测B个Bounding Box 去进行物体的框定和分类;在论文里B=2,那么一图像预测7x7x2=98个预测框;
  3. 每个预测框包含有4个边框的值和1个的置信度,如:(x,y,w,h,confidence);
  4. 预测出来相同物体有重复的边框,利用NMS (非极大值抑制) 算法得到最后的final detections。 

(二)网络结构

如下图:

输入图像为448x448,输出特征图大小为7x7x30; 

(三)输出7x7的理解

        特征图7x7映射至原图,即图像被分成7×7个网格(grid cell);映射关系如下图:

        如果GT物体的中心落在某个网格中,则这个网格就负责预测这个物体;

(四)输出维度30的理解

(1)每个网格使用B(B=2)个Bbox进行回归预测,共产生5个值;

        A.置信度confidence,包含物体的可能性大小;

        B.回归坐标(x,y,w,h);

(2)每个网格还要预测C个类别概率,以判断当前cell属于哪个类别C;因此1个网格的输出维度是(5×B+C),S×S个网格就输出就是S × S×(5×B+C)。

 论文:B=2,VOC有20个类别,那么网络输出维度就是5x2+20=30。

(五)一次预测98个框

 如下图:

(1)图像被划分成7×7,可知产生的特征图大小为7×7,因此S=7;

(2)真实的人物体中心落在黄色网格,使用黄色网格预测分类人;黄色网格产生了2个蓝色的Bbox用来回归预测,因此B=2;

(3)每个Bbox的检测结果会包含有关人的置信度和回归坐标信息;

(4)黄色网格会使用softmax进行分类预测,如果使用VOC数据集C=20。

最终,根据公式可得输出维度5×B+C=30,即输出特征图7×7×30;预测框的个数7×7×2=98。

(六)对98个预测框处理

使用NMS算法对预测框进行处理,最后保留最优的预测框:

(七)回归坐标xywh

如下图:

实际Bbox框的预测结果包含(xc, yc ,wbox,ℎbox):

  1. xc是预测框的中心点相对于原图的横坐标;
  2. yc是预测框的中心点相对于原图的纵坐标;
  3. wbox是预测框的宽度;
  4. ℎbox是预测框的高度。

回归坐标的目的是将坐标映射到0-1之间,方便计算损失;有如下要求

  1. x,y是相对于当前网格的偏移值,范围是0~1;
  2. w,h是归一化(分别除以图像的W和H)的结果,范围是0~1;

(八)训练样本标签

训练样本的标签理解:

四、总结

        Yolov1是单目标检测的开创者,相比较RCNN等两阶段系列,预测速度上有天然的优势,就是检测速度快。但是也存在许多缺点:

  1. YOLO对相互靠的很近的物体,还有很小的群体 检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。
  2. 对测试图像中,同一类物体出现的新的不常见的长宽比和其他情况是。泛化能力偏弱。
  3. 由于损失函数的问题,定位误差是影响检测效果的主要原因。尤其是大小物体的处理上,还有待加强。

http://chatgpt.dhexx.cn/article/o2iKHcED.shtml

相关文章

yolo-目标检测算法简介

一 简单概念 机器视觉的四大任务 分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标. 检测-Detection:解决“是什么?在哪里?”的问题,即定位出…

目标检测算法发展历程

这里的图片是从b站同济子豪兄的【精读AI论文】 R-CNN深度学习目标检测算法 处截图的, 在这算是个记录吧,同时立个小小的flag,尽量在硕一结束前都搞明白是干啥的吧(希望能坚持住 :) 在这也小推一下子豪兄&a…

YOLOv5目标检测算法——通俗易懂的解析

目录 YOLOv5目标检测算法前沿一.网络结构1.1.Backbone1.2.Neck1.3.Head二.数据增强2.1.Mosaic2.2.Copy paste2.3.Random affine2.4.Mixup2.5.Albumentation2.6.Augment HSV2.7.Random horizontal flip 三.训练策略3.1.Multi-scale training3.2.Auto anchor3.3.Warmup and Cosin…

目标检测算法(YOLOv3)

目标检测算法(YOLOv3) YOLOv3在YOLOv2的基础上,改良了网络的主干,利用多尺度特征图进行检测,改进了多个独立的Logistic regression分类器来取代softmax来预测类别分类. 论文题目:YOLOv3: An Incremental Improvement 主干网络 YOLOv3提出了新的主干网络: Darknet…

最新目标检测算法回顾2022笔记

目标检测算法回顾2022笔记[附PPT] 总目录篇章1:目标检测的应用与需求篇章2:目标检测的定义与挑战篇章3:目标检测损失函数的进展篇章4:目标检测IOU的发展历程篇章5:目标检测评价指标及数据集[篇章6: 目标检测…

目标检测算法——YOLOV7——详解

1、主要贡献 主要是现有的一些trick的集合以及模块重参化和动态标签分配策略,最终在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测器。 当前目标检测主要的优化方向:更快更强的网络架构;更有效的特征集成方法&#xff1…

3D点云目标检测算法综述

一、概述 在3D点云目标检测领域,对于数据输入的处理一般有三种: 多视角。将三维点云投射到多个二维平面形成图像 体素,voxel,将三维点云切割成多个小块,这些小块就叫体素,类似像素。这是最自然的一种想法…

传统目标检测算法

目标分类:给一张图片,分类 目标检测:给一张图片,找到目标,并用矩形框画出 分类是对一幅图整体,检测是更进一步,找出一幅图中一部分。一般检测以分类为基础, 目标检测就是找出图像中…

目标检测算法基础

人脸检测算法综述 0 前言1 人脸检测算法难点2 人脸检测算法流程2.1 选择检测窗口2.2 提取图像特征2.3 设计分类器2.3.1 AdaBoost2.3.2 SVM分类器2.3.3 决策树与随机森林 3 人脸检测算法3.1 传统的人脸检测算法3.2 深度学习3.2.1 基于候选框的二阶段检测算法3.2.2 直接预测结果框…

目标检测算法回顾之传统算法

传统的目标检测算法 总体回顾基于特征基于分割 一般流程经典算法HarrAdaboost流程Harr特征Adaboost算法 HOG SVM概述方法HOG特征的优缺点 DPMDPM特征DPM流程 DPM vs HOG 总结 说明:本文仅供学习 虽然传统的目标检测方法现在比较少用,但我们认为有必要了…

目标检测算法发展综述

目标检测算法 一、目标检测算法二、目标检测算法存在的问题三、目标检测算法的基本流程四、传统的目标检测算法 1.Viola-Jones(VJ人脸检测算法)2.HOG SVM(行人检测,使用Opencv实现)3.DPM(物体检测&#xf…

目标检测算法研究

1、目标检测基本介绍 1.1、项目结构 1.2、目标检测的算法分类 1.2.1两步走的目标检测:先进行区域推荐、而后进行目标分类 代表算法 :R-CNN、 SPP-net、Fast-R-CNN、Faster R-CNN 1.2.2、端到端的目标检测:采用一种网络一步到位 代表&#x…

目标检测算法分类

目标检测算法分类: 1、两步走的目标检测:先找出候选的一些区域,再对区域进行调整分类 代表:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN 2、端到端的目标检测:采用一个网络一步到位,输入图片,输…

目标检测算法

目标检测算法 一、目标检测算法二、目标检测算法存在的问题三、目标检测算法的基本流程四、传统的目标检测算法1.Viola-Jones(VJ人脸检测算法)2.HOG SVM(行人检测,使用Opencv实现)3.DPM(物体检测&#xff…

目标检测总结:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD

目标检测总结:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD 转自:七月在线实验室 一、目标检测常见算法 object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。所以,object detection要解…

目标检测算法总结

一、基于候选区域的目标检测器 滑动窗口检测器 根据滑动窗口从图像中剪切图像块,把图像块处理成固定大小。随后输入CNN分类器中,提取特征。最后使用SVM分类器识别种类,并且用线性回归器得到边框。 选择性搜索selective search 首先将每个…

万字长文详解目标检测算法,超大超全(2022最新)

摘要 1 概述 2 目标检测回顾 2.1 two-stage 2.2 one-stage 3 目标检测配方 3.1 基础概念 3.1.1 损失函数 3.1.2 Anchor-based 和 Keypoint-based 3.1.3 NMS 3.2 目标检测中的挑战 4 目标检测中的Head 4.1 ThunderNet 4.2 You Only Look Once(YOLO) 4.3 Single Sh…

常见经典目标检测算法

1、目标检测基本概念 1.1 什么是目标检测 目标检测(Object Dectection)的任务是找出图像中所有感兴趣的目标(物体),确定他们的类别和位置。 1.2 目标检测要解决的核心问题 除图像分类外,目标检测要解决的核心问题是&#xff1a…

目标检测的各种算法总结

这里是引用腾讯云博客文章:一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD 文章目录 一、目标检测常见算法二、传统的目标检测算法2.1 从图像识别的任务说起2.2 物体检测(Object Detection) 三、候选区域/窗 深度…

【NLP】预训练模型——GPT1

背景 废话不多说,先把三篇论文链接放出来:GPT1:Improving Language Understanding by Generative Pre-Training、GPT2:Language Models are Unsupervised Multitask Learners、GPT3:Language Models are Few-Shot Learners。李沐老师也在B站上放了介绍G…