基于yolov8、yolov5的果蔬检测系统(含UI界面、数据集、训练好的模型、Python代码)

项目介绍
项目中所用到的算法模型和数据集等信息如下:
算法模型:
yolov8、yolov8 + SE注意力机制 或 yolov5、yolov5 + SE注意力机制 , 直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有 GPU,无法自行训练。
数据集:
网上下载的数据集,格式都已转好,可直接使用。
界面:
PyQt5
以上是本篇博客的简单说明,添加注意力机制可作为模型的创新点 。

摘要:果蔬识别在农业管理及智能农场中起着至关重要的作用,不仅能有效监测果蔬的生长状况,还为自动化农作物管理提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的果蔬识别模型,该模型使用了大量图片进行训练,能够准确识别多种果蔬类别。系统可在不同场景下进行果蔬识别,包括多种类果蔬、复杂背景、光线变化等。
此外,我们开发了一款带有UI界面的果蔬识别系统,支持实时检测不同种类的果蔬,并通过图形界面直观展示检测结果。系统基于Python与PyQt5开发,能够处理图片、视频及摄像头输入,检测结果可以保存以供后续分析。本文还提供了完整的Python代码及详细的使用指南,供有兴趣的读者参考,完整代码资源请见文章末尾。
前言
果蔬识别在农业智能化、提升生产效率以及保障食品安全中发挥着至关重要的作用。在现代农业管理和精细化种植过程中,快速且精准地识别不同种类的果蔬,能够有效提高管理效率,减少人力成本,尤其是在自动化农业监测系统中,准确识别果蔬种类是农业生产管理的基础。同时,果蔬识别系统还为农户提供了重要的实时数据反馈,帮助他们及时掌握果蔬的生长情况,推动智慧农业的科学化和高效化。
果蔬识别已在多个领域得到了广泛应用,如农业管理、食品质量检测、智能农场、智能仓储等场景中,都依赖于高效准确的果蔬识别技术。通过自动化的识别系统,农业生产企业可以在种植管理过程中实时识别果蔬的种类、品质和数量,并根据识别到的数据进行精细化管理,从而提高农业生产的效率和效益。
在现代农业管理环境中,果蔬识别系统还可以与其他智能化管理系统结合使用,如环境监测、智能灌溉和农产品追溯系统,形成一个完整的智慧农业管理体系,帮助农户更高效地掌握农业生产动态。在特殊的种植环境或复杂的农田场景中,系统能够快速识别不同类型的果蔬,为农户提供更为精准的生产管理数据。
本文通过收集与果蔬识别相关的数据和图像,利用YOLOv8、YOLOv5等目标检测技术,结合Python与PyQt5,开发出了一款界面简洁的果蔬识别系统。该系统支持图片、视频及摄像头检测,并能够保存识别结果,为用户提供直观便捷的果蔬识别体验。
目录
- 项目介绍
- 前言
- 功能展示:
- 🌟 一、数据集介绍
- 🌟 二、深度学习算法介绍
- 1. yolov8相关介绍
- 2. yolov5相关介绍
- 3. PyQt5介绍
- 🌟 三、模型训练步骤
- 🌟 四、模型评估步骤
- 🌟 五、训练结果
- 结束语 🌟 🌟🌟🌟
- 参考文献:
功能展示:
部分核心功能如下:
- 功能1: 支持单张图片识别
- 功能2: 支持遍历文件夹识别
- 功能3: 支持识别视频文件
- 功能4: 支持摄像头识别
- 功能5: 支持结果文件导出(xls格式)
- 功能6: 支持切换检测到的目标查看
更多的其他功能可以通过下方视频演示查看。
基于深度学习的果蔬识别系统(yolov8)
🌟 一、数据集介绍
数据集总共包含以下类别,且已经分好 train、val、test文件夹,也提供转好的yolo格式的标注文件,可以直接使用。
白菜
白萝卜
胡萝卜
番茄
大蒜
花生
黄瓜
茄子
辣椒
花菜
西蓝花
土豆
菠萝
火龙果
黑葡萄
梨子
柑橘
龙眼
草莓
芒果
苹果
绿葡萄
西瓜
樱桃
香蕉
柚子
数据样式如下:

