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

图解YOLO(You Only Look Once)目标检测(v1-v5)

1. YOLO系列整体介绍
 

YOLO属于深度学习经典检测方法中的单阶段(one - stage)类型,与两阶段(two - stage,如Faster - rcnn、Mask - Rcnn系列)方法相对。


不同模型性能

单阶段方法的最核心优势是速度非常快,适合做实时检测任务,但通常检测效果不如两阶段方法


 
2. 指标分析
 

map指标:综合衡量检测效果,不能仅依靠精度(Precision)和召回率(Recall)来评估检测模型性能。


 
IOU(交并比):计算公式为IOU=\frac{Area\ of\ Overlap}{Area\ of\ Union},用于衡量预测框与真实框的重叠程度。
 


Precision和Recall

Precision(精度)公式为Precision =\frac{TP}{TP + FP}

Recall(召回率)公式为Recall =\frac{TP}{TP + FN}


 基于置信度阈值来计算,例如分别计算0.9;0.8;0.7

0.9时:TP+FP = 1,TP = 1 ;FN = 2;Precision=1/1;Recall=1/3;


AP与MAP

AP(Average Precision)计算需要考虑所有阈值,MAP(Mean Average Precision)是所有类别的平均AP,通过Precision - Recall曲线来理解。
 


3. YOLO - V1
 
 

核心思想与方法:

经典的one - stage方法,把检测问题转化成回归问题,使用一个CNN即可完成检测任务。


 
应用领域:可以对视频进行实时检测,应用领域广泛。
 
性能指标对比


 
网络架构:输入图像后经过一系列卷积层(CR)、全连接层(FC)处理,最终输出预测结果。7×7表示最终网格的大小,每个网格预测B个边界框,每个边界框包含位置(X, Y, H, W)、置信度C等信息。

7×7表示最终网格的大小,每个网格预测B个边界框,每个边界框包含位置(X, Y, H, W)、置信度C等信息。

每个数字的含义:

10 =(X,Y,H,W,C)*B(2个)当前数据集中有20个类别,

7*7表示最终网格的大小(S*S)*(B*5+C)


损失函数:包含位置误差、置信度误差(分含有物体和不含物体两种情况)、分类误差。


NMS(非极大值抑制)


优点与问题:优点是快速、简单;问题在于每个Cell只预测一个类别,重叠物体检测存在困难,小物体检测效果一般,长宽比可选但单一。


4. YOLO - V2


 
整体提升:相比YOLO - V1更快、更强,在VOC2007数据集上mAP达到78.6。


 
改进点
 
Batch Normalization:舍弃Dropout,卷积后全部加入Batch Normalization,使网络每一层输入归一化,收敛更容易,mAP提升2%。
 
更大的分辨率:V1训练和测试分辨率不同,训练时用的是224*224,测试时使用448*448,可能导致模型水土不服。V2训练时额外进行10次448×448的微调,使用高分辨率分类器后,mAP提升约4%。
 
网络结构:采用DarkNet架构,实际输入为416×416,没有FC层,5次降采样,通过1×1卷积节省参数。


 
聚类提取先验框:通过K - means聚类确定先验框,使预测的box数量更多(13×13×n),先验框不是直接按固定长宽比给定,引入anchor boxes后召回率提升。

 

Anchor Box:

通过引入anchor boxes,使得预测的box数量更多(13*13*n)

跟faster-rcnn系列不同的是先验框并不是直接按照长宽固定比给定

 


Directed Location Prediction:改进位置预测方式,使用相对grid cell的偏移量,避免模型不稳定问题,计算公式为

例如预测值(σtx,σty,tw,th)=(0.2,0.1,0.2,0.32),anchor框为:

在特征图位置:

在原位置:


感受野与小卷积核优势

概述来说就是特征图上的点能看到原始图像多大区域
 

 如果堆叠3个3*3的卷积层,并且保持滑动窗口步长为1,其感受野就是7*7的了,这跟一个使用7*7卷积核的结果是一样的,那为什么非要堆叠3个小卷积呢?

假设输入大小都是h*w*c,并且都使用c个卷积核(得到c个特征图),可以来计算一下其各自所需参数:

