YOLOv1

【精读AI论文】YOLO V1目标检测,看我就够了_哔哩哔哩_bilibiliYOLO算法是单阶段目标检测的经典算法,能实现快速、实时、高精度的图像识别和目标检测。几乎所有人工智能开发者都要使用YOLO为各行各业开发计算机视觉应用。从2016年到2021年,YOLO已更新换代5个版本,都是在YOLOV1最初版本基础上改进升级,弄懂YOLOV1非常重要。但网上的博客和教程都没能把关键问题讲清楚,甚至没有人认真读懂了原始论文。所以子豪兄决定亲手解决这个问题,用了一年多时间做出这, 视频播放量 170511、弹幕量 1999、点赞数 5114、投硬币枚数 5789、收藏人数 9670、转发人数 972, 视频作者 同济子豪兄, 作者简介 有温度的AI,就是爱,相关视频:【精读AI论文】YOLO V2目标检测算法,【亦】警惕AI外挂!我写了一个枪枪爆头的视觉AI,又亲手“杀死”了它,【YOLO实时目标检测】手把手教你白嫖!错过再等一年!【人工智能AI能智工人】,毕设系列-检测专题-基于YOLOV5的火灾检测系统,人工智能研究生现状,火遍全网的六个人工智能YOLO实战项目!附源码及技术教学(部分带论文)赶紧安排上!【人工智能AI|yolo实战】,从“卷积”、到“图像卷积操作”、再到“卷积神经网络”,“卷积”意义的3次改变,当下最好的AI毕设及论文选题项目!YOLO口罩检测项目实战。附赠项目源码、论文、技术教学!轻松上手,人工智能防疫项目,用途广【YOLO实时目标检测项目实战】,yolo v5 解读,训练,复现,【人工智能学习】逐句阅读100篇核心AI论文(双语字幕)https://www.bilibili.com/video/BV15w411Z7LG?p=3&vd_source=eba877d881f216d635d2dfec9dc10379

3dd297db7be14d6ba0ed02526e3e1e02.png

 415fbf881b6f48c6964efd9a84570481.png

 b015b468d2ed45bb88ebfb991e54b37a.png

实例分割so难 

db66522e048941c99c8838e2bb6c4cae.png

 只有目标检测和实例分割做到实例上的处理

51b175f0edd943389dfcaa28721ae81a.png

b155ab48b36646149ece7be704934c57.png

 

 目标检测两个流派:

单阶段模型:yolo 不提取候选框,直接把全图给的模型算法里 直接输出结果;快  准确率 小目标鸟群人群密集目标不够好,但是现在都好起来了!!

两阶段模型:先从图像中提取若干候选框,在逐一甄别 ;比较准确 但是慢

00c76d964e77472682f83e9b4567053a.png

 f2c3dbe5276046389ee81e5b3d80373d.png

008edec2773a406ca5571f093e8d33de.png

端到端  完整的统一的框架 

 







 

fa7ca4550edd4e94ba8541b445b0d358.png

cb2d98187eae4abd9d83cc31fcc393c2.png

 7*7*30的张量包含了所有预测框的坐标置信度类别结果。 所以解析这个张量就可以获得目标检测的结果了

57c6c450fdb349508f9117c3560f9f68.png

 

模型训练完了 对未知图片 进行预测测试 test

6cd8ea4f49d642bcbed2665d165e3d2e.png

 

左图是划分gridcell 取7 就变成了 7*7个格格

中间上 是每个gridcell 预测b个bounding box  B=2  就每个小格格我们给他锚框bounding box两个 ,box具有xyhwc 坐标 中心点坐标和框的宽高  C是置信度 细线低

49*2=98个bounding box 就是图啦

每个boundingbox还能生产类别的概率 假设包含物体的情况下 是某个类别的概率 是下面彩色图

C*P就是每个boundingbox对应类别的概率

b43a41820b97461a885ef73ea8f1c26a.png

 

结合boundingbox的信息和gridcell的 类别信息 就可以获得最后的预测结果

都是从7*7*30的张量获取的 或者说s*s*(5*b+c)的张量中获取的

b49b98c7cdc9445b8c35538bdcf6f551.png

b: 2       c:20 

2e61601de6154e5ba3e834798f09caab.png

 

解释张量:

30?  包含两个预测框 每个框有五个参数 俩个有十个  然后Pascavoc有二十个类别 10+20=30

