当前位置: 首页 > news >正文

YOLO系列论文综述(从YOLOv1到YOLOv11)【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】

目录

  • 1 前言
  • 2 YOLO在不同领域的应用
  • 3 物体检测指标和NMS
    • 3.1 mAP和IOU
    • 3.2 mAP计算流程
      • 3.2.1 VOC 数据集
      • 3.2.2 微软 COCO 数据集
    • 3.3 NMS

1 前言

最近在做目标检测模型相关的优化,重新看了一些新的论文,发现了几篇写得比较好的YOLO系列论文综述,所以写了这篇博文,总结一下YOLO从v1到v11的模型架构、优化、优势和局限性。(学术界太卷了,一年更新三版,到今年九月份就已经更新到v11了,印象中两年前还是YOLOv5的天下。)

参考论文:

  1. A COMPREHENSIVE REVIEW OF YOLO ARCHITECTURES IN COMPUTER VISION: FROM YOLOV1 TO YOLOV8 AND YOLO-NAS
  2. YOLOV1 TO YOLOV10: A COMPREHENSIVE REVIEW OF YOLO VARIANTS AND THEIR APPLICATION IN THE AGRICULTURAL
    DOMAIN
  3. YOLOV10 TO ITS GENESIS: A DECADAL AND COMPREHENSIVE REVIEW OF THE YOU ONLY LOOK ONCE (YOLO) SERIES

目标检测的发展经历了五个比较大的阶段:传统算法、Two-stage、One-stage、Anchor-free、Transformer。

在深度学习出现之前,主要是依赖于手工设计的特征与机器学习分类器的结合,包括相关滤波器、滑动窗口法和Viola-Jones检测器等,这些方法所涉及的特征提取技术包括Gabor特征、梯度方向直方图(Histogram of Oriented Gradients, HOG)、局部二值模式(Local Binary Patterns, LBP)和哈尔特征(Haar-like features)。这些检测器最常用的分类方法包括随机森林、支持向量机、统计分类器(例如贝叶斯分类器和Adaboost)以及多层感知器(MLP)等。

将卷积神经网络(Convolutional Neural Networks, CNN)引入物体检测之后,真正实现了自动化的特征提取和端到端的学习。

CNN的特点包括:

  • 层次化的特征学习:CNN在最开始几层可以学习一些低维的特征(如边缘、纹理),在深层可以学习一些高维的特征(如物体部件、形状);
  • 空间不变性:卷积层使得CNN能够识别图像中不论位置如何的对象,从而增强了检测的鲁棒性;
  • 可扩展性和泛化能力:CNN易于扩展,便于处理更大的数据集和更复杂的模型,在广泛的任务和应用环境中提高性能和鲁棒性。

下图展示了物体检测算法的主要发展历史。

时间线

如果直接通过滑动窗口的方法将CNN应用到物体检测中,这种暴力搜索的方法计算成本非常高,并且效率很低,难以做到实时处理。

2013年,Ross Girshick等人提出了R-CNN (Region-based CNN) 架构来解决这些挑战。R-CNN利用选择性搜索算法生成大约2000个区域proposals,然后通过CNN处理这些区域来提取特征。Fast R-CNN改进了这一过程,通过在单次传递中集成区域proposals特征提取和分类来提高效率。Faster R-CNN进一步优化了这种方法,引入了Region Proposal Networks(RPNs)进行端到端训练,去掉了选择性搜索的方法。

“You Only Look Once”(YOLO)物体检测算法是由Joseph Redmon等人在2015年首次提出,用一个单一的神经网络将region proposal和分类结合起来,极大地减少了计算时间,使得实时物体检测开启了新的里程碑。YOLO将图像分割成很多个网格,每个网格直接预测边界框和类别概率,实现了端到端的学习。

2 YOLO在不同领域的应用

YOLO的实时物体检测能力在自动驾驶车辆系统中具有不可估量的价值,能够快速识别和跟踪各种物体,如车辆、行人、自行车和其他障碍物。这些功能已被应用于多个领域,包括用于监控、体育分析和视频动作识别。

在农业方面,YOLO被用来检测和分类作物、害虫和疾病,辅助精准农业技术并实现农作过程自动化。它们也被调整用于生物识别、安全以及面部识别系统中的人脸检测任务。