很明显,堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取也会越细致,加入的非线性变换也随着增多,还不会增大权重参数个数,这就是VGG网络的基本出发点,用小的卷积核来完成体特征提取操作。

Fine - Grained Features:融合之前的特征,解决最后一层感受野太大导致小目标可能丢失的问题。
 

Multi - Scale:利用卷积操作特性,在一定iterations之后改变输入图片大小,最小320×320,最大608×608,以适应不同尺度目标检测。
 


5. YOLO - V3
 

主要改进:最大改进在于网络结构,更适合小目标检测。特征提取更细致,融入多尺度特征图信息预测不同规格物体,先验框更丰富(3种scale,每种3个规格,共9种),改进softmax用于预测多标签任务。
 


多scale检测:设计3个scale用于检测不同大小物体,介绍了不同scale的预测张量以及与特征图的关系。
 

cale变换经典方法

左图:对不同的特征图分别利用;右图:不同的特征图融合后进行预测


 

残差连接:采用resnet的思想,堆叠更多层进行特征提取,利用残差连接提升性能。从今天的角度来看,基本所有网络架构都用上了残差连接的方法
 


核心网络架构:没有池化和全连接层,全部采用卷积,下采样通过stride为2实现,展示了网络的输入、卷积层操作以及输出的相关信息。
 


先验框设计

13*13特征图上:(116x90),(156x198),(373x326)26*26特征图上:(30x61),(62x45),(59x119)

52*52特征图上:(10x13),(16x30),(33x23)


 
softmax层替代:使用logistic激活函数替代softmax,用于预测物体的多个标签。


 
6. YOLO - V4
 

整体介绍:虽作者更换,但核心精髓未变,在单GPU上训练效果良好,从数据层面和网络设计层面进行大量改进。

V4贡献

亲民政策,单GPU就能训练的非常好,接下来很多小模块都是这个出发点两大核心方法,从数据层面和网络设计层面来进行改善

消融实验,工作量不轻全部实验都是单GPU完成


Bag of freebies(BOF)
 
数据增强:包括调整亮度、对比度、色调、随机缩放、剪切、翻转、旋转,Mosaic数据增强(四张图像拼接成一张训练)、Random Erase(用随机值或训练集平均像素值替换图像区域)、Hide and Seek(根据概率随机隐藏一些补丁)等方法。
 

 Mosaic data augmentation

Random Erase:用随机值或训练集的平均像素值替换图像的区域

Hide and Seek:根据概率设置随机隐藏一些补丁



网络正则化与损失函数:采用Dropout、Dropblock等网络正则化方法,处理类别不平衡问题,设计合适的损失函数。

DropBlock

之前的dropout是随机选择点(b),现在吃掉一个区域

 

 

 

训练优化相关方法
 

 Self-adversarial-training(SAT)

通过引入噪音点来增加游戏难度


Label Smoothing

神经网络最大的缺点:自觉不错(过拟合),让它别太自信例如原来标签为(0,1):

缓解神经网络过拟合问题,使标签取值范围从(0,1)调整为[0.05,0.95],使用后能使簇内更紧密,簇间更分离。
 


IOU相关损失函数

IOU损失(1 - IOU)存在的问题,如无相交时无法梯度计算、相同IOU无法反映实际情况;

 

GIOU损失(引入最小封闭形状C)、DIOU损失(直接优化距离)、CIOU损失(考虑重叠面积、中心点距离、长宽比三个几何因素)。

DIOU损失

其中分子计算预测框与真实框的中心点欧式距离d 分母是能覆盖预测框与真实框的最小BOX的对角线长度c 直接优化距离,速度更快,并解决GIOU问题 

CIOU损失:损失函数必须考虑三个几何因素:重叠面积,中心点距离,长宽比 其中α可以当做权重参数


DIOU - NMS(不仅考虑IoU值,还考虑两个Box中心点之间的距离)和SOFT - NMS(柔和处理,更改分数而非直接剔除)。

SOFT-NMS


Bag of specials(BOS)
 
网络改进方法:增加稍许推断代价但可提高模型精度,包括网络细节部分的改进,引入注意力机制、特征金字塔等方法。
 
SPPNet(Spatial Pyramid Pooling)(用最大池化满足最终输入特征一致)

