首页 > 其他分享 >YOLO系列技术细节(更新中)

YOLO系列技术细节(更新中)

时间:2024-11-15 10:18:45浏览次数:1  
标签:right 技术细节 sum YOLO 更新 grid left hat mathrm

相对于R-CNN、Fast RCNN的two-stage目标检测方式,即先在图像中提取候选框,再逐一对图像进行分类。候选框的生成可以是滑动窗口或选择性搜索,再对候选框进行非极大值抑制(一般只在推理时做非极大值抑制,训练时需要这些重复的框)。而YOLO则是one-stage的端到端形式:输入图片,经过深度神经网络的黑盒,得到带候选框和预测概率标注的图像。

YOLO v1

发表论文:Redmon, J. "You only look once: Unified, real-time object detection." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

数据格式

对于输入的图片,划分为\(S\times S\)个grid(文中S=7),每一个grid包含2个bounding box,box的中心位于grid内,但是范围可以超出grid。

输入图片大小为448x448x3,输出向量为7x7x30。输出向量可抽象为:\(S\times S\times(B*5+C)\),每个grid的有\((B*5+C)\)个属性,也就是30;其中C表示类别数,也就是20个,B表示bounding box数量,也就是2个;每个box有5个值\((x,y,w,h)\),还有置信度,\((x,y)\)表示框的中心
相对于grid的边界;\(w\)宽度和\(h\)高度是相对于整个图像进行预测的;置信度预测表示预测框与任何真实框之间的IOU,在计算时,还乘以了类别的预测概率:

\[\mathrm{Pr}(\mathrm{Class}_i|\mathrm{Object})*\mathrm{Pr}(\mathrm{Object})*\mathrm{IOU}_{\mathrm{pred}}^{\mathrm{truth}}=\mathrm{Pr}(\mathrm{Class}_i)*\mathrm{IOU}_{\mathrm{pred}}^{\mathrm{truth}} \]

训练

在训练中图像宽高被缩放到[0,1],因此每个grid内的box的x,y也被限制到[0,1]。

对最后一层使用线性激活函数,所有其他层使用Leaky ReLU:

\[\phi(x)=\begin{cases}x,&\mathrm{if~}x>0\\0.1x,&\mathrm{otherwise}&\end{cases} \]

损失函数中,\(\mathbb{1}_{ij}^\text{obj}\)表示指示函数,第i个grid中的第j个box存在物体时,为1。否则\(\mathbb{1}_{ij}^\text{noobj}\)为1。

第1项和第2项,通过回归问题计算bounding box的\((x_i,y_i,w_i,h_i)\)与标注\((\hat{x}_i,\hat{y}_i,\hat{w}_i,\hat{h}_i)\)之间的损失。考虑到w、h较大时,允许有一定的误差;而w、h较小时,需要对误差更敏感。因此计算w、h使用了开根号。

第3项和第4项,\(C_i\)表示置信度,第3项中\(\hat{C}_i\)为1;第4项中,\(\hat{C}_i\)为0,因为没有object。

第5项中,计算每一个grid中,所有类的概率分布\(p_i(c)\)与实际分布\(\hat{p}_i(c)\)的损失。

\[\lambda_{\mathbf{coord}}\sum_{i=0}^{S^{2}}\sum_{j=0}^{B}\mathbb{1}_{ij}^{\mathrm{obj}}\left[\left(x_{i}-\hat{x}_{i}\right)^{2}+\left(y_{i}-\hat{y}_{i}\right)^{2}\right] + \]

\[\lambda_{\mathbf{coord}}\sum_{i=0}^{S^2}\sum_{j=0}^B1_{ij}^{\text{obj}}\left[\left(\sqrt{w_i}-\sqrt{\hat{w}_i}\right)^2+\left(\sqrt{h_i}-\sqrt{\hat{h}_i}\right)^2\right] + \]

\[\sum_{i=0}^{S^2}\sum_{j=0}^B\mathbb{1}_{ij}^{\mathrm{obj}}\left(C_i-\hat{C}_i\right)^2 + \]

\[\lambda_{\mathrm{noobj}}\sum_{i=0}^{S^{2}}\sum_{j=0}^{B}1_{ij}^{\mathrm{noobj}} \left(C_{i}-\hat{C}_{i}\right)^{2} + \]

