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

【计算机视觉】YOLO语义分割

一、语义分割简介

1. 定义

语义分割(Semantic Segmentation)是计算机视觉中的一项任务,其目标是对图像中的每一个像素赋予一个类别标签。与目标检测只给出目标的边界框不同,语义分割能够在像素级别上区分不同类别,从而实现对图像内容更精细的理解。

2. 原理

  • 像素级分类: 网络将输入图像逐像素进行分类,每个像素根据其所在区域被赋予一个类别标签。
  • 深度卷积神经网络: 常用网络结构包括全卷积网络(FCN)、U-Net、DeepLab等,这些结构通常由一个特征提取的backbone(例如ResNet、EfficientNet)和一个上采样(或解码)部分构成,用以恢复空间分辨率。
  • 损失函数: 常用交叉熵损失、Dice Loss等来平衡各类样本(尤其当类别分布不均衡时)。

3. 作用与应用

  • 自动驾驶: 对道路、行人、车辆等目标进行像素级分割,辅助场景理解。
  • 医疗影像: 分割器官、病灶区域,辅助临床诊断。
  • 遥感图像: 提取地物信息,如建筑、道路、水域等。
  • 场景解析: 用于机器人导航、视频监控等需要环境理解的场景。

二、基于YOLO进行语义分割训练

虽然原始的YOLO系列模型主要用于目标检测,但最新版本(例如YOLOv8)已经扩展了分割能力,实现了检测与分割任务的联合训练。下面介绍具体流程。

1. 数据集标注

  • 标注方式:

    • 对于语义分割,需要为每个图像提供与之对应的分割掩码(mask),每个像素的值表示其所属类别。
    • 常见的标注格式有VOC格式(以PNG图片保存mask)或COCO格式(包含多边形或RLE编码)。
    • 如果是基于YOLOv8的分割任务,则一般需要两个文件:图像文件以及对应的mask文件,mask中的不同灰度值代表不同类别。
  • 注意事项:

    • 标注时要确保边界清晰,避免模糊区域。
    • 类别不平衡问题需提前处理,如进行数据增强或采样调整。
  • 标注信息

    class_id x1 y1 x2 y2 ... xn yn
    

    各位置的含义说明如下:

    • 第一个数(class_id):
      表示该目标的类别编号(从 0 开始),用于区分不同的语义类别。
    • 后续的数值(x1, y1, x2, y2, …, xn, yn):
      这些数字成对出现,每一对代表多边形边界上一个顶点的坐标。
      • x 坐标与 y 坐标:通常是归一化后的值(相对于图像宽度和高度),数值范围通常在 0 到 1 之间。
      • 顶点顺序:须按照目标边缘的顺序排列(顺时针或逆时针均可,但应保持一致),以确保能够正确构成目标的闭合区域。

2. 训练方式与代码示例

YOLOv8的分割模型在训练时通常采用端到端方式,同时学习检测和分割任务。下面提供一个伪代码/代码示例,展示如何进行训练:

# data.yaml —— YOLOv8 语义分割任务数据集配置文件# 数据集根目录,可以是绝对路径或相对于当前工作目录的相对路径
path: ../datasets/pothole_seg# 训练、验证和测试图像的路径(相对于 path)
train: images/train   # 存放训练图像的文件夹
val: images/val       # 存放验证图像的文件夹
test: images/test     # 测试图像(可选,训练时可以不配置)# 类别数量
nc: 1# 类别名称列表,顺序要与标注数据中每行第一个数字(类别索引)保持一致
names: ['pothole']

在上述代码中,YOLOv8的训练脚本会自动加载数据、应用数据增强、计算目标检测与分割的联合损失,最终输出训练好的模型。

3. 模型评估

在训练过程中,YOLOv8 会实时输出多个指标来帮助您评估模型的性能,主要包括:

  • 训练损失:记录总损失以及各个组成部分,如目标框(box)损失、目标置信度(obj)损失、分类(cls)损失以及分割任务中特有的掩码损失(mask loss 或 segmentation loss)。
  • 验证指标:在验证阶段,会自动计算并输出常见指标,如精度(Precision,P)、召回率(Recall,R)、以及平均精度均值(mAP),通常包括 mAP@0.5(即 IoU 阈值为 0.5 时的 mAP)和 mAP@0.5:0.95(不同 IoU 阈值下的综合 mAP)。
  • 速度指标:训练日志中还会显示每个 epoch 的时间消耗、每张图像的处理速度等,这有助于评估训练效率。

