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

毕业项目推荐:基于yolov8/yolov5/yolo11的果蔬检测识别系统(python+卷积神经网络)

文章目录

  • 概要
  • 一、整体资源介绍
    • 技术要点
    • 功能展示:
      • 功能1 支持单张图片识别
      • 功能2 支持遍历文件夹识别
      • 功能3 支持识别视频文件
      • 功能4 支持摄像头识别
      • 功能5 支持结果文件导出(xls格式)
      • 功能6 支持切换检测到的目标查看
  • 二、数据集
  • 三、算法介绍
    • 1. YOLOv8 概述
      • 简介
    • 2. YOLOv5 概述
      • 简介
    • 3. YOLO11 概述
      • YOLOv11:Ultralytics 最新目标检测模型
  • 🌟 四、模型训练步骤
  • 🌟 五、模型评估步骤
  • 🌟 六、训练结果
  • 🌟完整代码

往期经典回顾

项目项目
基于yolov8的车牌检测识别系统基于yolov8/yolov5的钢铁缺陷检测系统
基于yolov8的人脸表情检测识别系统基于深度学习的PCB板缺陷检测系统
基于yolov8/yolov5的茶叶等级检测系统基于yolov8/yolov5的农作物病虫害检测识别系统
基于yolov8/yolov5的交通标志检测识别系统基于yolov8/yolov5的课堂行为检测识别系统
基于yolov8/yolov5的海洋垃圾检测识别系统基于yolov8/yolov5的垃圾检测与分类系统
基于yolov8/yolov5的行人摔倒检测识别系统基于yolov8/yolov5的草莓病害检测识别系统
基于yolov8/yolov5/yolo11的动物检测识别系统

概要

本文将详细介绍如何以官方yolov8yolov5``yolov11为主干,实现对水果和蔬菜的检测识别,且利用PyQt5设计了两种简约的系统UI界面。在界面中,您可以选择自己的视频文件、图片文件进行检测。此外,您还可以更换自己训练的主干模型,进行自己数据的检测。

果蔬分拣与质量检测是保障食品供应链效率与安全的核心环节。传统人工分拣及规则化图像处理方法存在效率低、误检率高、难以应对多样性果蔬形态及复杂背景干扰等局限。基于深度学习的果蔬检测系统通过多尺度特征提取与自适应学习,可高效识别不同品类、成熟度及表面缺陷,显著提升检测精度与自动化水平。该系统为智能分拣装备、生鲜仓储管理及食品质量追溯体系提供关键技术支撑,对减少产后损耗、优化资源配置及推动农业供应链智能化转型具有重要实践价值。

我们的系统界面不仅外观优美,而且具备出色的检测精度和强大的功能。它支持多目标实时检测,并允许您自由选择感兴趣的检测目标。

yolov8/yolov5界面如下
在这里插入图片描述

yolo11界面如下 在这里插入图片描述

关键词:果蔬识别;目标检测;深度学习;特征融合;注意力机制;卷积神经网络

在这里插入图片描述

一、整体资源介绍

项目中所用到的算法模型和数据集等信息如下:

算法模型:
    yolov8yolov8 + SE注意力机制yolov5yolov5 + SE注意力机制yolo11yolo11 + SE注意力机制

数据集:
    网上下载的数据集,格式都已转好,可直接使用。

以上是本套代码算法的简单说明,添加注意力机制是本套系统的创新点

技术要点

  • OpenCV:主要用于实现各种图像处理和计算机视觉相关任务。
  • Python:采用这种编程语言,因其简洁易学且拥有大量丰富的资源和库支持。
  • 数据增强技术: 翻转、噪点、色域变换,mosaic等方式,提高模型的鲁棒性。

功能展示:

部分核心功能如下:

  • 功能1: 支持单张图片识别
  • 功能2: 支持遍历文件夹识别
  • 功能3: 支持识别视频文件
  • 功能4: 支持摄像头识别
  • 功能5: 支持结果文件导出(xls格式)
  • 功能6: 支持切换检测到的目标查看

