- 博客(111)
- 收藏
- 关注
原创 C++程序嵌入python脚本调试
在 Qt/C++ 应用程序中内嵌 Python 解释器来执行脚本是一种非常常见的架构。虽然 Python 脚本没有独立的进程,但它仍然在主体应用程序的进程内运行,本文提供了几种有效的调试方法。让一个外部的、功能强大的调试器(如 PyCharm、VS Code 的调试器)连接到内嵌在您主体软件中的 Python 解释器会话。这个过程通常被称为“远程调试”(Remote Debugging),尽管“连接”发生在同一台机器甚至同一个进程内。Github项目:embed_pythonBilibili视频演示方法。
2025-08-23 19:30:55
639
原创 求定积分常用技巧
求定积分是微积分中的重要内容,掌握一些常用技巧可以大大简化计算过程。:被积函数为两函数乘积(如多项式×指数/三角函数)。:换元后需同步调整积分限,无需回代原变量。:被积函数图像为规则图形(如圆、三角形)。:先求不定积分,再代入上下限计算差值。:被积函数含复合函数或可通过换元简化。:被积函数为周期函数(如三角函数)。:含绝对值、分段函数或特殊定义。:被积函数的原函数容易求出。:积分区间关于原点对称(如。:积分区间对称或需巧妙换元。:复杂积分拆分为简单部分。:被积函数含高次幂(如。
2025-08-03 17:40:22
768
原创 相机标定相关原理
相机标定的核心目标是确定相机的内部几何特性(内参)和外部空间位置(外参),同时补偿镜头畸变。其数学本质是通过已知的3D-2D点对应关系,求解投影方程中的未知参数。输入数据:数学模型:s[uv1]=[fxsu00fyv0001]⏟内参矩阵 K⋅[r11r12r13txr21r22r23tyr31r32r33tz]⏟外参矩阵 [R∣t][XwYwZw1]s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \underbrace{\begin{bmatrix}f_x
2025-07-26 19:43:44
810
原创 相机内外参矩阵:从3D世界坐标到2D像素坐标变换
相机参数矩阵描述了三维世界到二维图像的投影关系,分为内参矩阵(Intrinsic Matrix)和外参矩阵1. 内参矩阵(Intrinsic Matrix, K)作用:将相机坐标系下的3D点投影到图像像素坐标系(2D),描述相机自身的几何和光学特性。公式Kfxsu00fyv00010 & 0 & 1Kfx00sfy0u0v01参数含义(f_x, f_y)
2025-07-26 03:12:25
1257
原创 卷积操作尺寸计算公式
在深度学习和图像处理中,卷积操作会改变输入图像的尺寸。(dilation rate)时,卷积核的感受野会扩大,导致输出尺寸进一步变化。卷积后输出图像的高度。
2025-07-22 21:52:06
654
原创 Reid模型中的CMC和mAP评估指标详解
在行人重识别(ReID)任务中,CMC(Cumulative Matching Characteristic)和mAP(mean Average Precision)是两个核心评估指标。
2025-07-14 05:54:47
1074
原创 DeepSORT算法流程详解
DeepSORT(Deep Simple Online and Realtime Tracking)是一种多目标跟踪算法,它结合了运动信息(卡尔曼滤波)和外观特征(ReID模型)。通过这种设计,DeepSORT在复杂场景(如遮挡、外观相似目标)中显著提升了跟踪鲁棒性。
2025-07-06 18:37:52
1009
原创 卡尔曼滤波介绍
📖 **卡尔曼滤波原理简介**🔑 **核心思想**📦 **卡尔曼滤波的组成**🔍 **代码分析(`kalman_filter.py`)**🏗️ 1. 状态空间定义🔄 2. 初始化模型矩阵🚀 3. 核心方法分析🧩 **预测**🧩 **更新**📏 **门控距离(gating distance)**🧑💻 **示例代码:模拟目标运动**✅ **小结**# 状态空间 (x, y, a, h, vx, vy, va, vh)# x, y : 边框中心# a : 宽高比# h : 高度。
2025-07-06 17:58:40
665
原创 拯救闪退的PyCharm!修改两个参数解决崩溃问题
导致的CPU资源过载有关。当PyCharm尝试使用过多线程时,超频状态下的CPU可能触发系统保护机制,强制关闭进程。通过限制PyCharm的并发线程数,可显著降低CPU负载峰值,避免触发超频保护机制。,尤其是在大型项目索引、代码检查或运行调试时。根据JetBrains官方社区的分析,这类问题往往与。关键词:PyCharm自动退出、IDE崩溃、系统超频、性能优化、Registry调优。近期许多开发者反馈PyCharm在使用过程中频繁。中的日志文件,定位其他潜在原因。:若仍遇崩溃问题,建议检查。
2025-06-24 00:35:49
1380
2
原创 在Ubuntu 24.04上安装cuDNN v8.x.x兼容CUDA 11.8
通过本文的步骤,你应该已经成功在Ubuntu 24.04上安装了cuDNN v8.x.x并解决了缺失问题。手动安装:使用Tar包而非Deb包符号链接:解决ldconfig的"not a symbolic link"错误环境配置:正确设置LD_LIBRARY_PATH深度学习环境配置虽复杂,但掌握这些技巧后,你将能轻松应对各种版本兼容性问题。如果有其他问题,欢迎在评论区留言讨论!实用命令速查# 查看CUDA版本# 查看cuDNN版本# 检查库文件链接资源链接。
2025-06-17 09:39:25
1277
1
原创 Git克隆中断怎么办?继续克隆Hugging Face大型项目的完整指南
在克隆Hugging Face上的大型AI模型仓库时,你是否遇到过网络中断导致克隆失败的情况?本文教你如何从中断处继续克隆,避免重新下载整个仓库!操作类型命令用途基础恢复继续下载中断的仓库LFS恢复继续下载大模型文件网络优化配置防止网络超时中断错误处理解决EOF错误掌握这些技巧后,你再也不用担心克隆大型AI模型仓库时网络中断的问题了!无论是Hugging Face上的BERT、GPT还是Stable Diffusion模型,都可以高效可靠地完成克隆。实践出真知。
2025-06-17 03:27:47
1041
原创 强化学习系列——PPO算法
强化学习中PPO(Proximal Policy Optimization)是一种先进的策略梯度方法,其核心思想是通过限制策略更新的幅度来稳定训练过程。PPO结合了优势函数(advantage function)以及off-policy 训练思想(重要性采样(importance sampling))。推荐参考视频 零基础学习强化学习算法:ppo策略优化目标(on-policy) 策略优化的目标是最大化期望累积奖励:J(θ)=Eτ∼πθ[∑t=0Tγtr(st,at)]J(\theta) = \mathb
2025-06-12 02:52:59
1000
原创 DDPM优化目标公式推导(详细)
总体推导请参考DDPM优化目标公式推导以下完整推导从初始 VLB 表达式出发,逐步简化为最终形式:VLB=Eq[logpθ(x0∣x1)]−∑t=2TEq[DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))]−DKL(q(xT∣x0)∥p(xT))\boxed{\text{VLB} = \mathbb{E}_{q} \left[ \log p_\theta(\mathbf{x}_0 | \mathbf{x}_1) \right] - \sum_{t=2}^T \mathbb{E}_{q} \l
2025-06-08 20:12:00
1135
原创 DDPM优化目标公式推导
DDPM(Denoising Diffusion Probabilistic Models)的优化目标推导基于变分下界(Variational Lower Bound, VLB) 或 证据下界(Evidence Lower Bound, ELBO)。以下是详细推导过程:xt−1,βtI)反向过程(生成过程):学习参数化的马尔可夫链:pθ(x0:T)=p(xT)∏t=1Tpθ(xt−1∣xt),pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))p_\theta(\math
2025-06-07 23:54:32
814
原创 RCNN系列算法发展脉络
RCNN系列是深度学习目标检测算法的奠基之作,从RCNN到Faster RCNN的演进,不仅提高了检测速度和精度,还优化了模型的端到端训练能力。Mask RCNN则使得目标检测迈向了实例分割的新时代。尽管在实时检测场景中YOLO系列更占优势,但在精度要求较高的任务中,RCNN系列依旧具有强大竞争力。
2025-05-21 01:02:12
879
原创 YOLOv1到YOLOv11全解析:一文搞懂11个版本升级路线!
YOLO(You Only Look Once)是目标检测领域最具影响力的算法家族之一,从最初的 YOLOv1 到最新发布的 YOLOv11,十年间持续进化,广泛应用于安防监控、无人驾驶、工业质检、移动端部署等场景。,助你在面试、论文阅读、项目实战中快速定位和选择合适的版本!本篇文章将带你一次性掌握 YOLO 的。精度与速度的平衡非常优秀。
2025-05-20 19:16:15
1153
原创 PyTorch 之 torch.distributions.Categorical 详解
掌握这个类的用法,能让你在强化学习、自然语言处理等诸多领域更加得心应手地构建和训练模型。在深度学习的诸多任务中,我们常常需要处理离散概率分布,比如在自然语言处理中对词汇表中的单词进行采样,或者在强化学习中从策略网络输出的动作概率分布中选择动作。本文将深入讲解这个类的用法,帮助你在实际项目中更好地利用它。方法计算分类分布的熵,熵反映了分布的不确定性。是一个元组,用于指定采样的样本数量和形状。默认为空,表示采样一个样本。方法枚举分布的支持集,即所有可能的类别索引。在语言模型中,模型会预测下一个单词的概率分布。
2025-05-20 17:40:41
1046
原创 强化学习基础原理详解与核心公式
强化学习融合了控制论、博弈论、运筹学与机器学习等多个领域的思想,是构建智能体的一种重要方式。理解其基础原理和核心公式,是学习深度强化学习、AlphaGo、自动驾驶等高阶应用的关键第一步。深度强化学习(DQN、DDPG、PPO、A3C)策略梯度的推导与实现强化学习的代码实战(基于Python和PyTorch)
2025-05-20 04:06:13
1219
原创 强化学习系列——时序差分学习(SARSA与Q-Learning)
强化学习环境一般建模为一个马尔可夫决策过程(MDP)SAPRγSAPRγSS:状态空间AA:动作空间Ps′∣saP(s'|s,a)Ps′∣sa:状态转移概率RsaR(s,a)Rsa:奖励函数γ∈01γ∈01:折扣因子目标是学习一个策略π\piπ下的状态值函数或状态-动作值函数:VπsEπ∑t0∞γtRt1∣S0sVπsEπt0∑∞γtRt1。
2025-05-20 03:39:43
1022
原创 条件生成模型介绍
条件生成(Conditional Generation)是指在生成模型中,引入额外的条件信息(如类别标签、文本描述、图像等)来指导生成过程,使模型能够生成符合特定语义或属性的样本。它是从无条件生成(只学习pxpx)扩展到学习条件分布px∣cpx∣cx\mathbf{x}x:生成的样本(如图像、文本、音频等)c\mathbf{c}c:条件信息(如类别标签、文字、风格等)模型类型条件生成方法条件信息注入方式GAN标签输入 G 和 Dconcat 或嵌入VAE。
2025-05-19 04:07:51
1233
原创 分类器引导的条件生成模型
分类器引导的条件生成模型通过外部分类器的梯度信号,在不修改生成模型结构的情况下实现可控生成。其核心在于贝叶斯框架下的梯度融合,既保留了生成模型的多样性,又增强了条件指向性。实际应用中需注意分类器与生成模型的协同性,并通过实验调整参数以达到最优效果。
2025-05-19 04:01:46
1124
原创 扩散模型(Diffusion Model)介绍
扩散模型(Diffusion Model)是一类生成模型,其基本思想是通过模拟数据的逐步“扩散”与“去扩散”过程,学习数据分布,从而生成新的样本。扩散模型近年来在图像生成(如Stable Diffusion)等任务中表现出色。生成质量高;训练稳定;可与其他条件灵活结合。给定时间步序列t0Tt1⋯tN0t0Tt1⋯tN0,设定噪声调度表αˉtαˉt,采样过程如下:xt0∼N0Ixt0∼N0I。
2025-05-19 03:56:12
983
原创 生成对抗网络(GAN)原理
生成对抗网络()是由等人在 2014 年提出的一种深度生成模型。它通过两个神经网络之间的博弈(对抗)过程,学习数据的生成分布,从而生成以假乱真的数据(如图像、语音等)。GAN 是近年来生成模型领域的重要突破,广泛应用于图像生成、风格迁移、图像修复等任务中。
2025-05-19 01:09:33
804
原创 YOLOv5目标构建与损失计算
YOLOv5作为单阶段目标检测的经典算法,其高效的检测性能离不开精心设计的训练目标构建和损失计算策略。本文将深入解析YOLOv5源码中build_targets目标构建函数和ComputeLoss损失计算类的实现原理,揭开模型优化背后的关键技术。该函数核心思想是将每个目标分配到最合适的特征图层、网格位置和锚点尺寸,同时考虑中心点偏移以增加匹配机会,最终构建用于计算分类和定位损失的训练目标。该实现通过动态目标分配、多尺度损失平衡和先进的IoU计算方式,有效提升了YOLOv5的检测性能。
2025-05-18 23:36:41
907
原创 目标检测评估指标mAP详解:原理与代码
在目标检测任务中,mAP(mean Average Precision)是最重要的评估指标之一。精确率(Precision)与召回率(Recall)的平衡关系PR曲线的绘制原理AP(Average Precision)的计算方法多类别场景下的mAP计算附完整代码实现与逐行解析。
2025-05-18 18:46:30
996
原创 PyTorch实现三元组损失Triplet Loss
三元组损失(Triplet Loss)是深度学习中用于学习特征表示的重要损失函数,最初在FaceNet论文中提出,后被广泛应用于人脸识别、行人重识别(ReID)等任务。其核心思想是通过锚点样本(Anchor)、**正样本(Positive)和负样本(Negative)**的三元组,让同类样本的特征距离更近,不同类样本的特征距离更远。margin:间隔参数,控制正负样本对之间的最小距离:PyTorch内置的排序损失函数。
2025-05-17 09:48:01
1315
原创 PyTorch实现CrossEntropyLoss示例
在深度学习的分类任务中,交叉熵损失函数被广泛应用。然而,传统的交叉熵损失容易导致模型对预测结果过于自信,从而引发过拟合问题。本文介绍一种改进方法——标签平滑(Label Smoothing),并通过PyTorch实现该技术。代码源自计算机视觉领域的经典论文《Rethinking the Inception Architecture for Computer Vision》,可有效提升模型的泛化能力。self.eps = eps if label_smooth else 0 # 平滑因子。
2025-05-17 09:31:20
1106
原创 目标检测中的IoU损失函数
IoU损失函数的演进体现了目标检测领域对几何关系建模IoU → GIoU:解决梯度消失问题;:引入距离惩罚,加速收敛;:细化长宽比优化,提升精度。讨论话题在您的实际项目中,哪种IoU损失效果最佳?对于旋转目标检测,如何改进IoU损失?
2025-05-14 00:15:52
633
原创 Focal Loss 原理详解及 PyTorch 代码实现
Focal Loss 是为解决类别不平衡问题设计的损失函数,通过引入 gamma 参数降低易分类样本的权重,使用 alpha 参数调节正负样本比例。在目标检测等类别不平衡场景中表现优异。"""应用 Focal Loss 通过 gamma 和 alpha 参数改进 BCEWithLogitsLoss 以处理类别不平衡"""self.loss_fcn = loss_fcn # 必须使用 nn.BCEWithLogitsLoss()self.gamma = gamma # 调节难易样本权重的指数参数。
2025-05-13 12:24:47
900
原创 深度可分离卷积:原理、计算优化
显著降低了计算成本和参数数量。然而,对其计算过程和公式的理解常存在误区,本文将通过修正错误并提供严格推导,阐明其核心原理。:正确理解深度卷积的维度与计算关系,是准确实现和优化模型的关键。原描述中因维度混淆导致的公式错误,可能误导读者对计算效率的评估,修正后更符合实际应用场景。深度可分离卷积(Depthwise Separable Convolution)是一种高效的卷积操作,通过将标准卷积拆解为两步操作——标准卷积的每个输出位置需对输入张量的。个元素进行乘加操作。每个通道独立计算,单通道计算量为。
2025-05-09 16:04:28
1287
原创 矩阵求导常用公式解析:标量、向量与矩阵的导数计算
矩阵求导是机器学习、优化理论中的重要数学工具。本文将系统推导标量对向量、向量对向量、标量对矩阵的求导公式,并解析分子布局与分母布局的核心差异。场景:计算 ∂z∂x\frac{\partial \mathbf{z}}{\partial \mathbf{x}}∂x∂z,其中 z=Wx+b\mathbf{z} = \mathbf{W}\mathbf{x} + \mathbf{b}z=Wx+b分子布局:∂z∂x=W(维度 m×n)\frac{\partial \mathbf{z}}{\partial \mat
2025-05-03 04:04:36
1303
原创 Traefik应用:配置容器多个网络时无法访问问题
Traefik容器所在的网络也是traefik-public,而配置容器服务使用了两个网络,一个是default,另一个是traefik-public,导致部署后一直无法访问容器服务。
2025-04-09 23:59:37
597
原创 Gunicorn+Eventlet无法收到SocketIO发送的消息
遇到的emit消息无法发送到客户端的问题,可能由多种配置或兼容性问题导致。1. 确保正确安装依赖库问题原因:未安装eventlet导致 Flask-SocketIO 回退到同步模式,无法处理WebSocket请求。# 安装 eventlet pip install eventlet2. 检查 Gunicorn 启动命令问题原因:未指定eventlet作为 worker class,或 worker 数量过多(WebSocket 通常需单线程)。
2025-03-25 16:25:04
820
原创 WSL2 Ubuntu安装Cuda 11.8
根据指示完成安装。PATH:将 CUDA 的可执行文件路径添加到系统路径。:将 CUDA 的库文件路径添加到动态链接库路径。nvcc --version # 应输出 11.8 nvidia-smi # 查看驱动和 GPU 状态 /usr/local/cuda-11.8/extras/demo_suite/deviceQuery # 运行测试程序。
2025-03-15 23:38:13
1196
原创 WSL2 Ubuntu安装GCC不同版本
在 WSL2 的中安装GCC 7.1需要手动操作,因为该版本较旧且 Ubuntu 24.04 的默认仓库已不再提供。
2025-03-15 22:45:13
1744
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人