Stable Diffusion + Contronet,调参实现LPIPS最优(带生成效果+指标对比)——项目学习记录
目录
前言
一、数据集:图像+文本,部分选取于DeepFashion
二、优化一,img2img
三、优化二,微调sd参数
四、优化三,dreamshaper优化
五、优化四,sdv1.5+contronet
六、问题探索历程
1. 从 SDXL 到轻量化模型:模型选择的权衡
2. LoRA 下载受阻:转向基础模型优化
3. ControlNet 约束:提升结构一致性
4. 指标评估:文件名匹配与全黑图处理
5. SSIM 计算错误:尺寸与数据范围问题
6. LPIPS 归一化调整
结果分析
总结
后续优化想法、可参考思路:
1. LoRA 微调
2. 超分辨率后处理
3. 自适应提示词
4. 损失函数优化
5. 多模型融合
由于sd v1.5生成效果一般,主要在人物面部、手部等细节上很差,于是我寻求各种优化,今天最成功的是加入contronet,这的确是一个妥妥提升质量的思路,我用的约束是轮廓图,想复现的思路除这个外,最近几天在基于 Stable Diffusion v1.5模型做优化,旨在优化图像生成质量,并通过 PSNR、SSIM 和 LPIPS 等指标对比评估不同优化方案的效果。在优化过程中,我遇到了一些技术问题,涉及模型选择、代码错误、指标计算等。以下是优化过程的详细记录,重点展示了技术问题、解决方案和实验结果。
✅ Stable Diffusion v1.5:不换模型优化人体细节的实用技巧-CSDN博客
Stable Diffusion+Pyqt5: 实现图像生成与管理界面(带保存 + 历史记录 + 删除功能)——我的实验记录(结尾附系统效果图)-CSDN博客
基于前面搭建的sd v1.5,深度学习项目记录·Stable Diffusion从零搭建、复现笔记-CSDN博客:
前言
最近围绕stable diffusion v1.5做了一系列实验,寻求各种优化,前面发的一篇是优化思路,这一篇是sd v1.5 + contronet(我采用的是边缘图,先安装opencv:pip install opencv-python依赖 cv2 来生成 Canny 边缘图),忙活几天才彻底完成各优化模型评价指标的测定,最终三个指标均有所提升。模型基于sd v1.5微调,接下来是项目思路的还原:
一、数据集:图像+文本,部分选取于DeepFashion
实验环境:python3.11 Pytorch12.1
GPU:RTX4070
二、优化一,img2img
基于原图的风格统一或提示词约束(添加细节提示)实现对生成图像再优化,上一篇提到了Strength参数作用,主要是控制实际迭代步数。
上一篇链接:Stable Diffusion+Pyqt5: 实现图像生成与管理界面(带保存 + 历史记录 + 删除功能)——我的实验记录(结尾附系统效果图)-CSDN博客
文本描述: "MEN-Denim-id_00000089-44_7_additional.jpg": "This man is wearing a short-sleeve shirt with pure color patterns. The shirt is with cotton fabric and its neckline is lapel. The trousers this man wears is of long length. The trousers are with cotton fabric and solid color patterns.",
效果:
三、优化二,微调sd参数
optimized,主要是优化迭代步数和引导强度,附加提示词优化
效果如下:
四、优化三,dreamshaper优化
(重新加载模型速度最慢、耗时久)
成功生成:
效果(可能是hugging face基础模型的原因,风格化严重):
五、优化四,sdv1.5+contronet
边缘图约束+提示词优化
需先下载库:
速度比前面慢接近十倍:(与原图保持轮廓一致)
六、问题探索历程
1. 从 SDXL 到轻量化模型:模型选择的权衡
技术问题
最初,我计划使用 Stable Diffusion XL (SDXL),因为它在图像质量上表现优异。然而,由于 SDXL 模型体积较大(约 10GB)且对硬件要求高,下载困难并且运行复杂,最终选择了更轻量的模型。
解决方法
转向使用 runwayml/stable-diffusion-v1-5
(约 4GB),该模型社区支持广泛,且生成质量适中。为了提升生成效果,引入了 LoRA 微调技术。
技术细节
-
LoRA 微调:使用 LoRA 技术增强模型生成能力,通过加载小型权重文件(几十 MB)进行微调。
-
代码实现:
from diffusers import StableDiffusionPipeline pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16) pipe.load_lora_weights(r"D:\YAN\pythonProject\diffusion\lora\fashion-detail-lora.safetensors")
-
参数调整:设置
num_inference_steps=50
和guidance_scale=7.5
来平衡生成质量和速度。
2. LoRA 下载受阻:转向基础模型优化
技术问题
由于网络限制,我无法顺利从 Civitai 或 Hugging Face 下载 LoRA 权重文件。
解决方法
放弃使用 LoRA,转向通过提示词工程和参数调整优化 runwayml/stable-diffusion-v1-5
的生成效果,并尝试了其他轻量模型,如 Lykon/dreamshaper-8
。
技术细节
-
提示词优化:加入更具体的描述,如
highly detailed, realistic textures
,并使用负面提示排除低质量元素。 -
代码调整:
image = pipe(prompt, negative_prompt="blurry, low resolution", num_inference_steps=75, guidance_scale=10.0).images[0]
-
DreamShaper 模型:使用
Lykon/dreamshaper-8
,并手动下载模型文件避免网络问题:model_id = r"D:\YAN\pythonProject\diffusion\models\dreamshaper-8" pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
3. ControlNet 约束:提升结构一致性
技术问题
尽管生成图像有了提升,但服装结构和轮廓依然不够精确。我希望通过 ControlNet 强化生成图像的结构一致性。
解决方法
集成了 lllyasviel/sd-controlnet-canny
模型,利用 Canny 边缘图作为输入,以此加强生成图像的结构保持性。
技术细节
-
依赖安装:安装
opencv-python
处理边缘图:pip install opencv-python
-
ControlNet 实现:
from diffusers import StableDiffusionControlNetPipeline, ControlNetModel controlnet = ControlNetModel.from_pretrained("lllyasviel/sd-controlnet-canny", torch_dtype=torch.float16) pipe = StableDiffusionControlNetPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", controlnet=controlnet, torch_dtype=torch.float16) canny_image = cv2.Canny(cv2.imread(image_path, cv2.IMREAD_GRAYSCALE), 100, 200) image = pipe(prompt, image=canny_image, controlnet_conditioning_scale=1.0).images[0]
4. 指标评估:文件名匹配与全黑图处理
技术问题
计算 PSNR、SSIM 和 LPIPS 时,出现了文件名匹配失败的问题(图像格式不一致)以及部分图像为全黑图,导致计算结果偏差。
解决方法
调整文件名匹配逻辑,去除扩展名匹配,同时加入全黑图检测,跳过不合适的图像。
技术细节
-
文件名匹配:
base_name = os.path.splitext(gen_file)[0] original_file = original_files.get(base_name)
-
全黑图检测:
def is_black_image(img):return np.all(img == 0) if is_black_image(generated_img):print(f" 跳过全黑图: {gen_file}")continue
5. SSIM 计算错误:尺寸与数据范围问题
技术问题
SSIM 计算报错,主要是由于图像尺寸过小或数据范围不正确。
解决方法
添加尺寸检查并为 SSIM 指定 data_range=1.0
。
技术细节
-
尺寸检查:
h, w = original_img.shape[:2] if h < 7 or w < 7:raise ValueError(f"图像尺寸 {h}x{w} 太小,SSIM 需要至少 7x7")
-
SSIM 参数调整:
ssim_value = ssim(original, generated, channel_axis=2, win_size=min(7, min(h, w)), data_range=1.0)
6. LPIPS 归一化调整
技术问题
LPIPS 计算结果异常,原因是图像数据范围不符合期望。
解决方法
将图像从 [0, 1]
转换为 [-1, 1]
,以适应 LPIPS 计算。
技术细节
original_tensor = torch.from_numpy((original * 2 - 1).transpose(2, 0, 1)).float().unsqueeze(0).to('cuda')
generated_tensor = torch.from_numpy((generated * 2 - 1).transpose(2, 0, 1)).float().unsqueeze(0).to('cuda')
lpips_value = lpips_model(original_tensor, generated_tensor).item()
最终结果与分析
在优化和调参后,我生成了多个模型的图像并计算了对应的 PSNR、SSIM 和 LPIPS 指标。以下是最终结果:
结果分析
-
PSNR:
generated_pic_controlnet
的 8.44 最高,表示图像与原图差异最小。 -
SSIM:
generated_pic_controlnet
的 0.6434 最高,结构相似性最优,验证了 ControlNet 对结构的一致性控制能力。 -
LPIPS:
generated_pic_controlnet
的 0.2713 最低,感知相似性最佳,符合人类视觉评价。
总结
通过从 SDXL 的放弃,到 LoRA 的失败,再到 ControlNet 的成功集成,我逐步优化了图像生成质量。最终,ControlNet 在所有指标上均表现优异,特别是在服装生成任务上。
后续优化想法、可参考思路:
在 ControlNet 加入边缘图优化后,接下来可以考虑以下几个改进方向,以进一步提升图像生成质量和效果:
1. LoRA 微调
-
目标:若网络问题得到解决,可以引入服装特定的 LoRA 微调,以进一步优化细节(如纹理、材质),进而提升 SSIM 和 LPIPS 指标。
-
实现:下载和加载特定于服装领域的 LoRA 权重文件,微调基础模型,提升生成图像的细节表现。
2. 超分辨率后处理
-
目标:通过超分辨率技术(如 ESRGAN 或 Real-ESRGAN)对生成的图像进行后处理,提高 PSNR 和图像清晰度。
-
实现:使用超分辨率网络对生成的低分辨率图像进行放大和细节恢复,从而提高图像质量,减少模糊现象。
3. 自适应提示词
-
目标:基于原始图像的特征(如颜色、风格)动态生成提示词,减少生成偏差,提升图像与提示词的匹配度和感知一致性。
-
实现:使用图像分析模型提取图像特征,生成与原图风格和元素一致的提示词,以便引导模型生成更符合预期的图像。
4. 损失函数优化
-
目标:在训练或微调中加入感知损失(如 LPIPS),使生成图像更贴近人类视觉评价,提升图像质量的感知效果。
-
实现:在训练过程中加入感知损失函数,优化模型输出,使生成图像与目标图像在视觉上更为相似。
5. 多模型融合
-
目标:结合 DreamShaper 和 ControlNet 等模型的优势,通过模型集成提升图像生成的综合质量。
-
实现:在生成过程中融合多个模型的输出,采用加权平均或其他融合策略,以平衡各模型的优缺点,生成更加细腻和多样化的图像。
这些优化方法为 ControlNet 和 Stable Diffusion 图像生成模型提供了更多的潜力和改进空间。通过在细节、分辨率、提示词自适应和模型融合等方面进行优化,能够进一步提升服装生成任务的质量和稳定性,探索更多可能性,有需要可以从以上五点做尝试。
本篇基于sd v1.5:
深度学习项目记录·Stable Diffusion从零搭建、复现笔记-CSDN博客
优化后续强相关:
✅ Stable Diffusion v1.5:不换模型优化人体细节的实用技巧-CSDN博客
Stable Diffusion+Pyqt5: 实现图像生成与管理界面(带保存 + 历史记录 + 删除功能)——我的实验记录(结尾附系统效果图)-CSDN博客
相关文章:
Stable Diffusion + Contronet,调参实现LPIPS最优(带生成效果+指标对比)——项目学习记录
目录 前言 一、数据集:图像文本,部分选取于DeepFashion 二、优化一,img2img 三、优化二,微调sd参数 四、优化三,dreamshaper优化 五、优化四,sdv1.5contronet 六、问题探索历程 1. 从 SDXL 到轻量化模…...
【“星睿O6”AI PC开发套件评测】在O6开发板使用gemma-2b测试CPU性能
前提条件: x64 Linux 主机:安装CMake 和 arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu radxa O6主机 1.从 Kaggle 获取模型权重和分词器 Gemma 3 2B 模型文件:访问 Kaggle 上的 Gemma 模型页面 https://www.kaggle.com/mode…...
数学知识——矩阵乘法
使用矩阵快速幂优化递推问题 对于一个递推问题,如递推式的每一项系数都为常数,我们可以使用矩阵快速幂来对算法进行优化。 一般形式为: F n F 1 A n − 1 F_nF_1A^{n-1} FnF1An−1 由于递推式的每一项系数都为常数,因此对…...
3DMax中模型解组
1、从网上下载下来的模型是一个整体,需要解开查看每个样式 2、解开组...
链路聚合+vrrp
1.链路聚合 作用注意事项将多个物理接口(线路)逻辑上绑定在一起形成一条逻辑链路,起到叠加带宽的作用1.聚合接口必须转发速率一致。2.聚合设备两端必须一致 配置命令 方法一 [Huawei]interface Eth-Trunk 0----先创建聚合接口,…...
0 std::process::Command 介绍
std::process::Command 是 Rust 标准库中用于创建和配置子进程的主要类型。它允许你启动新的进程、设置其参数和环境变量、重定向输入/输出等。 基本用法 use std::process::Command;let output Command::new("echo").arg("Hello, world!").output().ex…...
Android 中Intent 相关问题
在回答 Intent 问题时,清晰区分其 定义、类型 和 应用场景。以下是的回答策略: 一、Intent 的核心定义 Intent 是 Android 系统中的 消息传递对象,主要用于三大场景: 2. 隐式 Intent(Implicit Intent) 三、…...
【Docker】Docker Desktop镜像存储路径设置方法
在 Docker Desktop 中设置镜像存储路径(即下载的镜像文件存放位置)取决于你的操作系统。以下是不同系统下的设置方法: Windows 系统 完全卸载后重新安装指定路径(Docker Desktop for Windows 默认使用 C:\ProgramData\Docker&…...
Spring Boot 3.x 中 WebClient 全面详解及示例
Spring Boot 3.x 中 WebClient 全面详解及示例 1. WebClient 简介 定义:Spring 5 引入的响应式 HTTP 客户端,用于替代 RestTemplate(已弃用),支持异步非阻塞的 HTTP 请求。核心特性: 支持所有 HTTP 方法&a…...
将图片按照指定大小批量进行裁剪(可设置步长_python)
将图片按照指定大小批量进行裁剪(可设置步长_python) import os from PIL import Image# 设置更高的图像大小限制,禁用解压炸弹检查 Image.MAX_IMAGE_PIXELS None # 禁用解压炸弹检查def crop_image(image_path, block_size(640, 640), step_size(340, 340)):# 打…...
设计模式 --- 原型模式
原型模式是创建型模式的一种,是在一个原型的基础上,建立一致的复制对象的方式。这个原型通常是我们在应用程序生命周期中需要创建多次的一个典型对象。为了避免初始化新对象潜在的性能开销,我们可以使用原型模式来建立一个非常类似于复印机的…...
工作经验记录
坑 部门例会上:跨级暴露问题.部门例会上:说话没有条理,周报写得好,但是表达效果不同.领导直接要求的任务没有当时推进:需考虑GTD清单.不要马后炮领导签字要按顺序 会议上 发言有条理问题不要越级暴露不要强调过程 对同事 对领导 领导同意的文件最好当日通过. 对供应商 不…...
Unity中基于2.5D的碰撞系统
在2.5D游戏中实现精确的碰撞检测是一个关键挑战,因为我们需要在视觉上有深度感的同时保持游戏逻辑的准确性。下面我将详细解析2.5D碰撞系统的实现方法。 1. 2.5D碰撞的核心问题 1.1 Z轴深度与碰撞的关系 视觉表现:物体通过Y轴位置影响Z轴排序ÿ…...
设计模式-命令模式详解
命令模式详解及真实场景解决方案 模式定义 命令模式是一种行为设计模式,将请求封装为独立对象,包含执行操作所需的所有信息。通过这种方式,可以实现请求的参数化、队列管理、撤销/重做等高级功能,同时解耦请求发送者与接收者。 …...
基于Python(Django)+SQLite 实现(Web) 点菜管理系统
点菜管理系统 课程设计任务与要求 1、任务 题目:点菜管理信息系统 问题描述: 随着网络的迅速发展,越来越多的人开始接受甚至时依赖了网络营业的这种交易形式,传统的点菜模式不仅浪费时间,效率低下,而且…...
泰鸿万立上市:加强产品规划和前瞻性研发 打造优质汽车零部件制造商
4月9日,浙江泰鸿万立科技股份有限公司(股票简称“泰鸿万立”,股票代码“603210”)正式登陆上交所主板。 招股书显示,泰鸿万立主营业务为汽车结构件、功能件的研发、生产与销售。经过十余年发展,公司拥有了…...
Charles的安装和使用教程
Charles抓包工具与Sniff Master在Windows上的安装与使用指南 1. Charles抓包工具安装 1.1 下载Charles 进入Charles官网(https://www.charlesproxy.com/download/)下载最新版本的安装包 1.2 安装与激活 正常安装后,打开会提示试用版30天限制进入授权码生成页面…...
论文阅读笔记:Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching
论文阅读笔记:Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching 1 背景2 创新点3 方法4 模块4.1 基础和问题描述4.2 自适应多模态概率模型4.3 主模态视差估计器 5 效果6 结论 1 背景 尽管深度学习在立体匹配方面取得了巨大成功,但恢复准确…...
JavaScript学习教程,从入门到精通,JavaScript 运算符及语法知识点详解(8)
JavaScript 运算符及语法知识点详解 一、JavaScript 运算符 1. 算术运算符 用于执行数学运算: 加法- 减法* 乘法/ 除法% 取模(余数) 递增-- 递减** 幂运算(ES6) let a 10, b 3; console.log(a b); // 13 conso…...
聊聊Spring AI的ETL Pipeline
序 本文主要研究一下Spring AI的ETL Pipeline DocumentReader org/springframework/ai/document/DocumentReader.java public interface DocumentReader extends Supplier<List<Document>> {default List<Document> read() {return get();}}有TextReader…...
spark架构和RDD相关概念
运行架构: Spark采用master - slave结构,Driver作为master负责作业任务调度,Executor作为slave负责实际执行任务。 核心组件 Driver:执行Spark任务的main方法,将用户程序转化为作业,在Executor间调度任务&…...
Cloud Kernel SIG 季度动态:发布ANCK 6.6-003版本,支持一测多证
Cloud Kernel SIG(Special Interest Group):支撑龙蜥内核版本的研发、发布和服务,提供生产可用的高性价比内核产品。 01 SIG 整体进展 发布 ANCK 6.6-003 版本。 一测多证流程建立。 OOT 驱动基线更新。 海光平台适配进展更新…...
【11】数据结构之基于线性表的查找算法
目录标题 平均查找长度ASL(Average Search Length)顺序表查找法折半查找法索引顺序查找法 平均查找长度ASL(Average Search Length) 定义:为确定元素在列表中的位置,需要和给定值进行比较的关键字个数的期望值,称之为查找算法成功时的平均查…...
铼赛智能Edge mini斩获2025法国设计大奖 | 重新定义数字化齿科美学
铼赛智能(RAYSHAPE)革命性新品——椅旁3D打印机Edge mini荣获2025年法国设计奖(FRENCH DESIGN AWARDS,简称FDA)产品设计类大奖。作为全球工业设计领域最具影响力的奖项之一,这一殊荣不仅是对产品极简美学的…...
成为一种国家战略范畴的新基建的智慧园区开源了
智慧园区场景视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界…...
Codeforces Round 1016 (Div. 3)题解
题目地址 https://codeforces.com/contest/2093 锐评 在所有题意都理解正确的情况下,整体难度不算太难。但是偏偏存在F这么恶心的题意,样例都不带解释一下的,根本看不懂题。D题也恶心,在于递归过程的拆分,需要点数学…...
安全理念和安全产品发展史
从安全理念的发展历史来看,技术与产品的演进始终围绕 “威胁对抗” 与 “业务适配” 两大核心展开。以下从七个关键阶段解析安全技术与产品的发展脉络,并结合最新实践与未来趋势提供深度洞察: 一、密码学奠基阶段(1970s 前) 安全理念:以 “信息保密” 为核心,防御手段…...
【深度学习】Downstream Model:预训练模型的下游应用与微调技术
Downstream Model:预训练模型的下游应用与微调技术 文章目录 Downstream Model:预训练模型的下游应用与微调技术1 什么是Downstream Model(下游模型)2 预训练模型与下游任务的关系3 微调技术与迁移学习微调的必要性高效迁移学习参…...
每日算法-250409
这是我今天的算法学习记录。 2187. 完成旅途的最少时间 题目描述 思路 二分查找 解题过程 为什么可以使用二分查找? 问题的关键在于寻找一个最小的时间 t,使得在时间 t 内所有公交车完成的总旅途次数 sum 大于等于 totalTrips。 我们可以观察到时间的单…...
【CSS 选择器组合规则详解】
基础选择器组合 空格:后代选择器 > 直接子元素选择器 . 类选择器 : 伪类选择器 多类选择器 .class1.class2 :多类组合 .class1 .class2 :类的所有后代 .class1 > .class2 :类的子元素特殊选择器 :nth-child() :nth-of-…...
手机静态ip地址怎么获取?方法与解析
而在某些特定情境下,我们可能需要为手机设置一个静态IP地址。本文将详细介绍手机静态IP地址详解及获取方法 一、什么是静态IP地址? 静态IP:由用户手动设置的固定IP地址,不会因网络重启或设备重连而改变。 动态IP:由路…...
NumPy对二维矩阵中的每个元素进行加减乘除和对数运算
使用NumPy对二维矩阵中的每个元素进行加减乘除和对数运算的方法如下: 1. 加减乘除运算 对每个元素进行标量运算,可直接使用算术运算符。 示例代码: import numpy as nparr np.array([[1, 2], [3, 4]])# 加法 result_add arr 5 print(&…...
基于C8051F340单片机的精确定时1S的C程序
一、前言 C8051F340单片的定时器2 是一个 16 位的计数器/定时器,由两个 8 位的 SFR 组成:TMR2L(低字节)和TMR2H(高字节)。定时器 2 可以工作在 16 位自动重装载方式、8 位自动重装载方式(两个 …...
提升Windows安全的一些措施
由简单到复杂,仅供参考 一、杀毒软件: 1、杀毒能力: https://haokan.hao123.com/v?vid3883775443252827335&pdhaokan_share 2、使用注意: 一台主机只安装一个杀毒软件就可以了 杀毒软件会误报,造成正常文件…...
中科岩创基坑自动化监测解决方案
1.行业现状 城市基坑开挖具有施工风险高、施工难度大等特点。由于地下土体性质、荷载条件、施工环境的复杂性,单根据地质勘察资料和室内土工试验参数来确定设计和施工方案,往往含有许多不确定因素,对在施工过程中引发的土体性状、环境、邻近建…...
Elasticsearch 系列专题 - 第二篇:数据建模与索引管理
在掌握了 Elasticsearch 的基本概念和操作后,本篇将重点介绍如何设计和管理索引,以及如何高效地导入和维护数据。这对于构建一个高效、可扩展的搜索系统至关重要。 1. 索引设计 1.1 如何选择合适的索引结构 索引是 Elasticsearch 的核心,设计时需考虑以下因素: 数据用途:…...
解决缓存穿透的布隆过滤器与布谷鸟过滤器:谁更适合你的应用场景?
目录 一、布隆过滤器:高效的空间节省者 1.1 布隆过滤器是什么? 1.2 工作原理 1.3 优点 1.4 缺点 1.5 适用场景 二、布谷鸟过滤器:解决删除难题的创新者 2.1 布谷鸟过滤器是什么? 2.2 工作原理 2.3 优点 2.4 缺点 2.5 适用场景 三、…...
OpenHarmony子系统开发 - 调测工具(一)
OpenHarmony子系统开发 - 调测工具(一) 一、bytrace使用指导 简介 bytrace是开发人员用于追踪进程轨迹、分析性能的一种工具,主要对内核ftrace进行了封装和扩展,来支持用户态的打点。通过该工具可以打开想要查看的用户态和内核l…...
Qt中的鼠标事件
1.鼠标进入事件和鼠标离开事件 1.1添加新文件 1.2ui界面 拖出一个Label控件,修改frameShape为Box,使边框更明显 1.3代码实现 #ifndef MYLABEL_H #define MYLABEL_H#include <QLabel>class myLabel : public QLabel {Q_OBJECT public:explicit m…...
MySQL JOIN详解:INNER JOIN与LEFT JOIN的选择与应用
在数据库查询中,JOIN操作是最常用也最重要的操作之一。不同的JOIN类型会导致完全不同的查询结果,正确选择JOIN类型是编写高效、准确SQL查询的关键。本文将深入探讨INNER JOIN和LEFT JOIN的区别、应用场景以及常见问题。 一、JOIN基础概念 1. 什么是JOI…...
Flink 反压下的 TCP 流控制
1. 什么是 Flink 反压和 TCP 流控制? 反压(Backpressure)是什么? 反压是分布式流处理系统中一种自我调节机制。当下游处理数据的速度跟不上上游发送数据的速度时,反压会让上游放慢发送速度,以避免系统过载…...
山东大学软件学院项目实训开发日志(7)之测试前后端本地部署
基于队长搭建的springbootvue框架,在本地进行测试搭建。 在运行后端过程中,出现下图错误: 查找后发现这个问题出现在 Maven 项目的 pom.xml 文件中,显示找不到一些依赖项。所以在此进行最简单的重新加载项目得以解决,…...
YOLOv11训练中精准率召回率与mAP@0.5的动态变化分析
目标检测模型的训练过程涉及多个关键性能指标和损失函数的变化,这些数据能够直观反映模型的收敛速度、最终精度以及改进效果。本文旨在通过绘制YOLOv11模型在训练过程中的精准率(Precision)、召回率(Recall)、mAP0.5 、…...
Windows下ElasticSearch8.x的安装步骤
下载ElasticSearch:https://www.elastic.co/downloads/elasticsearch (我下载的是目前最新版8.17.4)解压ElasticSearch 进入到ElasticSearch的bin目录下双击elasticsearch.bat 弹出控制台并开始执行,在这一步会输出初始账号和密码…...
Leetcode hot100 (day 8,9)
爬楼梯 做法一:小斐波那契数列,只要注意记忆化递归即可 class Solution { public:int dp[50];int climbStairs(int n) {if(dp[n])return dp[n];if(n2){return dp[2]2;}if(n1){return dp[1]1;}//if(dp[n])return dp[n];return dp[n]climbStairs(n-1)clim…...
LinuxSocket套接字编程
1.介绍函数使用 1.创建套接字 int socket(int domain, int type, int protocol); domain:指定协议族,如AF_INET(IPv4)或AF_INET6(IPv6)。 type:指定套接字类型,如SOCK_DGRAM&#…...
青少年编程考试 CCF GESP Python五级认证真题 2025年3月
Python 五级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 A A A B D B A D A D C A A D B 1 单选题(每题 2 分,共 30 分) 第 1 题 链表不具备的特点是( )。 A. 可随机访问任何一个元素 B. 插入、删除操作不需要移动元素 C…...
Java-对比两组对象找出发生变化的字段工具-支持枚举映射-支持时间-支持显示对应字段中文描述-嵌套list等场景
实体字段比较器(对比两组对象找出发生变化的字段工具类开发) 支持枚举映射 支持时间 支持显示对应字段中文描述 支持嵌套list等场景 下载地址: Java-对比两组对象找出发生变化的字段工具-支持枚举映射-支持时间-支持显示对应字段中文描述-嵌…...
电影舆情分析可视化平台管理端实现
电影舆情分析可视化平台管理端实现 系统概述 本系统的用户主要有三类,游客、普通用户以及电影从业人员。 面向游客和普通用户的是电影网站,系统提供一个便捷的平台,供普通用户搜索和了解电影的基本信息,支持电影预告片播放&…...
【Linux】进程信号(下)
在上一篇中,我们详细探讨了信号的预备知识和产生方式(如硬件异常、终端输入、kill命令、系统调用等)及其背后的操作系统行为。信号作为进程间异步通信的核心机制,其生命周期远不止“产生”这一环节——信号的保存与处理才是实现可…...