功能1 支持单张图片识别

系统支持用户选择图片文件进行识别。通过点击图片选择按钮,用户可以选择需要检测的图片,并在界面上查看所有识别结果。该功能的界面展示如下图所示:
在这里插入图片描述

在这里插入图片描述

功能2 支持遍历文件夹识别

系统支持选择整个文件夹进行批量识别。用户选择文件夹后,系统会自动遍历其中的所有图片文件,并将识别结果实时更新显示在右下角的表格中。该功能的展示效果如下图所示:
在这里插入图片描述

在这里插入图片描述

功能3 支持识别视频文件

在许多情况下,我们需要识别视频中的目标。因此,系统设计了视频选择功能。用户点击视频按钮即可选择待检测的视频,系统将自动解析视频并逐帧识别多个目标,同时将识别结果记录在右下角的表格中。以下是该功能的展示效果:
在这里插入图片描述

在这里插入图片描述

功能4 支持摄像头识别

在许多场景下,我们需要通过摄像头实时识别目标。为此,系统提供了摄像头选择功能。用户点击摄像头按钮后,系统将自动调用摄像头并进行实时识别,识别结果会即时记录在右下角的表格中。
在这里插入图片描述

在这里插入图片描述

功能5 支持结果文件导出(xls格式)

本系统还添加了对识别结果的导出功能,方便后续查看,目前支持导出xls数据格式,功能展示如下:
在这里插入图片描述

在这里插入图片描述

功能6 支持切换检测到的目标查看

在这里插入图片描述

在这里插入图片描述

二、数据集

提供全面、结构化的数据集,它不仅包含了丰富的类别,而且已经细致地划分为训练集、验证集和测试集,以满足不同阶段的模型训练需求。而且数据集的格式,可直接支持YOLO训练,无需额外的格式转换工作。

1714张,蔬菜水果都有

部分数据样式如下:

三、算法介绍

1. YOLOv8 概述

简介

YOLOv8算法的核心特性和改进如下:

  • 全新SOTA模型
    YOLOv8 提供了全新的最先进(SOTA)的模型,包括P5 640P6 1280分辨率的目标检测网络,同时还推出了基于YOLACT的实例分割模型。与YOLOv5类似,它提供了N/S/M/L/X五种尺度的模型,以满足不同场景的需求。
  • Backbone
    骨干网络和Neck部分参考了YOLOv7 ELAN的设计思想。
    YOLOv5的C3结构替换为梯度流更丰富的C2f结构
    针对不同尺度的模型,调整了通道数,使其更适配各种任务需求。
    在这里插入图片描述
    网络结构如下:
    在这里插入图片描述

相比之前版本,YOLOv8对模型结构进行了精心微调,不再是“无脑”地将同一套参数应用于所有模型,从而大幅提升了模型性能。这种优化使得不同尺度的模型在面对多种场景时都能更好地适应。

然而,新引入的C2f模块虽然增强了梯度流,但其内部的Split等操作对特定硬件的部署可能不如之前的版本友好。在某些场景中,C2f模块的这些特性可能会影响模型的部署效率

2. YOLOv5 概述

简介

YOLOV5有YOLOv5n,YOLOv5s,YOLOv5m,YOLOV5l、YOLO5x五个版本。这个模型的结构基本一样,不同的是deth_multiole模型深度和width_multiole模型宽度这两个参数。就和我们买衣服的尺码大小排序一样,YOLOV5n网络是YOLOV5系列中深度最小,特征图的宽度最小的网络。其他的三种都是在此基础上不断加深,不断加宽。不过最常用的一般都是yolov5s模型。

在这里插入图片描述
本系统采用了基于深度学习的目标检测算法——YOLOv5。作为YOLO系列算法中的较新版本,YOLOv5在检测的精度和速度上相较于YOLOv3和YOLOv4都有显著提升。它的核心理念是将目标检测问题转化为回归问题,简化了检测过程并提高了性能。

