- 博客(2165)
- 资源 (12)
- 收藏
- 关注
原创 模型属性的动态配置和超参数缩放
这段代码负责模型属性的动态配置和超参数缩放,是YOLOv5训练中的关键调优步骤。它根据模型结构、类别数量和图像尺寸,智能调整损失函数的超参数,确保训练的稳定性和效果。
2025-12-25 08:12:03
123
原创 C3模块在backbone和neck中区别
维度主要任务特征提取(Feature Extraction)特征融合(Feature Fusion)输入特征单一来源,同分布多来源拼接,异构(不同 stage)通道变化同 stage 内 Bottleneck 通道一致Concat 导致输入通道 ≠ 输出通道残差合理性高(近似恒等映射成立)低(融合后无明确恒等关系)梯度需求需深层梯度流动(防消失)梯度已通过 FPN/PAN 路径传播计算效率可接受额外残差开销追求轻量化,避免冗余实验效果提升精度与收敛性关闭后精度不变或略优,速度提升。
2025-12-25 08:11:14
419
原创 IPython 全面详解
IPython(Interactive Python)是一个为 Python 语言设计的增强型交互式计算环境。它最初由 Fernando Pérez 于 2001 年开发,目标是提供比标准 Python REPL(Read-Eval-Print Loop)更强大、更高效、更人性化的交互体验。REPL 对比标准 Python REPL:功能基础,无自动补全、无语法高亮、无历史搜索。IPython:支持智能补全、对象自省、魔法命令、内联绘图、Shell 集成、并行计算等。
2025-12-24 08:19:02
814
原创 深度学习特征融合(feature fusion)操作详解
特征融合是指在深度神经网络中,将来自不同来源(如不同网络分支、不同模态、不同时间步、不同空间尺度或不同抽象层级)的特征表示进行有策略地整合,以生成更具判别性、鲁棒性和语义丰富性的联合特征表示。其核心目标是最大化信息互补性,最小化信息冗余与噪声干扰。关键问题:如何“有效”融合?——这取决于任务需求、数据特性、计算资源和融合机制的设计。✅ 是否对齐了空间/通道/模态?✅ 融合方式是否与任务匹配?(检测需定位+语义 → 多尺度融合)✅ 是否引入可学习机制提升适应性?✅ 是否控制了计算开销?
2025-12-24 08:13:50
283
原创 使用 CMake 创建 C++ 静态库(简化版)
支持 Windows、Linux、macOS。:最少的 CMake 配置,专注于核心功能。:使用 C++ 类和静态方法。:清晰的 API 设计。
2025-12-23 08:08:12
7
原创 深度学习中Upsample(上采样)模块详解
维度说明功能将低分辨率特征图空间上采样,用于多尺度特征融合位置Neck 的 PANet 结构中,共两次实现参数,无学习参数设计动机快速、无伪影、保留特征锐度协同模块Concat(拼接)、C3(融合)不可替代性移除将严重损害小目标检测性能工程友好性支持 ONNX/TensorRT,部署简单。
2025-12-23 08:07:35
384
原创 nvidia-smi.exe 输出的深度解读与延伸知识
nvidia-smi查询 GPU 硬件状态(温度、功耗、频率、显存等)监控 GPU 利用率和进程使用情况配置 GPU 运行参数(如功耗上限、计算模式、ECC 开关等,在支持的设备上)管理 MIG(Multi-Instance GPU)实例(仅限 A100/H100 等数据中心卡)你当前的系统(GTX 1080 Ti + Driver 560.94 + CUDA 12.6)处于良好状态温度低、功耗低、显存充足已有 AI 相关进程(Ollama)运行。
2025-12-22 08:11:55
134
原创 特征拼接在 FPN 架构中的具体作用
特征拼接是 FPN/PANet 架构中实现“语义-细节协同”的关键机制。它通过无损融合高层语义与低层空间信息,构建出多尺度、高表达力的特征金字塔,从而显著提升模型对全尺度目标(尤其是小目标)的检测能力。在 YOLOv5 等现代检测器中,拼接因其信息保留完整、实现简单、性能优越,已成为特征融合的事实标准。信息无损融合:保留两路特征的全部信息,交由后续网络智能组合;多尺度表征增强:使每一层金字塔特征兼具“高分辨率”与“高语义”;小目标检测基石:为 P3 等高分辨率层注入判别性语义,减少误检漏检;
2025-12-21 07:44:58
233
原创 Makefile 方式 C++ 动态库 + 测试(简化版)
使用 Clang 编译器# 使用特定版本的 GCCMathUtils: 数学工具函数(加减乘除、阶乘、质数判断、最大公约数等): 字符串处理工具(大小写转换、反转、分割、匹配等)Vector: 数学向量类(基本运算、点积、模长计算等): 配置管理类(键值对存储、文件持久化)工具函数: 版本信息、时间戳等实用功能这个 Makefile 配置提供了完整的 C++ 动态库开发环境,使用传统的 Makefile 而不是复杂的构建系统,简单直观且功能完备。
2025-12-20 08:59:55
19
原创 YOLOv5中的SPP详解
综上所述,YOLOv5中的SPP模块是一个融合了经典思想与工程实践的优秀设计。它位于主干网络末端,通过并行多尺度最大池化与特征拼接,在不降低空间分辨率的前提下,实现了局部特征与全局上下文信息的有效融合,并大幅提升了网络的感受野。这一设计显著增强了模型对于图像中不同尺度目标的识别能力和鲁棒性。而其后继者SPPF模块,则通过结构上的巧妙改变,进一步优化了计算效率,体现了YOLOv5系列在追求高性能的同时,对推理速度的持续关注与优化。理解SPP/SPPF模块,是深入掌握YOLOv5及其目标检测技术精髓的关键一环。
2025-12-20 08:59:22
168
原创 深度学习训练时seed的重要性
计算机中的“随机”其实是伪随机所有随机数都由确定性算法(如 Mersenne Twister)生成,只要初始种子相同,后续生成的“随机数序列”就完全一致。print([random.randint(1, 10) for _ in range(3)]) # [6, 1, 9] ← 完全一样!关键点相同的 seed → 相同的随机数序列 → 相同的“随机”行为seed。
2025-12-19 08:41:53
89
原创 YOLOV5分割模型yaml文件详解
模型类型:YOLOv5s-seg(实例分割版本)输入分辨率:通常为 640×640(可变)输出检测框(x, y, w, h, conf, cls)实例掩码(通过原型图 + 线性组合生成)适用场景:需要同时做目标检测和像素级分割的任务(如自动驾驶、医学图像分析等)
2025-12-19 08:18:07
525
原创 YOLO深度学习模型的训练参数配置与优化
-quad项目说明目的加速训练,提升 GPU 利用率原理4 图拼接为 1 图,等效增大 batch推荐小 batch、资源受限场景慎用小目标多、高精度要求任务如果你的训练速度慢、batch size 小,可以尝试加上--quad;但若追求最高 mAP,建议关闭它。YOLOv5 的模型结构(如 backbone、neck、head 的层数、通道数等)不是硬编码在 Python 代码中,而是通过.yaml文件声明。backbone:head:...类别数nc模型缩放系数(
2025-12-18 17:18:56
151
原创 详细解析 C++ 动态库在 Windows 平台上的特殊性
特性Windows 平台细节与其他平台(如Linux)的对比文件格式PE(Portable Executable)格式,扩展名为.dllELF 格式,扩展名为.so导入库必须使用.lib文件进行隐式链接直接使用.so文件进行链接,无需额外的导入库符号可见性使用显式控制使用编译器属性(如)和链接器选项ABI 稳定性差,严重依赖编译器版本和运行时库相对较好,GCC/Clang 的 C++ ABI 在主要版本内较稳定加载方式用于显式链接dlopendlsym用于显式链接入口点。
2025-12-18 08:14:04
131
原创 高层语义信息概念详解
高层语义信息是指:在特定任务或上下文中,能够反映对象本质属性、功能、意图、关系或抽象概念的信息。在图像中,“这是一只正在奔跑的狗” 是高层语义;而“RGB 像素值为 (120, 80, 60) 的区域” 是低层信息。高层语义信息 = 数据 + 上下文 + 知识 + 目的它是智能系统实现“理解”而非“感知”的关键。未来的人工智能若要真正接近人类认知水平,必须跨越从“特征提取”到“意义建构”的鸿沟,而高层语义正是这座桥梁的核心支柱。观点说明YOLOv5 输出的类别标签是高层语义信息的一种形式。
2025-12-18 08:13:10
399
原创 Yolov5网络架构中SPPF 层的核心价值
SPPF 是 YOLOv5 中一个轻量但高效的“上下文增强器”位于主干网络末端(P5 层);通过快速金字塔池化,低成本地融合多尺度上下文信息;显著提升模型对大目标、复杂场景、尺度变化的适应能力;是 YOLOv5 在保持高速度的同时实现高精度的关键设计之一。 主要负责“看得更深它像是一个不断深入钻研、理解图像内容本质(“是什么”)的专家。 主要负责“看得更全它像是一个站在高处、拥有广角视野的观察者,能够同时把握细节、局部和全局(“在哪里”、“有多大”、“周围有什么”)。
2025-12-17 17:12:08
287
原创 四大类型转换总结对比
失败时返回 nullptr(指针)或抛出异常(引用)当必须使用时,选择最具体、最安全的转换运算符。添加/移除 const/volatile。修改真正的 const 对象是未定义行为。 - 用 C++ 风格替代。 - 所有类型转换都要测试。 - 好的设计减少转换需求。 - 处理大部分转换需求。 - 提供运行时安全性。 - 仅在必要且安全时。 - 特别是危险的转换。不能转换不相关指针类型。 - 满足大部分需求。 - 知道你在做什么。相关类型间的明确转换。 - 作为最后手段。
2025-12-17 08:11:25
125
原创 CMake 跨平台 C 兼容 C++ 动态库 + 测试(简化版)
这个配置提供了完整的跨平台 C 兼容 C++ 动态库开发环境,包含构建、测试和错误处理的所有必要组件。:Windows、Linux、macOS 全支持。:包含 C 和 C++ 测试程序。:完整的错误代码和描述。:清晰的 API 设计。
2025-12-16 08:14:38
170
原创 CMake 跨平台 C++ 动态库 + 测试(简化版)
这个配置提供了完整的跨平台动态库开发环境,包含构建、测试和安装的所有必要组件。:Windows、Linux、macOS 全支持。:使用目标属性而不是全局变量。:包含单元测试和集成测试。:可选择是否构建测试。
2025-12-16 08:14:16
24
原创 C++ 中最常用的类型转换运算符:static_cast
在 C++ 项目中,static_cast 通常占所有类型转换的 70-80%,是最核心、最常用的类型转换工具。:比 C 风格转换更安全,比其他 C++ 转换更常用。(int↔double, enum↔int等):涵盖日常编程的大部分类型转换需求。:编译时检查,避免运行时错误。:编译时处理,无运行时成本。(能解决 80% 的问题)日常类型转换、类层次转换。与旧API交互、重载函数。:涵盖大部分类型转换场景。:明确告诉阅读者转换目的。:在编译时进行类型检查。:明确表达程序员意图。★★★★★ (最高)
2025-12-15 08:14:55
158
原创 PyTorch Data Loading 组件详解
组件层级主要用途是否必须使用频率Dataset底层定义数据接口是每次创建新数据集DataLoader中层批量加载数据是每次训练dataloader模块内部包含DataLoader实现否很少直接使用distributed模块高层分布式训练支持仅分布式训练分布式训练时。
2025-12-15 08:11:48
859
原创 C3 模块与普通 Bottleneck 堆叠区别
维度普通 Bottleneck 堆叠C3 模块设计理念残差学习CSP + 特征分治信息路径单一路径双路径(主干 + bypass)融合方式相加(Add)拼接(Concat)+ 卷积计算效率较低高(通道减半)特征保留弱(多次非线性)强(直连保留原始信息)梯度传播单一主路径多样化、更稳定任务适配通用(分类为主)专为目标检测优化可扩展性有限极强(即插即用各种模块)实际性能基准线显著优于(尤其在小目标和效率方面)
2025-12-14 09:09:49
35
原创 const_cast 详解及使用场景
是 C++ 中最危险的类型转换之一,必须谨慎使用。在大多数情况下,有更好的替代方案。 的类型转换运算符。它是唯一能够移除 const 属性的 C++ 风格转换。:尽量少用,优先考虑 mutable 和更好的设计。是 C++ 中专门用于添加或移除变量的。你确切知道对象不是真正的 const。(在 const 函数中修改缓存):充分测试,确保不会导致未定义行为。转换后不会违反 const 正确性。(需要移除 const 限定符):添加注释说明为什么必须使用。有充分的理由不使用其他方法。(确认不会修改数据)
2025-12-14 09:09:22
32
原创 reinterpret_cast详解及使用场景
就像C++类型系统中的"逃生舱",只有在真正需要逃离类型系统时才使用它,而且要知道这很危险。:使用C++标准库功能(std::bit_cast, std::memcpy):使用其他类型转换(static_cast, dynamic_cast):使用reinterpret_cast,但要小心谨慎。:尽量避免使用reinterpret_cast。:仅在低级编程、与C接口、序列化等场景使用。:只重新解释位模式,不进行任何转换。:如果必须使用,要进行充分测试。:在安全的包装函数中使用。:解释为什么必须使用。
2025-12-13 08:53:53
32
原创 COCO数据集详解 & YOLO使用指南
全称:Common Objects in Context特点:大规模、丰富标注、复杂日常场景应用:目标检测、分割、关键点检测、图像描述等📊 数据集统计 数据集划分图片数量实例数量标注文件训练集118,287860,001instances_train2017.json验证集5,00036,781instances_val2017.json测试集40,670未公开标注image_info_test2017.json注意:COCO2017是常用版本,之前有2014版本(训练集
2025-12-13 08:53:16
61
原创 PASCAL VOC数据集详解 & YOLO使用指南
合并VOC2007和VOC2012增加数据量检查标注错误和缺失文件生成训练/验证/测试集时注意数据分布。
2025-12-12 08:14:03
127
原创 dynamic_cast 详解及使用场景
提供了运行时的类型安全,但代价是性能开销。在设计系统时,应优先考虑使用虚函数和多态,只在必要时使用。简单的类型转换(用 static_cast)是 C++ 中专门用于处理。安全转换的操作符,是唯一在。进行类型检查的转换操作符。查询对象是否支持特定接口。可以用虚函数替代的场景。处理未知的派生类对象。
2025-12-12 08:02:07
106
原创 使用 Qt 创建兼容 C++ 的 C 语言静态库
这个 Qt 项目配置提供了简单而强大的方式来构建和管理 C 语言静态库,同时确保与 C++ 的完全兼容性。:在构建库后自动编译 C 和 C++ 测试程序。:支持 Windows、Linux、macOS。:可以轻松在其他 Qt 项目中使用。:自动处理不同构建配置。确保 C++ 兼容性。
2025-12-11 08:12:50
116
原创 深度学习常用数据集的分类解析
1400万图片,2万类别(常用子集:ILSVRC 2012,1000类)最新趋势是使用大规模多模态数据(图文/视频-文本对)进行跨模态预训练。10类(CIFAR-10)或100类(CIFAR-100)物体图片。20个常见物体类别,含目标检测/分割/动作识别标注。900万图片,1900万标注框,600个类别。电影评分数据集(1-5分),包含用户属性。:分析数据分布(类别/人口/地理等偏差)手写数字(0-9),6万训练+1万测试。5万条电影评论,二分类(正面/负面)10万图片,物体/属性/关系密集标注。
2025-12-11 08:12:02
381
原创 virtual函数可以设置成inline吗
情况能否内联说明通过指针/引用调用虚函数❌ 不能运行时多态通过对象直接调用✅ 可能静态绑定final方法且类型确定✅ 可能编译器可确定版本构造函数中调用❌ 不能但会静态绑定到当前类最佳实践:不要将虚函数声明为inline,让编译器在可能的情况下自动优化。如果需要高性能,考虑其他设计模式(如CRTP、策略模式等)。
2025-12-10 08:17:36
144
原创 目标检测网络框架的概述
特性/流派两阶段检测器单阶段检测器Transformer检测器核心思想提名-精修一步到位,密集预测集合预测,端到端精度通常最高较高(与两阶段相当)非常高(SOTA水平)速度较慢极快中等(训练慢,推理可优化)结构复杂度较高较低低(无手工组件)典型应用对精度要求极高的场景(如遥感检测、竞赛)实时应用(视频监控、自动驾驶、嵌入式设备)前沿研究,追求简洁架构和高性能的场景如何选择?追求极致速度与部署便利:选YOLO系列(如v8, v9)。追求高精度,不关心速度:选。
2025-12-10 08:17:03
345
原创 深入详解 C++ 动态库在 Linux 平台上的特殊性
特性Linux 平台细节与 Windows 的对比文件格式ELF 格式,扩展名为.soPE 格式,扩展名为.dll导入库不需要单独的导入库,.so文件一身二职需要单独的.lib导入库进行隐式链接符号可见性默认全部导出,需用和控制默认不导出,需用显式导出版本管理通过文件名、SONAME 和符号链接实现通常通过文件名或并行程序集(Side-by-Side)实现加载方式dlopendlsym用于显式链接用于显式链接编译选项-fPIC(强制要求),-shared-LD或相应的项目设置。
2025-12-09 08:06:35
108
原创 目标检测的发展史解析
从v1到最新的v8、v9、v10,YOLO系列通过更优的主干网络、Neck(如FPN、PAN)、Head设计以及损失函数改进,不断刷新着速度和精度的平衡,成为工业界应用最广泛的检测器。基于关键点(如CenterNet、CornerNet)或点(如FCOS)的检测器,直接预测物体的中心或角点,简化了设计,成为YOLOv1之后的新一波“无锚点”浪潮。,其“提示”驱动的分割思想,也为目标检测提供了新的可能性,推动了检测与分割的融合。,速度和精度达到新的平衡,成为两阶段检测器的标杆,并统治了此后多年的研究。
2025-12-09 08:06:07
116
原创 cv::Mat完全详解
/ 数据类型枚举enum {CV_8U=0, CV_8UC1=0, // 8位无符号, 1通道CV_8UC2, // 8位无符号, 2通道CV_8UC3, // 8位无符号, 3通道CV_8UC4, // 8位无符号, 4通道CV_8S=1, CV_8SC1=1, // 8位有符号CV_16U=2, CV_16UC1=2, // 16位无符号CV_16S=3, CV_16SC1=3, // 16位有符号CV_32S=4, CV_32SC1=4, // 32位有符号。
2025-12-08 08:12:49
240
原创 目标检测架构的浅析
架构类型代表模型优点缺点适用场景两阶段精度高速度慢,结构复杂对精度要求高的科研、离线分析单阶段YOLO, SSD速度快,结构简单传统上精度略低实时检测,如视频监控、自动驾驶端到端,无需NMS,设计简洁训练收敛慢,资源消耗大前沿研究,追求新范式和高精度当前趋势端到端化:消除NMS等后处理步骤,DETR是典型代表。无锚点化:简化模型设计,使其更简洁高效。多模态融合:结合文本、深度等信息进行检测(如 Grounding DINO)。Transformer与CNN融合。
2025-12-08 08:12:22
153
原创 动态库与静态库应用场景的选择指南
核心决策原则:部署简便性 → 静态库资源共享性 → 动态库更新灵活性 → 动态库性能极致性 → 静态库内存优化 → 动态库(多进程)稳定性要求 → 静态库核心基础库:静态链接确保稳定性业务功能模块:动态库支持灵活更新插件系统:动态加载实现扩展性容器环境:根据部署目标选择选择的关键是理解你的具体需求,在部署便利性、性能要求、内存使用和更新策略之间找到平衡点。
2025-12-07 07:56:54
33
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2