🌟 二、深度学习算法介绍
本系统集成了多个不同的算法版本和界面版本,以下是对这些版本的概述:
算法版本方面,系统提供了多种深度学习算法和传统图像处理技术,用户可以选择最合适的算法进行任务处理。此外,各算法版本经过严格的测试和优化,以提供更高的准确率和效率。
在界面版本方面,系统设计了多种用户界面风格,可以选择简约、直观的界面,快速上手进行操作;也可以选择功能丰富的专业界面,满足复杂任务的需求。界面设计注重用户体验,确保用户在操作过程中能够方便地访问各种功能。
此外,系统还支持实时更新和扩展,可以根随时添加新的算法模块或界面选项。这种灵活性不仅提高了系统的适用性,也为未来的技术发展预留了空间。
总之,本系统通过多个算法和界面版本的组合,提供了丰富的选择和强大的功能。
下面是对包含到的算法的大概介绍:
1. yolov8相关介绍
YOLOv8 是当前深度学习领域内的一个SOTA(State-Of-The-Art)模型,凭借其前代版本的技术积累,再次引领了目标检测算法的发展方向。与其前辈不同,YOLOv8在模型结构和计算方式上都做了创新性调整,旨在实现更高效的计算和更灵活的应用场景适应能力。全新的骨干网络设计,结合Anchor-Free 检测头,让模型在面对不同输入尺寸、不同目标尺度时的表现更加出色,极大提升了性能和准确性。
此外,YOLOv8 的另一个重要进步在于它采用了全新的损失函数,使得训练过程更加稳定和高效。无论是在传统的CPU平台上运行,还是在更强大的GPU平台上进行加速,YOLOv8 都能够适应不同硬件资源的场景,确保在各种场合下保持高效的推理速度和精确的检测能力。
不过,值得注意的是,ultralytics 这一开发团队并没有直接将其开源库命名为 YOLOv8,而是采用了ultralytics的品牌名来命名整个项目。这并非单纯的命名策略,而是反映了其定位的重大变化。ultralytics 将这个库不仅视为一个算法框架,而非仅仅一个 YOLO 版本的延续。其设计目标之一是打造一个能够适应不同任务的算法平台,无论是目标检测、分类、分割,还是姿态估计,都能够在这个框架中被高效地支持。
这也意味着,未来的ultralytics 开源库将不仅限于 YOLO 系列,它的可扩展性为用户提供了更大的可能性。无论是使用非 YOLO 系列模型,还是面对不同应用领域的特定需求,ultralytics都提供了灵活且高效的解决方案。
总的来说,ultralytics 开源库 的优势可以归纳为以下几个要点:
-
融合当前最前沿的深度学习技术,让用户可以轻松实现复杂的计算任务。
-
具有极高的扩展性,未来将不仅支持 YOLO 系列,还会支持更多非 YOLO 的算法,适用于广泛的任务场景。
如此一来,ultralytics 不仅能够帮助开发者在算法研究和工程应用上取得突破,更能推动未来智能视觉领域的进一步发展。

网络结构如下:

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

本系统采用了基于深度学习的目标检测算法YOLOv5,该算法是YOLO系列算法的较新版本,相比于YOLOv3和YOLOv4,YOLOv5在检测精度和速度上都有很大的提升。YOLOv5算法的核心思想是将目标检测问题转化为一个回归问题。此外,YOLOv5还引入了一种称为SPP(Spatial Pyramid Pooling)的特征提取方法,这种方法可以在不增加计算量的情况下,有效地提取多尺度特征,提高检测性能。
在YOLOv5中,首先将输入图像通过骨干网络进行特征提取,得到一系列特征图。然后,通过对这些特征图进行处理,将其转化为一组检测框和相应的类别概率分数,即每个检测框所属的物体类别以及该物体的置信度。YOLOv5中的特征提取网络使用CSPNet(Cross Stage Partial Network)结构,它将输入特征图分为两部分,一部分通过一系列卷积层进行处理,另一部分直接进行下采样,最后将这两部分特征图进行融合。这种设计使得网络具有更强的非线性表达能力,可以更好地处理目标检测任务中的复杂背景和多样化物体。