YOLOv5引入了一种名为SPP (Spatial Pyramid Pooling)的特征提取方法。SPP能够在不增加计算量的情况下,提取多尺度特征,从而显著提升检测效果。

在检测流程中,YOLOv5首先通过骨干网络对输入图像进行特征提取,生成一系列特征图。然后,对这些特征图进行处理,生成检测框和对应的类别概率分数,即每个检测框内物体的类别和其置信度

YOLOv5的特征提取网络采用了CSPNet (Cross Stage Partial Network)结构。它将输入特征图分成两部分,一部分通过多层卷积处理,另一部分进行直接下采样,最后再将两部分特征图进行融合。这种设计增强了网络的非线性表达能力,使其更擅长处理复杂背景和多样化物体的检测任务。

在这里插入图片描述

3. YOLO11 概述

YOLOv11:Ultralytics 最新目标检测模型

YOLOv11 是 Ultralytics 公司在 2024 年推出的 YOLO 系列目标检测模型的最新版本。以下是对 YOLOv11 的具体介绍:

主要特点

  1. 增强的特征提取

    • 采用改进的骨干和颈部架构,如在主干网络中引入了 c2psa 组件,并将 c2f 升级为 c3k2
    • c3k 允许用户自定义卷积模块的尺寸,提升了灵活性。
    • c2psa 通过整合 psa(位置敏感注意力机制)来增强模型的特征提取效能。
    • 颈部网络采用了 pan 架构,并集成了 c3k2 单元,有助于从多个尺度整合特征,并优化特征传递的效率。
  2. 针对效率和速度优化

    • 精细的架构设计和优化的训练流程,在保持准确性和性能最佳平衡的同时,提供更快的处理速度。
    • 相比 YOLOv10,YOLOv11 的延迟降低了 25%-40%,能够达到每秒处理 60 帧 的速度,是目前最快的目标检测模型之一。
  3. 更少的参数,更高的准确度

    • YOLOv11mCOCO 数据集上实现了比 YOLOv8m 更高的 mAP,参数减少了 22%,提高了计算效率,同时不牺牲准确度。
  4. 跨环境的适应性

    • 可无缝部署在 边缘设备云平台 和配备 NVIDIA GPU 的系统上,确保最大的灵活性。
  5. 支持广泛的任务范围

    • 支持多种计算机视觉任务,包括 目标检测实例分割图像分类姿态估计定向目标检测(OBB)

架构改进

  1. 主干网络

    • 引入了 c2psa 组件,并将 c2f 升级为 c3k2
    • c3k 支持用户自定义卷积模块尺寸,增强灵活性。
    • c2psa 整合了 psa(位置敏感注意力机制),提升特征提取效能。
  2. 颈部网络

    • 采用 pan 架构,并集成了 c3k2 单元,帮助从多个尺度整合特征并优化特征传递效率。
  3. 头部网络

    • YOLOv11 的检测头设计与 YOLOv8 大致相似。
    • 在分类(cls)分支中,采用了 深度可分离卷积 来增强性能。

性能优势

  1. 精度提升

    • COCO 数据集上取得了显著的精度提升:
      • YOLOv11x 模型的 mAP 得分高达 54.7%
      • 最小的 YOLOv11n 模型也能达到 39.5%mAP 得分
    • 与前代模型相比,精度有明显进步。
  2. 速度更快

    • 能够满足实时目标检测需求