CSPNet(Cross Stage Partial Network)(按特征图channel维度拆分,一部分正常走网络,一部分直接concat到输出)

CBAM(引入注意力机制,V4中用的是空间注意力机制SAM)

V4中用的是SAM,也就是空间的注意力机制

不光NLP,语音识别领域在搞attention,CV中也一样

 

YOLOV4中的Spatial attention module

一句话概述就是更简单了,速度相对能更快一点

 

PAN(引入自底向上的路径,使底层信息更易传到顶部,且采用拼接而非加法)

先从FPN说起

自顶向下的模式,将高层特征传下来

 

PAN(Path Aggregation Network)

引入了自底向上的路径,使得底层信息更容易传到顶部

并且还是一个捷径,红色的没准走个100层(Resnet),绿色的几层就到了

 

Mish激活函数公式为f(x)=x \cdot tanh \left(ln \left(1+e^{x}\right)\right),计算量增加但效果有提升


 


消除网格敏感性:坐标回归预测值在0 - 1之间,在grid边界表示存在困难,通过在激活函数前加系数(大于1)缓解该问题。

 为了缓解这种情况可以在激活函数前加上一个系数(大于1的):


 
整体网络架构:采用CSPDarknet53架构,展示了网络的输入、各层操作以及最终的输出等信息。
 


7. YOLOV5源码相关
 
 

可视化工具:

1.配置好netron,详情:https://github.com/lutzroeder/netron

   桌面版:https://lutzroeder.github.io/netron/

2.安装好onnx,pip install onnx即可

3.转换得到onnx文件,脚本原始代码中已经给出

4.打开onnx文件进行可视化展示(.pt文件展示效果不如onnx)

Focus模块:先分块,后拼接,再卷积,间隔完成分块任务,使卷积输入的C变为12,目的是加速,不增加AP。


 
BottleneckCSP:注意叠加个数,里面包含resnet模块,相比V3版本多了CSP,效果有一定提升。


 
PAN流程:PAN流程中各模块的操作,如Focus、CONV、BottleneckCSP、Concat、Upsample等层的参数和连接关系。

相关文章:

图解YOLO(You Only Look Once)目标检测(v1-v5)

1. YOLO系列整体介绍 YOLO属于深度学习经典检测方法中的单阶段(one - stage)类型,与两阶段(two - stage,如Faster - rcnn、Mask - Rcnn系列)方法相对。 不同模型性能 单阶段方法的最核心优势是速度非常快…...

U8G2在PC端模拟(C语言版本)

前提: 电脑已经准备好mingw编译器环境,已经加入环境变量. 测试方法: window下打开cmd,输入gcc -v 会有信息打印. u8g2 u8g2官方支持sdl2接口,已经做好了适配. 所以只需要在使用的开发环境配置好SDL2路径即可. sdl2和u8g2的适配…...

mac brew 无法找到php7.2 如何安装php7.2

mac brew 无法找到php7.2 如何安装php7.2 原因是升级过高版本的brew后已经不支持7.2了,但可以通过第三方工具来安装 brew tap shivammathur/php brew install shivammathur/php/php7.2标题安装完成后会提示以下信息: The php.ini and php-fpm.ini fil…...

苹果新规生效:即日起不再接受iOS 17 SDK编译的应用提交

今天(2025年4月25日),苹果公司正式实施了一项重要的开发者政策变更:所有提交至App Store Connect的应用必须使用iOS 18 SDK或更高版本编译,这意味着基于iOS 17.2及更早版本SDK构建的应用将无法再被提交审核。 这一错误…...

OpenCv高阶(九)——背景建模