在医学领域,YOLO已被用于癌症检测、皮肤分割和药片识别,提高了诊断准确性和治疗过程的效率。

在遥感领域,它被用于卫星和航空影像中的物体检测与分类,支持土地利用制图、城市规划和环境监测。

安全系统整合了YOLO模型进行视频流的实时监控和分析,允许快速检测可疑活动、社交距离保持及口罩佩戴检测。这些模型还被应用于表面检查以检测缺陷和异常情况,从而加强制造和生产过程中的质量控制。

在交通应用中,YOLO被用于车牌检测和交通标志识别等任务,为智能交通系统和交通管理解决方案的发展做出了贡献。它们还被用于野生动物检测和监测,以识别濒危物种,促进生物多样性保护和生态系统管理。

最后,YOLO在机器人应用和无人机物体检测中得到了广泛应用。

下图展示了Scopus中标题含有“YOLO”一词的所有论文的文献计量网络可视化,并通过物体检测关键词进行了筛选。

YOLO应用领域

3 物体检测指标和NMS

3.1 mAP和IOU

平均精度(Average Precision, AP),也称为平均平均精度(Mean Average Precision, mAP),衡量所有类别物体的平均精度,是评估物体检测模型性能的常用指标。COCO数据集对AP和mAP不做区分。下文中,我们提到的AP和mAP是等价的。

在YOLOv1和YOLOv2中,用于训练和基准测试的数据集是PASCAL VOC 2007和VOC 2012,但从YOLOv3开始,使用的是COCO(Common Objects in Context)数据集。

mAP指标是基于精确度-召回率指标,处理多个物体类别,并通过交并比(IoU)定义正预测。

精确度Precision:衡量模型正预测的准确性,简单理解就是模型输出的检测框里,检测正确的框的比例。

召回率Recall:衡量模型正确识别的正例的比例,换而言之,就是有多少正例被正常识别出来。

通常,精确度和召回率之间会互相影响,例如:增加检测到的对象数量(更高的召回率)可能导致更多的假阳性(更低的精确度)。为了综合考虑精确度和召回率,需要用mAP来衡量,mAP指标结合了不同置信度阈值下的精确度-召回率曲线,表示的是精确度-召回率曲线下的面积。

通常一个模型会检测多个类别,mAP指标通过分别计算每个类别的平均精度(AP),然后取所有类别AP的均值(这也是为什么它被称为平均平均精度的原因),这种方法能更全面地评估模型的整体性能。

交并比(Intersection over Union, IoU):物体检测旨在通过预测边界框准确地定位图像中的物体,mAP指标通过引入交并比(IoU)来评估预测边界框的质量。IoU是指预测边界框与真实边界框的交集面积与并集面积之比,表示了真实边界框与预测边界框之间的重叠程度。COCO基准采用多个IoU阈值来评估模型在不同定位精度水平上的表现。

IOU

3.2 mAP计算流程

在VOC和COCO数据集中,AP的计算方式有所不同。

3.2.1 VOC 数据集

该数据集包括20个物体类别,mAP计算步骤:

  1. 对于每个类别,通过改变模型预测的置信度阈值来计算精确度-召回率曲线。
  2. 使用精确度-召回率曲线上11点插值的方法来计算每个类别的平均精度(AP)。
  3. 通过取所有20个类别的AP均值来计算最终的平均精度(AP)。

3.2.2 微软 COCO 数据集

该数据集包含80个物体类别,并使用更复杂的方法来计算AP。与VOC使用11点插值不同,它使用101点插值,即从0到1以0.01为增量计算101个召回率阈值下的精确度。此外,AP是通过对多个IoU值而不是仅一个IoU值求平均得到的,除了一个常用的AP指标称为AP50,它是单个IoU阈值0.5时的AP。COCO中计算AP的步骤如下:

  1. 对于每个类别,通过改变模型预测的置信度阈值来计算精确度-召回率曲线。
  2. 使用101个召回率阈值来计算每个类别的平均精度(AP)。
  3. 在不同的交并比(IoU)阈值下计算AP,通常是从0.5到0.95,步长为0.05。较高的IoU阈值要求更准确的预测才能被视为TP。
  4. 对于每个IoU阈值,取所有80个类别的AP均值。
  5. 最后,通过对每个IoU阈值下计算出的AP值求平均来计算整体AP。

