- 博客(26)
- 收藏
- 关注
原创 YOLO系列笔记(十八)—— YOLOv1和YOLOv2总结与对比
在ImageNet上预训练Darknet-19,输入尺寸为 (224 \times 224)。调整输入尺寸为 (448 \times 448),在ImageNet上finetune分类模型。修改分类模型为检测模型,并在检测数据集上finetune,增加新的卷积层和passthrough层,调整输出channels数以适应目标检测任务。通过这三个阶段,YOLOv2模型能够有效地进行分类和检测任务,适应不同尺度和长宽比的物体,提高检测精度和速度。
2024-06-30 11:41:34
940
原创 深度学习常见概念解释(四)——损失函数定义,作用与种类(附公式和代码)
在机器学习和深度学习中,损失函数(Loss Function)起着至关重要的作用。它是模型优化过程中不可或缺的一部分,用于衡量模型预测值与真实值之间的差异。选择合适的损失函数不仅可以帮助模型更好地拟合数据,还能反映任务的特性,提高模型的性能和鲁棒性。本文将详细介绍损失函数的定义、作用及常见种类,并通过具体的示例代码展示如何在实际应用中使用这些损失函数。损失函数(loss function)是在机器学习和深度学习中用来衡量模型预测值与真实值之间差异的函数。
2024-06-23 08:45:29
1225
原创 深度学习常见概念解释(三)——激活函数定义,作用与种类(附公式,求导,图像和代码)
在深度学习中,激活函数是神经网络中的一个关键组件,起着引入非线性因素的作用,从而增加神经网络的表达能力和拟合复杂函数的能力。在神经网络中,每个神经元接收来自上一层神经元的输入,并对这些输入进行加权求和,然后将结果输入到激活函数中。激活函数对加权求和的结果进行变换,输出给下一层神经元。通过激活函数,神经网络可以学习和表示数据中的非线性关系,使得其在处理图像、语音、自然语言等复杂任务时表现出色。本文将详细介绍激活函数的定义、作用及其种类,并通过具体例子和代码实现展示每种激活函数的性质和导数。
2024-06-13 03:10:13
1148
原创 深度网络学习笔记(二)——Transformer架构详解(包括多头自注意力机制)
在现代深度学习模型的发展中,自注意力机制(Self-Attention)和Transformer架构成为了诸多领域中的重要组成部分。自注意力机制通过捕捉序列数据中不同位置之间的关系,显著提升了模型的表示能力。而Transformer架构则利用多层自注意力机制和前馈神经网络(Feed-Forward Network, FFN),构建了强大且高效的序列到序列模型。
2024-06-08 13:11:36
1792
原创 深度学习常见概念解释(二)—— 感受野:定义与计算公式
感受野(Receptive Field)是神经网络中一个基本且重要的概念,尤其是在卷积神经网络(CNNs)中。它表示输入空间中一个像素影响输出空间中特定神经元的区域大小。具体解释为:在卷积神经网络中,感受野是指在输入图像上,一个神经元(或特征图中的一个元素)可以看到或响应的区域大小。更具体地说,感受野是指输入图像的一个区域,这个区域中的像素会影响到卷积层或池化层中特定位置的输出值。感受野是卷积神经网络中衡量每个神经元能够“看到”的输入图像区域的一个重要概念。
2024-06-05 05:15:59
1753
原创 深度网络学习笔记(一)——self-attention机制介绍和计算步骤
Transformer是一种非常常见且强大的深度学习网络架构,尤其擅长处理输出为可变长度向量序列的任务,如自然语言处理(NLP)和图(Graph)处理。Transformer采用了self-attention机制,克服了传统循环神经网络(RNN)在处理长序列时存在的梯度消失和并行计算困难的问题。本文将详细介绍self-attention机制的定义和计算细节。Self-attention是一种计算输入序列中每个元素对其他所有元素的重要性权重的方法。
2024-06-02 05:04:32
1457
原创 YOLO系列笔记(十七)—— YOLOv5各层详细介绍(附python代码):Focus,Conv,C3,SPPF,特征金字塔及多尺度训练
在目标检测任务中,模型的结构和各个模块的设计对检测性能有着至关重要的影响。本文将详细介绍YOLOv5中的一些关键模块和技术,包括Focus层、卷积层(Conv)、C3层、SPPF层、特征金字塔(Feature Pyramid)以及多尺度训练(Multi-scale Training)。这些模块和技术共同构成了YOLOv5强大的目标检测能力。!Focus层的核心思想是将输入图像的空间信息(即宽度和高度)重新排列成更多的通道信息。
2024-05-20 14:19:46
1839
原创 YOLO系列笔记(十六)—— 图片合成视频并通过yolov8目标识别代码
在笔者的第一篇 YOLO 笔记文章中,提到 YOLO 网络相对于二阶段网络的一个显著优势是可以进行实时的目标识别,因此非常适合用于监控等需要对视频进行实时目标识别的场景。在这篇笔记中,笔者将介绍如何将图片合成为视频,以及如何调用 YOLOv8 对视频中的物体进行目标识别的代码。通过这篇文章,读者可以学习到图像处理和目标识别的具体实现方法,并将其应用到实际项目中。在本文中,我们详细探讨了如何利用Python和OpenCV将图像序列合成视频,并在视频中进行目标识别。
2024-05-16 12:52:47
878
1
原创 YOLO系列笔记(十五)—— Python 文件与目录操作指南:掌握 os 模块的常用命令
在关于神经网络的学习中,Python 是非常常见且易于掌握的编程语言之一。笔者在学习的时候发现神经网络会经常涉及到一些文件操作,比如获得文件的路径并拼接,之后进行数据集的分类和移动等等,经常会需要编写Python脚本进行文件操作。在 Python 中,os 模块提供了一系列用于文件和目录操作的常见命令。在这篇文章中,笔者会介绍一些常见的 os 模块相关的文件处理命令并附上示例代码。这些命令被分类为文件操作、目录操作、路径操作、权限操作和其他操作。
2024-05-15 11:16:59
898
原创 YOLO系列笔记(十四)——Compute Canada计算平台及其常见命令介绍
大家好,笔者目前身处加拿大,在学习神经网络的过程中由于无法使用国内服务器进行网络的训练和学习,一度感到十分不便。然而,幸运的是,我发现了Compute Canada——这是一个专为科研和学术研究设计的高性能计算平台,非常适合需要进行大规模计算和数据处理的项目,尤其是神经网络的训练。在本文中,笔者将详细介绍这一计算平台的优势,并提供一些实用的操作指令,希望能帮助身处海外的研究人员有效利用该平台。
2024-05-11 12:07:08
1110
2
原创 YOLO系列笔记(十三)——数据集文件夹拆分
在学习和训练涉及YOLO等神经网络的过程中,我们通常需要对收集到的大型数据集进行合理的拆分,标准的做法是将其分为训练集(train)、测试集(test)和验证集(validation)。手动对大规模的图片集进行分类不仅耗时而且容易出错,因此我编写了一个Python脚本,旨在自动化这一繁琐的过程。该脚本能够将指定文件夹中的图片按照8:1:1的比例自动分配到train、test和validation三个文件夹中,使用的是Python的os和shutil库来处理文件操作。!move_files。
2024-05-07 07:29:11
923
原创 YOLO系列笔记(十二)——csv文件转成text文件
在上一篇文章中,我们探讨了如何将CSV格式的数据集转换为XML格式。然而,某些神经网络进行数据处理时,可能需要将数据直接以纯文本格式(TXT)提供。这种需求在神经网络的输入处理中也非常常见,因为某些处理框架和库可能优先或仅支持文本格式的输入。幸运的是,从CSV文件到TXT文件的转换是直接且不复杂的,不需要经过XML这一中间步骤。本文将详细介绍如何直接将CSV文件转换为更适合神经网络读取的TXT格式,并提供相应的Python脚本实现。
2024-05-07 05:59:05
938
原创 YOLO系列笔记(十一)——csv文件转换成xml文件
在深入研究YOLO等图像处理神经网络之后,我深刻认识到数据是深度学习的基石。事实上,无论是何种类型的神经网络,它们都极度依赖于数据的质量和结构。网络的性能、效率以及最终的应用成效,均直接受到其训练和测试数据的影响。在我的数据搜集过程中,我注意到许多数据库主要以CSV文件格式存储。尽管CSV格式便于人们查看和阅读,但它并不适合神经网络的数据输入需求。因此,在本文中,我将分享一种从CSV文件转换为XML文件的方法,并对这一转换过程进行详细分析。这个函数用于转义可能破坏XML格式的特殊字符。
2024-05-06 07:25:20
992
原创 YOLO系列笔记(十)—— 基础:卷积层及其计算公式
卷积层是在深度学习领域中非常常见、基础且重要的一种神经网络层。许多初学者可能会对卷积层的功能、其计算过程以及它在神经网络中的作用感到困惑。在这篇文章中,我将为大家详细介绍卷积层的基本概念和运作原理。卷积层主要执行的是卷积操作,这是一种在神经网络中常用的操作,用于从输入数据中提取特征。在卷积层中,多个卷积核(也称为滤波器)在输入数据上滑动,并在每个位置上执行逐元素的乘积运算,随后将这些乘积相加以产生输出特征图中的一个元素。这个过程在数学上被描述为卷积运算,其目的是通过滤波器提取输入数据的局部特征。
2024-05-05 14:47:27
2685
2
原创 YOLO系列笔记(九)—— yolov5转onnx并推理
该笔记记录了将训练后得出的yolov5s.pt模型转为.onnx模型并进行推理的过程。教程与大部分代码均来自这位作者的这篇博客。输入org_box(原始的边界框数据),conf_thres(置信度阈值),iou_thres(用于NMS的IoU阈值)。处理: 删除不符合置信度要求的框,对每个类别的框应用非极大抑制,以减少重叠。输出: 经过筛选和NMS处理后的边界框。
2024-04-22 07:42:57
3012
1
原创 YOLO系列笔记(八)——AssertionError: Image Not Found 错误的发现,分析和解决
在本篇笔记中,我们将一起探讨在使用深度学习模型进行图像处理时遇到的一个常见问题,以及如何解决这种问题。本案例中,笔者在测试自己训练的深度学习模型时遇到了一个令人费解的错误:尽管图片文件明显存在于指定路径,程序却报错显示找不到该文件。
2024-04-21 05:48:15
2768
1
原创 YOLO系列笔记(七)——xml文件转换成txt文件
该笔记将介绍将上一篇笔记中用labelimg标注出的文.xml文件转换成.txt文件的代码,其中大部分来自这位的这篇。
2024-04-15 09:27:03
1443
1
原创 YOLO系列笔记(六)——使用labelimg标注数据集
大家下载最新款即可。但此时的.xml文件不能直接用于深度学习网络的训练和测试,需要将该文件中的相关数据提取出来并进行处理,将所有需要的信息转换成.txt文件存到labels文件夹中才能进行后续的训练和测试。当图片准备就绪,就可以对图片中的某个物体进行标注了。完成标注后需要进行保存,此时可以自定义保存文件夹:点击左边导航栏中的Change Save Dir,决定将框选后的.xml文件保存路径。保存后在对应的文件夹里可以查到与图片文件同名的.xml文件,打开后会看到对应的图片信息以及框选的标签种类和位置。
2024-04-15 06:32:04
695
1
原创 YOLO系列笔记(五)——YOLOv5结构文件分析
Conv:卷积层,用于特征提取。C3:该模块通常包含三个主要的部分:分割: 输入特征图首先被分割成两部分。一部分直接通过,作为残差连接;另一部分则进入后续的卷积处理。卷积处理: 分割后的一部分特征图会通过一系列的卷积层。这通常包括几个批量归一化层(BatchNorm)和激活函数(如 ReLU 或 Leaky ReLU)以及卷积层。在 YOLOv5 中,这部分还包括 “Bottleneck” 层,即使用 1x1 和 3x3 卷积的组合来减少参数数量并处理特征。
2024-04-14 05:31:24
885
1
原创 YOLO系列笔记(四)——YOLO v3介绍
YOLO v3 是 YOLO 系列中的一种先进的实时目标检测网络,它在效率和速度方面相较于其前身有显著提升。此版本特别优化了网络结构,以改善小目标的检测能力,综合利用多尺度特征图信息以预测不同大小的物体。它采用了丰富的先验框设计,每个尺度提供三种不同规格,共计九种先验框。
2024-04-12 21:24:42
691
原创 YOLO系列笔记(三)—— YOLO v2的网络改进
YOLO V2 通过精心设计的网络结构,如去除全连接层和使用 1x1 卷积,实现了在保持高检测精度的同时,大幅减少计算量和参数数量。这种结构设计使得 YOLO V2 不仅在大型数据中心的 GPU 上运行效果良好,同时也适合在资源受限的设备上进行实时物体识别任务。此外,416x416 的输入尺寸平衡了速度和精度,使得网络既能捕捉到小物体,又能处理大场景中的复杂对象。
2024-04-10 12:37:05
1395
1
原创 深度学习常见概念解释(一)—— 梯度消失和爆炸
梯度消失问题(Vanishing Gradient Problem)是神经网络,尤其是深层神经网络在训练过程中常见的一个问题。它指的是在神经网络的训练过程中,当误差梯度(gradient)被反向传播回网络的输入层时,梯度的值变得非常小,甚至接近于零,导致网络权重的更新非常缓慢或者几乎不更新,这使得网络很难继续学习或者完全无法收敛到一个好的解。
2024-04-08 07:14:28
1935
原创 YOLO系列笔记(二)—— YOLO v1介绍
YOLOv1(You Only Look Once版本1)作为经典的单阶段目标检测算法,其设计理念是将目标检测问题通过卷积神经网络(CNN)转化为回归问题,实现了对视频流的实时检测,并因其应用范围广泛而备受关注。与早期的深度学习网络相比,YOLOv1在模型推理速度上有显著的优势,尽管其平均精度(mAP)不如后来的两阶段(two-stage)网络高,但在速度上仍保持领先地位。
2024-04-07 09:08:26
834
原创 YOLO系列笔记(一)——YOLO介绍与衡量指标
在目标检测任务中,每个类别都有自己的精度-召回率曲线(Precision-Recall Curve),这条曲线描述了在不同置信度阈值下模型的精度和召回率之间的关系。最后,将所有类别的插值精度下的面积取平均,得到MAP(见图二)。其中,Area of Overlap 表示预测值和真实值之间的交集区域的面积,Area of Union 表示预测值和真实值之间的并集区域的面积,见下图。MAP是评价目标检测算法性能的重要指标,它综合考虑了模型在不同类别上的检测准确性和召回率,能够客观地评价模型的整体性能。
2024-04-05 12:13:27
989
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人