yolov1论文笔记摘抄

You Only Look Once : Unified, Real-Time Object Detection

前言:这个呢是看了b站同济子豪兄的视频进行的记录,因为能力有限,所以就想着用记录视频作者解释的话来慢慢理解yolo,所以这里的文字内容,大部分都是作者的原话。所以该文章主要是给自己看的。

*作者:Joseph Redmon ,Santosh Divvala ,Ross Girshick ,AliFarhadi

**机构:*University of Washington ,Allen Institute for AI , Facebook AI Research

名词解析


DPM算法:滑动窗口分类器

R-CNN算法:

  1. 第一阶段:提取潜在的候选框(Region Proposa)
  2. 第二阶段:用分类器逐一筛选每一个候选框

NMS:Non-max suppresion 非极大值抑制,用于过滤重复的预测框

AP:average precision 平均查准率(详细看西瓜书)

IOU:Intersection over Union 是一种测量在特定数据集中检测相应物体准确度的一个标准

confident:置信度

1 i j o b j 1^{obj}_{ij} 1ijobj :指示函数(indicator function)含义是:当输入为True的时候,输出为1,输入为False的时候,输出为0。

dropout:在训练过程中每一步都随机掐死一半的全连接层的神经元,使得它的输出和反向传播回来的都为0(打破神经元联合依赖适应性)

数据增强:可以扩充数据集,可以防止过拟合可以让模型适应各种各样的变化,提高鲁棒性

视频解读摘抄:同济子豪兄-yolov1

https://www.bilibili.com/video/BV15w411Z7LG?p=11&share_source=copy_web


摘要:

从分类问题转化为回归问题,使用单独的神经网络,既可以预测预测框的坐标,也可以预测类别。可以进行端到端的优化(这是神经网络的优点),一次性解决所有问题,而不需要像多阶段问题解决,一个环节出错,就不能够使用。

识别速度快,出现更多的定位误差,但是把背景误判为目标的问题,比较小。同时yolo泛化迁移能力比较强,各行各业都能使用yolo。

1. Introduciton:

以前的目标检测器都是重复使用分类器。比如DPM算法,滑动窗口分类器。

另一种方法是R-CNN,先提取出2~3000个候选框,然后再逐一的进行分类和回归,这里就可能用到一些算法进行后处理,比如用非极大抑制NMS来消除重复的预测框,然后再微调每一个预测框,根据图像上其他物体,重新给每一个预测框打分(这里是非常繁琐的,依赖庞大的供应链,一个问题出错,就不能使用了)。

而yolo重新定义回归问题。从输入图像,直接获得每一个定位信息还有就是预测结果,目标和类别。下图就是yolo的预测阶段的演示图

优点:

  1. 速度快,可以达到每秒45帧的速度(Titan X显卡),最快的可以达到150fps。可以达到实时检测,同时相对于其他实时检测模型,准确模型是他们的两倍。
  2. 能够捕获全图的信息,上下文信息。把背景无当做目标的错误是很少的。
  3. 泛化能力,迁移能力比较强。是要比DPM,R-CNN模型的泛化能力高得多。用于新领域,它的性能下降的是比较少的。迁移能力是比较好的。

缺点:

  1. 在定位能力和小目标的识别能力是比较差的。(后面论文可以看出来)

2.Unified Detection

统一的目标检测框架

​ 该神经网络能够捕获全图的信息,预测每一个预测框的坐标和分类。这意味着网络能够挖掘全图的信息。同时能够一步到位的识别出所有物体,让实时预测称为可能,同时保持一个高的AP(Average Precision)

​ 在这个系统,我们将图片划分为S x S 个 grid cell(网格单元) ,该论文用的是7*7的网格。