在YOLOv5中,每个检测框通过其左上角坐标(x, y)、宽度(w)、高度(h)以及置信度(confidence)来表示。此外,YOLOv5对于每个检测框还会预测C个类别的概率得分,每个类别的概率得分总和为1。这意味着每个检测框最终可以被表示为一个维度为(C+5)的向量,包括类别概率、位置和置信度信息。
在训练过程中,YOLOv5使用了交叉熵损失函数来优化模型,该损失函数由定位损失、置信度损失和分类损失三个部分组成。YOLOv5还采用了Focal Loss和IoU Loss等优化方法,以缓解正负样本不平衡及目标尺寸变化等问题。这些优化不仅提高了模型的准确性,还改善了在不同尺寸目标下的表现。
从网络结构来看,YOLOv5分为四个主要部分:Input(输入)、Backbone(骨干网络)、Neck(颈部结构)和Prediction(预测)。其中,Input部分负责将数据引入网络,采用了Mosaic数据增强技术,能够通过随机裁剪和拼接输入图片,进一步提升网络的泛化能力。
Backbone部分是YOLOv5提取图像特征的关键模块,其特征提取能力直接影响了整个模型的性能表现。相比前代YOLOv4,YOLOv5在Backbone中引入了Focus结构。Focus结构通过切片操作将图片的宽度(W)和高度(H)信息转移到通道空间中,从而实现了2倍的下采样操作,同时保证了不丢失关键信息。
3. PyQt5介绍
PyQt5 是 Python 语言的一个图形用户界面(GUI)开发框架,基于 Qt库 开发而成。Qt 是一个广泛使用的跨平台 C++ 图形库,支持开发适用于 Windows、macOS、Linux 等多个操作系统的应用程序。PyQt5 提供了对 Qt 类库的完整封装,使开发者可以使用 Python 语言构建功能强大、界面美观的桌面应用。
PyQt5 包含了丰富的组件,如窗口、按钮、文本框、表格等,可以通过拖拽和代码的方式快速布局,极大地简化了 GUI 开发流程。同时,它还支持 事件处理 和 信号与槽机制,使得用户与界面之间的交互更加灵活。
通过 PyQt5,开发者能够轻松实现跨平台桌面应用,同时结合 Python 的易用性和 Qt 的强大功能,既适合初学者学习 GUI 编程,也适合资深开发者进行复杂项目的开发。
🌟 三、模型训练步骤
-
使用pycharm打开代码,找到
train.py打开,示例截图如下:

-
修改 model_yaml 的值,以符合实际情况。如果你打算训练 YOLOv8s 模型,请将其修改为 model_yaml = yaml_yolov8s。如果你想训练添加 SE注意力机制 的模型,请将其修改为 model_yaml = yaml_yolov8_SE。
-
修改 data_path 的数据集路径。这里默认指定的是 traindata.yaml 文件。如果你使用的是我提供的数据,可以不用修改。
-
修改 model.train() 中的参数,根据自己的需求和电脑硬件的情况进行调整。
# 文档中对参数有详细的说明 model.train(data=data_path, # 数据集imgsz=640, # 训练图片大小epochs=200, # 训练的轮次batch=2, # 训练batchworkers=0, # 加载数据线程数device='0', # 使用显卡optimizer='SGD', # 优化器project='runs/train', # 模型保存路径name=name, # 模型保存命名) -
修改
traindata.yaml文件, 打开traindata.yaml文件,如下所示:

在这里,只需修改 path 的值,其他的都不用改动(仔细看上面的黄色字体),我提供的数据集默认都是到yolo文件夹,设置到 yolo 这一级即可,修改完后,返回train.py中,执行train.py。 -
打开
train.py,右键执行。

-
出现如下类似的界面代表开始训练了

-
训练完后的模型保存在runs/train文件夹下

🌟 四、模型评估步骤
-
打开
val.py文件,如下图所示:

-
修改
model_pt的值,是自己想要评估的模型路径 -
修改
data_path,根据自己的实际情况修改,具体如何修改,查看上方模型训练中的修改步骤 -
修改
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', # 保存命名) -
修改完后,即可执行程序,出现如下截图,代表成功(下图是示例,具体以自己的实际项目为准。)

-
评估后的文件全部保存在在
runs/val/exp...文件夹下

🌟 五、训练结果
我们每次训练后,会在 run/train 文件夹下出现一系列的文件,如下图所示:

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

