【YOLO 系列】基于YOLO的道路坑洞检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
前言
在传统的道路维护和管理中,道路坑洞的检测通常依赖人工巡查,这种方式不仅效率低下,容易出现漏检和误检的情况,而且在复杂的路况和恶劣的天气条件下,检测人员的安全也难以保障。而基于 YOLO 的道路坑洞检测系统,通过安装在车辆或道路监控设备上的摄像头,实时捕捉道路的图像信息,再利用先进的算法进行分析处理,能够快速、准确地识别出道路坑洞的位置和大小,从而实现自动化检测,大大节省了时间和人力成本。
基于此项目,设计了一个使用Pyqt5库来搭建页面展示系统。本系统支持的功能包括训练模型的导入、初始化;置信度与IOU阈值的调节、图像上传、检测、可视化结果展示、结果导出与结束检测;视频的上传、检测、可视化结果展示、结果导出与结束检测;摄像头的上传、检测、可视化结果展示与结束检测;已检测目标信息列表、位置信息;以及推理用时。本博文提供了完整的Python代码和使用教程,适合新入门的朋友参考,完整代码资源文件请转至文末的下载链接。
优势
-
高准确性:基于 YOLO 模型的道路坑洞检测系统经过针对坑洞特征的训练,提高了对坑洞的识别准确度,减少了误报和漏报。
-
实时性:系统能够快速处理图像数据,实时识别坑洞,为道路维护人员提供即时的检测结果,避免因延迟导致的安全隐患。
-
鲁棒性:即使在光照条件不理想、道路表面污渍或磨损严重的情况下,系统也能保持高识别率。
-
多目标识别:系统不仅能识别单一坑洞,还能同时识别多个坑洞,提供全面的检测能力。
-
易于集成:系统设计考虑了与现有道路监控设备和维护系统的兼容性,易于集成和部署。
应用前景
-
道路维护:系统可以作为道路维护的核心技术,实时监测道路状况,自动完成坑洞检测,提升道路维护的效率和安全性。
-
智能交通:集成于智能交通系统中,系统可以在车辆行驶过程中自动检测道路坑洞,提前预警,减少交通事故的发生。
-
市政管理:系统提供的数据可以用于市政管理部门实时监控道路状况,优化维修计划,提高城市管理水平。
-
自动驾驶:通过分析道路坑洞的位置和大小,系统可以为自动驾驶车辆提供实时的路况信息,提升自动驾驶的安全性和可靠性。
-
数据分析:系统可以集成到城市大数据平台中,通过分析道路坑洞数据,为城市规划和道路建设提供数据支持。
通过本项目,我们期望能够为道路维护和管理提供有力的技术支持,提升道路坑洞检测的效率和准确性,优化道路维护的效率和安全性,推动智能交通和城市管理的智能化升级。未来,我们将继续优化系统性能,扩展更多功能,为智慧交通的发展贡献力量。
一、软件核心功能介绍及效果演示
软件主要功能
-
支持
图片、图片批量、视频及摄像头
进行检测,同时摄像头可支持内置摄像头和外设摄像头; -
可对
检测结果进行单独分析
,并且显示单个检测物体的坐标、置信度等
; -
界面可实时显示
目标位置
、检测结果
、检测时间
、置信度
、检测结果回滚
等信息; -
支持
图片
、视频
及摄像头
的结果保存,将检测结果保持为excel文件;
视频演示
基于YOLO的道路坑洞检测识别系统
图片检测演示
-
点击
打开图片
按钮,选择需要检测的图片,或者点击打开文件夹
按钮,选择需要批量检测图片所在的文件夹,操作演示如下: -
点击表格中的指定行,界面会显示该行表格所写的信息内容。
视频检测演示
-
点击
视频按钮
图标,打开选择需要检测的视频,在点击开始运行
会自动显示检测结果。再次点击停止按钮
,会停止检测视频。 -
点击表格中的指定行,界面会显示该行表格所写的信息内容。
摄像头检测演示
-
在
选择相机源
中输入需要检测的摄像头(可以是电脑自带摄像头,也可以是外接摄像头,视频流等方式),然后点击摄像头图标
来固定选择的推理流方式,最后在点击开始运行
即可开始检测,当点击停止运行
时则关闭摄像头检测。 -
点击表格中的指定行,界面会显示该行表格所写的信息内容。
检测结果保存
点击导出数据
按钮后,会将当前选择的图片【含批量图片】、视频或者摄像头
的检测结果进行保存为excel文档,结果会存储在output
目录下。
二、环境搭建
创建专属环境
conda create -n yolo python==3.8
激活专属环境
conda activate yolo
安装torch-GPU库
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "torch-2.0.1+cu118-cp38-cp38-win_amd64.whl"
安装torchvision-GPU库
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "torchvision-0.15.2+cu118-cp38-cp38-win_amd64.whl"
安装ultralytics库
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
测试环境
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
此时就表明环境安装成功!!!
安装图形化界面库 pyqt5
pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
三、算法原理
YOLOv8是一种前沿的深度学习技术,它基于先前YOLO版本在目标检测任务上的成功,进一步提升了性能和灵活性,在精度和速度方面都具有尖端性能。在之前YOLO 版本的基础上,YOLOv8 引入了新的功能和优化,使其成为广泛应用中各种物体检测任务的理想选择。主要的创新点包括一个新的骨干网络、一个新的 Ancher-Free 检测头和一个新的损失函数,可以在从 CPU 到 GPU 的各种硬件平台上运行。
YOLOv8目标检测算法具有如下的几点优势:
(1)更友好的安装/运行方式;
(2)速度更快、准确率更高;
(3)新的backbone,将YOLOv5中的C3更换为C2F;
(4)YOLO系列第一次使用anchor-free;
(5)新的损失函数。
YOLO各版本性能对比
网络结构
YOLOv8模型的整体结构如下图所示:
YOLOv8与YOLOv5模型最明显的差异是使用C2F模块替换了原来的C3模块;另外Head 部分变化最大,从原先的耦合头变成了解耦头,并且从 YOLOv5 的 Anchor-Based 变成了 Anchor-Free。
YOLOv8的网络架构包含了多个关键组件,这些组件共同工作以实现快速而准确的目标检测。首先是其创新的特征提取网络(Backbone),YOLOv8的Backbone采用了最新的网络设计理念,通过深层次的特征融合和精细的特征提取策略来增强对目标的识别能力。这一策略的成功关键在于其特征提取器能够充分捕获目标的细微特征,同时保持计算效率。
YOLOv8在训练策略上也进行了优化。与YOLOv7相比,YOLOv8采用了SPFF(Spatial Pyramid Fusion Fast)策略,该策略通过高效的多尺度特征融合提高了模型对不同大小目标的检测能力。此外,YOLOv8在训练过程中引入了一种名为Task Aligned Assigner的新技术,这种技术能够更精准地将预测框与真实目标对齐,从而提高检测的准确率。
在损失函数的设计上,YOLOv8进行了创新,采用了JFL(Joint Family Losses),这是一种集成了多个损失函数的复合损失函数,能够同时优化目标检测的多个方面。这些损失函数包括用于提升模型对目标位置和大小预测准确性的CIOU Loss,以及优化分类准确性的分类损失函数。JFL的设计允许YOLOv8更全面地考虑检测任务中的不同需求,通过协调各种损失来提升总体的性能。
YOLOv8的原理不仅在于其创新的技术点,更在于这些技术如何被综合应用于解决实际的目标检测问题。通过其精心设计的网络架构、高效的训练策略以及综合的损失函数设计,YOLOv8实现了在保持实时性的同时,提高了在复杂场景下的检测准确率。这些改进使得YOLOv8成为了一个强大的工具,适用于从自动驾驶到智能视频监控等多种应用场景。
四、模型的训练、评估与推理
数据集准备
本文使用的道路坑洞数据集,一共有1330张数据集。
图片数据集的存放格式如下:
-
运行splitDataset.py,用于划分数据集;
-
运行xml2txt.py,用于得到训练标注文件;
-
运行ViewCategory.py,用于查看一共有那些类别;
模型训练
数据准备完成后,通过调用train.py
文件进行模型训练,epochs
参数用于调整训练的轮数,代码如下:
from ultralytics import YOLOif __name__ == "__main__":# build from YAML and transfer weightsmodel = YOLO('./weights/yolo11n.pt')# Train the modelmodel.train(data='./VOCData/mydata.yaml', epochs=100, imgsz=640)
训练结果分析
YOLOv8在训练结束后,可以在runs/
目录下找到训练过程及结果文件,如下所示:
P_curve.png
confusion_matrix_normalized.png
训练 batch
验证 batch
模型推理
模型训练完成后,可以得到一个最佳的训练结果模型best.pt
文件,在runs/trian/weights
目录下。我们通过使用该文件进行后续的推理检测。
图片检测代码如下:
from ultralytics import YOLOif __name__ == "__main__":# Load a modelmodel = YOLO('./runs/detect/train/weights/best.pt')# Run batched inference on a list of imagesmodel("./img", imgsz=640, save=True)
执行上述代码后,会将执行的结果直接标注在图片上,结果如下:
关于该系统涉及到的完整源码、UI界面代码、数据集、训练代码、测试图片视频等相关文件,均已打包上传,感兴趣的小伙伴可以通过下载链接自行获取。
五、获取方式
本文涉及到的完整全部程序文件:包括 python源码、数据集、训练好的结果文件、训练代码、UI源码、测试图片视频
等(见下图),获取方式见文末:
注意:该代码基于Python3.8开发,运行界面的主程序为GUI.py
,其他测试脚本说明见上图。为确保程序顺利运行,请按照requirements.txt
配置软件运行所需环境。
硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!
相关文章:
【YOLO 系列】基于YOLO的道路坑洞检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
前言 在传统的道路维护和管理中,道路坑洞的检测通常依赖人工巡查,这种方式不仅效率低下,容易出现漏检和误检的情况,而且在复杂的路况和恶劣的天气条件下,检测人员的安全也难以保障。而基于 YOLO 的道路坑洞检测系统&a…...
以项目的方式学QT开发(一)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
以项目的方式学QT开发 以项目的方式学QT开发 P1 QT介绍 1.1 QT简介 1.2 QT安装 1.2.1 Windows QT安装 1.2.2 QT Creator 使用基本介绍 P2 C基础 2.1 命名空间 2.1.1 命名空间作用 2.1.2 自定义命名空间 2.2 从C语言快速入门 2.2.1 输入输出 2.2.2 基…...
大模型学习
ChatTempate,Completion Only,NEFTune,SFTTrainer 微调技术 (背景:预训练后的大模型只会根据上文,输出下文,但效果不好,要微调帮他更好理解) ChatTemplate 是一种用于定…...
print()函数详解:输出文字、变量与格式化
用ChatGPT做软件测试 “掌握输出,才能掌控信息;理解输出,才能洞悉程序运行的本质。” 当我们敲下人生第一个 Python 代码: print("Hello, World!")也许并未意识到,我们接触的是整个编程世界中最基础、却也最…...
RPC与SOAP的区别
一.RPC(远程过程调用)和SOAP(简单对象访问协议)均用于实现分布式系统中的远程通信,但两者在设计理念、协议实现及应用场景上存在显著差异。 二.对比 1.设计理念 2.协议规范 3.技术特性 4.典型应用场景 5.总结 三.总结…...
2025认证杯数学建模A题思路+代码+模型:小行星轨迹预测
2025认证杯数学建模A题思路代码模型,详细内容见文末名片 近地小行星( Near Earth Asteroids, NEAs )是轨道相对接近地球的小行 星,它的正式定义为椭圆轨道的近日距不大于 1.3 天文单位( AU )的小行星。 …...
Axure中继器高保真交互原型的核心元件
Axure作为一款强大的原型设计工具,中继器无疑是打造高保真交互原型的核心利器。今天,就让我们深入探讨一下Axure中继器的核心地位、操作难点,以及如何借助优秀案例来提升我们的中继器使用技能。 一、核心地位 中继器在Axure中的地位举足轻重…...
Java中Money类的使用及与BigDecimal的对比
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、为什么需要Money类? 在金融和商业计算中,精确的货币处理是至关重要的。虽然Java提供了BigDecimal类来处理高精度计算,…...
第三章:系统命令
1.系统当前时间 date命令: 2.切换用户 su 用户名 sudo 命令:表示使用超级管理员身份执行该命令,如果你当前不是管理员,希望以管理员身份执行某个命令时,使用sudo,需要输入超级管理员的密码: …...
第 83 场周赛:较大分组的位置、隐藏个人信息、连续整数求和、统计子串中的唯一字符
Q1、[简单] 较大分组的位置 1、题目描述 在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。 例如,在字符串 s "abbxxxxzyy" 中,就含有 "a", "bb", "xxxx", "z&qu…...
NY244NY249美光闪存颗粒NY252NY256
NY244NY249美光闪存颗粒NY252NY256 美光闪存颗粒技术解析:从架构创新到性能突围 在数据中心轰鸣的服务器阵列中,某款新型存储颗粒正悄然改变着数据吞吐的规则。以NY系列为代表的美光闪存,凭借3D NAND架构与电荷捕获技术的深度融合ÿ…...
MCP本地高效与云端实时:stdio 与 HTTP+SSE 传输机制深度对比
概览 模型上下文协议(MCP)定义了客户端与服务器之间通信的统一标准,所有消息均采用 JSON-RPC 2.0 格式进行封装,并在此基础上支持两种传输机制:stdio(标准输入/输出) 与 HTTPSSE(Se…...
[IP地址科普] 服务器公网IP、私网IP、弹性IP是什么?区别与应用场景详解
更多服务器知识,尽在hostol.com 当我们谈论让一台服务器连接到互联网,或者让服务器上的网站、应用能够被用户访问时,IP 地址是绝对绕不开的核心概念。它就像是每台联网设备的唯一“身份证号码”和“邮政编码”,使得数据包能够在浩…...
【Python】在vscode利用pyinstaller中的.spec文件把py项目打包为.exe实现非py环境下使用的操作步骤
【需要打包的项目结构-简单】 【打包步骤】 【1-将图标以.ico的格式保存在项目中】 可以用.jpg或.png的图像进行重名,注意要和项目在同一个路径下 【2-创建并填写main.sepc文件】 在终端输入以下指令自动创建main.sepc文件,会自动生成标准的文件 pyi…...
MySQL如何查看某个表所占空间大小?(表空间大小查看方法)
文章目录 一、使用SQL查询查看表空间1.1 查询所有表的大小(包括数据和索引)1.2 查询特定数据库的表大小1.3 查询单个表的详细空间信息 二、使用命令行工具查看表空间2.1 使用mysql客户端查询2.2 查看物理文件大小(适用于MyISAM/InnoDB&#x…...
[数据结构]7. 堆-Heap
堆-Heap 1. 介绍2. 堆的实现3. 堆操作InitlilzeDestorySwapPushPopTopEmptySizeAdjustUpAdjustDown 4. HeapSort5. Top-K 1. 介绍 堆(heap) 是一种满足特定条件的完全二叉树。 小顶堆(min heap):任意节点的值 ≤ 其子…...
对心理幸福感含义的探索 | 幸福就是一切吗?
注:机翻,未校。 Happiness Is Everything, or Is It? Explorations on the Meaning of Psychological Well-Being 幸福就是一切吗?对心理幸福感含义的探索 Journal of Personality and Social Psychology 1989, Vol. 57, No. 6,1069-1081 …...
Java应用OOM排查:面试通关“三部曲”心法
开篇点题:OOM——Java应用的“内存爆仓”警报 OOM (OutOfMemoryError) 是啥病?想象一下,你的Java应用程序是一个大仓库,内存就是仓库的存储空间。如果货物(程序运行时创建的对象)越来越多,超出了…...
第28周——InceptionV1实现猴痘识别
前言 🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 一、前期准备 1.检查GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision im…...
云上玩转 Qwen3 系列之三:PAI-LangStudio x Hologres构建ChatBI数据分析Agent应用
本文详细介绍了如何使用 LangStudio 和 Qwen3 构建基于 MCP 协议的 Hologres ChatBI 智能 Agent 应用。该应用通过将 Agent、MCP Server 等技术和阿里最新的推理模型 Qwen3 编排在一个应用流中,为大模型提供了 MCPOLAP 的智能数据分析能力,使用自然语言即…...
Android开发-在应用之间共享数据
在Android系统中,应用之间的隔离机制(沙箱机制)保障了系统的安全性与稳定性。然而,在实际开发中,我们经常需要实现跨应用的数据共享,例如: 从一个应用向另一个应用传递用户信息;多个…...
MySQL-数据库分布式XA事务
准备 innodb存储引擎开启支持分布式事务 set global innodb_support_axonMySQL数据库XA事务的SQL语法如下: XA {START| BEGIN} xid {JOIN | RESUME} XA END xid {SUSPEND [ FOR MIGRATE]} XA PREPARE xid XA COMMIT xid [ONE PHASE] XA ROLLBACK xid XA RECOVER 完…...
如何快速入门-衡石科技分析平台
快速指南 创建管理员账号 按照文档安装成功之后,假设安装所在服务器 IP 是<Server IP>,端口是<Server Port>,则可以通过浏览器访问http://<Server IP>:<Server Port>/ 访问衡石分析平台,如果正常&a…...
20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤
20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤 2025/5/15 20:26 缘起:荣品的PRO-RK3566适配视熙科技 的4800W的机芯。 1080p出图预览的时候没图了。 通过105的机芯出图确认 荣品的PRO-RK3566 的硬件正常。 然后要确认 视熙科技 的4800W的机芯是否出…...
OpenCV CUDA模块中矩阵操作-----矩阵最大最小值查找函数
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在OpenCV的CUDA模块中,矩阵最大最小值查找操作用于快速获取矩阵中的全局最小值、最大值及其位置。这些函数对于图像处理任务特别有用…...
OpenCv高阶(4.0)——案例:海报的透视变换
文章目录 前言一、工具函数模块1.1 图像显示函数1.2 保持宽高比的缩放函数1.3 坐标点排序函数 二、透视变换核心模块2.1 四点透视变换实现 三、主流程技术分解3.1 图像预处理3.2 轮廓检测流程3.3 最大轮廓处理 四、后处理技术4.1 透视变换4.2 形态学处理 五、完整代码总结 前言…...
JavaScriptWeb API (DOM和BOM操作)
Web API (基础部分) 作用: 使用 JS 去操作 html 和浏览器 分类: DOM 和 BOM DOM: 操作 HTML 文档的 APIBOM: 操作浏览器的 API DOM(文档对象模型) 是用来呈现以及与任意 HTML 或 XML 文档进行交互的 API 作用: 开发网页内容特效和实现用户交互 动态创建 HTML 元素改变 HTML…...
AM-Thinking-v1论文解读:以32B规模推进推理前沿
《AM-Thinking-v1: Advancing the Frontier of Reasoning at 32B Scale》论文解读 一、引言 过去半年,大型语言模型(LLMs)在推理领域(如数学问题求解和代码生成)取得了显著进展,扩大了其在现实场景中的应…...
Spark--RDD中的转换算子
1、算子的简单介绍 Transformation(转换)算子:根据数据集创建一个新的数据集,计算后返回一个新RDD,例如一个rdd进行map操作后生了一个新的rdd。 Action(动作)算子:对rdd结果计算后返回一个数值value给驱动程序(driver),例如collect算子将数据集的所有元素收集完成返回给驱动程…...
【文件上传漏洞】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文件上传漏洞 定义客户端js检测 服务器检测后缀黑名单白名单 检测内容其他 定义 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服…...
electron进程通信
electron进程通信 模式 1:渲染器进程到主进程(单向) send和on 1.渲染器进程调用方法 click setTitle2.预加载进程暴露setTile方法 setTitle: (title) > ipcRenderer.send(set-title, title),3.主进程监听到方法 ipcMain.on(set-title…...
[C++面试] lambda面试点
一、入门 1、什么是 C lambda 表达式?它的基本语法是什么? Lambda 是 C11 引入的匿名函数对象,用于创建轻量级的可调用对象。 [捕获列表] (参数列表) mutable(可选) 异常声明(可选) -> 返回…...
【愚公系列】《Manus极简入门》040-科技与组织升级顾问:“项目掌舵人”
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! …...
2505C++,py和go调用雅兰亭库的协程工具
原文 神算调用C 一般调用pybind11封装的C库实现神算调用C库,pybind11封装c的接口很简单. 创建一个py_example.cpp文件 #include <pybind11/pybind11.h> #include <string> namespace py pybind11; PYBIND11_MODULE(py_example, m) {m.def("hello", …...
题解:P12207 [蓝桥杯 2023 国 Python B] 划分
链接 题目描述 给定 40 个数,请将其任意划分成两组,每组至少一个元素。每组的权值为组内所有元素的和。划分的权值为两组权值的乘积。请问对于以下 40 个数,划分的权值最大为多少。 5160 9191 6410 4657 7492 1531 8854 1253 4520 9231126…...
英迈国际Ingram Micro EDI需求分析
Ingram Micro(英迈国际)成立于1979年,是全球领先的技术和供应链服务提供商,总部位于美国加州尔湾。公司致力于连接全球的技术制造商与渠道合作伙伴,业务涵盖IT分销、云服务、物流和供应链优化等多个领域。Ingram Micro…...
【Linux】网络基础与socket编程基础
一.网络发展 计算机的出现是在网络之前的。而网络产生之初就是为了解决局部计算机无法交互的问题。所以,网络在诞生之初,最先出现的就是我们的局域网LAN,用来结局局部多台计算机的通信问题。 而随着时间的推移,局域网已经不能满…...
漂亮的收款打赏要饭网HTML页面源码
这是一款专为个人收款及接受打赏设计的HTML页面,其设计简洁且美观。 下载地址:漂亮的收款打赏要饭网HTML页面源码 备用地址:漂亮的收款打赏要饭网HTML页面源码...
【图书推荐】几本人工智能实用性图书
《OpenCV计算机视觉开发实践:基于Python》 《OpenCV计算机视觉开发实践:基于Python》【摘要 书评 试读】- 京东图书 《PyTorch深度学习与计算机视觉实践》 《PyTorch深度学习与计算机视觉实践(人工智能技术丛书)》(王晓华)【摘要 书评 试读…...
uniapp+vite+cli模板引入tailwindcss
目前vitecli方式用的都是官方提供的模板,vite版本还是4.14版本,较旧,而tailwindcss已经有了4版本,实际发现引入最新版会报错,因而继续使用3.3.5版本 pnpm install tailwindcss3.3.5 uni-helper/vite-plugin-uni-tail…...
【使用 C# 获取 USB 设备信息及进行通信】
文章目录 使用 C\# 获取 USB 设备信息及进行通信为什么需要获取 USB 设备信息?方法一:使用 C\# 库 (推荐)1. HidSharp2. LibUsbDotNet 方法二:直接调用 Windows API (P/Invoke)理解设备通信协议 (用于数据交换)总结 使用 C# 获取 USB 设备信息…...
Spring Cloud探索之旅:从零搭建微服务雏形 (Eureka, LoadBalancer 与 OpenFeign实战)
引言 大家好!近期,我踏上了一段深入学习Spring Cloud构建微服务应用的旅程。我从项目初始化开始,逐步搭建了一个具备服务注册与发现、客户端负载均衡以及声明式服务调用功能的基础微服务系统。本文旨在记录这一阶段的核心学习内容与实践成果…...
四维时空数据安全传输新框架:压缩感知与几何驱动跳频
四维时空数据安全传输新框架:压缩感知与几何驱动跳频 1. 引言 1.1 研究背景 随着三维感知技术(如激光雷达、超宽带定位)与动态数据流(如无人机集群、工业物联网)的快速发展,四维时空数据(三维…...
CSS相关知识补充
:root伪类 css自定义变量和var()引用自定义变量 https://developer.mozilla.org/zh-CN/docs/Web/CSS/var 在 SCSS 中,变量的声明和使用是用 $ 符号,比如: $primary-color: #ff5722;.button {color: $primary-color; }SCSS 里没有 var() 这…...
DeepSeek 赋能物联网:从连接到智能的跨越之路
目录 一、引言:物联网新时代的开启二、DeepSeek 技术揭秘2.1 DeepSeek 是什么2.2 DeepSeek 技术优势 三、DeepSeek 与物联网的融合之基3.1 物联网发展现状与挑战3.2 DeepSeek 带来的变革性突破 四、DeepSeek 在物联网的多元应用场景4.1 智慧电力:开启能源…...
谷歌量子计算机:开启计算新纪元
量子计算的黎明 原始尺寸更换图片 在科技迅猛发展的时代,量子计算作为前沿领域,正逐渐崭露头角,吸引着全球无数科研人员与科技巨头的目光。它宛如一把开启未来科技大门的钥匙,为解决诸多复杂难题提供了前所未有的可…...
桃芯ingchips——windows HID键盘例程无法同时连接两个,但是安卓手机可以的问题
目录 环境 现象 原理及解决办法 环境 PC:windows11 安卓:Android14 例程使用的是HID Keyboard,板子使用的是91870CQ的开发板,DB870CC1A 现象 连接安卓手机时并不会出现该现象,两个开发板都可以当做键盘给手机发按…...
AMC8 -- 2009年真题解析(中文解析)
Problem 1 Answer: E 中文解析: Bridget最后有4个,给了Cassie3个, 则给Cassie之前有7个。在此之前给了一半的苹果给Ann, 那么在给Anna之前,他有7*214个苹果。 因此答案是E。 Problem 2 Answer: D 中文解析࿱…...
深入解析CountDownLatch的设计原理与实现机制
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、概述 CountDownLatch是Java并发包(java.util.concurrent)中用于协调多线程同步的核心工具类,其设计目标是允许一个或…...
缓存的相关内容
缓存是一种介于数据永久存储介质与数据应用之间数据临时的存储介质 实用化保存可以有效地减少低俗数据读取的次数 (例如磁盘IO), 提高系统性能 缓存不仅可以用于提高永久性存储介质的数据读取效率,还可以提供临时的数据存储空间 spring boot中提供了缓存技术, 方便…...