- 博客(240)
- 收藏
- 关注
原创 特征融合后通道维度增加,卷积层和线性层两种降维方式
特征融合是深度学习模型设计中提升表达能力的关键步骤,主要有三种基础方法:逐元素相加、直接乘积、通道维度拼接,从我个人的使用角度来看,Concat要更加好用。我觉得相加和乘积属于是不可逆的操作,直接融合会导致原有信息丢失,无法再分离,如果两个特征图的响应模式差异较大,这两种方式会引入噪声冗余信息。在通道维度拼接(如torch.cat(dim=1))则会保留所有原始特征,只不过Concat会增加参数量,所以我们需要对其进行降维,本篇将会讲解一写关于卷积层和线性层两种降维方式。
2025-04-02 15:07:43
356
原创 适合初学者的深度学习项目——基于Pytorch的图像分类系统
一个基于pytorch的分类训练模版此项目提供了一个清晰且高效的基于PyTorch的图像分类训练模板,旨在简化二分类和多分类任务的实现过程。无论是初学者还是有一定经验的开发者,都可以通过这个模板快速上手并构建自己的图像分类模型。二分类和多分类:每个样本只能属于一个类别。二分类是特殊的多分类任务,类别数为2。多分类通过softmax来选择一个最可能的类别。多标签:每个样本可以同时属于多个类别,每个标签的预测是独立的,通常需要sigmoid输出每个标签的概率值。
2025-02-18 19:48:52
962
原创 Opencv项目实战:26 信用卡号码识别与类型判定
一个基于pytorch的分类训练模版此项目提供了一个清晰且高效的基于PyTorch的图像分类训练模板,旨在简化二分类和多分类任务的实现过程。无论是初学者还是有一定经验的开发者,都可以通过这个模板快速上手并构建自己的图像分类模型。二分类和多分类:每个样本只能属于一个类别。二分类是特殊的多分类任务,类别数为2。多分类通过softmax来选择一个最可能的类别。多标签:每个样本可以同时属于多个类别,每个标签的预测是独立的,通常需要sigmoid输出每个标签的概率值。关于模型的训练和推理部分,请严格按照仓库中的REA
2025-02-18 15:47:05
241
原创 Ubuntu20.04安装Nvidia显卡驱动教程以及深度学习环境搭建
记录一下新系统环境安装的过程,如果前面没有删除干净的,可以查看最下面参考文章中的链接。ubuntu的Nvidia显卡驱动教程,深度学习环境搭建,ubuntu安装Pycharm,这里应当使用你自己的PyCharm路径和图标路径。保存并关闭文件,使用 Ctrl + X 保存。接下来就可以在应用搜索框中找到了:
2025-02-13 00:51:10
1819
原创 如何使用Python脚本将本地项目上传到 GitHub
这里我们通过创建一个新的github仓库,来测试我们的脚本能否上传我们本地的项目,并且进行更新。首先你需要先安装Git,关于这部分我好像没有记录过,这里我搜索看了一下,这篇博客写的应该是比较齐全的,这里我们主要来展示我们的脚本能否上传。
2025-01-18 15:42:46
837
原创 图像去雾数据集的下载和预处理操作
目前,因为要做对比实验,收集了一下去雾数据集,并且建立了一个数据集的预处理工程。这是以前我写的一个小仓库,我决定还是把它用起来,下面将展示下载的路径和数据处理的方法。I-HAZEI-HAZE.zip具有真实朦胧和无雾霾室内图像的去雾基准,包含35对朦胧和相应的无雾(地面实况)室内图像。实际下载下来只有30对。这属于是一个小的室内数据集,下载之后,文件夹名为:I-HAZYNTIRE2018,这里我们手动改为I_HAZY_NTIRE_2018。避免出现路径找不到的问题。
2025-01-18 14:08:06
1569
1
原创 Swin Transformer模型详解(附pytorch实现)
Swin Transformer(Shifted Window Transformer)是一种新颖的视觉Transformer模型,在2021年由微软亚洲研究院提出。这一模型提出了一种基于局部窗口的自注意力机制,显著改善了Vision Transformer(ViT)在处理高分辨率图像时的性能,尤其是在图像分类、物体检测等计算机视觉任务中表现出色。Swin Transformer的最大创新之一是其引入了“平移窗口”机制,克服了传统自注意力方法在大图像处理时计算资源消耗过大的问题。
2025-01-09 15:24:11
1974
2
原创 Vision Transformer模型详解(附pytorch实现)
最近,我在学习Transformer模型在图像领域的应用。图像处理任务一直以来都是深度学习领域的重要研究方向,而传统的卷积神经网络已在许多任务中取得了显著的成绩。然而,近年来,Transformer模型由于其在自然语言处理中的成功,逐渐被引入到计算机视觉领域。Vision Transformer(ViT)是应用Transformer架构于图像分类任务的一个重要突破,它证明了Transformer在视觉任务中的潜力。虽然我这里实现的可以进行图像分类训练,但对于大多数实际应用,我还是推荐使用官方实现的代码模型,
2025-01-05 19:00:21
1905
原创 Transformer中Self-Attention以及Multi-Head Attention模块详解(附pytorch实现)
尽管官方的 MultiheadAttention 模块经过优化,具有更高的效率,但手动实现能够帮助大家更好地理解多头注意力机制的各个计算步骤。通过这些实验,我们不仅深入了解了注意力机制的原理,还能在实际应用中灵活使用这些机制,尤其是在图像任务中,Transformer 的强大能力得到了广泛的应用。最近在项目中需要使用Transformer模型来处理图像任务,所以稍微补充一下这部分的知识,本篇主要了解一下Self-Attention以及Multi-Head Attention模块。
2025-01-04 22:27:06
1810
原创 基于PyQt5的UI界面开发——图像与视频的加载与显示
本篇展示了如何使用PyQt5和OpenCV实现一个图像浏览与视频播放应用,涵盖了文件路径选择、图像/视频显示、自动播放或切换、暂停与恢复、图像保存等多种功能。本篇的代码具有较高的灵活性,你只需要按照相同的命名方式就能够实现代码的移植。希望通过本篇,为其他大家提供有用的参考和实现思路。另外,需要注意的一点是,在循环播放的时候图像会重复的保存,关于这一部分的相关逻辑,我不想再修改,也不怎么碍事。最后,我这里不提供原来设计ui文件,因为,我写的已经很清楚了,大家能够自己简单的设计,没必要再找我要。
2024-12-30 17:20:05
2054
原创 Opencv项目实战:25 车道线检测
本项目的主要目标是通过视频输入流实时检测并显示车道线。通过在GUI界面中集成OpenCV图像处理功能,用户可以加载视频,启动检测过程,并在窗口中查看每帧图像的处理结果。本项目利用 PyQt5 作为图形用户界面框架,并结合 OpenCV 进行图像处理,开发了一个车道线检测系统。该系统能够从视频文件中实时读取每一帧图像,并通过车道线检测算法对视频进行处理,最终在界面中展示车道线检测结果。用户可以选择视频文件并查看车道线检测的实时效果。
2024-12-26 21:11:59
566
原创 基于PyQt5的UI界面开发——多界面切换
最初,因为课设的缘故,我只是想做一个通过按键进行切面切换而已,但是我看网上资料里面仅是语焉不详,让我困惑的很,但后面我通过摸索才发现这件事实在是太简单了,因此我想要记录下来。本博客将介绍如何使用PyQt5库创建一个具有多界面切换功能的应用程序。通过详细的代码示例,我们将展示如何设计一个包含两个主要界面的应用,用户可以通过菜单栏的选项在这两个界面之间自由切换。代码示例中,我们使用了QStackedWidget来实现界面的切换。此外,我们还将分享如何连接菜单项与界面切换功能的技巧。
2024-12-26 16:51:28
1347
原创 virtuoso设计一个CMOS反相器并进行仿真
本文为基于Cadence Virtuoso的CMOS反相器设计与仿真图文教程,旨在记录个人学习集成电路设计的过程。文章详细描述了从打开Virtuoso软件、新建工程、绘制反相器原理图,到进行原理图仿真的完整步骤。在绘制反相器时,介绍了快捷键使用、器件放置、引脚创建、电源和地线连接等关键操作。在仿真部分,指导了如何设置仿真类型、添加模型库、配置输入信号和仿真参数,以及如何选择输出部分并运行仿真。通过本文,读者可以掌握使用Cadence Virtuoso进行CMOS反相器设计与仿真的基本技能。
2024-10-27 11:53:39
3685
原创 多载波调制与OFDM原理讲解以及MATLAB实现GUI设计
基于MATLAB设计并实现了一个OFDM调制的图形用户界面(GUI)系统。该系统旨在简化OFDM调制过程的仿真,提供友好的用户交互界面。设计目标是通过GUI实现参数化的OFDM仿真,包括子载波数、符号数、IFFT长度、循环前缀长度、循环后缀长度和信噪比等参数的动态调节。系统支持多种调制方式(如QPSK、16QAM、64QAM、256QAM)和单径、多径信道模型,并实时显示OFDM信号的时域图和星座图。用户可通过GUI调整各项参数,启动或暂停仿真,观察误码率的变化。
2024-07-03 00:32:19
1319
原创 基于FPGA的DDS信号发生器
此处仅为基于Vivado实现DDS信号发生器的仿真实现,Vivado的安装请看下面的文章,这里我只是安装了一个标准版本,只要能够仿真波形即可。DDS技术是一种通过数字计算生成波形信号的方法,其核心原理是利用数字相位累加器和波形查找表(ROM)生成高精度、频率可调的波形信号。DDS系统的主要组成部分包括频率控制字(Fword)、相位累加器、相位控制字(Pword)和波形查找表。在DDS系统中,频率控制字决定了输出波形的频率。频率控制字越大,相位累加器每个时钟周期增加的相位值就越大,从而输出波形的频率越高。相位
2024-07-02 23:48:28
1998
原创 FPGA开发Vivado安装教程
非常遗憾的一件事情是,在选修课程时我避开了FPGA,选择了其他方向的课程。然而,令我没有想到的是,通信项目设计的题目竟然使用FPGA,这简直是背刺。在仅有的半个月时间里,准备这个项目确实是非常紧张的。为了下载FPGA相关的软件,我不得不将我的深度学习项目全部转移到硬盘上,还删除了虚拟机和其他一些软件,才终于腾出足够的空间来安装所需的软件。
2024-06-18 20:27:43
2113
原创 Matlab电话按键拨号器设计
DTMF是一种信号系统,广泛应用于电话按键音的传输。它是由两个不同频率的音调组合而成,每个按键(0-9,*,#)对应一个唯一的频率组合,这样可以通过按键发出的声音来传输数据。按键和频率对应表:按键低频组高频组1697 Hz1209 Hz2697 Hz1336 Hz3697 Hz1477 HzA697 Hz1631 Hz4770 Hz1209 Hz5770 Hz1336 Hz6770 Hz1477 HzB770 Hz1631 Hz7852 Hz。
2024-06-16 21:00:47
2455
4
原创 Matlab使用Simulink仿真实现AM和BPSK信号的解调
本篇实现了基于AM和BPSK调制的通信系统,采用Bernoulli Binary Generator生成随机二元序列,码元速率为0.5秒/个。AM调制使用Sine Wave模块生成载波,频率40Hz,相位π/2。BPSK调制通过Switch模块切换相位0和π的载波。信号传输通过AWGN信道添加高斯白噪声。AM解调采用包络检波,使用低通滤波器提取调制信号包络;BPSK解调通过相干解调,信号与载波相乘并滤波去除高频分量。通过Error Rate Calculation模块分析解调信号误码率,验证系统性能。
2024-06-11 15:58:30
4001
原创 深度图的方法实现加雾,Synscapes数据集以及D455相机拍摄为例
在次之前,我们已经做了图像加雾的一些研究,这里我们将从深度图的方法实现加雾展开细讲接下来将要介绍如何使用深度图像生成雾效图像的方法。利用Synscapes数据集,通过读取EXR格式的深度信息,结合摄像机参数和暗通道先验等技术,计算传输图和大气光照强度,并应用朗伯-比尔定律生成雾效图像。文中提供了完整的代码示例,包括从深度图读取数据、计算传输图和大气光、以及生成和保存雾效图像。此外,还介绍了如何使用自制数据集进行处理。该方法适用于自动驾驶数据增强、增强现实和图像去雾等领域,并提供了详细的注释和参考资料,帮助读
2024-06-08 20:40:08
1778
8
原创 D455相机RGB与深度图像对齐,缓解相机无效区域的问题
在使用Intel深度相机D455时,我们经常会遇到深度图中的无效区域。这些无效区域可能由于黑色物体、光滑表面、透明物体以及视差效应等原因引起。为了解决这些问题,我们可以采用图像修复与滤波结合的方法。具体步骤包括创建掩模图、使用插值方法填补缺失值,以及利用OpenCV的inpaint函数进行修复。本文详细介绍了如何根据不同的对齐方式(深度对齐到彩色或彩色对齐到深度)来处理无效区域,并展示了图像修复的实际代码和效果。这些方法能有效提升深度图质量,特别适用于深度加雾任务。
2024-06-08 19:30:36
2807
2
原创 intel深度相机D455的使用
Intel RealSense D455 是RealSense D400系列的一部分,这个系列的设备以其高精度和可靠性而闻名。D455相比于之前的型号(如D415和D435),提供了更远的感知范围和更高的精度。
2024-06-01 23:10:52
3849
原创 图像加雾算法的研究与应用
在去雾任务当中,训练和评估去雾算法需要大量的带有雾霾和无雾霾的图像对。由于实际拍摄的带雾霾的图像不易获得并且不可控,因此研究者常常通过加雾(Image Fogging)技术来人工生成含雾图像,以丰富数据集。这不仅有助于生成多样化的训练数据,还能在控制实验中评估去雾算法的性能。本文将探讨图像加雾的基本原理和常用方法,并介绍一些用于图像加雾的具体技术。大气散射是指光线在大气中传播时,由于空气中的微小颗粒和气体分子的散射,使得光线强度随着传播距离的增加而衰减。根据贝尔-朗伯定律(Beer-Lambert Law)
2024-05-30 14:02:34
2650
原创 VScode配置MySQL
请键入 NET HELPMSG 2185 以获得更多的帮助。因为net start +服务名,启动的是win下注册的服务。此时,我系统中并没有注册mysql到服务中,即下面没有mysql服务。ZIP方式下载,选择本地的路径进行解压。即是解压位置后文件夹下的bin文件路径。这里我们搜索提示符,以管理员身份运行。后面的密码复制保存一下。输入刚才复制的密码。
2024-04-22 23:13:29
2725
3
原创 Xception模型详解
Xception的名称源自于"Extreme Inception",它是在Inception架构的基础上进行了扩展和改进。Inception架构是Google团队提出的一种经典的卷积神经网络架构,用于解决深度卷积神经网络中的计算和参数增长问题。与Inception不同,Xception的主要创新在于使用了深度可分离卷积(Depthwise Separable Convolution)来替代传统的卷积操作。深度可分离卷积将卷积操作分解为两个步骤:深度卷积和逐点卷积。Xception的pytorch代码实现
2024-04-01 16:01:06
4810
9
原创 yolov5训练并生成rknn模型部署在RK3588开发板上,实现NPU加速推理
RK3588是瑞芯微(Rockchip)公司推出的一款高性能、低功耗的集成电路芯片。它采用了先进的28纳米工艺技术,并配备了八核心的ARM Cortex-A76和Cortex-A55处理器,以及ARM Mali-G76 GPU。该芯片支持多种接口和功能,适用于广泛的应用领域。本篇为yolov5部署在RK3588的教程。接着将训练好的best.pt放在工程文件夹下,使用yolov5工程中的export.py将其转换为onnx模型。
2024-03-24 22:47:29
11988
23
原创 ShuffleNet模型详解
ShuffleNet 是专门为计算能力非常有限的移动设备设计的。架构采用了逐点分组卷积和通道shuffle两种新的运算,在保持精度的同时大大降低了计算成本。ShuffleNet 比 MobileNet 在 ImageNet 分类任务上的 top-1误差更低 (绝对7.8%) ,在基于arm的移动设备上,ShuffleNet比AlexNet实现了约13倍的实际加速,同时保持了相当的准确性。
2024-03-22 23:54:18
1711
原创 误删了Linux系统的libm.so.6文件与libm-2.27.so的软链接导致的开机出现kernel panic的解决方案(图文U盘救援详细教程)
误删了Linux系统的libm.so.6文件与libm-2.27.so的软链接导致的开机出现kernel panic的解决方案(图文U盘救援详细教程)期间也花了很多时间去试了其他的方法,均无效,我这里是使用U盘做了一个ubuntu的安装盘(版本应当与你的ubuntu系统相当)用惯了windows系统,做了最后悔的操作——重启。结果导致了ubuntu根本打不开,即使是recovery mode也无效了。有时候真的不要手贱去动这些文件,不然除了氪金或者重装系统,光凭网上这些不是很详细的教程,真的很难去抢救回来,
2024-03-21 21:39:09
2211
原创 CBAM注意力机制详解(附pytorch复现)
CBAM(Convolutional Block Attention Module)是一种卷积神经网络模块,旨在通过引入注意力机制来提升网络的表示能力。CBAM包含两个顺序子模块:通道注意力模块和空间注意力模块。通过在深度网络的每个卷积块中自适应地优化中间特征图,CBAM通过强调通道和空间维度上的有意义特征,实现了对关键信息的关注和不必要信息的抑制。研究表明,CBAM在ImageNet-1K数据集上能够显著提高各种基线网络的准确性,通过grad-CAM可视化验证,CBAM增强的网络能够更准确地关注目标对象。
2024-02-29 15:33:37
9703
3
原创 部分卷积与FasterNet模型详解
部分卷积与FasterNet模型详解,为了设计快速神经网络,很多工作都集中于减少浮点运算(FLOPs)的数量上面,但是作者发现FLOPs的减少不一定会带来延迟的类似程度的减少。这源于每秒低浮点运算(FLOPs)的效率低下,而这源于FLOPs的运算符频繁访问内存,尤其是深度卷积,因此,提出了Partial Convolution,通过同时减少冗余计算和内存访问可以更有效地提取空间特征。并以此提出了FasterNet。
2024-02-27 23:52:43
7416
7
原创 从MobileNetv1到MobileNetv3模型详解
MobileNet系列包括V1、V2和V3,专注于轻量级神经网络。MobileNetV1采用深度可分离卷积,MobileNetV2引入倒残差模块,提高准确性。MobileNetV3引入更多设计元素,如可变形卷积和Squeeze-and-Excitation模块,平衡计算效率和准确性。这三个系列在移动设备和嵌入式系统上取得成功,为资源受限的环境提供高效的深度学习解决方案。mobilenetv1,mobilenetv2,mobilenetv3模型的pytorch实现与讲解。
2024-02-17 00:58:43
2489
4
原创 用Python来实现2024年春晚刘谦魔术
用Python来实现2024年春晚刘谦魔术。其实说实话,这种数学魔术在我小时候买的书里就曾经看到过许多。虽然现在了解了其中的数学原理,但当时的惊奇与欢乐感觉依然难以忘怀。刘谦老师在表演中展现了非凡的技艺,不仅仅是数学的巧妙运用,更是他善于抓住观众的好奇心,创造出让人难以置信的奇迹。St
2024-02-10 12:03:41
5430
6
原创 SqueezeNet模型详解
SqueezeNet相对于传统的深层CNN模型,如VGG或ResNet,具有更小的模型大小和更少的参数,但在一些任务上仍能取得不错的性能。这使得SqueezeNet成为在资源受限环境中进行实时图像分类等应用的有力选择。目前我也是在学习的阶段,学习这一部分也是为了积累轻量化模型的方法,因为因为轻量化模型在移动设备、嵌入式系统以及一些资源受限的环境中都具有重要的应用价值。
2024-02-01 02:11:52
2098
原创 GoogLeNet模型详解
GoogLeNet是谷歌工程师设计的深度神经网络结构,于2014年在ImageNet比赛中取得了冠军。它的设计特点在于既有深度,又在横向上拥有“宽度”,并采用了一种名为Inception的核心子网络结构。这个网络名字中的“GoogLeNet”是对LeNet的致敬,LeNet是早期由Yann LeCun设计的卷积神经网络。
2024-01-28 20:02:17
2519
原创 损失函数详细复现(pytorch版本)
损失函数(Loss Function)是在机器学习和深度学习中用于评估模型预测结果与实际标签之间差异的函数。它衡量了模型的性能,即模型对训练样本的预测与实际标签的偏差程度。目标是通过调整模型参数,使损失函数的值最小化,从而提高模型的准确性和泛化能力。
2024-01-25 19:54:13
1219
原创 SE通道注意力机制模块
SE(Squeeze-and-Excitation)模块是一种引入通道注意力机制的方法,旨在让神经网络更加关注对当前任务重要的特征。首先是Squeeze操作,通过聚合跨空间维度(H × W)的特征映射来产生通道描述符,怎么理解呢?假设有一个输入的特征映射,它的维度是H × W × C,对于每个通道,执行全局平均池化操作,具体来说,对于第i个通道,计算该通道上所有空间位置的平均值。通过学习,全连接层得到的通道权重经过一个Sigmoid激活函数,将其范围限制在0到1之间。ResNet与SE-ResNet分类性能
2024-01-23 19:47:55
5536
原创 Haar小波下采样模块
深度卷积神经网络 (DCNN) 通常采用标准的下采样操作,例如最大池化、平均池化和跨步卷积,这可能会导致信息丢失。丢失的信息,如边界和纹理,对于语义分割可能是必不可少的。通过跳过连接到解码器子网(如U-Net、LCU-Net、CENet、LinkNet和RefineNet )。提取具有空间金字塔池化或扩展卷积的多尺度特征图到融合模块中(如DeepLab、PSPNet、PCPLP-Net、BiSenet和ICNet)。下面是我做实验的代码,感兴趣的可以在自己的数据上面进行实验,我觉得用于交通和医学上应该会有比
2024-01-22 23:08:52
9896
18
原创 Pytorch将标签转为One-Hot编码
Pytorch将标签转为One-Hot编码。先进行标签映射,要为每个分类建立一个整数索引,对于每个样本的标签,使用整数索引创建一个长度为类别总数的二进制向量。这个向量的所有元素都是0,除了与整数索引相对应的位置,该位置的值为1。应用于分割网络当中,在保留输入标签张量形状的同时,将独热编码张量的最后一个维度设置为分类数num_classes,确保独热编码张量与输入标签张量具有相同的形状。
2024-01-11 01:55:37
2448
原创 模型的权值平均的原理和Pytorch的实现
模型权值平均是一种用于改善深度神经网络泛化性能的技术。通过对训练过程中不同时间步的模型权值进行平均,可以得到更宽的极值点(optima)并提高模型的泛化能力。首先介绍指数移动平均(EMA)方法,它使用一个衰减系数来平衡当前权值和先前平均权值。其次,介绍了随机加权平均(SWA)方法,它通过将当前权值与先前平均权值进行加权平均来更新权值。最后,介绍了Tanh自适应指数移动EMA算法(T_ADEMA),它使用Tanh函数来调整衰减系数,以更好地适应训练过程中的不同阶段。我还在ResNet18模型上进行了简单的实验
2024-01-10 18:02:02
1846
1
原创 Opencv与PyQt5设计一个摄像头界面
这是我见过很详细的教你如何使用的PyQt5来完成UI界面设计的,专注于UI界面设计。对我而言,这教程就像是一个实用工具,因为我只需要能够显示图像并展示模型推理的结果即可。最近一直在努力改进网络和编写脚本,已经有一段时间没写博客了。因此,我打算重新整理这位博主的内容,争取以更简单的方式呈现。
2024-01-07 19:00:31
2802
基于FPGA的DDS信号仿真
2024-07-02
基于opencv的物体计数与表单信息系统.docx
2023-08-21
用于FPGA的学习资料
2023-06-07
基于matlab的食堂优化报告
2022-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人