结束语 🌟 🌟🌟🌟
下面图片是对每个文件夹作用的介绍:

其实用yolo算法做系统非常的简单,但是博客文字有限,如果有介绍不明白的地方,也可以看一下下面的视频,也许会更容易理解。
演示与介绍视频: 【基于深度学习的果蔬检测识别系统(yolov8)】
演示与介绍视频: 【基于深度学习的果蔬识别系统(yolov5)】
由于博主的能力有限,文中提到的方法虽经过实验验证,但难免存在一些不足之处。为不断提升内容的质量与准确性,欢迎您指出任何错误和疏漏。这不仅将帮助我在下次更新时更加完善和严谨,也能让其他读者受益。您的反馈对我至关重要,能够推动我进一步完善相关内容。
此外,如果您有更优秀的实现方案或独到的见解,也非常欢迎分享。这将为大家提供更多思路与选择,促进我们共同的成长与进步。期待您的宝贵建议与经验交流,非常感谢您的支持!
参考文献:
-
Xu, L., Wang, Z., & Zhang, X. (2020). “A deep learning-based approach for automatic recognition of fruits and vegetables using convolutional neural networks.” Computers and Electronics in Agriculture, 178, 105729.
这篇文章提出了一种基于卷积神经网络(CNN)的深度学习方法,用于自动识别不同种类的果蔬。研究重点是利用深度学习技术提升识别准确率。
-
Wang, P., & He, J. (2021). “Fruit and vegetable recognition using YOLOv4 with transfer learning for smart agriculture.” IEEE Access, 9, 105678-105690.
该研究使用YOLOv4和迁移学习技术进行果蔬识别,讨论了模型在智能农业领域的应用。研究结果表明,结合迁移学习的YOLO模型在不同光照和背景条件下具有较高的识别精度。
-
Chen, Y., Lin, Y., & Zhang, Q. (2019). “A lightweight model for fruit and vegetable classification on mobile devices using deep learning.” Journal of Agricultural Informatics, 10(2), 34-45.
本文研究了一种轻量化的果蔬分类模型,特别适用于在移动设备上运行。研究内容包括如何在资源受限的环境下实现高效的果蔬识别。
相关文章:
基于yolov8、yolov5的果蔬检测系统(含UI界面、数据集、训练好的模型、Python代码)
项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型: yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 , 直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有 GPU࿰…...
出海快报 | “三消+短剧”手游横空出世,黄油相机“出圈”日本市场,从Q1看日本手游市场趋势和机会
编者按:TopOn出海快报栏目为互联网出海从业者梳理出海热点,供大家了解行业最新发展态势。 1.“三消短剧”横空出世,融合创新手游表现亮眼 随着竞争的加剧,新产品想要突出重围,只能在游戏中加入额外的元素。第一次打开…...
Linux高效查日志命令介绍
说明:之前介绍Linux补充命令时,有介绍使用tail、grep命令查日志; Linux命令补充 今天发现仅凭这两条命令不够,本文扩展介绍一下。 命令一:查看日志开头 head -n 行数 日志路径如下,可以查看程序启动是否…...
非线性关卡设计
【GDC】如何设计完全非线性的单人关卡_DOOM (bilibili.com) 本文章算是此视频的简单笔记,更详细还请看视频 设计完全非线性关卡强调自由移动和沙盒式玩法,鼓励玩家进行不可预测的移动和空间探索。讲解者分享了设计此类关卡的具体步骤,包括明…...
Qt-链接数据库可视化操作
1. 概述 Qt 能够支持对常见数据库的操作,例如: MySQL、Oracle、SqlServer 等等。 Qt SQL模块中的API分为三层:驱动层、SQL接口层、用户接口层。 驱动层为数据库和SQL接口层之间提供了底层的桥梁。 SQL接口层提供了对数据库的访问࿰…...
萤火php端: 查询数据的时候报错: “message“: “Undefined index: pay_status“,
代码:getGoodsFromHistory <?php // ---------------------------------------------------------------------- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ] // -----------------------------------------------------…...
程序人生-2024我的个人总结
可能现在写个人总结比较早,但是眼看着还有三个月,今年就过去了,所以决定提前写写,今年对于我来说是不平凡的一年,先是加薪,之后求婚,以为快要走上人生巅峰的时候,被裁员,…...
SQL自学:什么是联结,如何编写使用联结的SELECT语句
在 SQL(Structured Query Language,结构化查询语言)的世界里,联结(JOIN)是一个强大且至关重要的概念。它允许我们从多个表中检索数据,从而实现更复杂的查询和数据分析。本文将深入探讨联结的概念…...
【C++】函数重载+引用
大家好,我是苏貝,本篇博客带大家了解C的函数重载和引用,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 预处理、编译、汇编、链接二. 函数重载1 概念2 C支持函数重载的原理—名字修饰…...
华为S5735交换机console密码重置和恢复出厂设置
比较简单,简单说就是进入bootload清除密码,然后进入default mode下重置密码。 1.开机按CtrlB,进入启动加载菜单(BootLoad menu) 拨电源重启交换机,大约开机10多秒的时候会出现提示按CtrlB可以进入BootLoa…...
Spring Security无脑使用
步骤1:添加Spring Security依赖 在你的Spring Boot项目的pom.xml文件中,添加Spring Security的依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</art…...
学习 PostgreSQL + Spring Boot 3 +mybatisplus整合过程中的报错记录
今天计划学习 PostgreSQL,并顺便尝试使用 Spring Boot 3.x 框架,打算整合 Spring Boot 3、PostgreSQL 和 MyBatis-Plus。整合后一直出现以下报错: 去AI上面搜了讲的是sqlSessionFactory 或 sqlSessionTemplate 没有正确配置 初始分析&#…...
立仪光谱共焦传感器在玻璃测量技术上的突破
近年来,随着科技的不断发展,光谱共焦传感器逐渐成为了工业检测领域的重要工具。尤其是在玻璃这种透明材质的厚度测量中,光谱共焦传感器展现出了其独特的优势。立仪科技小编将围绕光谱共焦传感器在玻璃行业中的应用,从问题、分析到…...
Llama系列上新多模态!3.2版本开源超闭源,还和Arm联手搞了手机优化版,Meta首款多模态Llama 3.2开源!1B羊驼宝宝,跑在手机上了
Llama系列上新多模态!3.2版本开源超闭源,还和Arm联手搞了手机优化版,Meta首款多模态Llama 3.2开源!1B羊驼宝宝,跑在手机上了! 在多模态领域,开源模型也超闭源了! 就在刚刚结束的Met…...
系统缺失mfc140.dll的修复方法,有效修复错误mfc140.dll详细步骤
mfc140.dll丢失原因分析 1 系统文件损坏或病毒感染 系统文件损坏或被病毒感染是导致mfc140.dll丢失的常见原因之一。根据用户反馈和安全研究报告,大约有30%的mfc140.dll丢失案例与系统文件损坏或病毒感染有关。病毒、木马或其他恶意软件可能会破坏或删除系统中的m…...
移动app的UI和接口自动化测试怎么进行?
标题:从0到1:移动App的UI和接口自动化测试 导语:移动App的快速发展使得UI和接口自动化测试成为了确保应用质量的重要环节。本文将从零开始介绍移动App的UI和接口自动化测试的基本概念以及如何进行测试。 第一部分:了解移动App自动…...
Unity实现自定义图集(二)
以下内容是根据Unity 2020.1.0f1版本进行编写的 实现一个自定义图集,该怎么入手呢。首先简单思考一下unity是怎么实现图集的。 因为unity的ui部分是开源的,所以我们可以看到UGUI的源代码,另外,Unity的内置Shader也是开源的,可以直接在官网下载(在下载的网页选择Built…...
智能码二维码zhinengma.cn的动态数据更新是如何实现的?
智能码二维码的动态数据更新功能是通过其背后的技术原理实现的,主要依赖于服务器和二维码的链接结构。以下是具体介绍: 动态数据更新的实现原理 链接嵌入:动态二维码中嵌入了一个链接,该链接指向服务器上的数据源。数据请求与更…...
uniapp view怎么按长度排列一行最多四个元素,并且换行后,每一行之间都有间隔
推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...
Android列表组件api
目录 1.ListView控件 1)android:divider 2)android:dividerHeight 3)android:entries 4)android:footerDividersEnabled 5)android:headerDividersEnabled 6)android:listSelector 7)android:sc…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