AP计算方法的不同使得直接比较两个数据集上的物体检测模型性能变得困难。目前的标准倾向于使用COCO AP,因为它对模型在不同IoU阈值下的表现进行了更细致的评估。

3.3 NMS

非极大值抑制(Non-Maximum Suppression, NMS)是一种在物体检测算法中使用的后处理技术,用于减少重叠边界框的数量并提高整体检测质量。物体检测算法通常会在同一个物体周围生成多个具有不同置信度分数的边界框,NMS通过过滤掉冗余和无关的边界框,只保留最准确的那些。

非极大值抑制(NMS)的工作原理:

  • 初始化:首先获取所有预测的边界框及其对应的置信度分数。
  • 排序:根据置信度分数对这些边界框进行降序排列。
    选择最高分框:选取置信度最高的边界框作为当前处理的对象。
  • 计算IoU:对于剩余的所有边界框,计算它们与当前最高分框之间的交并比(IoU)。
  • 抑制重叠框:如果某个边界框与当前最高分框的IoU超过了预设阈值(例如0.5),则认为该边界框是冗余的,并将其从列表中移除。
  • 重复步骤3-5:继续选取下一个置信度最高的边界框,并重复上述过程,直到所有边界框都被处理完毕。

通过这种方式,NMS能够有效地去除多余的重叠边界框,从而简化结果并提高检测准确性。这种方法对于确保每个物体只有一个最佳匹配的边界框特别有用,这对于后续的应用如跟踪或识别非常关键。

NMS

NMS示意图

从下一篇博文开始,我们逐一介绍每一版本YOLO的模型架构、改进点、优势和局限性。

相关文章:

YOLO系列论文综述(从YOLOv1到YOLOv11)【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】

目录 1 前言2 YOLO在不同领域的应用3 物体检测指标和NMS3.1 mAP和IOU3.2 mAP计算流程3.2.1 VOC 数据集3.2.2 微软 COCO 数据集 3.3 NMS 1 前言 最近在做目标检测模型相关的优化,重新看了一些新的论文,发现了几篇写得比较好的YOLO系列论文综述&#xff0…...

TailwindCss 总结

目录 一、简介 二、盒子模型相关 三、将样式类写到一个类里面apply 四、一款TailWind CSS的UI库 一、简介 官方文档:Width - TailwindCSS中文文档 | TailwindCSS中文网 Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何 模板中的 CSS 类…...

【开源项目】2024最新PHP在线客服系统源码/带预知消息/带搭建教程

简介 随着人工智能技术的飞速发展,AI驱动的在线客服系统已经成为企业提升客户服务质量和效率的重要工具。本文将探讨AI在线客服系统的理论基础,并展示如何使用PHP语言实现一个简单的AI客服系统。源码仓库地址:ym.fzapp.top 在线客服系统的…...

MySQL原理简介—11.优化案例介绍

大纲 1.禁止或改写SQL避免自动半连接优化 2.指定索引避免按聚簇索引全表扫描大表 3.按聚簇索引扫描小表减少回表次数 4.避免产生长事务长时间执行 1.禁止或改写SQL避免自动半连接优化 (1)业务场景介绍 (2)SQL性能问题分析 (3)SQL性能调优 (1)业务场景介绍 某互联网公司…...

Http 响应协议

HTTP的响应协议 响应数据格式 响应行 响应数据的第一行,包括协议、状态码、描述 响应头 从响应数据格式的第二行开始,也是以key:value的格式 响应体 和响应头之间有一个空行,是响应数据格式的最后一部分,用于存放响应的数据 常见响…...

实现 Browser 客户端下载 XML 文件功能

后端 使用 io.BytesIO 方法 创建一个字节缓冲区在不需要磁盘文件的情况下进行文件操作打包为 zip 压缩包(上图代码)in_memory_zip.seek(0) 数据写入ZIP后文件指针会停留在缓冲区的末尾将文件指针重置回开头make_response() 方法用于创建HTTP响应的函数.g…...

Matlab以一个图像分类例子总结分类学习的使用方法

