自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 libtorch实现vgg图像分类

【代码】libtorch实现vgg图像分类。

2025-05-10 17:54:23 92

原创 详解LibTorch中train()函数

类似,但有一些 C++ 特有的细节。(PyTorch 的 C++ 版本)中,如果实现自定义 C++ 模块,需检查。函数的作用与 Python 版的。在 LibTorch 中,

2025-04-21 17:48:58 235

原创 预训练(Pre-training) 和 微调(Fine-tuning)

是模型训练的两个关键阶段,尤其在自然语言处理(NLP)和计算机视觉(CV)中广泛应用。它们的核心目的是通过迁移学习(Transfer Learning)提升模型性能,减少训练成本。这种范式已成为现代 AI 的主流方法(如 ChatGPT 基于 GPT-3 微调,Stable Diffusion 基于 LAION 数据集预训练)。(如情感分析、医学图像分类)进行小规模调整,使模型适应新任务。这一阶段通常是计算密集型任务,依赖海量数据和强大算力。预训练是指在大规模通用数据集上训练模型,使其学习到。

2025-04-01 20:48:05 589

原创 详解VAE损失函数

重建损失是“数据忠诚度”的守护者,确保输出接近输入。KL散度是“模型简约性”的裁判,防止潜在空间过度复杂。两者平衡是VAE能同时实现特征学习和数据生成的关键。

2025-03-31 17:40:11 1081

原创 理解透视变换的坐标和参数

理解透视变换的坐标和参数是掌握计算机视觉中几何变换的关键。

2025-03-31 10:22:49 1091

原创 仿射变换、透视变换和刚体变换的详细对比

以下是仿射变换、透视变换和刚体变换的详细对比表格:​x′y′1​​=​cosθsinθ0​−sinθcosθ0​tx​ty​1​​​xy1​​[x′y′1]=[abtxcdty001][xy1]\begin{bmatrix}x'\\y'\\1\end{bmatrix}=\begin{bmatrix}a&b&t_x\\c&d&t_y\\0&0&1\end{bmatrix}\begin{bmatrix}x\\y\\1\end{bmatrix}​x′y′1​​=​ac0​bd0​tx​ty​1​​​xy1​​

2025-03-31 09:45:56 748

原创 从并行角度优化Zhang细化算法

Zhang细化算法是一种常用的二值图像骨架提取算法,通过迭代删除满足特定条件的边界点来获得单像素宽度的骨架。从并行角度优化该算法可以显著提高处理速度,特别是对于大尺寸图像。

2025-03-31 09:36:38 308

原创 旋转变换原理

旋转是仿射变换的一种,通过变换矩阵实现图像绕指定中心旋转,保持直线和平行性不变。

2025-03-28 20:59:07 252

原创 SegFormer

MiT是改进的Vision Transformer(ViT),通过分层设计提取多尺度特征,分为多个阶段(如MiT-B0到MiT-B5,参数量递增)。SegFormer 是一种高效的语义分割模型,它结合了Transformer架构和多尺度特征融合的优势,在保持高精度的同时显著降低了计算量。MiT输出4个不同尺度的特征图(如1/4, 1/8, 1/16, 1/32分辨率),用于后续解码。

2025-03-28 10:20:03 868

原创 先验分布、后验分布、似然估计

先验分布。

2025-03-26 11:43:39 896

原创 计算机视觉的多模态模型

多模态模型通过融合多种类型的数据(如图像、文本、音频等),能够更好地理解和处理复杂的现实世界任务。它在计算机视觉、自然语言处理、语音识别等领域有广泛应用,是人工智能研究的重要方向之一。

2025-03-22 18:26:42 684

原创 i++和++i的区别

在for循环中,i++和++i的效果通常相同。对于内置类型,性能差异可以忽略;对于自定义类型,推荐使用++i。根据具体需求选择使用i++或++i,尤其是在表达式中。

2025-03-22 11:06:17 578

原创 图像平滑处理

