基于YOLO11深度学习的电瓶车进电梯检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
《------往期经典推荐------》
一、AI应用软件开发实战专栏【链接】
项目名称 | 项目名称 |
---|---|
1.【人脸识别与管理系统开发】 | 2.【车牌识别与自动收费管理系统开发】 |
3.【手势识别系统开发】 | 4.【人脸面部活体检测系统开发】 |
5.【图片风格快速迁移软件开发】 | 6.【人脸表表情识别系统】 |
7.【YOLOv8多目标识别与自动标注软件开发】 | 8.【基于深度学习的行人跌倒检测系统】 |
9.【基于深度学习的PCB板缺陷检测系统】 | 10.【基于深度学习的生活垃圾分类目标检测系统】 |
11.【基于深度学习的安全帽目标检测系统】 | 12.【基于深度学习的120种犬类检测与识别系统】 |
13.【基于深度学习的路面坑洞检测系统】 | 14.【基于深度学习的火焰烟雾检测系统】 |
15.【基于深度学习的钢材表面缺陷检测系统】 | 16.【基于深度学习的舰船目标分类检测系统】 |
17.【基于深度学习的西红柿成熟度检测系统】 | 18.【基于深度学习的血细胞检测与计数系统】 |
19.【基于深度学习的吸烟/抽烟行为检测系统】 | 20.【基于深度学习的水稻害虫检测与识别系统】 |
21.【基于深度学习的高精度车辆行人检测与计数系统】 | 22.【基于深度学习的路面标志线检测与识别系统】 |
23.【基于深度学习的智能小麦害虫检测识别系统】 | 24.【基于深度学习的智能玉米害虫检测识别系统】 |
25.【基于深度学习的200种鸟类智能检测与识别系统】 | 26.【基于深度学习的45种交通标志智能检测与识别系统】 |
27.【基于深度学习的人脸面部表情识别系统】 | 28.【基于深度学习的苹果叶片病害智能诊断系统】 |
29.【基于深度学习的智能肺炎诊断系统】 | 30.【基于深度学习的葡萄簇目标检测系统】 |
31.【基于深度学习的100种中草药智能识别系统】 | 32.【基于深度学习的102种花卉智能识别系统】 |
33.【基于深度学习的100种蝴蝶智能识别系统】 | 34.【基于深度学习的水稻叶片病害智能诊断系统】 |
35.【基于与ByteTrack的车辆行人多目标检测与追踪系统】 | 36.【基于深度学习的智能草莓病害检测与分割系统】 |
37.【基于深度学习的复杂场景下船舶目标检测系统】 | 38.【基于深度学习的农作物幼苗与杂草检测系统】 |
39.【基于深度学习的智能道路裂缝检测与分析系统】 | 40.【基于深度学习的葡萄病害智能诊断与防治系统】 |
41.【基于深度学习的遥感地理空间物体检测系统】 | 42.【基于深度学习的无人机视角地面物体检测系统】 |
43.【基于深度学习的木薯病害智能诊断与防治系统】 | 44.【基于深度学习的野外火焰烟雾检测系统】 |
45.【基于深度学习的脑肿瘤智能检测系统】 | 46.【基于深度学习的玉米叶片病害智能诊断与防治系统】 |
47.【基于深度学习的橙子病害智能诊断与防治系统】 | 48.【基于深度学习的车辆检测追踪与流量计数系统】 |
49.【基于深度学习的行人检测追踪与双向流量计数系统】 | 50.【基于深度学习的反光衣检测与预警系统】 |
51.【基于深度学习的危险区域人员闯入检测与报警系统】 | 52.【基于深度学习的高密度人脸智能检测与统计系统】 |
53.【基于深度学习的CT扫描图像肾结石智能检测系统】 | 54.【基于深度学习的水果智能检测系统】 |
55.【基于深度学习的水果质量好坏智能检测系统】 | 56.【基于深度学习的蔬菜目标检测与识别系统】 |
57.【基于深度学习的非机动车驾驶员头盔检测系统】 | 58.【太基于深度学习的阳能电池板检测与分析系统】 |
59.【基于深度学习的工业螺栓螺母检测】 | 60.【基于深度学习的金属焊缝缺陷检测系统】 |
61.【基于深度学习的链条缺陷检测与识别系统】 | 62.【基于深度学习的交通信号灯检测识别】 |
63.【基于深度学习的草莓成熟度检测与识别系统】 | 64.【基于深度学习的水下海生物检测识别系统】 |
65.【基于深度学习的道路交通事故检测识别系统】 | 66.【基于深度学习的安检X光危险品检测与识别系统】 |
67.【基于深度学习的农作物类别检测与识别系统】 | 68.【基于深度学习的危险驾驶行为检测识别系统】 |
69.【基于深度学习的维修工具检测识别系统】 | 70.【基于深度学习的维修工具检测识别系统】 |
71.【基于深度学习的建筑墙面损伤检测系统】 | 72.【基于深度学习的煤矿传送带异物检测系统】 |
73.【基于深度学习的老鼠智能检测系统】 | 74.【基于深度学习的水面垃圾智能检测识别系统】 |
75.【基于深度学习的遥感视角船只智能检测系统】 | 76.【基于深度学习的胃肠道息肉智能检测分割与诊断系统】 |
77.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统】 | 78.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统】 |
79.【基于深度学习的果园苹果检测与计数系统】 | 80.【基于深度学习的半导体芯片缺陷检测系统】 |
81.【基于深度学习的糖尿病视网膜病变检测与诊断系统】 | 82.【基于深度学习的运动鞋品牌检测与识别系统】 |
83.【基于深度学习的苹果叶片病害检测识别系统】 | 84.【基于深度学习的医学X光骨折检测与语音提示系统】 |
85.【基于深度学习的遥感视角农田检测与分割系统】 | 86.【基于深度学习的运动品牌LOGO检测与识别系统】 |
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
目录
- 基本功能演示
- 研究背景
- 应用场景
- 主要工作内容
- 一、软件核心功能介绍及效果演示
- 软件主要功能
- 界面参数设置说明
- 检测结果说明
- 主要功能说明
- (1)图片检测说明
- (2)视频检测说明
- (3)摄像头检测说明
- (4)保存图片与视频检测说明
- 二、YOLO11简介
- 三、模型训练、评估与推理
- 1. 数据集准备与训练
- 2.模型训练
- 3. 训练结果评估
- 4. 使用模型进行推理
- 四、可视化系统制作
- Pyqt5详细介绍
- 系统制作
- 【获取方式】
基本功能演示
基于YOLO11深度学习的电瓶车进电梯检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
摘要:随着城市化进程的加快,电瓶车因便捷经济受青睐。但其在电梯等密闭空间可能因电池故障引发火灾,威胁公共安全。传统防范方法如人工监控或简单传感器检测,误报率高且效率低。本文基于
YOLO11的深度学习框架
,通过5799
张实际场景中电梯内电瓶车
的相关图片,训练了可进行电瓶车
目标检测的模型,可以很好的检测电梯内的电瓶车。最终基于训练好的模型制作了一款带UI界面的电瓶车进电梯检测与语音提示系统
,更便于实际应用。该系统是基于python
与PyQT5
开发的,支持图片
、视频
以及摄像头
进行目标检测
,并保存检测结果
。本文提供了完整的Python代码和使用教程,给感兴趣的小伙伴参考学习,完整的代码资源文件获取方式见文末。
点击跳转至文末《完整相关文件及源码》获取
研究背景
随着城市化进程的加快,电瓶车因其便捷性和经济性成为了许多人出行的选择。然而,由于电瓶车在电梯等密闭空间内可能因电池故障引发火灾的风险,将电瓶车带入电梯不仅对公共安全构成威胁,还可能导致严重的事故。传统的防止电瓶车进入电梯的方法依赖于人工监控或简单的传感器检测,这些方法存在误报率高、效率低下的问题。基于YOLO深度学习框架开发的电瓶车进电梯检测与语音提示系统,能够实时自动识别电梯内的电瓶车,并通过语音提示提醒乘客不要将电瓶车带入电梯,从而有效预防潜在的安全隐患,提高公共设施的安全管理水平。
应用场景
住宅楼与公寓
:在高层住宅和公寓的电梯中安装该系统,可以有效阻止居民将电瓶车带入楼内,减少因充电不当引起的火灾风险。
商业建筑与办公楼
:为保障大楼内人员的生命财产安全,商业建筑和办公楼可以在其电梯中部署此系统,防止电瓶车进入电梯区域。
医院与学校
:在对安全性要求极高的场所如医院和学校,该系统有助于维护公共安全,避免因电瓶车带来的安全隐患影响到病人和学生的安全。
公共交通枢纽
:在地铁站、火车站等大型交通枢纽的电梯中使用该系统,确保公共场所的安全有序,防止电瓶车占用电梯资源。
物业管理
:物业管理人员可以通过该系统实时监控电梯使用情况,及时发现并制止违规行为,同时也可以作为教育业主遵守规则的工具。
主要工作内容
本文的主要内容包括以下几个方面:
搜集与整理数据集:
搜集整理实际场景中电梯内电瓶车
的相关数据图片,并进行相应的数据标注与处理,为模型训练提供训练数据集;训练模型:
基于整理的数据集,根据最前沿的YOLOv11目标检测技术
训练目标检测模型,实现对需要检测的对象进行有效检测的功能;模型性能评估:对训练出的模型在验证集上进行了充分的结果评估和对比分析
,主要目的是为了揭示模型在关键指标(如Precision、Recall、mAP50和mAP50-95等指标)上的表现情况
。可视化系统制作:
基于训练出的目标检测模型
,搭配Pyqt5
制作的UI界面,用python
开发了一款界面简洁的软件系统,可支持图片、视频以及摄像头检测
,同时可以将图片或者视频检测结果进行保存
。其目的是为检测系统提供一个用户友好的操作平台,使用户能够便捷、高效地进行检测任务。
软件初始界面如下图所示:
检测结果界面如下:
一、软件核心功能介绍及效果演示
软件主要功能
1. 可用于实际场景中的电梯内电瓶车
检测,分1个检测类别:['电瓶车']
;
2. 支持图片、视频及摄像头
进行检测,同时支持图片的批量检测
;
3. 界面可实时显示目标位置
、目标总数
、置信度
、用时
、检测结果
等信息;
4. 支持图片
或者视频
的检测结果保存
;
5. 支持将图片的检测结果保存为csv文件
;
界面参数设置说明
置信度阈值:也就是目标检测时的conf参数,只有检测出的目标框置信度大于该值,结果才会显示;
交并比阈值:也就是目标检测时的iou参数,对检测框重叠比例iou大于该阈值的目标框进行过滤【也就是说假如两检测框iou大于该值的话,会过滤掉其中一个,该值越小,重叠框会越少】;
检测结果说明
语音提示功能
:检测结果区域如检测到电瓶车会显示警告
,同时会有语音提示;如无电瓶车则显示正常
。
显示标签名称与置信度:
表示是否在检测图片上标签名称与置信度,显示默认勾选,如果不勾选则不会在检测图片上显示标签名称与置信度;
总目标数
:表示画面中检测出的目标数目;
目标选择
:可选择单个目标进行位置信息、置信度查看。
目标位置
:表示所选择目标的检测框,左上角与右下角的坐标位置。默认显示的是置信度最大的一个目标信息;
主要功能说明
功能视频演示见文章开头,以下是简要的操作描述。
(1)图片检测说明
点击打开图片
按钮,选择需要检测的图片,或者点击打开文件夹
按钮,选择需要批量检测图片所在的文件夹,操作演示如下:
点击目标下拉框后,可以选定指定目标的结果信息进行显示。
点击保存
按钮,会对检测结果进行保存,存储路径为:save_data
目录下,同时会将图片检测信息保存csv文件
。
注:1.右侧目标位置默认显示置信度最大一个目标位置,可用下拉框进行目标切换。所有检测结果均在左下方表格中显示。
(2)视频检测说明
点击视频
按钮,打开选择需要检测的视频,就会自动显示检测结果,再次点击可以关闭视频。
点击保存
按钮,会对视频检测结果进行保存,存储路径为:save_data
目录下。
(3)摄像头检测说明
点击打开摄像头
按钮,可以打开摄像头,可以实时进行检测,再次点击,可关闭摄像头。
(4)保存图片与视频检测说明
点击保存
按钮后,会将当前选择的图片【含批量图片】或者视频
的检测结果进行保存,对于图片图片检测还会保存检测结果为csv文件
,方便进行查看与后续使用。检测的图片与视频结果会存储在save_data
目录下。
【注:暂不支持视频文件的检测结果保存为csv文件格式。】
保存的检测结果文件如下:
图片文件保存的csv文件内容如下,包括图片路径、目标在图片中的编号、目标类别、置信度、目标坐标位置
。
注:其中坐标位置是代表检测框的左上角与右下角两个点的x、y坐标。
二、YOLO11简介
YOLO11源码地址:https://github.com/ultralytics/ultralytics
Ultralytics YOLO11是一款前沿的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。
YOLO11模型结构如下:
YOLO11创新点如下:
YOLO 11主要改进包括:
增强的特征提取
:YOLO 11采用了改进的骨干和颈部架构,增强了特征提取功能,以实现更精确的目标检测。
优化的效率和速度
:优化的架构设计和优化的训练管道提供更快的处理速度,同时保持准确性和性能之间的平衡。
更高的精度,更少的参数
:YOLO11m在COCO数据集上实现了更高的平均精度(mAP),参数比YOLOv8m少22%,使其在不影响精度的情况下提高了计算效率。
跨环境的适应性
:YOLO 11可以部署在各种环境中,包括边缘设备、云平台和支持NVIDIA GPU的系统。
广泛的支持任务
:YOLO 11支持各种计算机视觉任务,如对象检测、实例分割、图像分类、姿态估计和面向对象检测(OBB)。
三、模型训练、评估与推理
本文主要基于YOLO11n
模型进行模型训练,训练完成后对模型在验证集上的表现进行全面的性能评估及对比分析。总体流程包括:数据集准备、模型训练、模型评估。
1. 数据集准备与训练
通过网络上搜集关于实际场景中电梯内电瓶车
的相关图片,并使用Labelimg标注工具对每张图片进行标注,分1个检测类别
:['电瓶车']
。
最终数据集一共包含5799张图片
,其中训练集包含4287张图片
,验证集包含961张图片
,测试集包含551张图片
。
部分图像及标注如下图所示:
数据集各类别数目分布情况如下:
2.模型训练
准备好数据集后,将图片数据以如下格式放置在项目目录中。在项目目录中新建datasets
目录,同时将检测的图片分为训练集与验证集放入Data
目录下。
同时我们需要新建一个data.yaml
文件,用于存储训练数据的路径及模型需要进行检测的类别。YOLOv11在进行模型训练时,会读取该文件的信息,用于进行模型的训练与验证。data.yaml
的具体内容如下:
train: D:\2MyCVProgram\2DetectProgram\ElevatorElectricVehicleDetection_v11\datasets\Data/train/images
val: D:\2MyCVProgram\2DetectProgram\ElevatorElectricVehicleDetection_v11\datasets\Data/valid/images
test: D:\2MyCVProgram\2DetectProgram\ElevatorElectricVehicleDetection_v11\datasets\Data/test/imagesnc: 1
names: ['motorcycle']
注:train与val后面表示需要训练图片的路径,建议直接写自己文件的绝对路径。
数据准备完成后,通过调用train.py
文件进行模型训练,epochs
参数用于调整训练的轮数,batch
参数用于调整训练的批次大小【根据内存大小调整,最小为1】,optimizer
设定的优化器为SGD
,训练代码如下:
#coding:utf-8
from ultralytics import YOLO
import matplotlib
matplotlib.use('TkAgg')# 模型配置文件
model_yaml_path = "ultralytics/cfg/models/11/yolo11.yaml"
#数据集配置文件
data_yaml_path = 'datasets/Data/data.yaml'
#预训练模型
pre_model_name = 'yolo11n.pt'if __name__ == '__main__':#加载预训练模型model = YOLO(model_yaml_path).load(pre_model_name)#训练模型results = model.train(data=data_yaml_path,epochs=150, # 训练轮数batch=4, # batch大小name='train_v11', # 保存结果的文件夹名称optimizer='SGD') # 优化器
模型常用训练超参数参数说明:
YOLO11 模型的训练设置包括训练过程中使用的各种超参数和配置
。这些设置会影响模型的性能、速度和准确性。关键的训练设置包括批量大小、学习率、动量和权重衰减。此外,优化器、损失函数和训练数据集组成的选择也会影响训练过程。对这些设置进行仔细的调整和实验对于优化性能至关重要。
以下是一些常用的模型训练参数和说明:
参数名 | 默认值 | 说明 |
---|---|---|
model | None | 指定用于训练的模型文件。接受指向 .pt 预训练模型或 .yaml 配置文件。对于定义模型结构或初始化权重至关重要。 |
data | None | 数据集配置文件的路径(例如 coco8.yaml ).该文件包含特定于数据集的参数,包括训练数据和验证数据的路径、类名和类数。 |
epochs | 100 | 训练总轮数。每个epoch代表对整个数据集进行一次完整的训练。调整该值会影响训练时间和模型性能。 |
patience | 100 | 在验证指标没有改善的情况下,提前停止训练所需的epoch数。当性能趋于平稳时停止训练,有助于防止过度拟合。 |
batch | 16 | 批量大小,有三种模式:设置为整数(例如,’ Batch =16 ‘), 60% GPU内存利用率的自动模式(’ Batch =-1 ‘),或指定利用率分数的自动模式(’ Batch =0.70 ')。 |
imgsz | 640 | 用于训练的目标图像尺寸。所有图像在输入模型前都会被调整到这一尺寸。影响模型精度和计算复杂度。 |
device | None | 指定用于训练的计算设备:单个 GPU (device=0 )、多个 GPU (device=0,1 )、CPU (device=cpu ),或苹果芯片的 MPS (device=mps ). |
workers | 8 | 加载数据的工作线程数(每 RANK 多 GPU 训练)。影响数据预处理和输入模型的速度,尤其适用于多 GPU 设置。 |
name | None | 训练运行的名称。用于在项目文件夹内创建一个子目录,用于存储训练日志和输出结果。 |
pretrained | True | 决定是否从预处理模型开始训练。可以是布尔值,也可以是加载权重的特定模型的字符串路径。提高训练效率和模型性能。 |
optimizer | 'auto' | 为训练模型选择优化器。选项包括 SGD , Adam , AdamW , NAdam , RAdam , RMSProp 等,或 auto 用于根据模型配置进行自动选择。影响收敛速度和稳定性 |
lr0 | 0.01 | 初始学习率(即 SGD=1E-2 , Adam=1E-3 ) .调整这个值对优化过程至关重要,会影响模型权重的更新速度。 |
lrf | 0.01 | 最终学习率占初始学习率的百分比 = (lr0 * lrf ),与调度程序结合使用,随着时间的推移调整学习率。 |
3. 训练结果评估
在深度学习中,我们通常用损失函数下降的曲线来观察模型训练的情况。YOLOv11在训练时主要包含三个方面的损失:定位损失(box_loss)、分类损失(cls_loss)和动态特征损失(dfl_loss),在训练结束后,可以在runs/
目录下找到训练过程及结果文件,如下所示:
各损失函数作用说明:
定位损失box_loss
:预测框与标定框之间的误差(GIoU),越小定位得越准;
分类损失cls_loss
:计算锚框与对应的标定分类是否正确,越小分类得越准;
动态特征损失(dfl_loss)
:DFLLoss是一种用于回归预测框与目标框之间距离的损失函数。在计算损失时,目标框需要缩放到特征图尺度,即除以相应的stride,并与预测的边界框计算Ciou Loss,同时与预测的anchors中心点到各边的距离计算回归DFLLoss。
本文训练结果如下:
我们通常用PR曲线
来体现精确率和召回率的关系,本文训练结果的PR曲线如下。mAP
表示Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值。mAP@.5:表示阈值大于0.5的平均mAP,可以看到本文模型目标检测的mAP@0.5
值为0.986
,结果还是十分不错的。
4. 使用模型进行推理
模型训练完成后,我们可以得到一个最佳的训练结果模型best.pt
文件,在runs/train/weights
目录下。我们可以使用该文件进行后续的推理检测。
图片检测代码如下:
#coding:utf-8
from ultralytics import YOLO
import cv2# 所需加载的模型目录
path = 'models/best.pt'
# 需要检测的图片地址
img_path = "TestFiles/2020-75-_jpg.rf.213cb927d16f4fec586c45be9fcbc1cb.jpg"# 加载预训练模型
model = YOLO(path, task='detect')# 检测图片
results = model(img_path)
res = results[0].plot()
# res = cv2.resize(res,dsize=None,fx=0.5,fy=0.5,interpolation=cv2.INTER_LINEAR)
cv2.imshow("Detection Result", res)
cv2.waitKey(0)
执行上述代码后,会将执行的结果直接标注在图片上,结果如下:
更多检测结果示例如下:
四、可视化系统制作
基于上述训练出的目标检测模型,为了给此检测系统提供一个用户友好的操作平台,使用户能够便捷、高效地进行检测任务。博主基于Pyqt5开发了一个可视化的系统界面,通过图形用户界面(GUI),用户可以轻松地在图片、视频和摄像头实时检测之间切换,无需掌握复杂的编程技能即可操作系统。【系统详细展示见第一部分内容】
Pyqt5详细介绍
关于Pyqt5的详细介绍可以参考之前的博客文章:《Python中的Pyqt5详细介绍:基本机构、部件、布局管理、信号与槽、跨平台》
,地址:
https://a-xu-ai.blog.csdn.net/article/details/143273797
系统制作
博主基于Pyqt5框架开发了此款电瓶车进电梯检测与语音提示系统
,即文中第一部分的演示内容,能够很好的支持图片、视频及摄像头进行检测,同时支持检测结果的保存
。
通过图形用户界面(GUI),用户可以轻松地在图片、视频和摄像头实时检测之间切换,无需掌握复杂的编程技能即可操作系统。这不仅提升了系统的可用性和用户体验,还使得检测过程更加直观透明,便于结果的实时观察和分析。此外,GUI还可以集成其他功能,如检测结果的保存与导出、检测参数的调整,从而为用户提供一个全面、综合的检测工作环境,促进智能检测技术的广泛应用。
关于该系统涉及到的完整源码、UI界面代码、数据集、训练代码、训练好的模型、测试图片视频等相关文件,均已打包上传,感兴趣的小伙伴可以通过下载链接自行获取。
【获取方式】
关注末尾名片GZH【阿旭算法与机器学习】,发送【源码】获取下载方式
本文涉及到的完整全部程序文件:包括python源码、数据集、训练好的结果文件、训练代码、UI源码、测试图片视频等(见下图),获取方式见文末:
注意:该代码基于Python3.9开发,运行界面的主程序为
MainProgram.py
,其他测试脚本说明见上图。为确保程序顺利运行,请按照程序运行说明文档txt
配置软件运行所需环境。
好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!
相关文章:
基于YOLO11深度学习的电瓶车进电梯检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
HTML5 表单属性
HTML5 表单属性 引言 HTML5作为新一代的网页标准,带来了许多新的特性和改进。在表单处理方面,HTML5引入了一系列新的表单属性,这些属性使得表单的创建和使用更加灵活和强大。本文将详细介绍HTML5表单属性,包括其功能、使用方法和注意事项。 一、HTML5表单属性概述 HTML…...
从0开始,手搓Tomcat
一、什么是Tomcat Tomcat 是一款开源的、轻量级的 Web 服务器,它不仅能够提供 HTTP 服务,还能够运行 Java Servlet 和 JavaServer Pages(JSP)。对于许多开发者来说,理解 Tomcat 的目录结构以及如何在该结构中组织应用…...
数列分块入门2
题目描述 给出一个长为 n n n 的数列,以及 n n n 个操作,操作涉及区间加法,询问区间内小于某个值 x x x 的元素个数。 输入格式 第一行输入一个数字 n n n。 第二行输入 n n n 个数字,第 i i i 个数字为 a i a_i ai&a…...
【ThreeJS Basics 06】Camera
文章目录 Camera 相机PerspectiveCamera 透视相机正交相机用鼠标控制相机大幅度转动(可以看到后面) 控制组件FlyControls 飞行组件控制FirstPersonControls 第一人称控制PointerLockControls 指针锁定控制OrbitControls 轨道控制TrackballControls 轨迹球…...
postman接口请求中的 Raw是什么
前言 在现代的网络开发中,API 的使用已经成为数据交换的核心方式之一。然而,在与 API 打交道时,关于如何发送请求体(body)内容类型的问题常常困扰着开发者们,尤其是“raw”和“json”这两个术语之间的区别…...
docker1
前言 技术架构 单机架构 应用数据分离架构 应用服务集群架构 读写分离/主从分离架构 写入主的时候,要同步Mysql从的数据才可以 冷热分离架构 写的时候要写入主和缓存数据库 读的时候先去缓存看有没有,没有的话就去从数据库读数据 主要就是看这个数据是…...
RocketMQ延迟消息深度解析:原理、实践与性能调优
RocketMQ延迟消息深度解析:原理、实践与性能调优 编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793 DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039 一、…...
RabbitMQ 高级特性解析:RabbitMQ 消息可靠性保障 (上)
RabbitMQ 核心功能 RabbitMQ 高级特性解析:RabbitMQ 消息可靠性保障 (上)-CSDN博客 RabbitMQ 高级特性:从 TTL 到消息分发的全面解析 (下)-CSDN博客 前言 最近再看 RabbitMQ,看了看自己之前写…...
大白话JavaScript实现一个函数,将数组中的元素进行去重
大白话JavaScript实现一个函数,将数组中的元素进行去重 答题思路 要实现数组元素去重的函数,核心思路是遍历数组,然后判断每个元素是否已经在新数组里存在,如果不存在就添加进去,存在则跳过。下面会介绍几种不同的实…...
PQL查询和监控各类中间件
1 prometheus的PQL查询 1.1 Metrics数据介绍 prometheus监控中采集过来的数据统一称为Metrics数据,其并不是代表具体的数据格式,而是一种统计度量计算单位当需要为某个系统或者某个服务做监控时,就需要使用到 metrics prometheus支持的met…...
uni_app实现下拉刷新
1. 在页面配置中启用下拉刷新 首先,你需要在页面的 pages.json 文件中启用下拉刷新功能。 {"pages": [{"path": "pages/index/index","style": {"navigationBarTitleText": "首页","enablePull…...
C#类型转换基本概念
一、基本定义 C# 类型转换是将数据从一种类型转换为另一种类型的过程,分为 隐式转换 和 显式转换 两类。 强类型语言特性:C# 要求变量类型在编译时确定,类型转换需满足兼容性或显式规则。目的:处理不同数据类…...
【学习笔记】【DeepSeek AI 医生】2-2 AI家庭医生课程内容介绍
【DeepSeek AI 医生】2-4 项目详细分析及DeepSeek适用场景 一、Ollama部署二、可视化UI三、构建项目环境四、搭建项目架构五、Spring Al六、SSE服务端推送事件七、数据持久化八、线上部署 一、Ollama部署 Mac部署windows 部署ollama脚本、常用命令DeepSeek 提示词、角色、适用…...
DeepSeek使用教程--让DeepSeek生成精准题库
想让DeepSeek出好题,关键在于提示词的设计。总结了一个基本模板: 请帮我生成一套关于[学科/知识点]的题目,包括[题型],难度为[简单/中等/困难],适合[年级/学习阶段]的学生,总共[数量]道题。每道题请提供详细…...
数学之约数个数定理-阶乘约数
题目: 定义阶乘 n!123⋅⋅⋅n。 请问 100!(100的阶乘)有多少个正约数。 们需要计算 100! 的正约数的个数。阶乘 100! 的定义是: 100!123⋯100 直接计算 100!的值是不现实的,因为它是一个非常大的数。因此…...
C语言学习笔记-进阶(7)字符串函数3
1. strstr的使用和模拟实现 char * strstr ( const char * str1, const char * str2); Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part of str1. (函数返回字符串str2在字符串str1中第⼀次出现的位置&#x…...
快乐数 力扣202
一、题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1&…...
Cpu100%问题(包括-线上docker服务以及Arthas方式进行处理)
🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...
近三年图像超分辨率研究进展综述(轻量化方向)
一、图像超分辨率技术的近三年核心进展 1. 轻量化网络设计突破 轻量化模型是端侧部署的关键,近三年研究主要围绕参数压缩与计算效率提升展开: 11卷积与通道优化:SCNet提出全11卷积架构,通过逐点卷积替代传统33卷积,在保持重建质量的同时将模型参数减少60%以上。该设计通…...
成都亚恒云知教育咨询公司:绘画的风格如何学习与确定?
宝子们,好久不见! 最近收到好多同学发给我们成都亚恒云知教育咨询有限公司创作的作品,同时也收到了有很多乖乖的询问:关于绘画,老师我没有属于自己的风格,怎么才能画出属于自己的风格的作品啊,…...
数据结构篇——串(String)
一、引入 在计算机中的处理的数据内容大致可分为以整形、浮点型等的数值处理和字符、字符串等的非数值处理。 今天我们主要学习的就是字符串数据。本章主要围绕“串的定义、串的类型、串的结构及其运算”来进行串介绍与学习。 二、串的定义 2.1、串的基本定义 串(s…...
Qwen架构与Llama架构的核心区别
我们在讨论Deepseek不同版本之间的区别时了解到,DeepSeek-R1的蒸馏模型分为Qwen和Llama两个系列,包括Qwen系列的0.5B、1.5B、3B、7B、14B、32B、72B和Llama系列的8B、70B。Qwen系列以阿里通义千问(Qwen)为基础模型架构(具体是Qwen-2.5),Llama系列以Meta的Llama为基础模型…...
uniapp或者vue 使用serialport
参考https://blog.csdn.net/ykee126/article/details/90440499 版本是第一位:否则容易编译失败 node 版本 18.14.0 npm 版本 9.3.1 electron 版本 30.0.8 electron-rebuild 版本 3.2.9 serialport 版本 10.0.0 需要python环境 main.js // Modules to control app…...
Linux和gcc/g++常用命令总结
目录 Linux命令总结 文件操作相关命令 ls cd pwd cp mv rm cat mkdir rmdir touch 文本处理操作命令 grep awk sed 进程管理操作相关命令 ps top htop kill pkill killall chmod chown 网络操作相关命令 ping ifconfig netstat ss lsof curl …...
Vue3路由组件和一般组件 切换路由时组件挂载和卸载 路由的工作模式
路由组件和一般组件 路由组件 一般放到pages或view目录 一般组件 一般放到component目录 切换路由 切换路由时,组件和执行挂载和卸载 路由的工作模式 Hash模式 缺点 1.不美观,路径带#号 优点 1.兼容性好 一般适用于管理系统 History模式 缺点…...
MySQL如何给其他账号分配权限?
目录 基础权限分配流程 权限级别对照表 安全事项 MySQL数据库使用root账号为test账号分配权限的标准操作流程及注意事项: 基础权限分配 1、root用户登录, 输入root密码后进入MySQL命令行环境 mysql -u root -p2、用户存在性校验 SELECT user,host FROM …...
记录一些面试遇到的问题
重载和重写的区别 重载是overload,覆盖是override 重载属于编译时多态,覆盖属于运行时多态 运行时多态和编译时多态 运行时多态指的是在运行的时候才知道要调用哪一个函数,编译时多态是指在编译的时候就知道调用哪一个函数。 运行时多态…...
Windows 系统 Docker Desktop 入门教程:从零开始掌握容器化技术
文章目录 前言一、Docker 简介二、Docker Desktop 安装2.1 系统要求2.2 安装步骤 三、Docker 基本概念四、Docker 常用命令五、实战:运行你的第一个容器5.1 拉取并运行 Nginx 容器5.2 查看容器日志5.3 停止并删除容器 六、总结 前言 随着云计算和微服务架构的普及&…...
量子计算测试挑战:软件测试将如何迎接新纪元?
引言 在计算机技术的飞速发展中,量子计算(Quantum Computing)正成为下一个颠覆性的科技热点。随着谷歌、IBM、微软等科技巨头纷纷投入巨资研究量子计算,其应用场景正逐步扩展,从优化计算到密码安全,再到人工智能和材料科学。然而…...
Matlab实现车牌识别
车牌识别技术作为现代智能交通系统、安防监控以及诸多车辆管理应用场景中的关键环节,正发挥着日益重要的作用,它能够自动、快速且精准地从车辆图像或视频流中提取车牌信息,实现车辆身份的智能化识别。 技术原理 车牌识别主要依托于图像处理、…...
Autosar 诊断开发-CAN到CANFD的更改-基于ETAS软件
文章目录 前言CanIf配置CanTp配置EcuC配置生成代码差异总结 前言 从CAN切换到CANFD,如果不想重新进行cfggen的话,手动更改配置或许会更快一些,本文介绍诊断报文从CAN变为CANFD后,BSW模块中的更改。 注:本文不介绍MCAL…...
八、排序算法
一些简单的排序算法 8.1 冒泡排序 void Bubble_sort(int a[] , int len){int i,j,flag,tmp;for(i=0 ; i < len-1 ; i++){flag = 1;for(j=0 ; j < len-1-i ; j++){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 0;}}if(flag == 1){break;}}…...
TON基金会确认冠名赞助2025香港Web3嘉年华,并将于4月8日重磅呈现“TON生态日”
近日,由万向区块链实验室与HashKey Group联合推出的Web3年度盛典——2025香港Web3嘉年华正式宣布,TON基金会确认成为本届嘉年华的冠名赞助商,并将于4月8日在主会场特别举办“TON生态日”专题Side Event,集中展现TON生态的最新技术…...
《A++ 敏捷开发》- 18 软件需求
需求并不是关于需求 (Requirements are not really about requirements) 大家去公共图书馆寄存物品,以前都是扫二维码开箱,有些图书馆升级了使用指纹识别。 “是否新方法比以前好?”我问年轻的开发人员。 “当然用指纹识别好。新技术&#x…...
RAG技术深度解析:从基础Agent到复杂推理Deep Search的架构实践
重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…...
智谱AI-FunctionCall
智谱AI-FunctionCall 编写FuncationCall大模型的函数调用,先直观的感受一下的感受下FunctionCall的魅力 文章目录 智谱AI-FunctionCall[toc]1-参考网址2-思路整理3-代码拆件1-[非核心]两个业务函数2-[非核心]业务函数的JsonSchema定义3-[核心]FunctionCall的调用1-打…...
[HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(2)实操部署
标题:[HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(2)实操部署 水墨不写bug 文章目录 一、无法拷贝类(class uncopyable)的设计解释:重要思想:使用示例 二、锁的RAII设计解释重要考虑使用示例 三、基于RAII模式和互斥锁…...
【玩转MySQL数据字典】MySQL数据字典与常用操作指令
MySQL数据字典简介与常用操作指令 一、数据字典简介 数据字典是MySQL 5.7中用于存储数据库对象元数据的系统表。在MySQL的早期版本中,元数据存储在.frm文件及其他文件里。这种存储方式存在诸多弊端,例如元数据不一致问题,不同文件间元数据的…...
C语言 —— 愿此世如黄金般辉煌 - 进制转换与操作符详解
目录 1. 操作符的分类 2. ⼆进制和进制转换 2.1 2进制转10进制 2.2 10进制转2进制 2.3 2进制转8进制 2.4 2进制转16进制 3. 原码、反码、补码 4. 移位操作符 4.1 左移操作符 4.2 右移操作符 5. 位操作符:&、|、^、~ 5.1 & 按位与 5.2 | 按位或 …...
基于粒子群算法的配电网重构
一、配电网重构原理 定义: 配电网重构是指在满足运行约束的前提下,通过改变开关状态优化配电网性能,提高系统的经济效益和运行效率。 拓扑约束: 配电网必须保持径向拓扑,避免环网或孤岛。采用算法控制开关状态的选择&…...
【云岚到家】-实战问题(上)
【云岚到家】-实战问题(上) 基础架构项目涉及那些角色云岚的业务流程?云岚家政包括那些模块项目采用什么架构如何开发一个接口?RESTful风格的去定义一个接口如何开发一个接口的service方法接口的异常处理怎么实现的?Sp…...
005-获取内存占用率
获取内存占用率 windows平台 在Windows环境下使用C获取内存占用率,可以通过以下两种方式实现,分别针对系统整体和特定进程的内存监控: 一、获取系统整体内存占用率 核心函数:GlobalMemoryStatusEx 步骤: 定义MEMOR…...
python从入门到精通(二十二):python文件操作之Excel全攻略(基于pandas)
Python处理表格数据 1.表格的基础知识1.1 xls与xlsx格式详解1.2 表格内部结构的认识 2.表格的基础操作2.1 认识表格的基本库2.1.1 csv内置的标准库2.1.2 xlrd 和 xlwt2.1.3 openpyxl2.1.4 pandas 2.2 安装和环境配置2.3 xlrd 和 xlwt2.3.1 库的说明2.3.2 安装xlrd库2.3.3 导入模…...
html常用标签
文章说明 本文旨在总结 HTML 中常见的标签,并提供简洁的解释,方便大家快速查找和复习。我们假设读者已经具备一定的 HTML 基础知识。本文将持续更新和完善,欢迎大家参与续写和补充 一、 HTML 标签 整个网页从 <html> 开始到 </html…...
ROS分布式部署通信
目录 一、概念 二、设置 ROS 分布式网络 1. 环境要求 2. 主机(Master)设置 3. 从机(节点设备)设置 4. 测试是否正常通信 三、进阶启动多从机节点(launch)。 一、概念 ROS 分布式通信用于在多台计算机…...
.Net 6 上传文件接口 文件大小报错整体配置
/// <summary>/// 上传文件/// </summary>/// <param name"file"></param>/// <returns></returns>[HttpPost("UploadifyFile")][RequestSizeLimit(2000 * 1024 * 1024)] // 设置最大请求体大小为 100MBpublic async …...
12.【线性代数】——图和网络
十二 图和网络(线性代数的应用) 图 g r a p h { n o d e s , e d g e s } graph\{nodes, edges\} graph{nodes,edges}1.关联矩阵2. A A A矩阵的零空间,求解 A x 0 Ax0 Ax0 电势3. A T A^T AT矩阵的零空间,电流总结电流图结论 …...
游戏引擎学习第145天
仓库:https://gitee.com/mrxiao_com/2d_game_3 今天的计划 目前,我们正在完成遗留的工作。当时我们已经将声音混合器(sound mixer)集成到了 SIMD 中,但由于一个小插曲,没有及时完成循环内部的部分。这个小插曲主要是…...
Linux(Centos 7.6)命令详解:zip
1.命令作用 打包和压缩(存档)文件(package and compress (archive) files);该程序用于打包一组文件进行分发;存档文件;通过临时压缩未使用的文件或目录来节省磁盘空间;且压缩文件可以在Linux、Windows 和 macOS中轻松提取。 2.命…...