30维的向量就是一个gridcell的信息

总共是7*7个gridcell 所以是7*7*30维的张量

第一个紫色的就是第一个boundingbox   Cxyhw 后面二十维 两十个类别的条件概率,假设包含物体情况下猫的概率 鸟的概率。。。。 C*P才是真正的这个框是某个类别的概率

2b4b67ac89bd4320bfd1da64471597a3.png

 也可以看做yolo模型

输入是448*448*3的图像 输出是1470个数字

996d380d29a54c1fb6bce6a18734dd9f.png

6d4835ac269946fd9d025409da93789b.png

 

 3286f41dd1304f21ba305bce65eb2fb7.png

 ef7d3e791f9a4a819c145a0059820a07.png

 都能预测出7*7*2个框 有些置信度低就不管了 高保留

91bc6fad03cd412dbe90a7af78a8f1e8.png

 

每个gridcell还能生产20个类别的条件概率 这个图展条件概率高的那些类别的所占有的框

紫色的都是bicycle 条件概率高的区域  绿色就都是狗条件概率高的区域

每个gridcell只能有一个类别 从二十个条件概率中选最高的那个 所以每个gridcell只能预测一个物体

那我们这个7*7个gridcell最多最多也就能预测49个物体 ---------------------yolo小目标 密集目标性能差的原因。

603073d99c284a3ea8e102776a45c39e.png

每个gridcell只有一个条件概率高的代表类别

吧这个grid中两个boundingbox赋予这个类别 进行一系列后处理就有最后的结果

 

fedb9a96d17b4391a23434a7316851ce.png

 

颜色代表不同的类别 粗细C 形成中间结果 共有98个boundingbox 每个都有C和最高P对应类别

然后做低的过滤 非极大值抑制去重复的预测框 获得最终目标检测结果

 

完整的预测过程就是以上!!!!!!!!!!!!!!!!!!!!!!






P5e2e210d8ba1e4b499027326bb70d7a0c.png

bc1f62db2fdc47139cd01f5791c7b0fc.png 

处理7*7*2=98个预测框        低的过滤  重复去掉保留一个

 

21546a5b5b7d49268f54aeeb3b04bae1.png

研究: 最后那个7*7*30张量是如何 变成最后目标检测的结果的????

5869306e6bf34d48a03f835b4cd3af23.png

 490ff387284446a8b966908b8889e373.png

 1bd88025363740babacb940c8d3e1f3f.png

d3d2137bcedd46d7bfa1ee8d31b09e47.png 

取出其中的一个gridcell来看~~ 包含应该是30个数字 分别是5 5 20

5:第一个和第二个 boundingbox四个位置坐标和C置信度

20:该gridcell对应20个类别的条件概率分别都是多少  这个是小猫的概率是?小狗的是?。。。

db796fa2ad6b46f38929866ee7378729.png

a079ebc75bab4e9aa480923c3018c2e5.png

 d77cac553bea4bb7837785cef93af16b.png

 a48aae3997484b3db3a13a5819ce5b3e.png

 8b282c0818b14e1a883b9a1c4969ecf2.png

 

 该bb包含物体的概率 * 包含物体的条件下各个类别的概率=====真正是哪个类别的概率 

(全概率)

第二个也是得到20个类别的全概率

每个gridcell都能获得两个20维的全概率 分别表示两个预测框

a3995cfa5dee4702a77566ea8377415f.png

可视化就是之前那个乱图

 

aa1b41b2bf8443f3917db5245656b2da.png

 

44d844a7e49c4177a78a5658030c5b67.png

假设狗是第一个类别 横着看哈

  1. 设置阈值小于0.2的一律变成0
  2. 然后按照高低排序 0就是一堆在后面啦
  3. 在排序之后进行NMS非极大值抑制

 

9d19f48b906d4eb9b2b69bac57ce9a96.png

 

NMS?????

假设有几个竖条 狗的概率不是0 从高到低排序的

吧最高的拿出来 之后把每个都跟最高的比较!!如下!!!

先看第一高的

73405b52828c4fc2bbb59abb85eed9b1.png4f9245c58d0f43d89e181d740cbbc14c.png0c1a73d3a89c4d09a5b5de85e9ddb565.pngbde4d018134e4a8d82a171a9a8e45d07.png 

 f0b139b78cf44d9681875e875d65a1f9.png

 

 