图像平滑处理是一种重要的图像处理技术,通过模糊图像中的高频分量(如噪声、细节)来实现去噪和图像增强。常见的平滑方法包括均值滤波、高斯滤波、中值滤波和双边滤波,每种方法都有其优缺点和适用场景。通过合理选择平滑方法,可以有效提升图像质量,为后续的图像分析和处理任务奠定基础。

2025-03-12 20:15:35 1235

原创 位置注意力机制详解

位置注意力机制(Position Attention Mechanism)是一种用于捕捉输入数据中空间位置关系的技术。它通过显式建模位置之间的依赖关系,增强模型对局部和全局信息的理解能力。位置注意力机制广泛应用于计算机视觉(CV)任务中,如图像分类、目标检测、语义分割等。位置注意力机制的核心思想是通过计算输入特征图中不同位置之间的关系,动态调整特征的权重,从而增强重要位置的特征表示。是关系函数(如点积、余弦相似度等)。分别是特征图的高度和宽度,是特征图的位置总数。

2025-03-11 16:29:47 851

原创 ResNet中的下采样选项详解

在ResNet(残差网络)中,下采样(Downsampling)是指在网络的不同阶段通过降低特征图的分辨率来减少计算量,同时增加特征图的通道数以捕获更高级的特征。下采样通常通过步幅(stride)大于1的卷积层或池化层来实现。ResNet中的下采样选项通常与残差块(Residual Block)的设计相关,尤其是在跳跃连接(Skip Connection)中如何处理输入和输出特征图的尺寸不匹配问题。下采样是ResNet中用于减少特征图空间尺寸和增加通道数的重要操作。在残差块中,下采样可以通过。

2025-03-11 11:44:04 812

原创 C++中的c_str函数详解

c_str是C++标准库中类的一个成员函数,用于返回一个指向以空字符(\0)结尾的C风格字符串的指针。这个函数在处理需要C风格字符串的场合(如调用C标准库函数或与C代码交互)时非常有用。c_str是类中一个非常有用的函数,用于将C++字符串转换为C风格字符串。它在与C标准库函数、文件操作和系统调用交互时非常有用。使用时需要注意返回指针的只读性和生命周期问题,以确保代码的安全性和正确性。理解和使用c_str函数,可以提高C++程序与C代码的兼容性和互操作性。

2025-03-10 12:03:33 452

原创 C++中的__FUNCTION__详解

是C++中的一个预定义宏,用于获取当前函数的名称。它在调试和日志记录中非常有用,可以帮助开发者快速定位代码执行的位置。是C++中一个非常有用的宏,用于获取当前函数的名称。它在调试、日志记录和错误处理中非常有用。结合,可以获取更详细的函数签名信息。理解和使用这些宏,可以提高代码的可维护性和调试效率。

2025-03-10 12:00:00 222

原创 Faster R-CNN

是一种经典的两阶段目标检测方法,其核心思想是通过生成候选区域(Region Proposals),然后对这些候选区域进行分类和回归。以下是 Faster R-CNN 的详细工作流程及其关键组件。

2025-03-08 11:26:20 897

原创 ROI Pooling

是目标检测中的一种重要操作,用于将不同大小的候选区域(Region of Interest, ROI)转换为固定大小的特征图。它通常用于 Faster R-CNN 等两阶段目标检测模型中。以下是 ROI Pooling 的详细说明及其实现。

2025-03-08 11:01:29 500

原创 带权重的交叉熵损失函数

根据具体任务的需求,手动设置每个类别的权重。

2025-03-07 14:44:03 721

原创 数字图像处理:伪彩色处理

(Pseudocolor Image Processing)是一种将灰度图像转换为彩色图像的技术。通过将不同的灰度值映射到不同的颜色,可以增强图像的视觉效果,突出图像中的细节信息。伪彩色处理是一种简单而有效的图像增强技术,通过将灰度值映射到颜色,可以显著提升图像的视觉效果。伪彩色处理的核心思想是将灰度图像中的每个像素值映射到一个颜色空间(如 RGB)。函数)来实现伪彩色处理。以下是使用 C++ 和 OpenCV 实现伪彩色图像处理的详细讲解和代码示例。以下是使用 OpenCV 实现伪彩色处理的代码示例。

