自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++——智能指针详解及实现

在 C++ 的早期版本中,程序员主要使用原生指针来管理动态内存。例如,使用 new 关键字分配内存,使用 delete 释放内存。然而,这种方式很容易出错。例如,当程序员忘记释放内存时,就会导致内存泄漏;当释放内存后仍然使用指向该内存的指针时,就会产生悬空指针问题。智能指针的出现就是为了解决这些问题,它通过自动管理内存,让程序员可以更安全、更方便地使用动态内存。所谓的智能指针本质就是一个类模板,它可以创建任意的类型的指针对象,当智能指针对象使用完后,对象就会自动调用析构函数去释放该指针所指向的空间。

2025-04-06 10:23:44 957

原创 语义分割模型 DeepLabv3 和 DeepLabv3+ 总结

DeepLab 模型首次亮相于 ICLR '14,是一系列旨在解决语义分割问题的深度学习架构。经过多年的迭代改进,同一组 Google 研究者于 2017 年底发布了广受欢迎的 “DeepLabv3”。当时,DeepLabv3 在 Pascal VOC 2012 测试集上取得了最佳 (SOTA) 性能,在著名的 Cityscapes 数据集上以及使用 Google 内部 JFT 数据集进行训练时也取得了相当不错的结果。

2025-04-05 14:44:12 908

原创 C++——深入理解虚函数和纯虚函数

C++ 作为面向对象的语言,主要有三大特性:继承、封装、多态。关于多态,简单说就是同一个函数调用,在不同对象上有不同的表现。也就是用父类型的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。C++ 的多态主要有两种类型:编译时多态(静态多态)和运行时多态(动态多态)。

2025-04-04 16:09:14 820

原创 大模型微调技术总结及使用GPU对VisualGLM-6B进行高效微调

在深度学习中,微调(Fine-tuning)是一种重要的技术,用于改进预训练模型的性能。在预训练模型的基础上,针对特定任务(如文本分类、机器翻译、情感分析等),使用相对较小的有监督数据集对模型进行进一步训练的过程。预训练模型学习到了语言的一般规律,如语法、语义等知识,通过微调,模型可以利用预训练过程中学习到的知识,并结合特定任务的数据,在该任务上达到更好的准确率、召回率等性能指标。

2025-02-03 11:31:25 1181 2

原创 自然语言处理——从原理、经典模型到应用

自然语言处理(Natural Language Processing,NLP)是一门借助计算机技术研究人类语言的科学,是人工智能领域的一个分支,旨在让计算机理解、生成和处理人类语言。其核心任务是将非结构化的自然语言转换为机器可以理解和处理的形式,并生成符合语义和语法的语言输出。虽然该领域的发展历史不长,但是其发展迅速并且取得了许多令人印象深刻的成果。

2025-01-25 16:27:53 2038

原创 视觉语言大模型VisualGLM-6B环境配置与模型部署

VisualGLM-6B 是一个开源的,支持图像、中文和英文的多模态对话语言模型。依靠来自于 CogView 数据集的 30M 高质量中文图文对,与 300M 经过筛选的英文图文对进行预训练,中英文权重相同。模型在微调阶段使用长视觉问答数据进行训练,以生成符合人类偏好的答案。它由 SwissArmyTransformer(简称sat)库训练,这是一个支持 Transformer 灵活修改、训练的工具库,支持Lora、P-tuning等参数高效微调方法。

2025-01-24 14:31:20 2409

原创 Transformer——从原理、模型架构到内部细节介绍

Transformer模型是一种基于注意力机制的深度学习模型,最早由Google在2017年的论文《AttentionIsAllYouNeed》中提出。自其问世以来就迅速席卷了自然语言处理他(NLP)领域,并在各类主流任务上取得了新的突破,包括机器翻译、语言建模、序列标注和文本分类等。在NLP领域取得巨大成功后,迅速扩展到了计算机视觉(CV)领域,并带来了革命性的变化。这种基于自注意力机制的深度学习模型,不仅在NLP任务中力压群雄,也成为CV领域的新宠。

2025-01-20 13:47:37 7476 3

原创 视觉语言模型——原理、模型架构、训练方法

近年来深度学习在计算机视觉(CV)和自然语言处理(NLP)等单模态领域都取得了十分优异的性能。随着技术的发展,多模态学习的重要性和必要性已经慢慢展现。视觉语言学习作为多模态学习的重要部分,得到国内外研究人员的广泛关注。得益于Transformer框架的发展,越来越多的预训练模型被运用到视觉语言多模态学习上,相关任务在性能上得到了质的飞跃。

2025-01-17 09:31:00 2562

原创 OCR文字识别—基于PP-OCR模型实现ONNX C++推理部署

PaddleOCR 是一款基于 PaddlePaddle 深度学习平台的开源 OCR 工具。PP-OCR是PaddleOCR自研的实用的超轻量OCR系统。它是一个两阶段的OCR系统,其中文本检测算法选用DB,文本识别算法选用CRNN,并在检测和识别模块之间添加文本方向分类器,以应对不同方向的文本识别。PP-OCRv4 在速度可比的情况下,中文场景端到端 hmean 指标相比于 PP-OCRv3 提升 4.25%。英文数字场景,相比于 PP-OCRv3 英文模型提升 6%。

2025-01-10 14:11:16 2416 4

原创 文档处理——拍照文档OCR文字识别从算法原理到模型推理部署