4. 模型使用

from ultralytics import YOLO# 加载训练好的语义分割模型权重
model = YOLO("runs/segment/train/weights/best.pt")# 对单张图像进行推理
results = model.predict(source="path/to/image.jpg", imgsz=640)# 查看并保存推理结果(通常在runs/segment/predict目录中保存预测图片和对应的txt文件)
results.show()    # 弹窗显示预测结果
results.save()    # 将预测结果保存到磁盘
  • 分割掩码:每个检测到的对象会输出一个精确的分割掩码,可用于后续的目标区域分析。
  • 置信度:显示每个预测的置信度分数,帮助您判断模型输出的可靠性。
  • 后处理:根据需要,您可以对输出的结果进行进一步的后处理,例如与原图叠加显示、导出为JSON格式等。

三、语义分割训练技巧与注意点

数据与标注

  • 标注质量:语义分割要求精细的多边形标注,每个目标区域的顶点必须准确无误。确保标注数据的一致性和准确性,否则容易影响模型分割效果。
  • 数据预处理:图像和标注文件需要归一化处理,保证坐标值在 [0, 1] 范围内。同时建议对数据进行合理划分(训练/验证/测试),保证数据分布均衡。

数据增强

  • 多样化增强:使用随机翻转、旋转、缩放、透视变换以及马赛克(Mosaic)等数据增强策略,可以显著提升模型对各种场景的泛化能力。
  • 注意增强策略与任务匹配:对于语义分割任务,增强方法需要同时作用于图像和对应的掩码。确保增强过程中保持目标区域的连贯性。

模型与超参数设置

  • 预训练权重:使用预训练模型(如 yolov8n-seg.pt)作为初始化,可以加速收敛并提高精度,尤其在数据量较小时效果更明显。
  • 训练损失监控:关注总损失及各部分损失(如 box、obj、cls、mask 损失),根据损失变化及时调整学习率和其他超参。
  • 超参数调节:调节 batch size、学习率(lr0 与 lrf)、动量、权重衰减等,特别注意 mask_ratio 和 overlap_mask 参数,这两个参数对语义分割模型中掩码预测的效果有较大影响。
  • 多尺度训练:可尝试使用多尺度训练以适应不同尺寸目标,提高模型的鲁棒性。

训练过程监控与调试

  • 实时监控:利用 TensorBoard 或 Ultralytics 提供的日志工具实时查看训练过程中的损失曲线、验证指标(如 mAP@0.5 和 mAP@0.5:0.95)、精度和召回率等。
  • 早停机制:使用早停(early stopping)策略,在验证指标长时间不提升时停止训练,避免过拟合。
  • 硬件与内存:根据 GPU 内存适当设置 batch size,同时注意使用 AMP(自动混合精度)训练,既能提高训练速度也能降低内存占用。

后处理与结果可视化

  • 分割掩码处理:训练完成后,通过可视化工具检查预测的分割掩码效果,验证模型是否能准确还原目标区域。
  • 定制后处理:根据任务需求可以对分割结果进行后处理,例如平滑边界、提取 ROI 区域等。

在这里插入图片描述

相关文章:

【计算机视觉】YOLO语义分割

一、语义分割简介 1. 定义 语义分割(Semantic Segmentation)是计算机视觉中的一项任务,其目标是对图像中的每一个像素赋予一个类别标签。与目标检测只给出目标的边界框不同,语义分割能够在像素级别上区分不同类别,从…...

【C++游戏引擎开发】《线性代数》(3):矩阵乘法的SIMD优化与转置加速

一、矩阵乘法数学原理与性能瓶颈 1.1 数学原理 矩阵乘法定义为:给定两个矩阵 A ( m n ) \mathrm{A}(mn) A(mn)和 B ( n p ) \mathrm{B}(np) B(np),它们的乘积 C = A B \mathrm{C}=AB C=AB 是一个 m p \mathrm{m}p mp 的矩阵,其中: C i , j = ∑ k = 1…...

聚焦交易能力提升!EagleTrader 模拟交易系统打造交易成长新路径

在全球市场波动加剧的背景下,交易者面临的挑战已不仅限于技术分析层面。许多交易者在实盘操作中常因情绪干扰导致决策变形,如何构建科学的交易心理与风险控制体系成为行业关注焦点。 国内自营交易考试EagleTrader运用自己研发的模拟交易系统&#xff0c…...