🌟 四、模型训练步骤

  1. 使用pycharm打开代码,找到train.py打开,示例截图如下:
    在这里插入图片描述

  2. 修改 model_yaml 的值,根据自己的实际情况修改,想要训练 yolov8s模型 就 修改为 model_yaml = yaml_yolov8s, 训练 添加SE注意力机制的模型就修改为 model_yaml = yaml_yolov8_SE

  3. 修改data_path 数据集路径,我这里默认指定的是traindata.yaml 文件,如果训练我提供的数据,可以不用改

  4. 修改 model.train()中的参数,按照自己的需求和电脑硬件的情况更改

    # 文档中对参数有详细的说明
    model.train(data=data_path,             # 数据集imgsz=640,                  # 训练图片大小epochs=200,                 # 训练的轮次batch=2,                    # 训练batchworkers=0,                  # 加载数据线程数device='0',                 # 使用显卡optimizer='SGD',            # 优化器project='runs/train',       # 模型保存路径name=name,                  # 模型保存命名)
    
  5. 修改traindata.yaml文件, 打开 traindata.yaml 文件,如下所示:
    在这里插入图片描述
    在这里,只需修改 path 的值,其他的都不用改动(仔细看上面的黄色字体),我提供的数据集默认都是到 yolo 文件夹,设置到 yolo 这一级即可,修改完后,返回 train.py 中,执行train.py

  6. 打开 train.py ,右键执行。
    在这里插入图片描述

  7. 出现如下类似的界面代表开始训练了
    在这里插入图片描述

  8. 训练完后的模型保存在runs/train文件夹下
    在这里插入图片描述


🌟 五、模型评估步骤

  1. 打开val.py文件,如下图所示:
    在这里插入图片描述

  2. 修改 model_pt 的值,是自己想要评估的模型路径

  3. 修改 data_path ,根据自己的实际情况修改,具体如何修改,查看上方模型训练中的修改步骤

  4. 修改 model.val()中的参数,按照自己的需求和电脑硬件的情况更改

    model.val(data=data_path,           # 数据集路径imgsz=300,                # 图片大小,要和训练时一样batch=4,                  # batchworkers=0,                # 加载数据线程数conf=0.001,               # 设置检测的最小置信度阈值。置信度低于此阈值的检测将被丢弃。iou=0.6,                  # 设置非最大抑制 (NMS) 的交叉重叠 (IoU) 阈值。有助于减少重复检测。device='0',               # 使用显卡project='runs/val',       # 保存路径name='exp',               # 保存命名)
    
  5. 修改完后,即可执行程序,出现如下截图,代表成功(下图是示例,具体以自己的实际项目为准。)
    在这里插入图片描述

  6. 评估后的文件全部保存在在 runs/val/exp... 文件夹下
    在这里插入图片描述


🌟 六、训练结果

我们每次训练后,会在 run/train 文件夹下出现一系列的文件,如下图所示:
在这里插入图片描述

   如果大家对于上面生成的这些内容(confusion_matrix.png、results.png等)不清楚是什么意思,可以在我的知识库里查看这些指标的具体含义,示例截图如下:

在这里插入图片描述

🌟完整代码

   如果您希望获取博文中提到的所有实现相关的完整资源文件(包括测试图片、视频、Python脚本、UI文件、训练数据集、训练代码、界面代码等),这些文件已被全部打包。以下是完整资源包的截图

在这里插入图片描述

您可以通过下方演示视频视频简介部分进行获取:

演示视频:
基于深度学习的果蔬检测识别系统(v8)
基于深度学习的果蔬检测识别系统(v5)
基于深度学习的果蔬检测识别系统(v11)

相关文章:

毕业项目推荐:基于yolov8/yolov5/yolo11的果蔬检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…...

Graspness Discovery in Clutters for Fast and Accurate Grasp Detection 解读

研究背景 研究问题 :这篇文章要解决的问题是如何在杂乱的环境中快速且准确地检测抓取姿态。传统的 6自由度抓取方法将场景中的所有点视为平等,并采用均匀采样来选择抓取候选点,但忽略了抓取位置的重要性,这极大地影响了抓取姿态检…...

Redission可重试、超时续约的实现原理(源码分析)

Redission遇到其他进程已经占用资源的时候会在指定时间waitTime内进行重试。实现过程如下: 执行获取锁的lua脚本时,会返回一个值, 如果获取锁成功,返回nil,也就是java里的null 如果获取锁失败,用语句“PT…...

vscode 配置 Copilot 提示GHE.com连接失败

步骤一:打开设置并进入 settings.json 点击菜单栏中的 “文件” -> “首选项” -> “设置”。 在搜索设置栏中输入 “Copilot: Advanced”。 点击搜索结果下方的 “在 settings.json 中编辑” 链接,这会打开 settings.json 文件。 步骤二&#…...

红队内网攻防渗透:内网渗透之内网对抗:实战项目VPC1打靶PHP-RCE三层代理路由防火墙上线密码喷射域控提权

红队内网攻防渗透 实战网络攻防靶场记录1.靶机配置详情讲解1.1 入口点靶机:Windows Server 20121.2 第一层靶机:Windows 7 + Windows 101.3 第二层靶机:Windows 2012 R21.4 第三层靶机:Windows 2016 web +Windows 2016 AD域1.5 攻击者系统 :Kali-linux2.靶场渗透完整流程2…...

四、综合案例(Unity2D)

一、2D渲染 1、2D相机基本设置 上面是透视,下面是正交 2、图片资源 在Unity中,常规图片导入之后,一般不在Unity中直接使用,而是转为精灵图Sprite 将图片更改为即可使用Unity内置的图片切割功能 无论精灵图片是单个的还是多个的…...

50周学习go语言:第1周 环境搭建

以下是为零基础学习者准备的详细第1周教程,包含环境搭建、工具配置和首个Go程序的完整操作指南: 一、Go语言环境安装(Windows/macOS/Linux通用) 1. 下载安装包 官网地址:https://go.dev/dl//根据系统选择对应版本&am…...

Docker Desktop 入门教学

引言 Docker Desktop 是 Docker 官方为开发者提供的桌面应用程序,支持在 Windows 和 macOS 上轻松构建、运行和共享容器化应用程序。它集成了 Docker 引擎、Docker CLI 客户端以及 Docker Compose 等工具,方便您在本地开发和测试。 一、快速安装 1. 系…...

BOOST电路设计

目录 1电路模型 2器件选型 2.1设计需求 2.2参数计算 2.2.1电感L计算 2.2.2电容计算 2.2.3电阻计算 3仿真测试 4参数测试 4.1负载调整率 4.2电容测试 4.3电感测试 5实际应用 1电路模型 Boost升压电路,可以工作在电流断续工作模式(DCM)和电流连续工作模式(CCM)。CCM工…...

Qt常用控件之标签QLabel

标签QLabel QLabel 标签用来显示文本和图片,在 Qt 中使用频率很高。 1. Label属性 属性说明textQLabel 中的文本。textFormat文本的格式。其中 Qt::PlainText 为纯文本;Qt::RichText 为富文本(支持 html 格式); Qt:…...

基于Spring Boot的公司资产网站设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

网络安全知识--网络、网络安全产品及密码产品概述

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 网络结构 网络设备:交换机、路由器、负载均衡 安全设备: 通信网络安全类:通信安全、网络监测与控制 区域边界安全类:隔离类…...

【mysql中mvcc的含义和作用及原理】

MySQL中的MVCC(多版本并发控制)是一种用于提高数据库并发性能的机制,通过维护数据的多个版本,实现读写操作的无锁并发。以下是其核心要点: 1. MVCC的含义 全称:Multi-Version Concurrency Control&#xf…...

【Android】Android 悬浮窗开发 ( 动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

文章目录 一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后返回处理 二、悬浮窗 前台服务和通知1、前台服务 启动 悬浮窗 的必要性① 保持悬浮窗存活② 悬浮窗的要求③ 悬浮窗版本兼容 2、其它类型服务简介① 前台服务…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Live View Kit (1)

1.问题描述: 客户端创建实况窗后,通过Push kit更新实况窗内容,这个过程是自动更新的还是客户端解析push消息数据后填充数据更新?客户端除了接入Push kit和创建实况窗还需要做什么工作? 解决方案: 通过Pu…...

基于Flask的第七次人口普查数据分析系统的设计与实现

【Flask】基于Flask的第七次人口普查数据分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 基于Flask的人口普查可视化分析系统 二、项目界面展示 登录/注册 首页/详情 …...

java实现多图合并加字和画框等

java实现多图合并加字和画框等 在wutool中,封装了图片处理工具类,基于java自带的BufferedImage类,实现多图合并和加字、图片画框等。 关于wutool wutool是一个java代码片段收集库,针对特定场景提供轻量解决方案,只要…...

腾讯SQL面试题解析:如何找出连续5天涨幅超过5%的股票

腾讯SQL面试题解析:如何找出连续5天涨幅超过5%的股票 作者:某七年数据开发工程师 | 2025年02月23日 关键词:SQL窗口函数、连续问题、股票分析、腾讯面试题 一、问题背景与难点拆解 在股票量化分析场景中,"连续N天满足条件"是高频面试题类型。本题要求在单表stoc…...

Elasticsearch 自动补全搜索 - autocomplete

作者:来自 Elastic Amit Khandelwal 探索处理自动完成的不同方法,从基础到高级,包括输入时搜索、查询时间、完成建议器和索引时间。 在本文中,我们将介绍如何避免严重的性能错误、Elasticsearch 默认解决方案为何不适用以及重要的…...

大屏自适应终极方案:基于比例缩放的完美适配实践(Vue3版)

需求背景 在数据可视化大屏开发中,我们常面临这样的挑战:如何让1920*1080的设计稿在不同分辨率设备上完美呈现?传统的响应式布局难以应对复杂的大屏元素排布,本文介绍一种基于CSS3变换的终极适配方案 实现思路 本方案的核心是动…...

云计算中的API网关是什么?为什么它很重要?

在云计算架构中,API网关(API Gateway)是一个重要的组件,主要用于管理、保护和优化不同服务之间的接口(API)通信。简单来说,API网关就像是一个中介,它充当客户端和后端服务之间的“桥…...

前端ES面试题及参考答案

目录 let/const 与 var 的区别?TDZ 是什么? 箭头函数与普通函数的区别?箭头函数能否作为构造函数? 模板字符串的嵌套表达式和标签模板用法? 解构赋值的应用场景及对象 / 数组解构差异? 函数参数默认值的生效条件及暂时性死区问题? 展开运算符(...)在数组 / 对象中…...

【架构思维基础:如何科学定义问题】

架构思维基础:如何科学定义问题 一、问题本质认知 1.1 问题矛盾 根据毛泽东《矛盾论》,问题本质是系统内部要素间既对立又统一的关系。例如: 电商系统矛盾演变: 90年代:商品供给不足 vs 消费需求增长00年代&#x…...

【网络安全】常见的web攻击

1、SQL注入攻击 定义: 攻击者在HTTP请求中注入恶意的SQL代码,当服务器利用参数构建SQL语句的时候,恶意的SQL代码被一起构建,并在数据库中执行。 示例: 用户登录: 输入用户名xx, 密码 or 1 …...

ECOLOGY流程表单字段由单行文本改成多行文本

用户需要把单行文本改成多行文本 1、数据库端处理 select lwnr from FORMTABLE_MAIN_237 where lwnr is not null FORMTABLE_MAIN_237 有记录。DESCRIBE OA.FORMTABLE_MAIN_237 LWNR VARCHAR2(999) 由999改成4000 ALTER TABLE OA.FORMTA…...

AI发展迅速,是否还有学习前端的必要性?

今天有个小伙伴跟我讨论:“现在 AI 发展迅速,是否还有学习 JS 或者 TS 及前端知识的必要?” 我非常肯定地说: 是的,学习 JavaScript/TypeScript 以及前端知识仍然非常必要,而且在可预见的未来,…...

视频的分片上传

分片上传需求分析: 项目中很多地方需要上传视频,如果视频很大,上传到服务器需要很多时间 ,这个时候体验就会很差。所以需要前端实现分片上传的功能。 要实现分片上传,需要对视频进行分割,分割成不同的大小…...

pyside6学习专栏(二):程序图像资源的加载方式

pyside6中的QLabel控件可以加载图像和gif动画,可以直接从外部文件加载,也可以从QRC类型的文件(实际是一脚本文件)经编绎生成对应的资源.PY模块文件(就是将qrc文本中指定的资源文件的16制内容写入.py文件)来使用,本文对两种方式作了一简单的示…...

QQ登录测试用例报告

QQ登录测试用例思维导图 一、安全性测试用例 1. 加密传输与存储验证 测试场景:输入账号密码并提交登录请求。预期结果:账号密码通过加密传输(如HTTPS)与存储(如哈希加盐),无明文暴露。 2. 二…...

56. 合并区间 (LeetCode 热题 100)

题目来源: 56. 合并区间 - 力扣(LeetCode) 题目内容: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组&am…...

冒泡排序(详解)c++

冒泡排序(Bubble Sort)也是⼀种简单的排序算法。它的⼯作原理是每次检查相邻两个元素,如果前⾯ 的元素与后⾯的元素满⾜给定的排序条件,就将相邻两个元素交换。当没有相邻的元素需要交换时, 排序就完成了。 由于在算法的执⾏过程中&#xff0…...

CSS背景属性

<!DOCTYPE html> <html lang"zh-cn"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>CSS背景属性</title><style>.c1{/* …...

10种方法教你又小又清晰地压缩视频

视频压缩是有可能会损失画质的&#xff0c;但也可以通过一些方法尽量减少画质损失。在有效压缩视频大小的同时&#xff0c;尽量控制视频压缩画质在人眼无法察觉的范围内。下面就从10个角度向大家介绍10个不同的视频压缩方法&#xff0c;并推荐相关的视频压缩软件&#xff0c;整…...

当使用vcpkg安装的qt5时,在VS调用出现libcrypto-*-x64.dll不是有效路径时

英文解决站点 applocal.ps1 fails in Visual Studio 2019 because of wildcard path in VcpkgAppLocalDLLs Issue #28614 microsoft/vcpkg 虽然这个bug不影响生成exe文件,第一次会弹出该错误,再次运行就正常,vcpkg会把对应的libcrypto-*-x64.dll版本复制到exe路径下..但是对…...

AI大模型学习(四): LangChain(三)

Langchain构建代理 语言模型本身无法执行动作,他们只能输出文本,代理是使用大型语言模型(LLM)作为推理引擎来确定要执行的操作以及这些操作的输入应该是什么,然后这些操作的结果可以反馈到代理中,代理将决定是否需要更多的操作,或者是否可以结束 例如:我们想要查询现在北京的…...

JavaScript函数-arguments的使用

在JavaScript编程语言中&#xff0c;函数是构建复杂逻辑和实现代码复用的关键组件。虽然现代JavaScript&#xff08;尤其是ES6及之后版本&#xff09;提供了更多灵活的方式来处理函数参数&#xff08;如剩余参数、默认参数等&#xff09;&#xff0c;但arguments对象仍然是一个…...

C# 从基础神经元到实现在0~9数字识别

训练图片:mnist160 测试结果:1000次训练学习率为0.1时,准确率在60%以上 学习的图片越多&#xff0c;训练的时候越长(比如把 epochs*10 10000或更高时)效果越好 using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Windo…...

【每日八股】计算机网络篇(一):概述

OSI 的 7 层网络模型&#xff1f; OSI&#xff08;Open Systems Interconnection&#xff0c;开放互联系统&#xff09;是由国际标准化组织&#xff08;ISO&#xff09;提出的一种网络通信模型。 自上而下&#xff0c;OSI 可以被分为七层&#xff0c;分别是&#xff1a;应用层…...

Jupyter里面的manim编程学习

1.Jupyterlab的使用 因为我之前一直都是使用的vscode进行manim编程的&#xff0c;但是今天看的这个教程使用的是Jupyter&#xff0c;我也很是好奇这个manim在Jupyter这样的交互式下面会生成怎么样的效果&#xff0c;所以今天尝试了jupyter&#xff0c;并且对于两个进行比较和说…...

Web刷题之PolarDN(简单)

1.swp 考点&#xff1a;敏感文件、preg_match()函数绕过 什么是swp文件&#xff1a; vim中的swp即swap文件&#xff0c;在编辑文件时产生&#xff0c;它是隐藏文件。这个文件是一个临时交换文件&#xff0c;用来备份缓冲区中的内容。如果原文件名是data&#xff0c;那么swp文件…...

JVM 深入理解与性能优化

JVM&#xff08;Java Virtual Machine&#xff0c;Java 虚拟机&#xff09;是 Java 代码运行的核心&#xff0c;它负责 内存管理、类加载、字节码执行、垃圾回收&#xff08;GC&#xff09;和 JIT 编译。理解 JVM 有助于优化 Java 应用的性能&#xff0c;提高调试和排错能力。 …...

【人工智能】蓝耘智算平台盛大发布DeepSeek满血版:开创AI推理体验新纪元

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 蓝耘智算平台 蓝耘智算平台核心技术与突破元生代推理引擎快速入门&#xff1a;三步调用大模型接口&#xff0c;OpenAI SDK无缝兼容实战用例文…...

minio作为K8S后端存储

docker部署minio mkdir -p /minio/datadocker run -d \-p 9000:9000 \-p 9001:9001 \--name minio \-v /minio/data:/data \-e "MINIO_ROOT_USERjbk" \-e "MINIO_ROOT_PASSWORDjbjbjb123" \quay.io/minio/minio server /data --console-address ":90…...

关于 BK3633 上电时受串口 UART2 影响而无法启动的问题说明

1. 问题描述 BK3633 SDK 版本&#xff1a;BK3633_DesignKit_V06_2310 使用 BK3633 UART2 与指纹模块进行通讯&#xff0c;为了降低功耗&#xff0c;通过 GPIO 控制了指纹模块的供电电源。但每次给整个系统板子上电时&#xff0c;BK3633 很大概率会实际而无法正常运行程序&…...

运维Ansible面试题及参考答案

目录 简述 Ansible 的工作原理,它是如何实现对远程主机管理的? Ansible 是基于什么语言开发的?这门语言的特性对 Ansible 的功能实现有哪些帮助? 解释 Agentless 在 Ansible 中的含义,与基于 Agent 的自动化工具相比,优势体现在哪? Ansible 中的 Inventory 文件是什…...

Spring Boot 日志管理(官网文档解读)

摘要 本篇文章详细介绍了SpringBoot 日志管理相关的内容&#xff0c;文章主要参考官网文章的描述内容&#xff0c;并在其基础上进行一定的总结和拓展&#xff0c;以方便学习Spring Boot 的小伙伴能快速掌握Spring Boot 日志管理相关的内容。 日志实现方式 Sping Boot 的日志管…...

Svelte 最新中文文档教程(17)—— 生命周期钩子

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte 以…...

Windows 上源码安装 FastGPT

FastGPT 是一个强大的 AI RAG 平台&#xff0c;值得我们去学习了解。与常见的 Python 体系不同&#xff0c;Fast GPT 采用 Node.js/Next.js 平台&#xff08;对于广大 JS 开发者或前端开发者比较亲切友好&#xff09;&#xff0c;安装或部署比较简单。虽然一般情况下推荐简单的…...

RT-Thread+STM32L475VET6——icm20608传感器

文章目录 前言一、板载资源二、具体步骤1.打开CubeMX进行配置1.1 使用外部高速时钟&#xff0c;并修改时钟树1.2 打开I2C3&#xff0c;参数默认即可(I2C根据自己需求调整&#xff09;1.3 打开串口1.4 生成工程 2. 添加icm20608软件包3. 使能传感器&#xff0c;打开动态链接库4.…...

超高清大图渲染性能优化实战:从页面卡死到流畅加载

目录 问题背景&#xff1a;1.为什么大图会导致页面卡死&#xff1f;一、DOM树构建&#xff08;HTML Parsing&#xff09;二、 资源加载&#xff1a;下载完整图片文件&#xff08;可能高达30MB&#xff09;三、解码处理&#xff08;Decoding & Rasterization&#xff09;、四…...