自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 qt调用摄像头进行yolo的实时检测

解决方法:启用 CUDA 加速(需 FP16 模型),将推理移到单独 QThread,跳帧检测(每 2 帧一次),优化 QCamera 分辨率/帧率(640x480,15 FPS),减少 UDP 数据量(传 JSON 框坐标)并确保 fm.unmap() 释放内存。解决方法:就是在inference.cpp中改为const char* Ret = nullptr,也就是遇到char*加上const即可,inference.h和inference.cpp完整代码中进行了修改。

2025-10-26 15:07:46 1029 1

原创 c语言指针

其实也就是相当int *a=&c,int *b=&d。如果只是传进去值也就是不会对这个地址产生影响。swap(c,d);那么输出还是c:1 d:2。因为是对地址上对应的值进行修改所以会直接修改。(解址符叫法不规范但对于初学者易于理解)函数内,ptrRef指向的值:200。变为c:2 d:1也就是叫引用传递。3,把这两个地址传入交换的函数。调用函数前,p指向的值:100。调用函数后,p指向的值:200。

2025-10-22 11:33:32 123

原创 QT问题和解决方案:Unable to locate ICU library icuin58.dll

这是在windeployqt 打包遇到的问题。

2025-09-28 16:47:41 404

原创 QT多窗口跳转

4.因为我之前创建过,所以此处类名我设置为new_widget_6(建议自行改动,加深记忆),然后下一步。3.下一步(mainwindow或者widget根据自己需求,此处用mainwindow做演示)结果:可以点击相互跳转,推荐根据需求对于步骤9中的分界面处理选择隐藏或者删除。6.接下来跳转到ui,拖拽一个pushbutton,设置返回主界面按钮。1.项目新建跳过,先新建一个文件,右击add new。9.在new_widget_6.cpp中添加代码。11.依旧右击转到槽,选择clicked()

2025-09-23 17:22:41 353

原创 Dinomaly: The Less Is More Philosophy inMulti-Class Unsupervised Anomaly Detection(CVPR 2025)

Dinomaly提出了一种基于Transformer的简约框架,通过四个关键设计(可扩展的基础Transformer、噪声瓶颈、线性注意力和宽松重建约束),在多类别无监督异常检测任务中取得了显著性能提升。编码器的特征通过一个多层感知机(MLP)瓶颈层,其中内置的Dropout被激活(默认丢弃率0.2),随机屏蔽部分神经元输出。Linear Attention 天生无法聚焦局部,迫使 Decoder 依赖全局信息重建特征,避免逐像素完美复制,从而抑制对异常区域的过强重建能力。Dropout 把随机扰动当成。

2025-08-11 17:19:31 998

原创 c++:.h文件和.cpp文件的关联

放“声明”——告诉编译器“有什么”。:放“定义”——告诉编译器“怎么干”。示例:math_utils.h(声明)math_utils.cpp(实现)main.cpp(使用)

2025-08-06 17:21:21 345

原创 labelimg安装

LabelImg 是一款免费、开源的图像标注工具,专为机器学习和计算机视觉任务设计。它支持矩形框(Bounding Box)标注,可导出 PASCAL VOC 或 YOLO 格式,兼容 Windows、Ubuntu、macOS。界面简洁,用鼠标拖拽即可完成标注,适合快速制作目标检测数据集。(注意不是labelme)一定要在所创建的环境中使用labelimg命令。然后输入labelimg即可打开。

2025-07-31 11:11:35 599

原创 伪装目标检测: Shift the Lens: Environment-Aware Unsupervised Camouflaged Object Detection(CVPR 2025)

本研究提出了一种全新的无监督伪装目标检测方法 EASE,首次将检测思路从“寻找伪装目标”转变为“剥离环境背景以揭示目标”。通过构建纯环境原型库(DiffPro)并设计多层次检索机制(包括全局-局部检索G2L、自检索SR和自适应阈值KDE-AT),EASE能够在无需训练与标注的情况下,实现对伪装目标的高效定位与分割。大量实验表明,EASE在多个COD数据集上显著优于现有无监督方法,并在部分场景下达到甚至接近全监督方法性能,展现出极强的通用性与实用价值。

2025-06-17 18:10:06 1221 2

原创 伪装目标检测:UCOD-DPL: Unsupervised Camouflaged Object Detection via Dynamic Pseudo-label LearningCVPR2025