文件分片上传

1前端 <inputtype"file"accept".mp4"ref"videoInput"change"handleVideoChange"style"display: none;">2生成hash // 根据整个文件的文件名和大小组合的字符串生成hash值&#xff0c;大概率确定文件的唯一性fhash(f…...

C#Lambda表达式与委托关系

1. 核心关系图示 A[委托] --> B[提供方法容器] B --> C[Lambda表达式] C --> D[委托实例的语法糖] A --> E[类型安全约束] C --> F[编译器自动生成委托实例] 2. 本质联系 2.1 类型关系 ‌Lambda表达式‌是编译器生成的‌委托实例‌表达式自动匹配符合签名的…...

机器翻译和文本生成评估指标:BLEU 计算公式

&#x1f4cc; BLEU 计算公式 BLEU 主要由**n-gram精确匹配率&#xff08;Precision&#xff09;和长度惩罚&#xff08;Brevity Penalty, BP&#xff09;**组成。 1️⃣ n-gram 精确匹配率 计算不同长度的 n-gram&#xff08;1-gram, 2-gram, ..., n-gram&#xff09;在生成…...

24 python 类

在办公室里&#xff0c;类就像一个部门&#xff08;如销售部、财务部&#xff09;&#xff0c;定义了该部门员工的共同属性&#xff08;姓名、职位&#xff09;和行为&#xff08;处理客户、提交报表&#xff09;。 一、面向对象技术简介 作为一个要入门码农的牛马&#xff0…...

pycharm与python版本

python 3.6-3.9 pycharm 2021版本搭配最好 python 3.8 pycharm 2019版本搭配最好 pycharm各版本下载...

23种设计模式-结构型模式-外观

文章目录 简介问题解决方案示例代码总结 简介 也称&#xff1a;门面模式、Facade。外观是一种结构型设计模式&#xff0c;能为程序库、框架或其他复杂类提供一个简单的接口。 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。正常情况下&#xff0c;你需要负责…...

open3d教程 (三)点云的显示

官方文档位置&#xff1a; Visualization - Open3D 0.19.0 documentationhttps://www.open3d.org/docs/release/tutorial/visualization/visualization.html核心方法&#xff1a; o3d.visualization.draw_geometries([几何对象列表]) import open3d as o3dprint("Load …...

node.js、npm相关知识

Node.js 是一个基于 Chrome V8 JavaScript 引擎 构建的开源、跨平台的 JavaScript 运行时环境&#xff0c;主要用于服务器端编程。它允许开发者使用 JavaScript 编写高性能的后端服务&#xff0c;突破了 JavaScript 仅在浏览器中运行的限制。 npm&#xff08;Node Package Man…...

大象如何学会太空漫步?美的:科技领先、To B和全球化

中国企业正处在转型的十字路口。一边是全新的技术、全新的市场机遇&#xff1b;一边是转型要面临的沉重负累和巨大投入&#xff0c;无数中国制造、中国品牌仍在寻路&#xff0c;而有的人已经走至半途。 近日&#xff0c;美的集团交出了一份十分亮眼的2024年财报。数据显示&…...

Go红队开发— 收官工具

文章目录 免责声明个人武器开发美观输出Whois查询反查ip目录扫描子域名爆破被动扫描主动扫描(字典爆破)CDN检测 免责声明 &#x1f4a1; 本博客绝不涉及任何非法用途。 &#x1f4a1; 使用者风险自担&#xff0c;违规后果自负。 &#x1f4a1; 守法为先&#xff0c;技术向善。 …...

Android 应用程序包的 adb 命令

查看所有已安装应用的包名 命令&#xff1a;adb shell pm list packages说明&#xff1a;该命令会列出设备上所有已安装应用的包名。可以通过管道符|结合grep命令来过滤特定的包名&#xff0c;例如adb shell pm list packages | grep com.pm&#xff0c;这将只显示包名中包含co…...

北京南文观点:后糖酒会营销,以战略传播重构品牌信心坐标

第112届全国糖酒会落下帷幕&#xff0c;参展品牌面临一个关键命题。如何在流量洪流中沉淀品牌价值&#xff1f;北京南文&#xff08;全称&#xff1a;南文乐园科技文化&#xff08;北京&#xff09;有限公司&#xff09;认为&#xff0c;糖酒会的结束恰是算法时代品牌认知战的真…...

Qt - findChild