\[\sum_{i=0}^{S^{2}}\mathbb{1}_{i}^{\mathrm{obj}}\sum_{c\in\mathrm{classes}}\left(p_{i}(c)-\hat{p}_{i}(c)\right)^{2} \]

标签:right,技术细节,sum,YOLO,更新,grid,left,hat,mathrm
From: https://www.cnblogs.com/zh-jp/p/18547479

相关文章

  • 基于YOLOv8模型的水上漂浮物目标检测系统(PyTorch+Pyside6+YOLOv8模型)
    摘要:基于YOLOv8模型的水上漂浮物目标检测系统可用于日常生活中检测与定位车辆目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练数据集,使用Pysdie6库来搭建前端页面展......
  • 基于YOLOv8模型和UA-DETRAC数据集的车辆目标检测系统(PyTorch+Pyside6+YOLOv8模型)
    摘要:基于YOLOv8模型和UA-DETRAC数据集的车辆目标检测系统可用于日常生活中检测与定位汽车(car)、公共汽车(bus)、面包车(vans)等目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算......
  • <项目代码>YOLOv8 工程机械识别<目标检测>
       YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如FasterR-CNN),YOLOv8具有更高的检测速度和实时性。1.数据集介绍数据集详情可以参考博主写的博客<数据集>工程机械......
  • 【全网最全】2024年亚太赛数学建模C题论文分享(点赞收藏下,后续会更新)
     您的点赞收藏是我继续更新的最大动力!一定要点击文末的卡片,那是获取资料的入口!针对中国新能源汽车发展趋势的分析摘 要中国新能源电动汽车在近年来取得了快速发展,并成为中国的标志性产业之一。本文围绕新能源电动汽车的发展,提出了六个问题,并提供了对应的分析和数学建模......
  • 如何使用 MySQL Workbench 自动生成 ER 图、同步更新远程数据库 - MySQL Workbench 使
    https://zhuanlan.zhihu.com/p/438270644       ......
  • MySQL更新操作
    1.insert语法:insertinto表名(列名1,列名2,)values(值1,值2,);语法2:一次性插入多条记录insertinto表名(列名1,列名2,)values(值1,值2,),(值1,值2,);示例:insertintodept(deptno,dname,loc)values(50,'市场部','南京');insertintodept(deptno,dname)values(60,'开发部')......
  • 定期更新仓库主分支的重要性
    定期更新仓库主分支的重要性遇到的问题在sot分支上拉取新的PR时,上次已经合入的commit居然又被视为新commit,导致提交记录非常冗杂。解决方法、注意事项是的,当你在GitHub上提交PR(PullRequest)时,通常会是基于你自己Fork的仓库的develop分支计算的,而不是目标仓库的develop......
  • DL00337-基于yolov11的阿尔兹海默症检测诊断含数据集python
    阿尔兹海默症是一种渐进性的神经退行性疾病,通常通过认知障碍、记忆丧失、语言障碍等症状表现出来。早期诊断是控制疾病发展的关键,但现有的诊断方法如临床评估、神经影像检查(CT、MRI等)通常具有一定的局限性。YOLOv11能够帮助提取医学影像中的有价值特征,进而辅助阿尔兹海默症的诊......
  • 重磅更新!Fluent Editor 开源富文本支持 LaTeX 可编辑公式啦~
    你好,我是Kagol,个人公众号:前端开源星球。FluentEditor是一个基于Quill2.0的富文本编辑器,在Quill基础上扩展了丰富的模块和格式,框架无关、功能强大、开箱即用。源码:https://github.com/opentiny/fluent-editor/(欢迎Star⭐)官网:https://opentiny.github.io/fluent-edito......
  • [QT][NCNN][YOLOV8-SEG]使用ncnn框架部署yolov8-seg,外加qt进行界面可视化操作,用于图片
    yolov8seg_qt_ncnn使用ncnn框架部署yolov8-seg,外加qt进行界面可视化操作,用于图片和视频实例分割推理。Github地址:https://github.com/zhahoi/yolov8seg_qt_ncnn起一直以来自己做算法部署或者是模型推理,最后总是需要在命令行敲各种命令,然后通常借助opencv进行可视化。老......