b6819bfede8d4e64a114cdda276653bd.png

 a34b52b8689143609a0d4427486055b5.png6014514e12904a4098e30b7d9bfee83f.png

 

 9ba8b55975fb417eb550c6058512651d.png

  iou 相似度!!! 如果很小 那绿框和橙框稍微有些重复就不要绿色啦  永远再见啦

                              如果很大                        贼贼贼重合  才不会要绿色啦

如果要加强nms可以吧阈值设置低一点

     低  强 

7052471b427e48aeba4ba27b361308cc.png

 蓝色的iou没有超过0.5 (就是看看和橙框重合有没有图片的一半就行啦)

84a748db431e4ce99728071070755514.png59fba42992a840a0b7ebbe1d81d7cfda.png

都没有变成0哦

 

 一直到最后一名和第一名橙色比对!!!!!!!!!!!

 

再看第二高的 

吧所有比0.2低都 都来比较

 

4e46a896cea5423598c58012971ee514.png

 

最后得到橙和蓝两个结果啦  其他都是零

d8a6acbb274f4a54aff65a0c44b345e1.png

这只是对修勾这样

对其他的类别都要这般操作 就获得了最终的结果  下面是最后一行对人的 20个类别进行20次的nms

f89f25f86a844b1f8617ad2d9be4c1ea.png

  

523c9fa3df094294b29d76d98814cfa9.png

 deed1187f4a245079456afe91fad66c9.png

最后 结果是系数矩阵  有很多00 

5c5291951890456088ee4560595f52d3.png

 如果不为0的话安把他拎出来 吧类别和分拎出来作为结果'

 bb3 bb4有些类别不为零 

吧类别索引找出来 代表猫还是狗啊 吧概率找出来 可视化

3ab02ed5041846f4a40af8ebf1b8d53b.png

74ba60678f6544d69f8bb1fc169fef88.png

可视化 获得最终结果

训练阶段不需要!!!!!!!nms!!!!!!!!!!!!!!只有预测!!!!!!!!!

 








c3e4f2d789294979a7d8cc7e9a291766.png

a097543770df4ed6a2074f1a41907334.png

 

 目标检测 监督学习问题 :人工会标注 groundtruth 

 就是绿框  他的中心点落在哪个gridcell 就应该由他预测出的bb 负责拟合绿框 两个bb中的一个拟合

gc输出类别应该也是gt的类别--------------------c*p=全概率 狗的应该是最大的 他就是gc的代表类别(每个gc只能预测一个类别)

a8a8370fffce4099932cf01ada0e538f.png

1e67bbffeaaa401d86df7f22a7d3dceb.png

 7879403f50774d4fb60230915e867cfa.png

 

 如果没有gt的中心点落在的 gc  这个gc很可怜 他弄出来的两个框都不要啦 让他们的置信度越小越好 为0最好!

bd52b8a1f20b41a7956d09a9a04e13af.png

 

 40609914a406455293d3f7cd0c599952.png

 回归问题:不是分类噢

1  带小帽子的是标注  不带的都是预测值

2   wh也尽量一样 加根号是使得小框对误差更敏感 (同样的偏差 小框造成的loss更大 大框更小 对大框更加公平)

大框误差肯定大一点  ,红的idol犯错 批评的人多,不红的人犯错 批评的人少

所以加个根号 让大框公平一点点  ,更加强调小框的作用 让大家也看看不红的人犯错也重要!!!

56f130e2742e4be9a4b7fa59b3871748.png 讲论文里

 

12同属于 坐标回归误差  确实都研究的是坐标   一个是中心 一个是宽高坐标

敏感在数据中是将就的意思  小框不将就所以误差大 加根号让他将就将就d3072c21871a4fe1a05091bc4b42adbb.png

机器学习中关于偏差、方差和误差的理解_青春是首不老歌丶的博客-CSDN博客_机器学习误差和偏差在模型预测中,模型可能出现的误差来自两个主要来源:  1、因模型无法表示基本数据的复杂度而造成的偏差(bias);  2、因模型对训练它所用的有限数据过度敏感而造成的方差(variance)。  误差是测量值与真实值之间的差值。用误差衡量测量结果的准确度,用偏差衡量测试结果的精确度;误差是以真实值为标准,偏差是以多次测量结果的平均值为标准。  而方差在统计学中是指各个数据与其平均数之差的平方的和的平均数,它表示的是一种偏离程度:当数据分布比较分散时,方差就较大;因此方差越大,数据的波动越大;方差越小https://blog.csdn.net/qq_42859149/article/details/118419995

 

 