findChild 1. 函数原型2. 功能描述3. 使用场景4. 示例代码5. 注意事项6. 总结 在 Qt 中&#xff0c;每个 QObject 都可以拥有子对象&#xff0c;而 QObject 提供的模板函数 findChild 就是用来在对象树中查找满足特定条件的子对象的工具。下面我们详细介绍一下它的使用和注意事…...

2025年3月个人工作生活总结

本文为 2025年3月工作生活总结。 研发编码 一个curl下载失败问题的记录 问题&#xff1a; 某程序&#xff0c;指定IP和账户密码配置&#xff0c;再使用curl库连接sftp服务器&#xff0c;下载文件。在CentOS系统正常&#xff0c;但在某国产操作系统中失败&#xff0c;需要用命…...

Spring Boot 七种事务传播行为只有 REQUIRES_NEW 和 NESTED 支持部分回滚的分析

Spring Boot 七种事务传播行为支持部分回滚的分析 支持部分回滚的传播行为 REQUIRES_NEW&#xff1a;始终开启新事务&#xff0c;独立于外部事务&#xff0c;失败时仅自身回滚。NESTED&#xff1a;在当前事务中创建保存点&#xff08;Savepoint&#xff09;&#xff0c;可局部…...

NVIDIA工业设施数字孪生中的机器人模拟

工业设施数字孪生中的机器人模拟 文章目录 工业设施数字孪生中的机器人模拟数字孪生技术的价值NVIDIA Omniverse平台工业机器人仿真的核心组件示例一&#xff1a;使用Isaac Sim创建基本机器人场景示例二&#xff1a;机器人运动规划和轨迹执行示例三&#xff1a;传感器集成与感知…...

docker安装jenkins

docker安装jenkins 1.安装javaJDK 服务器安装javaJDK ,因为我的服务器是直接集成了宝塔面板&#xff0c;我就直接从宝塔面板去安装JDK 最好安装17的JDK&#xff0c;因为后面会安装jenkins&#xff0c;需要17的版本 1.2查看安装是否完成 java --version 安装成功如下&#x…...

量子计算与人工智能融合的未来趋势

最近研学过程中发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。 在当今科技飞速发展…...

人工智能在生物医药-新版ChatGPT-4o辅助一键生成机制图

新版ChatGPT-4o辅助一键生成机制图 作为一位生物医学教授专家&#xff0c;我将基于PubMed最新研究和科研大数据信息&#xff0c;遵循您的要求&#xff0c;一步一步进行思考和预测。 核心问题&#xff1a;乳酸化修饰促进肾透明细胞癌&#xff08;ccRCC&#xff09;恶性进展的机…...

支持 MCP 协议的开源 AI Agent 项目

关键要点 研究表明&#xff0c;目前有多个开源 AI Agent 项目支持 MCP 协议&#xff0c;包括 ChatMCP、HyperChat、5ire 和 Cherry Studio 等。这些项目主要用于聊天或桌面助手&#xff0c;允许通过 MCP 协议连接外部数据和工具。MCP 协议是 2024 年 11 月由 Anthropic 开源的…...

JavaRedis和数据库相关面试题

JavaRedis面试题 1. Redis是什么以及Redis为什么快&#xff1f; ​ Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存键值数据库&#xff0c;支持多种数据结构&#xff08;如字符串、哈希、列表、集合等&#xff09;&#xff0c;并提供持久化、复制、…...

Android开发RxJava3延迟操作

Android开发RxJava3延迟操作 直接上代码&#xff1a; /*** param timeMillis 毫秒单位* desc : 延迟多少毫秒操作,* 注&#xff1a;它和Activity生命周期绑定&#xff0c;界面关闭了不会再执行delayTodoListener.delayTodo()* author : congge on 2021-03-25 15:31**/p…...

android 设置状态栏背景

一 让activity ui界面和手机状态栏一样的背景 要让 Activity 的 UI 界面和手机状态栏具有相同的背景颜色&#xff0c;并且能够随着深色模式和非深色模式的切换而改变颜色&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 让 Activity 和 状态栏背景颜色一致 使用 window.s…...

vue 常见优化手段

文章目录 vue常见的优化手段前言使用key(避免明明相同的dom,每次更新都要重新生成)使用冻结的对象(避免无意义的响应式数据)使用函数式组件(减少vue组件实例的生成)vue3vue2使用计算属性(减少数据计算的次数)非实时绑定的表单项(避免表单过多触发监听事件)保持对象的…...