目录 前言 导入数据 训练学习 导出训练模型 仿真测试 总结 前言 最近在尝试一些基于Simulink的边沿AI部署,通过这个案例总结Matlab 分类学习功能的使用。本案例通过输入3000张28*28的灰度图像,训练分类学习模型。并验证训练好的模型最后部署到MCU。 导入数据 如下图是…...

AI-agent矩阵营销:让品牌传播无处不在

矩阵营销是一种通过多平台联动构建品牌影响力的策略,而 AI-agent 技术让这一策略变得更加智能化。AI社媒引流王凭借其矩阵管理功能,帮助品牌在多个平台上实现深度覆盖与精准传播。 1. 矩阵营销的优势 品牌触达更广:多平台联动可以覆盖不同用…...

HDMI转VGA方案 LT8612UX(HDMI2.0) LT8612SX LT8511EX LT8522EX LT8612EX_e(HDMI1.4)

一、产品概述 LT8612UX是一款高性能的HDMI至HDMI&VGA转换器,由龙迅半导体公司推出。它能够将HDMI2.0数据流转换为HDMI2.0信号和模拟RGB信号,同时输出8通道I2S和SPDIF信号,实现高质量的7.1声道音频。该转换器采用最新的ClearEdge技术&…...

零基础3分钟快速掌握 ——Linux【终端操作】及【常用指令】Ubuntu

1.为啥使用Linux做嵌入式开发 能广泛支持硬件 内核比较高效稳定 原码开放、软件丰富 能够完善网络通信与文件管理机制 优秀的开发工具 2.什么是Ubuntu 是一个以桌面应用为主的Linux的操作系统, 内核是Linux操作系统, 具有Ubuntu特色的可视…...

腾讯云OCR车牌识别实践:从图片上传到车牌识别

在当今智能化和自动化的浪潮中,车牌识别(LPR)技术已经广泛应用于交通管理、智能停车、自动收费等多个场景。腾讯云OCR车牌识别服务凭借其高效、精准的识别能力,为开发者提供了强大的技术支持。本文将介绍如何利用腾讯云OCR车牌识别…...

第二十二课 Vue中的组件切换

Vue中的组件切换 :is 操作符可以用于组件的切换&#xff0c;配合component标签可以实现根据不同的组件名进行组件的切换效果 组件切换实例 1&#xff09;:is与component实现组件切换 <div id"app"><button click"checks()">点击切换组件&l…...

抖音短视频矩阵源代码部署搭建流程

抖音短视频矩阵源代码部署搭建流程 1. 硬件准备 需确保具备一台性能足够的服务器或云主机。这些硬件设施应当拥有充足的计算和存储能力&#xff0c;以便支持抖音短视频矩阵系统的稳定运行。 2. 操作系统安装 在选定的服务器或云主机上安装适合的操作系统是关键步骤之一。推…...

【Linux】线程同步与互斥

文章目录 1. 线程互斥1.1 进程线程间的互斥相关背景概念1.2 互斥量mutex1.3 相关操作1.4 互斥量实现原理1.5 互斥量的封装 2. 线程同步2.1 条件变量2.2 生产者消费者模型2.3 基于BlockingQueue的生产者消费者模型2.4 信号量2.5 基于环形队列的生产消费模型 3. 线程池3.1 日志3.…...

设计模式-原型模式

背景 克隆羊&#xff1a;有一只羊&#xff0c;有各种属性&#xff1a;姓名&#xff0c;年龄……&#xff0c;现在要克隆10只和这只羊一模一样的羊。 传统方法&#xff1a; 定义一个羊类&#xff0c;在客户端调取原型羊的信息&#xff0c;根据信息创建10个属性相同的羊。 问…...

异或操作解决一些问题

前提&#xff1a; 异或操作符合交换律&#xff0c;结合律&#xff08;因为其根本上来抽象理解&#xff0c;就是查看所有项二进制数相同位是否有奇数个1&#xff0c;对运算结果二进制数而言&#xff0c;没有该位为0&#xff0c;有该位为1&#xff0c;与顺序无关&#xff09;。 …...

Rust中Tracing 应用指南

欢迎来到这篇全面的Rust跟踪入门指南。Rust 的tracing是一个用于应用程序级别的诊断和调试的库。它提供了一种结构化的、异步感知的方式来记录日志和跟踪事件。与传统的日志记录相比&#xff0c;tracing能够更好地处理复杂的异步系统和分布式系统中的事件跟踪&#xff0c;帮助开…...