UCOD-DPL》提出了一种全新的无监督伪装目标检测方法,通过教师-学生架构、动态伪标签融合(APM)、前背景对抗解码器(DBA)和“Look-Twice”小目标精细化机制,解决了现有方法中伪标签噪声大、前背景混淆严重以及小目标难检测等问题。该方法在多个标准数据集上显著优于现有无监督方法,甚至超越部分半监督与全监督模型,展现出强大的检测性能与实用潜力。方法对比:a)传统 Fixed Pseudo-label 方法流程:输入无标签图像(Unlabeled)

2025-06-16 19:11:07 1211

原创 YOLO框架图

配置文件:配置文件:配置文件:后续慢慢完善

2025-06-06 10:08:16 678

原创 CamoFA: A Learnable Fourier-based Augmentation forCamouflage Segmentation(WACV 2025)

该方法通过引入条件生成对抗网络与跨注意力机制,生成上下文感知的参考图像,并在频域中自适应融合参考图像的低频幅值与原图的高频幅值,从而突出伪装目标的潜在结构。物理意义:生成图的每一个 patch(Value 的一行)会按照注意力分布分配给原图的各个 patch,最后得到一个融合了“原图结构”和“生成图纹理/语义”的中间表示。将第 i 行第 j 列的值理解为“生成图第 j 个 patch(对应 Key)对原图第 i个patch(对应 Query)的注意力分值”。​,仍然是一个 RGB 图像,尺寸 H×W×C。

2025-06-05 09:34:01 971

原创 伪装目标检测:ZoomIn and Out: AMixed-scale Triplet Network for Camouflaged Object Detection(CVPR 2022)

该方法通过多尺度特征提取(Triplet Encoder)、尺度融合模块(SIUs)与分层混合尺度解码器(HMUs)协同挖掘微弱语义差异,显著增强模型对低对比度、模糊边界目标的识别能力。尺度融合单元(Scale Integration Unit, SIU):将三个不同缩放尺度(0.5×、1.0×、1.5×)的特征整合成一个融合特征 ​,并显式建模各尺度对当前特征层的重要性。辅助尺度(0.5×、1.5×)通过插值对齐主尺度(1.0×)的分辨率;

2025-06-03 20:35:04 996

原创 深度学习pycharm debug

深度学习中,Debug 是定位并解决代码逻辑错误(如张量维度不匹配)、训练异常(如 Loss 波动)、数据问题(如标签错误)的关键手段,通过打印维度、可视化梯度等方法确保模型正常运行、优化性能,贯穿开发全流程。self.linear = nn.Linear(32, 5) # ❌ 故意设置错误 in_features。self.linear = nn.Linear(512, 5) # ✅ 修复后的定义。此刻x的shape是(8,32,4,4)但是在这个linear层。然后我们这样就不会报错了。

2025-06-02 19:13:42 385

原创 SimSiam(Exploring Simple Siamese Representation Learning)

通过同一图像的不同增强视图进行特征一致性学习,无需负样本或动量编码器。、动量编码器或大型 batch,即可通过 stop-gradient 与非对称结构稳定训练,避免特征塌陷,且对计算资源友好、实现成本低,同时在图像分类和下游任务中展现出与主流方法相当甚至更优的表现,成为自监督学习中轻量高效的代表方法。操作和对称损失函数,防止模型坍塌,同时保持结构简单。在ImageNet等任务上表现接近有监督学习,适用于轻量级视觉表征学习。这一路径的参数,以此方式进行自监督训练,从而避免输出塌陷、学到有意义的表示。

2025-05-27 10:34:11 305

原创 moco(Momentum Contrast for Unsupervised Visual Representation Learning)