vue生命周期、钩子以及跨域问题简介

Vue 的生命周期是指 Vue 实例从创建到销毁的整个过程。在这个过程中&#xff0c;Vue 提供了一系列的生命周期钩子&#xff08;Lifecycle Hooks&#xff09;&#xff0c;允许开发者在特定的时间点执行代码。以下是 Vue 的生命周期和钩子的简单说明&#xff1a; Vue 的生命周期阶…...

主相机绑定小地图

资源初始化&#xff1a;在类中通过 property 装饰器定义主相机、小地图相机、小地图精灵等资源属性&#xff0c;便于在编辑器中赋值。在 start 方法里&#xff0c;当确认这些资源存在后&#xff0c;创建渲染纹理并设置其大小&#xff0c;将渲染纹理与小地图相机关联&#xff0c…...

关于音频采样率,比特,时间轴的理解

是的&#xff0c;你的理解完全正确&#xff01;-ar、-af aresampleasync1000 和 -b:a 64k 分别用于控制音频的采样率、时间戳调整和比特率。它们各自有不同的作用&#xff0c;但共同确保音频的质量和同步性。下面我将详细解释每个参数的作用和它们之间的关系。 1. -ar 参数 作用…...

三、FFmpeg学习笔记

​ FFmpeg是一个开源、跨平台的多媒体处理框架&#xff0c;能够实现音视频的录制、转换、剪辑、编码、解码、流媒体传输、过滤与后期处理等几乎所有常见的多媒体操作。其强大之处在于几乎支持所有的音视频格式、编解码器和封装格式&#xff0c;是业界公认的“瑞士军刀”。 FFmp…...

什么是 Java 泛型

一、什么是 Java 泛型&#xff1f; 泛型&#xff08;Generics&#xff09; 是 Java 中一种强大的编程机制&#xff0c;允许在定义类、接口和方法时使用类型参数。通过泛型&#xff0c;可以将数据类型作为参数传递&#xff0c;从而实现代码的通用性和类型安全。 简单来说&…...

从 WPF 到 MAUI:跨平台 UI 开发的进化之路

一、引言 在软件开发领域&#xff0c;用户界面&#xff08;UI&#xff09;开发一直是至关重要的环节。随着技术的不断发展&#xff0c;开发者对于创建跨平台、高性能且美观的 UI 需求日益增长。Windows Presentation Foundation&#xff08;WPF&#xff09;和 .NET Multi - pl…...

Docker学习之dockerfile篇(day8)

文章目录 前言一、问题描述二、具体内容1. Docker 镜像原理2. Docker 镜像制作3. Dockerfile 概念Dockerfile 的基本结构&#xff1a; 4. Dockerfile 关键字5. Docker 实战案例5.1 基于 Nginx 构建 Web 服务器 6. 验证与总结6.1 验证 Dockerfile6.2 总结 前言 Docker 是一种轻…...

Kotlin 作用域函数:apply、let、run、with、also

在 Kotlin 开发中&#xff0c;作用域函数&#xff08;Scope Functions&#xff09;是一组能让代码更简洁、更函数式的高阶函数。它们通过不同的作用域规则和返回值设计&#xff0c;解决了对象配置、空安全处理、链式操作等常见场景问题。本文将结合核心特性、代码示例和对比表格…...

Java 线程池与 Kotlin 协程 高阶学习

以下是Java 线程池与 Kotlin 协程 高阶学习的对比指南&#xff0c;结合具体代码示例&#xff0c;展示两者在异步任务处理中的差异和 Kotlin 的简化优势&#xff1a; 分析&#xff1a; 首先&#xff0c;我们需要回忆Java中线程池的常见用法&#xff0c;比如通过ExecutorService创…...

C++学习笔记(三十三)——forward_list

一、std::forward_list (1) forward_list与其适用场景 std::forward_list 是 C的STL中的单向链表&#xff08;Singly Linked List&#xff09;&#xff0c;它相比 std::list&#xff08;双向链表&#xff09;更轻量&#xff0c;适用于仅需要单向遍历的场景。 主要特点&#…...

ROS订阅相机图像识别颜色并发布识别信息

一、前言 区别于之前的直接驱动相机&#xff0c;这里改为读取图像话题进行处理&#xff0c;原因是如果opencv驱动相机后只能单一使用&#xff0c;就限制了其他识别功能&#xff08;除非将原始图像发布出来&#xff09;&#xff0c;所以这里改成可以读取任意相机图像话题的方法…...