Java与C#

Java和C#&#xff08;C Sharp&#xff09;是两种流行的面向对象编程语言&#xff0c;它们在很多方面非常相似&#xff0c;因为它们都受到了类似的编程范式和语言设计理念的影响。然而&#xff0c;它们之间也存在一些重要的区别。 平台依赖性&#xff1a; Java&#xff1a;Java是…...

Docker 部署 MongoDB

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f343; vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode&#x1f4ab; Gitee &#x1f…...

【C语言】字符串左旋的三种解题方法详细分析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 &#x1f4af;前言&#x1f4af;题目描述&#x1f4af;方法一&#xff1a;逐字符移动法&#x1f4af;方法二&#xff1a;使用辅助空间法&#x1f4af;方法三&#xff1a;三次反转法&#x1f4af;方法对…...

Android导出Excel

poi org.apache.poi:poi-ooxml:4.x&#xff1a; 不支持Android使用&#xff0c; 不支持原因&#xff1a;Android底层库不支持xml所需的bean类&#xff0c;使用即报错only supported starting with Android O (–min-api 26) org.apache.poi:poi-ooxml:5.2.0&#xff1a; 支持A…...

【学术讲座】视觉计算中的深度学习方法 AIGC图像视频生成模型的推理加速

视觉计算中的深度学习方法 发展历程 backbone 强化学习、LLM等&#xff1a;有监督 && 无监督的结合 目标检测 图像分割 网络结构搜索 搜索方法 1&#xff1a;强化学习 2&#xff1a;强化学习 3&#xff1a;梯度算法 结构选择的作用 1&#xff1a;开放环境感知网络…...

华为OD机试真题---智能驾驶

华为OD机试中的“智能驾驶”题目是一道涉及广度优先搜索&#xff08;BFS&#xff09;算法运用的题目。以下是对该题目的详细解析&#xff1a; 一、题目描述 有一辆汽车需要从m * n的地图的左上角&#xff08;起点&#xff09;开往地图的右下角&#xff08;终点&#xff09;&a…...

视频质量评价SimpleVQA

目录 一、研究意义例子 二、介绍三、文章解读3.1 论文动机3.2论文思路3.3方法3.3.1网络框架3.3.2公式解读3.3.3核心创新3.3.4理解 &#xff01;&#xff01;&#xff01;作者对模型的改进本人算法框体视频抽帧美学特征提取网络&#xff1a;3.3.5实验细节&#xff1a; 四、代码复…...

浏览器插件基于nativeMessaging通信

上一篇文章介绍了基于nativeMessaging启动本地程序&#xff0c;使用官方demo是支持双向通信&#xff0c;demo启动的程序是python写的&#xff0c;现在基于Qt程序进行说明。 消息传递协议 Chrome 会在单独的进程中启动每个原生消息传递主机&#xff0c;并使用标准输入 (stdin)…...

解决 MySQL 8.x 身份验证问题的最佳实践20241126

MySQL 8.x 身份验证问题的深入解析与实践解决方案 &#x1f3af; 引言 &#x1f58b;️ MySQL 是全球最受欢迎的开源数据库之一&#xff0c;随着 MySQL 8.x 的发布&#xff0c;引入了更安全的身份验证插件 caching_sha2_password&#xff0c;显著提升了数据库的安全性和性能。…...

对于GC方面,在使用Elasticsearch时要注意什么?

大家好&#xff0c;我是锋哥。今天分享关于【对于GC方面&#xff0c;在使用Elasticsearch时要注意什么&#xff1f;】面试题。希望对大家有帮助&#xff1b; 对于GC方面&#xff0c;在使用Elasticsearch时要注意什么&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java…...

各种排序算法

前置知识 排序: 按照递增或者递减的顺序把数据排列好 稳定性: 值相等的元素在排序之后前后顺序是否发生了改变 内部排序: 数据放在内存上 外部排序: 数据放在磁盘上 内部排序 基于比较的排序 几大排序算法 1. 堆排序 特点: 思想: 1. 创建大根堆,把所有元素放在大根堆里…...

前端-Git