2025-03-03 17:48:42 874

原创 数字图像处理:Blob分析

BLOB 分析是数字图像处理中的重要技术,广泛应用于目标检测、物体跟踪、形状分析等领域。通过合理的预处理、二值化、连通区域检测和特征提取,可以有效地提取和分析图像中的目标区域。OpenCV 提供了丰富的函数支持 BLOB 分析,开发者可以根据具体需求灵活使用。BLOB 是指图像中具有相同像素值(通常是前景像素)且空间上连通的区域。在 BLOB 分析之前,通常需要对图像进行预处理,以提高分析效果。提取每个 BLOB 的特征,用于后续分析或分类。的详细讲解,包括其原理、流程、常用方法以及实际应用。

2025-03-03 17:32:22 802

原创 数字图像处理:直方图均衡化代码实现-C++

是一种常用的图像增强技术,通过调整图像的灰度分布,使得图像的对比度得到增强。以下是使用 C++ 和 OpenCV 实现数字图像直方图均衡化的完整代码和详细说明。

2025-03-03 15:40:34 483

原创 详解语义分割任务

输入:一张图像。输出:一张与输入图像大小相同的分割掩码(Segmentation Mask),其中每个像素的值表示其所属的语义类别。目标:将图像中的每个像素分类到预定义的语义类别中(如人、车、树、天空等)。语义分割是一种像素级分类任务,目标是为图像中的每个像素分配一个语义类别标签。语义分割在自动驾驶、医学图像分析、遥感图像分析等领域有广泛应用。常用的语义分割方法包括 FCN、U-Net、DeepLab 系列、PSPNet 和 Mask R-CNN。

2025-03-01 14:17:15 1122

原创 详解Pytorch:张量自动微分

自动微分是 PyTorch 的核心功能,用于自动计算张量的梯度。通过设置,PyTorch 会跟踪张量操作并构建计算图。调用方法可以自动计算梯度,并通过.grad属性获取梯度。自动微分在神经网络的训练和自定义函数的梯度计算中非常有用。

2025-03-01 09:44:56 745

原创 详解灰度级形态学处理

灰度级形态学是形态学图像处理的重要扩展,能够直接处理灰度图像并保留图像的灰度信息。通过腐蚀、膨胀、开运算、闭运算等基本操作,可以实现去噪、边缘检测、特征提取等多种任务。结合扩展操作(如形态学梯度、顶帽变换等),可以进一步解决复杂的图像处理问题。灰度级形态学在医学影像、工业检测、计算机视觉等领域有广泛的应用。(Gray-level Morphology)是形态学图像处理在灰度图像上的扩展。与二值形态学(仅处理二值图像)不同,灰度级形态学直接处理灰度图像,能够保留图像的灰度信息,适用于更复杂的图像处理任务。

2025-02-26 16:01:47 669

原创 详解形态学图像处理

(Mathematical Morphology in Digital Image Processing)是一种基于集合论、拓扑学和格论的图像处理技术,主要用于分析和处理图像中的形状和结构。形态学操作通过定义结构元素(Structuring Element)与图像进行交互,从而提取、修改或分析图像中的几何特征。它在图像分割、边缘检测、噪声去除、形状分析等领域有广泛应用。通过腐蚀、膨胀、开运算、闭运算等基本操作,可以实现去噪、分割、边缘检测、形状分析等多种任务。

2025-02-26 15:31:57 625

原创 详解直方图均衡化

是图像处理中一种常用的对比度增强技术,通过调整图像的灰度分布,使得图像的直方图尽可能均匀分布,从而提高图像的对比度和细节表现。直方图均衡化的目标是将图像的灰度直方图从集中分布调整为均匀分布,从而增强图像的对比度。通过理解直方图均衡化的原理和应用,可以更好地处理低对比度图像,提升图像的视觉效果和信息提取能力。将原始图像的灰度值映射到新的灰度值范围。直方图均衡化的核心思想是通过。假设原始图像的灰度值为。

2025-02-26 10:39:48 1369

原创 详解cv::getTickCount()