3  标签值计算就是绿色字 他预测出的置信度Ci应该是和iou越接近越好啦  iou就是相似度嘛 和相似度接近就很好

4  打入冷宫的置信度最好都为0 所以标签值是0   一类是小框 一类是不负责预测物体gridc ell的框

34都是研究C置信度   置信度有大有小对吧 

一个是负责大的  --------负责检测物体

一个是负责小的  --------不负责检测物体

 61828ab1a0cb4021bed673fb57753d70.png4c80976a3bfa43cd826354ca781257ec.png

5  对每个类别遍历求和 吧标准的gt的类别越接近1越好

误差完事了都  该研究类别了!!他到底是啥啊 概率求和

9d96f88ccaa54a03aa9c7d2c8c2dff34.png

466ec7cfcacb4fa5a0c6b829d27e7d85.png

 如果一个bb负责检测物体 那么他所属的gc一定也负责

如果一个bb负责  另一个不负责   

那个J 小J :bb共有B个 不是8个!!!!!!!!!!

c09e3ad8f5c64369ad9be206e11bb221.png

 

 







854bfa65cb844b8493ae0a106a4c30e5.png

 0502d563de0747bdae24115e57e18e89.png

 3ed7e00b39364feea09c96066004e4d4.png






 5252587869014ee7a5442969994fed1c.png

 07318621d670449ba6e425544619b96c.png密集会落下  小绿框!!!!!!






 目标检测评估性能指标 

 

28e11858656e45a2ad8e0f3525b9a25e.png

 标签就是人工打的噢 已知

那个公式只在训练阶段   测试不用了哈

138b0a6141b147e6a86bde0f6b1b1060.png

 670c1f953cba40fd8d670717d754e806.png

 

1 x 1 reduction layers 1.*1还原层   1x1卷积层

This means our network reasons globally about the full image and all the objects in the image

这意味着我们的网络对整个图像和图像中的所有对象进行全局推理。  分析

This can lead to model instability, causing training to diverge early on.

这可能导致模型不稳定,导致训练在早期发散。

To remedy this,

为了解决这个问题,

Sum-squared error

平方和误差

Our error metric should reflect that

我们的误差指标应该反映

Throughout training we use a batch size of 64, a momentum of 0.9 and a decay of 0.0005.

在整个训练过程中,我们使用64个批量,动量为0.9,权重衰减为0.0005。

To avoid overfitting we use dropout and extensive data augmentation.

为了避免过度拟合,我们使用了退出和广泛的数据扩充。

For data augmentation we introduce random scaling and translations of up to 20% of the original image size.

对于数据增强,我们引入了高达原始图像大小20%的随机缩放和平移。

We also randomly adjust the exposure and saturation of the image by up to a factor of 1.5 in the HSV color space.

我们还可以在HSV颜色空间中随机调整图像的曝光和饱和度,最多调整1.5倍。

our loss function treats errors the same in small bounding boxes versus large bounding boxes.

我们的损失函数在小包围盒和大包围盒中处理相同的错误。

74cd1d8bd4bf406b94bd95a3499dea10.png

 

120f6801590f4db69a428797eeef37d8.png

contextual reasoning

上下文分析

Real-Time Detection In The Wild

野外实时检测

9cdc63548b3c410a9250da52b84f3e5a.png

 

 fbd0a978245841aca5664f2f14dffc1b.png

 

 

Abstract 

We present YOLO, a new approach to object detection.

Prior work on object detection repurposes classifiers to perform detection. Instead, we frame object detection as a regression problem to spatially separated bounding boxes and associated class probabilities. A single neural network predicts bounding boxes and class probabilities directly from full images in one evaluation. Since the whole detection pipeline is a single network, it can be optimized end-to-end directly on detection performance.

Our unified architecture is extremely fast. Our base YOLO model processes images in real-time at 45 frames per second. A smaller version of the network, Fast YOLO, processes an astounding 155 frames per second while still achieving double the mAP of other real-time detectors. Compared to state-of-the-art detection systems, YOLO makes more localization errors but is less likely to predict false positives on background. Finally, YOLO learns very general representations of objects. It outperforms other detection methods, including DPM and R-CNN, when generalizing from natural images to other domains like artwork.