一.基本概念 Git版本控制系统时一个分布式系统&#xff0c;是用来保存工程源代码历史状态的命令行工具 简单来说Git的作用就是版本管理工具。 Git的应用场景&#xff1a;多人开发管理代码&#xff1b;异地开发&#xff0c;版本管理&#xff0c;版本回滚。 Git 的三个区域&a…...

用nextjs开发时遇到的问题

这几天已经基本把node后端的接口全部写完了&#xff0c;在前端开发时考虑时博客视频类型&#xff0c;考虑了ssr&#xff0c;于是选用了nextJs&#xff0c;用的是nextUi,tailwincss,目前碰到两个比较难受的事情。 1.nextUI个别组件无法在服务器段渲染 目前简单的解决方法&…...

Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

yum install 报错: Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址&#xff0c;无法连接&#xff0c;需要替换为阿里云。 cd /etc/yum.repos.d/ 找到 CentOS-SCLo-scl.repo 和…...

HCIA笔记3--TCP-UDP-交换机工作原理

1. tcp协议 可靠的连接 1.1 报文格式 1.2 三次握手 1.3 四次挥手 为什么TIME_WAIT需要2MSL的等待时间&#xff1f; &#xff08;a&#xff09; 为了实现可靠的关闭 &#xff08;b&#xff09;为了让过期的报文在网络上消失 对于(a), 假设host发给server的last ack丢了。 ser…...

RabbitMQ原理架构解析:消息传递的核心机制

文章目录 一、RabbitMQ简介1.1、概述1.2、特性 二、RabbitMQ原理架构三、RabbitMQ应用场景3.1、简单模式3.2、工作模式3.3、发布订阅3.4、路由模式3.5 主题订阅模式 四、同类中间件对比五、RabbitMQ部署5.1、单机部署5.2、集群部署&#xff08;镜像模式&#xff09;5.3、K8s部署…...

C语言指针作业

//8-29 第八章作业 //3.输入10个整数,将其中最小的数第一个数对换,把最大的数与最后一个数对换 //写3个函数:①输人10个数;②进行处理;③输出10个数。 //①输人10个数&#xff0c; //方法一&#xff1a;数组索引 void main() {int arr[10];int *p arr;//printf("请输入…...

区块链:比特币-Binance

写在前面&#xff1a;相对于Tran和BNB而言&#xff0c;Binance不支持智能合约&#xff1b;大约每 10分钟 生成一个新区块 一、认识Binance 官方网站&#xff1a;Blockchain Explorer - Bitcoin Tracker & More | Blockchain.com 官方文档&#xff1a;Authentication – I…...

数据工程流程

** 数据工程流程图** #mermaid-svg-ArT55xCISSfZImy3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ArT55xCISSfZImy3 .error-icon{fill:#552222;}#mermaid-svg-ArT55xCISSfZImy3 .error-text{fill:#552222;stroke…...

使用Python和Pybind11调用C++程序(CMake编译)

目录 一、前言二、安装 pybind11三、编写C示例代码四、结合Pybind11和CMake编译C工程五、Python调用动态库六、参考 一、前言 跨语言调用能对不同计算机语言进行互补&#xff0c;本博客主要介绍如何实现Python调用C语言编写的函数。 实验环境&#xff1a; Linux gnuPython3.10…...

基于springboot的县市级土地使用监控系统的设计与实现

文末获取本系统&#xff08;程序源码数据库调试部署开发环境&#xff09;文末可获取&#xff0c;系统界面在最后面。 摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的…...

Hot100 - 最大子数组和

Hot100 - 最大子数组和 最佳思路&#xff1a;动态规划 时间复杂度&#xff1a;O(n) 代码&#xff1a; class Solution {public int maxSubArray(int[] nums) {int sum 0;int ans Integer.MIN_VALUE;for (int i 0; i < nums.length; i) {// 如果 sum > 0&#xff0c…...

Matlab 深度学习 PINN测试与学习

PINN 与传统神经网络的区别 与传统神经网络的不同之处在于&#xff0c;PINN 能够以微分方程形式纳入有关问题的先验专业知识。这些附加信息使 PINN 能够在给定的测量数据之外作出更准确的预测。此外&#xff0c;额外的物理知识还能在存在含噪测量数据的情况下对预测解进行正则…...