是 OpenCV 库中的一个函数,它用于获取一个自某个固定时间点(通常是程序启动或库初始化时)以来的处理器时钟周期数。这个函数在性能测量中非常有用,尤其是当你想要测量某个代码段或函数执行时间时。

2025-02-25 20:18:10 374

原创 详解cv::cvtColor

是 OpenCV 库中的一个函数,用于在图像的不同颜色空间之间进行转换。这个函数非常常用,尤其是在图像处理任务中,比如在进行图像预处理、特征提取或颜色空间分析时。

2025-02-25 20:15:07 455

原创 详解OTSU算法

OTSU算法

2025-02-25 20:10:37 118

原创 《数字图像处理》笔记

一幅图像可以定义为一个二维函数f(x,y),其中x、y是空间坐标,任意一对空间坐标(x,y)处的幅值称为图像在该点的强度或者灰度。当x、y和灰度值f都是有限的离散量时,称该图像为数字图像。

2025-02-25 17:06:08 788

原创 详解C++ STL:空间配置器

STL允许用户自定义空间配置器,以满足特定的内存管理需求。提供allocatedeallocateconstruct和destroy等接口。定义必要的类型别名,如value_typepointersize_type等。以下是一个简单的自定义配置器,基于malloc和free#include <cstdlib> // 包含malloc和freepublic:// 必须定义的类型别名// 分配内存。

2025-02-13 10:07:49 361

原创 详解C++STL:适配器

STL适配器是C++中非常强大的工具,它们通过封装和修改现有组件的行为,提供了更灵活和高效的方式来处理数据。无论是容器适配器、迭代器适配器还是函数对象适配器,它们都极大地增强了STL的功能性和通用性。掌握适配器的使用,可以让你在编写C++代码时更加得心应手。

2025-02-13 09:58:45 399

原创 详解C++函数对象(仿函数)

函数对象(Function Object)是指可以像函数一样被调用的对象。在编程中,函数对象通常是通过重载函数调用运算符(operator())来实现的。这种对象也被称为“仿函数”(Functor)。

2025-02-13 08:39:03 265

原创 详解信号量机制

信号量:是一种同步机制,用于控制对共享资源的访问。P 操作:等待信号量,减少信号量值。V 操作:释放信号量,增加信号量值。应用场景:互斥访问、资源池管理、生产者-消费者问题等。信号量是多线程和多进程编程中非常重要的工具,合理使用可以有效避免竞争条件和实现复杂的同步逻辑。

2025-02-12 19:14:14 936

原创 Linux 系统中,线程间通信机制

机制特点共享内存直接访问共享变量,需同步机制。互斥锁保护共享资源,避免竞争条件。条件变量线程同步,等待条件成立。信号量通用同步机制,控制资源访问。屏障同步多个线程,等待所有线程到达。读写锁读多写少的场景,提高并发性能。根据具体需求选择合适的线程间通信机制,可以高效地实现线程间的同步和数据共享。

2025-02-12 19:07:11 729

原创 Linux 系统中,进程间通信机制

IPC 方式特点管道半双工,适用于亲缘进程。消息队列全双工,消息有边界。共享内存高效,需要同步机制。信号量用于同步,避免竞争条件。套接字通用,支持本地和网络通信。信号异步通信,用于事件通知。根据具体需求选择合适的 IPC 方式,可以高效地实现进程间的通信和同步。

2025-02-12 19:00:55 1180

原创 详解C++正则表达式

regex>头文件:提供了正则表达式的支持。核心组件std::regex等。语法:基于 ECMAScript,支持多种模式匹配。应用场景:字符串匹配、搜索、替换、验证等。C++ 的正则表达式功能强大且灵活,能够高效地处理复杂的文本操作任务。

2025-02-12 16:09:28 805

原创 详解C++虚函数与虚函数表

虚函数表:存储虚函数指针。虚函数表指针:每个对象通过vptr访问虚函数表。动态绑定:运行时通过vptr和虚函数表确定调用哪个函数。这种机制使得C++能够在运行时根据对象类型调用正确的函数,实现多态。

2025-02-12 15:26:46 264

空空如也

空空如也

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

TA关注的人

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