摘要

我们提出了YOLO,一种新的目标检测方法。

之前的目标检测工作重新调整了分类器的用途,以执行检测。相反,我们将对象检测作为一个回归问题,回归到空间分离的边界框和相关的类概率。单个神经网络在一次评估中直接从完整图像预测边界框和类概率。由于整个检测管道是单个网络,因此可以直接对检测性能进行端到端优化。

我们的统一架构速度非常快。我们的基本YOLO模型以每秒45帧的速度实时处理图像。该网络的较小版本Fast YOLO每秒处理155帧,速度惊人,同时仍然是其他实时检测器的两倍。与最先进的检测系统相比,YOLO会产生更多的定位错误,但不太可能预测背景中的误报。最后,约洛学习了物体的一般表示。当从自然图像推广到艺术品等其他领域时,它优于其他检测方法,包括DPM和R-CNN。

6. Conclusion 

We introduce YOLO, a unified model for object detection. Our model is simple to construct and can be trained  directly on full images. Unlike classifier-based approaches, YOLO is trained on a loss function that directly corresponds to detection performance and the entire model is trained jointly.

Fast YOLO is the fastest general-purpose object detector in the literature and YOLO pushes the state-of-the-art in real-time object detection. YOLO also generalizes well to new domains making it ideal for applications that rely on fast, robust object detection.

6、结论

我们介绍了YOLO,一种用于目标检测的统一模型。我们的模型构造简单,可以直接在完整图像上进行训练。与基于分类器的方法不同,YOLO是在与检测性能直接对应的损失函数上训练的,整个模型是联合训练的。

Fast YOLO是文献中最快的通用目标检测器,YOLO推动了实时目标检测的最新技术。YOLO还可以很好地推广到新的领域,使其成为依赖快速、鲁棒对象检测的应用程序的理想选择。

 

420433ec21744ab7ba16ec3b5d36f9ea.png

f9a1b4fec31d4dd883a8eba48593e3eb.png 

d7f6b195df1c478c96447448e0d050e6.png 

54ac8e748879475191ccb4fe0d02525b.png 

7760474cb3e54137a5e3904da9145277.png 

a5a568264e894f5f8887c6d3a56628d6.png 

cea5b9350b084fd58c8b494580368254.png 

12ce9d2128b445019e60e0bb501c517d.png 

63a5f5e296fe48328a473fba5db0b40e.png 

a2e3ec33c93747fca12cc55888e1e20b.png 

 

 

YOLOv1YOLOv8是目标检测算法中的两个版本。YOLOv1YOLO(You Only Look Once)系列算法的第一个版本,而YOLOv8是该系列算法的第八个版本及其后续版本的总称。 YOLOv1是一种实时目标检测算法,它通过将输入图像分成网格,并在每个网格中预测目标的边界框和类别。与传统的目标检测算法相比,YOLOv1具有更快的速度和更高的准确性。然而,YOLOv1在小目标检测和定位精度方面存在一定的问题。 YOLOv8是YOLO系列算法的最新版本之一,它提供了五个不同的版本:YOLOv8n(纳米级)、YOLOv8s(小型)、YOLOv8m(中型)、YOLOv8l(大型)和YOLOv8x(特大型)。这些版本在网络结构和模型规模上有所区别,可以根据任务需求选择合适的版本。 此外,YOLOv8还提供了针对各个版本的预训练权重文件集合。这些预训练权重文件可以用于检测、分割和姿势估计等任务,并且是在COCO数据集上进行预训练的。使用这些预训练权重文件可以加快模型的训练速度和提高模型的性能。 总之,YOLOv1YOLOv8是目标检测算法中的两个版本,YOLOv8是YOLO系列算法的最新版本之一,提供了多个不同规模的版本和对应的预训练权重文件集合。这些算法可以用于实时目标检测任务,并具有较高的准确性和较快的速度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [从YOLOv1YOLOv8的YOLO系列最新综述【2023年4月】](https://blog.csdn.net/daydayup858/article/details/130018935)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [YOLOv8预训练权重文件集合(YOLOv8n,YOLOv8s,YOLOv8m,YOLOv8l,YOLOv8x)](https://download.csdn.net/download/crasher123/87941630)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值