目录 一、背景建模的核心目标与核心挑战 1. 核心目标 2. 核心挑战 ​二、背景建模模型 1、帧差法原理 2. 概率模型(Parametric Models) (1)高斯混合模型(Gaussian Mixture Model, GMM) (…...

Docker Macvlan网络配置实战:解决“network already exists“错误

一、Macvlan网络的应用场景 Macvlan是Docker支持的多种网络驱动之一,它允许容器直接绑定到宿主机的物理接口,为每个容器分配独立的MAC地址。这种网络模式特别适合需要容器直接暴露在物理网络中的场景,例如: • IoT设备直接通信 …...

Android——Activity与Fragment通信

Activity向Fragment传递数据 Activity.java Bundle bundle new Bundle();bundle.putString("message", "wonima");BlankFragment bf new BlankFragment();bf.setArguments(bundle);Fragment.java Overridepublic View onCreateView(LayoutInflater infl…...

38 python random

在实际中,我们常常会用到随机的概念,比如 模拟抽奖活动(如:月度优秀员工抽奖)生成测试数据(如:随机考勤时间、随机销售额)打乱数据顺序(如:随机分配任务到人)Python 的random模块就像你的 "随机事件生成器",帮你轻松创建各种随机数据 一、基础操作:从随…...

二叉树的遍历(广度优先搜索)

二叉树的第二种遍历方式,层序遍历,本质是运用队列对二叉树进行搜索。 层序遍历是指将二叉树的每一层按顺序遍历,通过队列实现就是先将根节点push入队,统计此时的队列中的元素数量size,将size元素全部pop出去&#xff0…...

设备接入与APP(应用程序)接入华为云iotDA平台的详细操作步骤及获取方式

壹、设备登录 IoTDA 的通关清单详细操作路径及获取方式 下面将之前整理的“设备登录 IoTDA 的通关清单”补充为带有详细操作路径的实用指南,逐项说明这些信息在哪里查、怎么查、怎么用,可以一步步操作落地,无需额外查文档。 ✅【完整版】设备…...

100个用户的聊天系统:轮询 vs WebSocket 综合对比

📊 对比表 对比维度普通轮询(Polling)WebSocket实时性⏳ 一般(延迟轮询间隔)例如 5 秒轮询,平均延迟 2.5 秒⚡️ 高(消息可毫秒级送达)数据库压力🚨 高(每次…...

第四章第四节 Spark-Streaming核心编程(三)

打开kafka集群 Spark Streaming支持多种数据源接入方式,有两种典型场景 基于Filebeat的目录监控:通过Filebeat实时监控指定目录(如日志目录),将新增文件内容采集并推送至Kafka消息队列。这种方式适用于需要持久化数据的…...

IDEA编写flinkSQL(快速体验版本,--无需配置环境)

相关资料 文档内容链接地址datagen生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/datagen/print 生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/print/ 准备工作 优点就是下载个ide…...

树莓派4B+Ubuntu24.04 电应普超声波传感器串口输出 保姆级教程

1. 背景 我的机器人上要用到超声波测距,因此就选了电应普的1拖4的超声波测距模块。用的是UART受控输出。这个模块的使用很简单,这里做一个笔记,也是对大家的一个参考。 2. 保姆级教程 刚刚说了,这东西很简单,就是一…...

Aloudata Agent :基于 NoETL 明细语义层的分析决策智能体

今天的分享包含四方面内容。首先,谈谈企业在数据分析智能体(Agent)探索时所面临的挑战;其次,介绍 Aloudata Agent 的关键技术创新点;第三,作为首次亮相,我们将通过产品演示揭晓产品 …...

C++学习-入门到精通-【1】C++编程入门,输入/输出和运算符

C学习-入门到精通-【1】C编程入门,输入/输出和运算符 C编程入门,输入/输出和运算符 C学习-入门到精通-【1】C编程入门,输入/输出和运算符第一个C程序:输出一行文本算术运算 第一个C程序:输出一行文本 // 文本打印程序…...

力扣-234.回文链表

题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 class Solution { public:bool isPalindrome(ListNode* head) {//快慢指针找到中间结点p1(偶数个结点…...

Electron从入门到入门

项目说明 项目地址 项目地址:https://gitee.com/ruirui-study/electron-demo 本项目为示例项目,代码注释非常清晰,给大家当做入门项目吧。 其实很多东西都可以在我这基础上添加或修改、市面上有些已开源的项目,但是太臃肿了&am…...

【华为HCIP | 华为数通工程师】821—多选解析—第十七页

多选835、IS-IS协议所使用的NSAP地址主要由哪几个部分构成? A、AREA ID B、SEL C、DSCp D、SYSTEM ID 解析:NSAP地址:网络服务访问点(Network Service Access Point)是 OSI 协议中用于定位资源的地址。NSAP 的地址结构如图所示,它由 IDP(Initial Domain …...

electron-builder 打包安装与启动手动安装,最终解决方案,之前的文章与其他的人都不用看了。

介绍 最近官网出了个electron-forge,但打包之后的软件包有问题会有个多余的遮罩物挡在软件的最前面,太恶心了。研究了很久硬是没法去掉。没办法只能重温electron-builder工具来进行打包。之前用过这个安装过一次,也是耗费了好几天。而且也做好了笔记,有资料的情况下,我万万…...

conda安装cuda+cudnn+pytorch【一条龙服务,以cuda12.1版本为例】

安装步骤在Windows和ubuntu系统中应该是一致的,建议浏览一遍文章再尝试配置环境 一、创建新的虚拟环境 这里以Anaconda为例,打开终端 创建新的虚拟环境,test_torch可替换为别的名字(自定义),3.10也可以改…...

ElementUi的tabs样式太难修改,自定义tabs标签页

ElementUi的Tabs组件在某些情况下难以是自己想要的样式,这时候自定义 Tabs 会是一个更好的选择,可以根据自己想要而设置样式,如图: 一、ElementUi的Tabs样式 链接:Tabs 标签页 | Element Plus 基础: 选…...

制作一款打飞机游戏23:编辑器ui

今天,我想重点介绍编辑器的实际用户界面(UI)。 关于Excel的讨论 很多人使用Excel来编辑他们程序的数据,因为大多数时候它都能很好地完成工作。Excel就像是一把瑞士军刀,可以修改各种数据。但是,在某些情况…...

课程9. 机器翻译,Seq2Seq与Attention

课程9. 机器翻译,Seq2Seq与Attention 机器翻译的任务. Seq2Seq 架构通过实战理解加载和预处理数据构建 Seq2Seq 模型编码器解码器Seq2Seq网络训练 Seq2Seq 架构问题注意力机制(Attention)注意选项Transformer 架构介绍——BERT 课程计划 机器…...

ASP.NET MVC​ 入门指南二

9. 表单处理与提交 9.1 创建表单视图 在视图文件夹下创建一个用于创建产品的视图&#xff0c;如 Create.cshtml&#xff1a; html model YourNamespace.Product{ViewBag.Title "创建产品"; }<h2>创建产品</h2>using (Html.BeginForm()) {Html.Anti…...

JavaWeb学习打卡-Day3-MyBatis相关

MyBatis 什么是MyBatis? MyBatis是一款优秀的持久层框架&#xff0c;用于简化JDBC的开发。MyBatis免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 JDBC JDBC&#xff08;Java DataBase Connectivity&#xff09;&#xff1a;使用Java语言操作关系型数据库的…...

浅谈AI Agent 演进之路

1、了解下 AI Agent 的定义 AI Agent&#xff08;人工智能代理&#xff09;简单来说是一种能够感知环境、进行决策和执行动作的智能实体。与传统的人工智能相比&#xff0c;AI Agent 具备独立思考和调用工具逐步完成目标的能力。 例如&#xff1a;当要求 AI Agent 帮助下单外…...

佳博票据和标签打印:Web网页端与打印机通信 | iOS

文章目录 引言I Web网页端与打印机通信webSDK(包含示例页)打印测试II iOS与佳博打印机通信引言 佳博工具下载ESC是票据打印指令,TSC是标签打印指令 工业打印机:佳博GP-H430F工业机标签条码打印机物流快递电子面单条码机碳带机 应用场景:打印商品价格标签、打印交易小票 I…...

视频噪点多,如何去除画面噪点?

你是否遇到过这样的困扰&#xff1f;辛辛苦苦拍摄的视频&#xff0c;导出后却满屏 “雪花”&#xff0c;夜景变 “噪点盛宴”&#xff0c;低光环境秒变 “马赛克现场”&#xff1f; 无论是日常拍摄的vlog、珍贵的家庭录像&#xff0c;还是专业制作的影视作品&#xff0c;噪点问…...

微信小程序直传阿里云 OSS 实践指南(V4 签名 · 秒传支持 · 高性能封装)

文章目录 前言一、为什么要使用直传 OSS&#xff1f;二、整体架构与实现思路三、阿里云 OSS 配置&#xff08;V4 签名&#xff09;1. 权限设置2. 后端生成签名参数&#xff08;返回给小程序&#xff09; 四、微信小程序端上传流程&#xff08;功能模块拆解与封装&#xff09;第…...

云原生--核心组件-容器篇-1-Docker和云原生关系(Docker是云原生的基石)

1、基本概念 &#xff08;1&#xff09;、云原生&#xff08;Cloud Native&#xff09; 是一种构建和运行应用程序的方法论&#xff0c;旨在充分利用云计算环境&#xff08;公有云、私有云、混合云&#xff09;的特性&#xff0c;通过容器化、微服务、服务网格、声明式API等技…...

GAEA情感坐标背后的技术原理

基于GAEA的去中心化物理基础设施网络&#xff08;DePIN&#xff09;&#xff0c;用户有机会在GAEA平台上获得宝贵的数据共享积分。为了提升这些洞察的丰富性&#xff0c;用户必须花费一定数量的积分&#xff0c;将过去的网络数据与当前的情感数据绑定&#xff0c;从而产生一种新…...

day01_编程语言介绍丶Java语言概述丶开发环境搭建丶常用DOS命令

编程语言介绍 ‌编程语言是一种用于人与计算机之间通信的语言&#xff0c;允许程序员编写代码&#xff0c;这些代码告诉计算机要执行哪些操作‌。编程语言可以被视为计算机可以理解并执行的指令集合&#xff0c;它是一种标准化的交流技巧&#xff0c;用于向计算机发出指令。‌…...

STM32系列官方标准固件库的完整下载流程

一、官网导航与版本确认 访问ST官网 打开浏览器进入 ST官网&#xff0c;点击左侧 “工具与软件” 标签&#xff0c;展开后选择 “嵌入式软件” 。若页面未直接显示&#xff0c;可在搜索框输入“STM32 Standard Peripheral Libraries”查找。 → “STM32标准外设库”&#xff0…...

Android 14 系统统一修改app启动时图标大小和圆角

Android 14 统一修改app启动时图标大小和圆角 修改如下&#xff1a; 目录&#xff1a;frameworks/base/core/java/android/window/SplashScreenView.java frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenContentDrawer.ja…...

MySQL 详解之函数:数据处理与计算的利器

在 MySQL 中,函数可以接受零个或多个输入参数,并返回一个值。这些函数可以在 SELECT 语句的字段列表、WHERE 子句、HAVING 子句、ORDER BY 子句以及 UPDATE 和 INSERT 语句中使用。合理利用函数,可以简化 SQL 语句,提高开发效率。 MySQL 提供了大量的内置函数 (Built-in F…...

Tailwind CSS 实战:基于 Kooboo 构建企业官网页面(一)

目录 一、技术选型&#xff1a;为什么选择Tailwind Kooboo&#xff1f; 二、CDN方案 vs 传统安装 三、CDN方式实战步骤 一、技术选型&#xff1a;为什么选择Tailwind Kooboo&#xff1f; 1.1 黄金组合优势 Tailwind CSS&#xff1a;原子化CSS框架&#xff0c;提供&#x…...

Java基础 — 条件结构与随机数

介绍 Java条件结构与随机数是程序逻辑控制的重要工具。条件结构通过if-else和switch实现分支判断&#xff1a;if(条件){代码}用于单分支&#xff0c;else if添加多条件判断&#xff0c;switch则基于固定值匹配不同case。随机数生成常用两种方式&#xff1a;Math.random()方法返…...

AI网络渗透kali应用(gptshell)

kali安装gptshell 一、shellGPT 工具介绍 ShellGPT‌是一款由AI大型语言模型&#xff08;LLM&#xff09;驱动的终端命令行工具。它能帮助用户直接在终端与AI交互&#xff0c;自动生成、解释、执行各类 Linux 命令&#xff0c;大大提升了运维和开发效率。ShellGPT 支持接入 O…...

如何实现Android屏幕和音频采集并启动RTSP服务?

技术背景 在移动直播和视频监控领域&#xff0c;实现高效的屏幕和音频采集并提供流媒体服务是关键技术之一。本文将详细介绍如何基于大牛直播SDK实现Android屏幕和麦克风/扬声器采集&#xff0c;并启动轻量级RTSP服务以对外提供拉流的RTSP URL。在Android平台上&#xff0c;轻…...

大模型提示词如何编写

一、提示词的核心三要素 明确目标&#xff08;What&#xff09; 告诉 AI「你要它做什么」&#xff0c;越具体越好。 ❌ 模糊&#xff1a;写一篇文章 ✅ 清晰&#xff1a;写一篇 800 字的高考作文&#xff0c;主题 “坚持与创新”&#xff0c;结构分引言、三个论点&#xff08;…...

Serverless 在云原生后端的实践与演化:从函数到平台的革新

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:从服务器到“无服务器”的后端演变 在传统后端开发中,我们需要为服务配置并维护服务器资源,无论是物理机、虚拟机还是容器化服务,都需要: 管理系统运行环境 监控负载与扩缩容 保证高可用与安…...

反爬虫机制中的验证码识别:类型、技术难点与应对策略

在互联网数据抓取领域&#xff0c;验证码识别是爬虫过程中的关键环节之一。下面对常见验证码类型、技术难点及应对策略进行详细解析&#xff0c;并提供多种场景下的代码实现示例。 一、验证码类型与技术难点 &#xff08;一&#xff09;图形验证码 1. 字符验证码 特征&#…...

.NET 10 中的新增功能

.NET 运行时 .NET 10 运行时引入了新功能和性能改进。 关键更新包括&#xff1a; 数组接口方法反虚拟化&#xff1a;JIT 现在可以取消虚拟化和内联数组接口方法&#xff0c;从而提高数组枚举的性能。数组枚举去抽象化&#xff1a;改进功能以通过枚举器减少数组迭代的抽象开销…...

通过音频的pcm数据格式利用canvas绘制音频波形图

上面是一个完整的音频的波形图&#xff0c;可以大概知道音频整个的简略信息 数据准备&#xff1a;需要有这个音频的pcm数据&#xff0c;也就是时域采样值&#xff0c;每个数字代表某一时刻音频波形的振幅。 <!DOCTYPE html> <html lang"en"> <head&…...

Dubbo负载均衡策略深度解析

互联网大厂Java求职者面试&#xff1a;Dubbo负载均衡策略详解 第一轮提问&#xff1a; 面试官&#xff1a;马架构&#xff0c;您好&#xff01;请问您了解Dubbo的负载均衡策略吗&#xff1f;Dubbo支持哪些负载均衡策略呢&#xff1f; 马架构&#xff1a;您好&#xff01;Dub…...

【高频考点精讲】async/await原理剖析:Generator和Promise的完美结合

async/await原理剖析&#xff1a;Generator和Promise的完美结合 今天咱们聊聊async/await&#xff0c;这玩意儿用起来是真香&#xff0c;但你知道它背后是怎么运作的吗&#xff1f;其实它就是Generator和Promise的"爱情结晶"。 1. 先搞懂Generator Generator&…...

量子加密通信技术及其应用:构建无条件安全的通信网络

一、引言 在数字化时代&#xff0c;信息安全成为全球关注的焦点。随着量子计算技术的快速发展&#xff0c;传统的加密算法面临着前所未有的挑战。量子加密通信技术应运而生&#xff0c;它利用量子力学的基本原理&#xff0c;如量子叠加态和量子纠缠&#xff0c;实现了无条件安全…...

软考中级-软件设计师 知识点速过1(手写笔记)

第一章&#xff1a;数值及其转换 没什么可说的&#xff0c;包括二进制转八进制和十六进制 第二章&#xff1a;计算机内部数据表示 真值和机器数&#xff1a; 原码&#xff08;后面都拿x 19举例) &#xff1a; 反码&#xff1a; 补码&#xff1a; 移码&#xff1a; 定点数&…...

【prompt是什么?有哪些技巧?】

Prompt&#xff08;提示词&#xff09;是什么&#xff1f; Prompt 是用户输入给AI模型&#xff08;如ChatGPT、GPT-4等&#xff09;的指令或问题&#xff0c;用于引导模型生成符合预期的回答。它的质量直接影响AI的输出效果。 Prompt 的核心技巧 1. 明确目标&#xff08;Clar…...