[STM32]从零开始的STM32 FreeRTOS移植教程

一、前言 如果能看到这个教程的话&#xff0c;说明大家已经学习嵌入式有一段时间了。还记得嵌入式在大多数时候指的是什么吗&#xff1f;是的&#xff0c;我们所说的学习嵌入式大部分时候都是在学习嵌入式操作系统。从简单的一些任务状态机再到复杂一些的RTOS&#xff0c;再到最…...

软件团队的共担责任

问责制被认为是个人与其社会系统之间的纽带&#xff0c;它创造了一种将个人与其行为和绩效联系起来的身份关系。在入门系列的第一篇文章《超越工具和流程&#xff1a;成功软件开发团队的策略》中&#xff0c;我们介绍了问责制的概念&#xff0c;并提出了以下定义&#xff1a; …...

代码美学:MATLAB制作渐变色

输入颜色个数n&#xff0c;颜色类型&#xff1a; n 2; % 输入颜色个数 colors {[1, 0, 0], [0, 0, 1]}; createGradientHeatmap(n, colors); 调用函数&#xff1a; function createGradientHeatmap(n, colors)% 输入检查if length(colors) ~ nerror(输入的颜色数量与n不一…...

Perforce SAST专家详解:自动驾驶汽车的安全与技术挑战,Klocwork、Helix QAC等静态代码分析成必备合规性工具

自动驾驶汽车安全吗&#xff1f;现代汽车的软件包含1亿多行代码&#xff0c;支持许多不同的功能&#xff0c;如巡航控制、速度辅助和泊车摄像头。而且&#xff0c;这些嵌入式系统中的代码只会越来越复杂。 随着未来汽车的互联程度越来越高&#xff0c;这一趋势还将继续。汽车越…...

大模型中常见的微调方法有哪些?

我整理了1000道算法面试题&#xff1a; 获取 这里说的微调主要是指参数微调&#xff0c;参数微调的方法主要有以下几种&#xff1a; - Adapter 在预训练模型每一层(或某些层)中添加Adapter模块(如上图左侧结构所示)&#xff0c;微调时冻结预训练模型主体&#xff0c;由Ada…...

MATLAB支持的距离度量

距离度量是用于量化两个点或样本之间差异的一种方法。在不同的领域和应用场景中&#xff0c;距离度量的选择可能会有所不同。 欧几里得距离&#xff08;Euclidean Distance&#xff09;&#xff1a;这是最直观的距离定义&#xff0c;适用于n维空间中的两点。对于二维空间中的点…...

c++编程玩转物联网:使用芯片控制8个LED实现流水灯技术分享

在嵌入式系统中&#xff0c;有限的GPIO引脚往往限制了硬件扩展能力。74HC595N芯片是一种常用的移位寄存器&#xff0c;通过串行输入和并行输出扩展GPIO数量。本项目利用树莓派Pico开发板与74HC595N芯片&#xff0c;驱动8个LED实现流水灯效果。本文详细解析项目硬件连接、代码实…...

LSA详情与特殊区域

LSA是构成LSDB的重要原材料&#xff0c;在OSPF中发挥很大作用。 报文 通用头部 LS age&#xff1a;LSA寿命&#xff0c;0-3600s Options&#xff1a;可选项 LS type&#xff1a;LSA类型&#xff0c;三要素之一 Link State ID&#xff1a;LSAID 三要素之一 Advertising Ro…...

Leecode刷题C语言之交替组①

执行结果:通过 执行用时和内存消耗如下&#xff1a; 代码如下&#xff1a; int numberOfAlternatingGroups(int* colors, int colorsSize) {int res 0;for (size_t i 0; i < colorsSize; i) {if (colors[i] ! colors[(i - 1 colorsSize) % colorsSize] && col…...

深入解析 Django 中数据删除的最佳实践:以动态管理镜像版本为例

文章目录 引言场景与模型设计场景描述 删除操作详解1. 删除单个 Tag2. 批量删除 Tags3. 删除前确认4. 日志记录 高阶优化与问题分析1. 外键约束与误删保护2. 并发删除的冲突处理3. 使用软删除 结合 Django Admin 的实现总结与实践思考 引言 在现代应用开发中&#xff0c;服务和…...