Redis-15.在Java中操作Redis-Spring Data Redis使用方式-操作集合类型的数据

一.操作集合类型的数据 package com.sky.test;import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.*;import j…...

第十一届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

1.字串排序 不会做&#xff0c;感觉挺难的&#xff0c;有兴趣的可以看下面题解 #include <iostream> #include <string.h> using namespace std; int V; int len;//符合交换次数V&#xff0c;字符串长度最小值 int now; //当前已经构造好的那一部分字符串逆序对个数…...

CentOS 安装 zip

安装软件 sudo yum install zip unzip # CentOS 7 sudo dnf install zip unzip # CentOS 8/9压缩文件 # 压缩单个文件 zip 压缩包名.zip 文件1# 压缩多个文件 zip 压缩包名.zip 文件1 文件2 文件3# 压缩目录&#xff08;包含子目录&#xff09; zip -r 压缩包名.zip 目…...

FastPillars:一种易于部署的基于支柱的 3D 探测器

FastPillars&#xff1a;一种易于部署的基于支柱的 3D 探测器Report issue for preceding element Sifan Zhou 1 , Zhi Tian 2 , Xiangxiang Chu 2 , Xinyu Zhang 2 , Bo Zhang 2 , Xiaobo Lu11{}^{1}start_FLOATSUPERSCRIPT 1 end_FLOATSUPERSCRIPT11footnotemark: 1 Chengji…...

LVS高可用负载均衡

一、项目图 二、主机规划 主机系统安装应用网络IPclientredhat 9.5无NAT192.168.72.115/24lvs-masterredhat 9.5ipvsadm&#xff0c;keepalivedNAT192.168.72.116/24 VIP 192.168.72.100/32lvs-backupredhat 9.5ipvsadm&#xff0c;keepalivedNAT192.168.72.117/24 VIP 192.168…...

Kafka延迟队列实现分级重试

技术方案 方案背景 Kafka队列消息消费处理过程中&#xff0c;发生处理异常&#xff0c;需要实现重试机制&#xff0c;并基于重试次数实现不同延迟时间重试方案。 方案介绍 通过实现Kafka延迟队列来实现消息重试机制。 目标&#xff1a; 支持所有业务场景的延迟重试支持多…...

谷粒微服务高级篇学习笔记整理---异步线程池

多线程回顾 多线程实现的4种方式 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法实现多线程。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("线程运行: " Thread.currentThread().getName());} }// 使用 pub…...

3.第二阶段x64游戏实战-分析人物移动实现人物加速

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;2.第二阶段x64游戏实战-x64dbg的使用 想找人物的速度&#xff0c;就需要使用Ch…...

MQTT 服务器(emqx)搭建及使用(一)

一. EMQX 服务器搭建 1.下载EMQX 下载链接&#xff1a;Windows | EMQX 文档 官方手册 2.下载内容解压至盘符根目录 3.进入bin文件夹&#xff0c;在地址栏输入cmd 4.依次输入下面命令安装服务 .\emqx.cmd install .\emqx.cmd console 5.设置自启动 创建批处理文件&#x…...

什么是SSE和websocket

以下是 SSE&#xff08;Server-Sent Events&#xff09; 和 WebSocket 在大模型&#xff08;如 ChatGPT&#xff09;流式输出中的实际例子对比&#xff0c;包含代码实现和场景分析&#xff1a; —### 1. SSE&#xff08;Server-Sent Events&#xff09;#### 场景 大模型生成文本…...

蓝桥杯专项复习——二分查找、二分答案

目录 二分查找、二分答案基础知识 二分查找模版 【模版题】数的范围 借教室 二分查找、二分答案基础知识 二分模版 二分查找 【模版题】数的范围 输入样例 6 3 1 2 2 3 3 4 3 4 5输出样例 3 4 5 5 -1 -1 思路&#xff1a; 对应两个模版&#xff0c;起始位置是对应第一…...

Android学习总结之Kotlin 协程

一、引言 在 Android 开发中&#xff0c;异步任务处理是绕不开的话题。传统的线程、Handler、AsyncTask 等方案要么过于繁琐&#xff0c;要么存在生命周期管理问题。Kotlin 协程的出现&#xff0c;以优雅的语法和强大的结构化并发能力&#xff0c;成为解决异步编程难题的理想方…...