​ 每个grid cell 预测 B 个bounding boxes(包围盒) ,该论文用的是2个bounding boxes。在训练阶段,哪一个bounding box与人工标注的IOU(交并比)最大,就由哪一个bounding boxes去负责预测这个物体。训练阶段是一个监督学习,来使得损失函数最小化的过程。下图是置信度的计算公式( P r ( O b j e c t ) ∗ I O U p r e d t r u t h Pr(Object)*IOU^{truth}_{pred} Pr(Object)IOUpredtruth,用于损失函数。

包含该物体的概率(非0即1) * 人工标注框的交并比(包含物体*离这个物体有多近)

在预测阶段:回归出多少就是多少,不需要直接计算Pr(Object)和IOU,而是隐式的包含两者。

​ 每一个bounding box都包含5个参数,x,y,w,h,和confidence(x,y:中心点的横纵坐标 w,h:bounding box的宽高),每一个bounding box 的中心点,都应该落在grid cell里面,不能超出。无论bounding box多大。 所以(x,y)是相对于grid cell 坐标,是在01之间的。(w,h)是相对于整幅图片的,所以也在01之间,confidence,也是在0~1之间的。这样都归一化了,比较好处理。confidence是预测框和实际框之间的IOU。

​ 每一个grid cell 还需要预测C个conditional class probablities(条件类别概率)$ Pr(Class_i|Object)$(在当前bounding box 已经包含物体的条件下,各类别的概率)。给个grid cell 只预测一组条件类别概率,它对应的B个bounding box共享这个条件类别概率

​ 测试阶段 将每个bounding box 的confidence score 与所在grid cell的条件类别概率相乘。 等号右边即表明了分类的精度,又表明了IOU的精度
P r ( C l a s s i ∣ O b j e c t ) ∗ P r ( O b j e c t ) ∗ I O U p r e d t r u t h = P r ( C l a s s i ) ∗ I O U p r e d t r u t h Pr(Class_i|Object)*Pr(Object)*IOU^{truth}_{pred}=Pr(Class_i)*IOU^{truth}_{pred} Pr(ClassiObject)Pr(Object)IOUpredtruth=Pr(Classi)IOUpredtruth

预测阶段:

  1. 将输入图片划分为s*s个grid cell
  2. 每个grid cell 预测出两个bounding box(可以大小各异,只要中心点在这个grid cell里面)
  3. 每一个grid cell 都产生4个参数 和一个confidence参数,confidence 就用线的粗细来表示,位置参数就用框来表示
  4. 每一个gird cell 预测一组条件类别概率
  5. 把上下两张图整合到一起,把低置信度框过滤掉,把重复的预测框用非极大值抑制剃掉,然后再加上类别就产生了最后图片的结果
  6. 我们就知道了图像上,每个框的位置和图像类别

训练阶段:

  1. 人工标注的Ground Truth框中心点落在哪一个grid cell中就应由哪个grid cell预测这个物体
  2. 每个grid cell 预测B个bounding boxes
  3. 与Ground Truth 框IOU最大的bounding boxes负责预测这个物体
  4. 每个grid cell只能检测一个物体
  5. 所以所有的bounding box被分成了三类
    1. 负责预测物体的bounding box
    2. 在预测的grid cell里面,但是不负责预测物体的bounding box——这是被挤占掉的bounding box
    3. 不负责预测物体的grid cell 里边的bounding box

​ 改论文用的是PASCAL VOC数据集上,S=7 B=2 ,有20个标签分类C=20.最后张量的维度是7 * 7 * 30(张量:7 * 7的矩阵,构成了一张纸,把30张纸堆起来,形成了一本书,这本书就形成了该数据结构)

2.1Network Design 网络设计

​ 使用卷积神经网络来实现在PASCAL VOC目标检测数据集上进行评估,最开始的卷积层负责提取特征。后面的全连接层负责预测出这些数值。和图像分类类似(图像分类示全连接层预测每一个类别的概率,而这里的全连接层负责预测这个图片的张量)

​ 该神经网络是受到了GoogLeNet 模型的启发。包含了24个卷积层,最后有两个全连接层。GoodLeNet使用的是inception modules。但我们这儿没有使用这个,而是使用了1 * 1卷积(1 * 1卷积是启发与network in network 这篇文章)(1 * 1卷积有很多作用,比如降维,升维,跨通道信息交流,减少权重,都是由1 * 1卷积实现的)跟上3 * 3卷积。

​ 我们也训练了更快的yolo版本,Fast YOLO,将快速达到极致,使用更少的卷积层(9个),使用了更少的卷积核。但是其他的网络参数都是和基准的yolo是一样的。

Figure 3:The Architecture:该检测神经网络含有24个卷积层跟着2个全连接层。交替使用1 * 1卷积层和3 * 3卷积,11卷积的目的是降维,减少feature map的个数,也就是减少了权重个数和计算量。整个网络先是用ImageNet 图像分类这个数据集去训练。使用的是224 * 224的输入图片的分辨率。然后再在448448分辨率上训练检测的模型。

​ **看一下这个图:**输入448 * 448 * 3通道。先用64个7 * 7的卷积核,以步长为2进行卷积来最大池化(2 * 2)

制作论文笔记可以通过多种方式实现,以下是几种常见且有效的方法以及一些推荐的工具: --- ### 方法一:手动记录与整理 利用笔记本或纸质文档来记录关键点。这种方法适合喜欢传统记笔记的人群。可以将每篇论文的主要观点、实验结果及结论摘抄下来,并标注页码以便后续查阅。 - **优点**:便于随时翻阅,有助于加深记忆。 - **缺点**:查找效率较低,难以快速定位具体信息。 --- ### 方法二:使用电表格管理 创建一个Excel或其他类似的电表格文件用于系统化存储论文的核心内容。每一列代表不同的属性(例如标题、作者、摘要等),这样能够方便对比多篇文章间的异同之处。 - **建议字段包括**: - 文章标题 - 发表年份/期刊名称 - 主要贡献 - 实验设计概述 这种结构化的形式非常适合需要大量文献回顾的研究者们。 --- ### 方法三:借助专门的参考管理和笔记软件 市面上存在许多专注于学术研究领域的应用程序,它们不仅可以帮助保存PDF版本的原稿还能同步做高亮批注甚至生成BibTeX条目供撰写报告时引用。 #### 推荐工具列表如下: 1. **Zotero** 免费开源程序支持跨平台操作并且内置了强大的插件生态系统以满足个性化需求比如OCR扫描功能识别图片内的文字转换成可编辑格式。 2. **Mendeley Desktop + Web App** 结合桌面客户端和在线服务提供全面解决方案从导入导出到协作分享无所不包同时具备社交特性让用户加入全球学者社区交流心得体验。 3. **EndNote X9/X8 (付费)** 被广泛应用于生命科学领域因其高度兼容主流出版物样式模板而著称此外还拥有直观友好的界面使得初学者也能迅速上手掌握基本技能。 4. **Notion / Obsidian** 这两款通用型生产力套件虽然并非专为科研定制但凭借灵活配置选项完全可以胜任复杂场景下的资料归档任务特别是当涉及到非标准格式资源或者想要构建个人知识库的时候尤为适用。 --- ### 方法四:自动化提取技术辅助 对于那些希望减少重复劳动提高工作效率的人来说,考虑运用自然语言处理技术和机器学习算法自动解析长篇幅的技术文档不失为明智之举。例如通过Python脚本调用第三方API接口获取元数据进而完成初步筛选分类等工作流环节。 示例代码片段展示如何批量读取本地目录下所有pdf文件名并打印出来: ```python import os def list_pdfs_in_directory(directory): pdf_files = [f for f in os.listdir(directory) if f.endswith('.pdf')] return pdf_files directory_path = './papers' print(list_pdfs_in_directory(directory_path)) ``` --- ### 注意事项 无论采取哪种策略都应当定期检查更新确保所积累的知识始终处于最新状态另外也要注重版权意识避免非法复制粘贴他人成果造成不必要的麻烦。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值