OCR(Optical Character Recognition,光学字符识别)技术是一种将图像中的文字内容提取为可编辑的数字文本的技术。它能够识别图片中的印刷字体、手写字体,甚至复杂的表格和图形内容,实现从“图像”到“数据”的转换。也就是说将图象中的文字进行识别,并返回文本形式的内容。

2025-01-06 10:15:31 2727

原创 拍照文档处理——达到商用级别的基于语义分割与直线检测拍照文档边缘校正(使用NCNN进行推理部署)

文档图像的边缘校正是图像处理中的一项重要任务,尤其在文档数字化和自动化扫描过程中,确保文档图像的几何形状和内容准确性具有重要意义。传统的文档图像校正方法通常依赖于手动选择或简单的几何变换。然而,随着深度学习和计算机视觉技术的发展,语义分割与直线检测被广泛应用于文档边缘校正任务中,极大提高了处理的效率和精度。语义分割技术通过将图像中的每个像素进行分类,可以精准地提取出文档的边缘信息。在文档图像中,文档区域通常会被标记为一个特定的类别,而背景或其他元素则被分离出来。

2024-12-28 13:31:29 2136

原创 深度学习——神经网络中前向传播、反向传播与梯度下降原理

神经网络的前向传播是从输入层开始,按照网络结构依次将数据通过各隐藏层进行计算传递,最终在输出层得到预测结果的过程,是信息正向流动、逐步转换输出的阶段。反向传播基于前向传播得到的输出与真实标签的误差,从输出层反向将误差逐步分摊到各隐藏层及输入层的神经元上,以此来更新网络的权重参数,从而不断优化神经网络的性能。

2024-12-24 16:22:18 4839 2

原创 YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现

OpenCV 是一个用于计算机视觉任务的库,它的 DNN 模块提供了一种使用深度神经网络进行推理的方式。这使得开发者可以轻松地将预训练的深度学习模型集成到自己的计算机视觉应用中,而不需要从头开始构建和训练复杂的神经网络。

2024-12-22 11:15:33 2415 2

原创 深度学习——模型过拟合和欠拟合的原因及解决方法

过拟合是指模型在训练数据上表现非常好,但在测试数据或新的数据上表现很差的现象。模型过度地学习了训练数据中的细节和噪声,以至于它无法很好地泛化到未见过的数据。例如,在一个图像分类任务中,过拟合的模型可能对训练集中的每一张图像的特定细节(如某张猫图片背景中的一个小污点)都学习得过于精细,以至于在测试集中,只要图像背景稍有不同,就无法正确分类。

2024-12-20 10:18:08 3499

原创 YOLOv8目标检测——详细记录使用ONNX Runtime进行推理部署C++/Python实现

在之前博客中有介绍YOLOv8从环境安装到训练的完整过程,本节主要介绍ONNX Runtime的原理以及使用其进行推理加速,使用Python、C++两种编程语言来实现。

2024-12-14 19:58:06 7454 13

原创 深度学习——激活函数的原理与应用

激活函数(Activation Function)在深度学习中起着至关重要的作用,它能为神经网络引入非线性因素,使得神经网络可以拟合各种复杂的非线性关系。常用的激活函数有 sigmoid、 tanh、 relu等。

2024-12-06 12:57:42 2426

原创 OpenCV图像处理——二值化原理与代码实现(C++/Python)

在 OpenCV 中,二值化是将一幅灰度图像转换为仅包含两种像素值(通常为 0 和 255,分别代表黑色和白色)的二值图像。

2024-12-03 14:32:28 2680 1

原创 OpenCV图像处理——图像滤波原理与代码实现(C++/Python)

常见的图像噪声和滤波的原理与代码实现,含Python、C++两种代码。

2024-11-30 13:37:41 2539 2

原创 基于YOLOv8的安全帽识别从数据处理到模型训练与部署

YOLOv8由Ultralytics公司在2023年1月10日开源,支持全范围的视觉AI任务,包括分类、检测、分割、姿态估计和跟踪。YOLOv8在之前YOLO版本的基础上,在多个方面进行了改进和优化。

2024-11-21 16:11:31 2005

原创 OpenCV图像处理——形态学操作原理与代码实现(C++/Python)

形态学操作(Morphological Operations)是图像处理中的一类重要操作,主要用于处理图像的形状特征,尤其是二值图像中的边界、连通区域、空洞、噪声等结构。形态学操作基于结构元素对图像进行操作,通常用于预处理和后处理,如去噪、提取边缘、分割物体等。

2024-11-16 16:23:10 1598

原创 OpenCV图像处理——基于边缘提取与直线检测实现拍照文档剪切校正

本节通过边缘检测和直线检测来实现文档图像的自动剪切与几何校正,包含C++与Python两种代码。

2024-11-12 16:59:19 1604

原创 OpenCV图像处理——基于OpenCV的直线检测与直线拟合

使用霍夫变换进行直线检测,使用最小二乘法拟合直线的原理与代码实现(C++与Python)

2024-11-08 15:30:17 3505

原创 OpenCV图像处理——基于OpenCV的边缘检测与轮廓提取

基于OpenCV的边缘检测与轮廓提取原理解读与详细代码实现,包含C++/python两个版本

2024-11-07 11:03:42 2107

原创 OpenCV图像处理——从安装到基础入门详细示例(C++/Python实现)

OpenCV基础快速入门教程,包含了C++与Python两种代码实现。

2024-11-01 17:34:59 1563

空空如也

空空如也

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

TA关注的人

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