MOCO(Momentum Contrast)是一种基于对比学习(Contrastive Learning)的自监督视觉表征学习方法,由Facebook AI Research(FAIR)团队于2019年提出,并在后续版本(如MoCo v2、v3)中不断优化。它的核心思想是通过构建动态的字典队列(Dictionary Queue)和动量编码器(Momentum Encoder),高效学习图像的特征表示,无需人工标注数据。:队列开始滚动更新,新特征从左侧插入,挤出最旧的特征。:每次替换最旧的2个特征(因。

2025-05-26 10:04:52 1301

原创 对比学习入门

蛋糕上的糖霜是监督学习(supervised learning),而蛋糕上的樱桃是强化学习(reinforcement learning)。这种方法常用于人脸识别、图像检索等任务,通过迫使模型学习到具有判别性的特征表示,增强同类样本的相似性和不同类样本的区分度。自监督学习能利用海量未标注数据(如互联网文本、视频),信息密度远超依赖人工标注的监督学习或稀疏反馈的强化学习。这解释了为何自监督学习(如GPT、BERT)在大模型时代成为主流——它更接近人类通过观察世界自主学习的方式。

2025-05-09 14:28:14 976

原创 十分钟上手:Distilling the Knowledge in a Neural Network

在知识蒸馏中采用高温(T>1)软化概率分布的核心目的在于:通过放大教师模型输出概率中次要类别的信号,使学生模型不仅能够学习到基础的正确分类结果(硬目标),更重要的是掌握教师模型对类别间相似性的深层理解(如"猫与狗的视觉特征比猫与汽车更接近")。概述:知识蒸馏是一种模型压缩技术,通过让轻量化的学生模型模仿复杂教师模型的输出概率分布,结合软目标和硬目标进行训练,从而将教师模型的泛化能力迁移至学生模型,实现小模型的高效部署而不显著降低性能。: 是教师模型通过 带温度参数(T)的softmax 输出的概率分布。

2025-04-07 19:30:34 842

原创 空洞卷积(膨胀卷积)(Dilated Convolution / Atrous Convolution)

Fw​×Fh​ 是卷积核尺寸。理论输出尺寸: 8x8。实际输出尺寸: 8x8。理论输出尺寸: 6x6。实际输出尺寸: 6x6。理论输出尺寸: 4x4。实际输出尺寸: 4x4。理论输出尺寸: 2x2。实际输出尺寸: 2x2。⌊x⌋ 表示向下取整。

2025-03-14 20:16:29 349

原创 标准卷积(Standard Convolution)

所以输出特征图尺寸为5×5.其中[x]表示向下取整。

2025-03-10 10:31:01 541

原创 Efficient Attention: Attention with Linear Complexities(高效注意力)

简述:提出了一种新的有效的注意机制,相当于点积注意,但其内存和计算成本大大降低。总的来说可以大大减少计算开销且不太会影响效果,更多细节阅读原文。其实可以看出做的工作就是将传统Q,K,V,相乘的顺序改变了。但是在代码中步骤应该是如下图所示。在代码中就是softmax函数。

2025-01-20 20:07:48 653

原创 DiT模块解释

主干第二部分:拥有原始输入特征并且融入全局特征的输入,首先经过LN层归一化再经过自适应缩放和位移,再经过FFN也就是经过一个全连接层再经过一个激活函数再经过一个全连接层,作用是弥补了Attention的不足,专注于对每个Token的独立特征进行细粒度调整,再经过一个全局缩放变量控制模块输出强度,最后再经过一个残差确保Pointwise Feedforward模块的输出和输入特征的有效结合,同时增强模型的训练稳定性和特征表达能力。扩散模型中的 Noise 实际上是指模型需要从当前带噪状态中去除的噪声。

2024-12-26 10:11:50 762

原创 SENet

X经过特征提取得到U,经过压缩操作(U经过一个平均池化压缩成1×1×C)再经过激发操作(再经过两个全连接层,第一个全连接层用于维度压缩,减少计算量。压缩率通常为 r,再经过Relu激活函数,第二个全连接层用于维度恢复,将通道数恢复到 C,再经过使用 Sigmoid 激活函数处理第二个全连接层的输出,确保生成的权重在 [0,1]之间),最后进行将通道权重 s通过逐通道乘法与输入特征图 U 相乘,由于每个通道的特征会根据S进行缩放,使得重要通道的特征被强调,非重要通道的特征被抑制。卷积之后也就是放进内部。

2024-12-18 10:31:58 833

原创 GCNet的简述

变成HW×HW,然后通过softmax进行归一化然后和v进行乘,再通过1×1的卷积,再和原图进行相加也就是特征融合。再借鉴se模块,将se的思路先降维后升维,这样减少计算量,并且加入了ln层更加稳定,形成最后的GCblock.(a)首先resize成C×HW然后通过1×1的卷积生成q,k,v,然后q乘。由于不同位置的q对应热图几乎一致,因此可以共用一张热图,从而简化成(b)Global Context Attention计算量变少从。其中了解self-attention知道他的计算量是。

2024-12-17 21:27:31 512

原创 LSTM (Long Short-Term Memory)

RNN中将序列信息进行运用,但是也存在他的缺点就是随着时间序列的长度增加,产生梯度消失和梯度爆炸问题,因此长期记忆能力有限,所以引出LSTM。(但是对于较短的序列,RNN 可能能够较好地学习到其中的模式和关系。)来决定当前时刻的隐状态和记忆单元如何更新。对于每个时间步,LSTM会基于当前的输入和上一时刻的隐状态以及记忆单元来进行计算。LSTM相当于给RNN模块增加了一个笔记本以达到长期记忆的效果。正如其名它是长时记忆和短时记忆相结合。LSTM主要包含四个门(

2024-12-16 16:29:10 484

原创 RNN的简单理解和代码实现

对于股票预测,不能够只看此刻信息,还需要看前一天的甚至更久之前的信息进行运用,这也是一种时序,至今对时序信息有个大概的了解了。# 随机生成输入序列 (batch_size, seq_len, input_size)其中Xt也就是序列信息{“我”,“想要”,”手机“,”最好是“,”苹果“}的形状为:(batch_size,seq_len,output_size):存储和传递前面时间步的信息,是 RNN 用来捕获序列上下文的重要机制。联系上下文:输入苹果,他会联系到上下文是手机,因此得到苹果手机。

2024-12-16 12:26:53 625

原创 Diffusion Model(扩散模型

Noise Predicter输入一个带noise的图片和代表noise严重程度的数字,输出一个带noise的图,输入数据减去噪得到输出,是因为这种方式得到noise再减去,比得到一张图带noise更加的容易,也就是得到noise比得到图更容易。KL散度是一个非对称的度量,表示的是从一个分布 P到另一个分布 Q的“信息损失”,即如果用 Q来逼近 P,会丧失多少信息。2:这里的第二项是与 θ无关的项,也就是常数项,(因为要求导)优化问题是寻找使目标函数达到最大(或最小)值的 θ参数。

2024-12-15 13:01:34 1186

原创 转置卷积(Transposed Convolution)的简单理解运用

转置卷积(也叫反卷积、上采样卷积)是卷积神经网络中常用的操作,尤其在生成模型(如生成对抗网络、U-Net)中用于增加特征图的空间维度。简单地说,转置卷积是通过插值和卷积操作将较小的输入张量“放大”,生成一个更大的输出张量。

2024-12-14 19:45:24 1223

原创 RGB图片的处理和复原

将张量的维度从 C×H×W 转换回 PIL 图像要求的 H×W×C 格式,并将像素值从 [0, 1] 范围转换回 [0, 255] 范围,且转换为无符号8位整数类型。2.将图像的像素值从 [0, 255] 范围归一化到 [0.0, 1.0] 范围。# 首先,如果之前增加了批量维度(维度为1的那个维度),先去掉这个维度。张量形状:torch.Size([1, 3, 640, 515])1.将输入数据(H x W x C)变为(C x H x W)因为处理进行了这些操作所以逆向转变。

2024-12-14 18:35:12 552

原创 低级特征图和高级特征图的信息

包含边缘(物体轮廓、区域边界)、颜色(颜色区域分布)、纹理(物体表面质地、图案)这些基础的局部信息。包含物体类别、形状和结构(整体形状、部分关系)以及语义关系(物体间空间和功能关系)等抽象的、整体的语义信息。语义信息可以理解为:当模型在深层的特征图中所呈现的注意力点(高亮、激活区域)正是模型用来判断“这是一只猫”的内部证据。

2024-12-12 15:31:33 2255

原创 torch.nn.Upsample上采样

类)主要用于对输入数据(通常是张量形式的图像或特征图)进行上采样操作,上采样后的张量形状: torch.Size([1, 1, 4, 4])原始张量形状: torch.Size([1, 1, 2, 2])输出:scale_factor=2。interpolate类似。在 PyTorch 中,函数(实际上更准确地说是。

2024-12-12 11:57:49 535

原创 interpolate函数

在深度学习中,特别是在处理图像相关的任务时,经常需要改变特征图的尺寸,以匹配不同模块之间的输入输出要求,或者恢复到合适的分辨率用于后续的可视化、计算损失等操作。上采样后的张量形状: torch.Size([1, 1, 4, 4])上采样后的张量形状: torch.Size([1, 1, 8, 8])原始张量形状: torch.Size([1, 1, 2, 2])原始张量形状: torch.Size([1, 1, 2, 2])适用于大多数需要调整特征图尺寸的任务,如语义分割、特征图融合等。

2024-12-12 11:35:18 1819

原创 UNet网络框架

逐步融合高分辨率和低分辨率特征,生成与输入尺寸相同的输出,用于像素级任务(如语义分割)。可以看作是压缩图像的核心特征,逐层减少分辨率,但提取更抽象的特征。作用:由于边界像素往往难以分割,通过加权方式让模型更加关注这些关键区域,从而提高边界分割的准确性。1.conv 3x3,ReLu:卷积层,卷积核大小是3x3,添加bn层,然后经过ReLu激活。1.conv 3x3,ReLu:卷积层,卷积核大小是3x3,然后经过ReLu激活。:对于蓝色边界外的缺失数据,采用镜像来填充,确保模型输入完整。

2024-12-10 15:37:02 1177

原创 Vision Transformer(vit)的主干

它在模型中起到了类似于 CNN 中全局池化 (Global Pooling) 的作用,负责从所有 patch 的信息中提取一个全局表示。这个 token 的输出向量被用作分类任务的特征输入,之后会被送入分类头 (classifier head) 进行最终的类别预测。这个向量是用于分类任务的主要特征表示。#vit中self.dist_token is None所以模型只有分类标记 (class token)。#分类标记如果有将cls_token加入,因为dist_token为none,所以在维度1上拼接。

2024-11-29 19:14:39 1488

原创 Vision Transformer(vit)的Encoder层结构

计算 MLP 隐藏层的维度,它等于输入维度乘以 mlp_ratio。mlp有一个隐藏层一个输出层隐藏层扩大mlp_ratio输出层恢复。

2024-11-29 16:50:51 453

原创 Vision Transformer(vit)的MLP模块

【代码】Vision Transformer(vit)的MLP模块。

2024-11-29 15:44:08 728

原创 Vision Transformer(vit)的Multi-Head Self-Attention(多头注意力机制)结构

接下来,将上一步得到的矩阵结果除以一个缩放因子,通常是Key矩阵维度(d_k)的平方根。这些头的输出会被拼接(Concat)在一起。这个操作的目的是将注意力权重应用到Value上,得到加权的Value,即最终的注意力输出。: 最后,拼接后的结果会通过另一个线性层,这个线性层将不同头的输出整合成一个单一的表示。操作,将多头的输出重新整理成原始的批次和序列长度维度,从而实现了多头输出的拼接(Concat)。#注意力的缩放因子,通常设置为 head_dim ** -0.5,即每个头的维度的倒数平方根。

2024-11-29 12:17:28 2862

原创 Vision Transformer(vit)的Embedding层结构

是一个重要的参数,它代表嵌入的维度,即每个图像补丁(patch)经过嵌入层后所映射到的向量空间的维度。的默认值被设置为768,这个值来源于一些流行的预训练模型,如BERT,它在自然语言处理任务中取得了很好的效果。#将输入图像的高度和宽度分别除以图像块的高度和宽度,得到图像在高度和宽度方向上划分出的块的。#数量,例如:输入(224,224)除以patch:(16,16),得到数量(14,14)#划分图像的块大小,默认为 16×16。#计算图像总共划分出的块的数量。:在许多ViT模型的实现中,

2024-11-28 19:59:09 1139

原创 droppath

torch.rand(shape, dtype=x.dtype, device=x.device)生成随机数(生成均值为0,标准差为1的正态# 分布随机数)形状和shape一致的也就是和x一致,数据类型,设备都和x一致。# 将随机数和keep_prob相加得到随机数(范围[keep_prob,1+keep_prob])#x.div(keep_prob)将输入张量x的所有值除以keep_prob,目的是。# (1,) * (x.ndim - 1) 将shape用1填充和x的形状一样。

2024-11-28 18:17:34 1395

原创 Layer Normalization 与 Batch Normalization 的区别

虽然结果上他们整体都服从均值为0方差为一的分布,但是由于处理的方式的不同,对于不同的情况不同的方式会有更好的效果。假设我们有一个 3 个样本,每个样本有 4 个特征的数据集,表示为一个。

2024-11-28 12:04:00 376

原创 Layer Normalization

Layer Normalization特别适合于循环神经网络(RNN)和长短期记忆网络(LSTM)等序列模型,因为这些模型的输入长度可能会变化,而Layer Normalization不依赖于批次维度。:Layer Normalization通过可学习的缩放和平移参数(γ和β),允许模型在归一化后调整激活值的分布,从而保持模型的表达能力。:由于Layer Normalization减少了激活值的方差,它有助于提高模型训练的稳定性,尤其是在训练初期。

2024-11-28 11:20:12 1004

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除