自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Python基础022】一文搞明白Python函数

函数的定义使用def关键字,后面跟着函数名和一对圆括号(),括号内可以包含参数列表,然后是冒号:,最后是一个代码块(即缩进的代码部分)。基本语法如下:def 函数名([参数1, 参数2, ...]):代码[return 表达式]其中函数名可以是字母数字或下划线组成的字符串,但是不能以数字开头。函数的参数放在一对圆括号中,参数的个数可以有零个、一个或多个,参数之间用逗号隔开,这种参数称为形式参数。括号后面以冒号结束,冒号下面就是函数的主体。

2024-03-28 17:17:34 967 1

原创 【YOLO系列】YOLO V5模型详解

YOLOv5根据参数量分为了YOLOv5n(Nano)、YOLOv5s(Small)、YOLOv5m(Medium)、YOLOv5l(Large)和 YOLOv5x(Extra Large)五种类型,其参数量依次上升,当然了其效果也是越来越好。从2020年6月发布至2022年11月已经更新了7个大版本,在v7版本中还添加了语义分割的功能。

2024-03-01 17:21:40 1584

原创 【ERROR不再见系列007】解决了Matplotlib中文乱码问题,负号又不见了?

用matplotlib进行绘制数据图,常常需要设置中文的标签、图例,但是matplotlib对中文不是特别友好,如果你直接在标签中输入中文,那么绘制出来的数据图上的中文部分就是乱码。但是,中文乱码问题解决了,好像又出现新的问题了。我们发现上图x轴的负号又乱码了,那怎么搞呢?看这里,只需一行代码解决中文乱码问题。有些字体matplotlib没有自带,需要自己去下载。同样,只需一行代码解决负号乱码问题。最后附一个不同字体对应的编码。

2024-02-28 10:02:01 294

原创 【数据分析之Matplotlib基础001】Matplotlib安装与如何绘出你的第一条线

为了将数据变成大家喜欢的图形数据,Python提供了matplotlib数据可视化库来绘制各种数据图。Matplotlib是Python的一个2D绘图库,可以绘制直方图、功率谱、条形图、错误图、散点图等。

2024-02-28 09:56:29 753

原创 【数据分析之Numpy基础004】数学运算大揭秘:轻松玩转ndarray的强大实力

ndarray的数学运算是一项非常重要的操作,包括不同对象之间的四则运算,三角函数变换、求和、求平均等操作。

2024-02-25 12:56:57 461

原创 【数据分析之Numpy基础003】数组形状大变身!轻松掌握改变数组形状的技巧

处理数组的一项重要工作就是改变数组的维度,包括提高数组的维度和降低数组的维度,还包括数组的转置、拼接、分隔等。Numpy为大家提供了大量的API可以很轻松的完成这些数组的操作。

2024-02-25 12:40:26 646

原创 【数据分析之Numpy基础002】掌握ndarray对象:访问与修改技巧大揭秘

ndarray数组的下标也是从0开始,因此可以设置start,stop以及step参数即可从原数组中切割出一个新的数组。ndarray对象的访问与修改十分容易,跟list对象的操作一样,直接通过索引或切片操作就可以实现。一维数组的切片与索引。

2024-02-22 15:03:10 248

原创 【数据分析之Numpy基础001】数组创造者秘籍:轻松掌握创建Array,编程新手变高手

numpy模块的array函数可以生成多维数组。例如,如果要生成一个二维数组,需要向array函数传递一个列表类型的参数。每个列表元素是一维的ndarray类型数组,作为二维数组的行。另外,通过ndarray类的shape属性可以获得数组每一维的元素个数(元组形式),也可以通过shape[n]形式获得每一维的元素个数,其中n是维度,从0开始。其中::数组或嵌套的数列:数组元素的数据类型,可选:对象是否需要复制,可选:创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)

2024-02-22 14:40:26 763

原创 【Python基础021】Python中的何如实现文件的读写

Python中文件的读写在程序运行过程中是一个非常重要的操作,我们通常会将一些大量的临时数据暂时存放到一个临时文件,这就需要用到文件的读取与写入功能。

2024-02-04 16:35:52 938

原创 【Python之Git使用教程001】Git简介与安装

Git其实就是一个分布式版本的控制系统,在分布式版本的控制系统,大家都拥有一个完整的版本库,不需要联网也可以提交修改,所以中心服务器就显得不那么重要。由于大家都拥有一个完整的版本库,所有只需要把各自的修改推送给对方,就可以互相看到对方的修改了。以前有很多公司都是用SVN进行版本控制管理,但是后面使用SVN做版本控制的Google Code因为干不过Github,关门大吉了,所有很多公司逐渐将代码迁移至Git。那么,Git与SVN的区别是什么呢?

2024-02-04 16:22:26 1527

原创 【Python基础020】Python中三大常用函数(map、filter、reduce)

map、filter和reduce函数都是Python中的内置函数,但是reduce函数从Python3开始移到了functools模块中,使用时需要从functools模块导入。

2024-01-31 14:28:29 339

原创 【YOLO系列】 YOLOv4之BN、CBN、CmBN(附代码)

在文中,作者针对BN在小批量的问题,利用多个最近迭代的样本的来提高数据估计的质量,但是由于在迭代过程中网络权重不断变化,来自不同迭代的网络激活不能相互比较,因此作者提出一种基于泰勒多项式的技术来补偿迭代之间网络权值变化,从而有效利用之前迭代的样本来改进批量归一化,这种方法就是交叉迭代的批量归一化(CBN)。说简单点,CBN就是一种通过补偿迭代之间网络权值的变化而有效的利用之前的迭代样本来改进批量归一化的方法。

2024-01-31 14:25:28 1424

原创 【Python基础019】匿名函数lambda与关键字yield

lambda函数被称为匿名函数,主要是指在程序中只调用一次或几次后就不需要再使用的函数,属于“一次性”函数,并且不需要def关键字来定义函数。其语法格式如下:其中,arguments是函数参数,expression是函数体中的表达式。Lambda函数可以有任意数量的参数,但只能有一个表达式。例如,求两数之和求两数的平方和。

2024-01-30 16:49:12 308

原创 【Python基础018】在程序中怎么实现自定义抛出异常

在 Python 中,可以通过继承 Exception 类来创建自己的异常称为自定义异常。异常类和其他的类并没有区别。最简单的自定义异常类就是一个空的 Exception 类的子类。语法格式如下:pass下面通过继承 Exception 类来生成一个 SexException 类。如果给 Student 类的属性 sex赋值时候,如果不是“男”或者“女”就抛出自定义的 SexException。

2024-01-30 16:45:11 1130

原创 【Python基础017】Python异常大揭秘:轻松驾驭错误,从此告别Bug!(try...except...的使用)

在python程序在运行的过程中可能会出现很多错误,比如语法、未定义变量、分母为0等错误;而我们通常使用try...except...语句来处理程序在运行中出现的这些异常,并显示出现错误的原因。此外,我们还可以用try...finally...来监控错误的环节,并继续执行finally后的语句,但是这种判断结构无法显示出现的错误原因。因此,在实践中通常将这两种结构组合起来使用。同时,还可以使用try...except...else...finally的形式来实现更好的稳定性和灵活性设计。

2024-01-28 22:56:49 832

原创 【Python基础016】循环黄金法则:瞬间掌握break与continue,编程效率翻倍!

与 break 语句对应的还有另一个 continue 语句,与 break语句不同的是,continue 用于结束本次循环,继续下一次。而 break 语句用来彻底退出循环。可以看到,continue是跳过当前循环,继续下一个循环,直到完成for循环,而break则是直接退出for循环。可以看到,当a=5时,break会退出for循环,则不会继续将for循环执行完,同时也不会退出while循环。print("被5除净,循环结束,退出")print("循环结束,退出")print("循环结束,退出")

2024-01-28 19:56:56 355

原创 【Python基础015】集合的用法

集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的 “ 键对象”,因此是不能重复的且唯一的。

2024-01-26 22:19:39 151

原创 【Python基础014】字典的用法

Python中的字典(dict)与列表、元组都不同,它不是序列,而是一种映射(mapping)。映射是一个其他对象的集合,但是它们是使用键-值(key-value)来存储对象,具有极快的查找速度。字典是另一种可变容器模型,且可存储任意类型对象,同列表一样,可以就地改变并随着需求增大或减小。字典的每个键值对(key=>value)用冒号(:)分割,每对之间用逗号(,)分割,整个字典包括在花括号({})中 。

2024-01-26 22:16:30 648

原创 【YOLO系列】 YOLOv4之SAT自对抗训练

自对抗训练(Self-Adversarial Training,简称SAT)是一种新型的数据增强技术,旨在通过神经网络自身进行的对抗式攻击来提高模型的鲁棒性和泛化能力。其主要分为两个阶段:第一阶段神经网络会对其原始图像进行修改,制造出图像上没有目标的假象。这种修改是通过一种对抗的方式进行的,即神经网络改变原始图像而不是网络权值。具体来说,神经网络在训练过程中会生成一种对抗性的攻击,这种攻击可以改变原始图像,使其看起来像没有目标物体一样。第二阶段训练神经网络对修改后的图像进行正常的目标检测。

2024-01-22 15:49:10 645

原创 【Python基础013】元组的用法

元组是不可变的有序集合,一旦创建就无法对其进行修改。因此,元组没有列表的append()、insert()方法来向元组中添加元素,但是方法总比问题多,我们仍然可以通过其他方法来向元组添加元素。

2024-01-22 14:16:54 1034

原创 【Python基础012】列表的用法

列 表 用 于 存 储 任 意 数目、任意类型的数据集合。在 Python 中,用方括号([])来表示列表,并用逗号来分隔其中的元素。

2024-01-18 23:59:08 913

原创 【YOLO系列】 YOLOv4之(Hard)NMS、Soft NMS、DIOU NMS(附代码)

NMS (Non-Maximum Suppression,非极大值抑制),是一种在计算机视觉领域常用的技术,。在目标检测任务中,算法通常会生成多个候选框来表示可能包含目标的区域。由于图像中的目标可能以不同的尺度和位置出现,这些候选框往往会有一定的重叠。在经典的NMS中,得分最高的检测框和其它检测框逐一计算出一个对应的IoU值,并将该值超过NMS threshold的框全部过滤掉。可以看出,在经典NMS算法中,IoU是唯一考量的因素。

2024-01-18 15:11:34 1190

原创 【YOLO系列】 YOLOv4之Focal Loss损失函数

Focal Loss损失函数何凯明大神在RetinaNet网络中提出来的,主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的比重,也可以理解为一种困难样本的挖掘。它通过调整标准的交叉熵损失函数,使得模型在训练过程中更加关注难以分类的样本。作者认为one-stage和two-stage的表现差异主要原因是大量前景背景类别不平衡导致。作者设计了一个简单密集型网络RetinaNet来训练,在保证速度的同时达到了精度最优。

2024-01-15 16:23:25 1056

原创 【YOLO系列】 YOLOv4之Mosaic数据增强(附代码)

Mosaic数据增强是一种在目标检测任务中常用的技术,特别是在使用YOLO系列算法时。这种数据增强方法通过将四张图片随机组合成一张新的图片,从而增加数据集的多样性,提高模型的泛化能力。将这样一张新的图片传入到神经网络当中去学习,相当于一下子传入四张图片进行学习了。这极大丰富了检测物体的背景,且在标准化BN计算的时候一下子会计算四张图片的数据。

2024-01-15 16:13:40 2031

原创 【YOLO系列】 Smooth L1 Loss、IOU、GIOU、DIOU、CIOU(附代码实现)

Smooth L1 Loss、IOU、GIOU、DIOU和CIOU都是用于评估模型预测准确性的指标,但它们在计算方式和应用场景上有所不同。

2024-01-11 14:03:17 1245

原创 【YOLO系列】 YOLO V4之正则化DropBlock

DropBlock是一种正则化技术,用于防止深度神经网络的过拟合。它通过在训练过程中随机丢弃网络中的一部分特征图,来增加模型的泛化能力。文章中分析了传统的dropout在conv上效果不好的原因conv具有空间相关性,所以即使对一些单元随机进行dropout,仍然可以有信息流向后面的网络,导致dropout不彻底。针对这个问题,作者提出了DropBolck这一方法,思想很简单:从名字就可以看出来,既然随机丢弃独立的单元可能导致丢弃不彻底,那不如一次丢弃一个block。

2024-01-11 11:31:42 904

原创 【YOLO系列】 YOLOv4思想详解

以下内容仅为个人在学习人工智能中所记录的笔记,先将目标识别算法yolo系列的整理出来分享给大家,供大家学习参考。本文未对论文逐句逐段翻译,而是阅读全文后,总结出的YOLO V4论文的思路与实现路径。若文中内容有误,希望大家批评指正。资料下载回顾:大家可以发现YOLO V4论文的作者变成Alexey Bochkovskiy了,YOLO V1-3的作者都是Joseph Redmon, Ali Farhadi,不过不影响,YOLO V4作者提出了一大堆措施来提高YOLO的性能,我们这就来看看。

2024-01-09 17:09:50 1127

原创 【YOLO系列】 YOLOv4之Mish函数

1、公式其他的激活函数,ReLU 是 x = max(0,x),Swish = x * sigmoid(x)。2、 代码实现要使用这个Mish模块,可以将其添加到神经网络模型中,并在训练和推理过程中使用它作为激活函数。return xReLU有一些已知的弱点,但是通常执行起来很轻,并且在计算上很轻。Mish具有较强的理论渊源,在测试中,就训练稳定性和准确性而言,Mish的平均性能优于ReLU。

2024-01-09 17:06:33 450

原创 【Python基础011】Python中字符串的具体用法

字符串的具体使用方法

2023-12-29 22:13:28 1324 1

原创 【Python基础010】Python中的字符串操作

找到子字符串sub,使字符串分成一个3元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回(‘原字符串’,‘,’)不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分隔maxsplit个字符串,返回切片后的子字符串拼接。检查字符串是否以sub子字符结束,如果是返回True,否则返回False,start和end表示范围。检索sub是否包含在字符串中,如果有则返回索引值,否则返回-1,start和end参数表示范围,可选。如果为True,则保留换行符。

2023-12-26 20:21:51 66

原创 【Python基础009】位置参数和关键字参数及*arg,**kwargs的用法

在Python中,函数定义时可以指定参数的位置和关键字。位置参数和关键字参数是两种不同类型的参数,它们在定义和使用时有所不同。

2023-12-26 10:22:53 533

原创 【Python基础008】python中省略号(...)的用法

在Python中,省略号(...)也被称为Ellipsis,它是一个特殊的对象,常见用于多维数组的切片操作。

2023-12-25 14:52:45 750

原创 【Python基础007】os与so.path关于文件的常用函数

函数功能返回当前工作目录改变工作目录列举制定目录中的文件名('.’表示当前目录,‘..’表示上一级目录)创建单层目录,如该目录存在则抛出异常递归创建多层目录,如该目录存在抛出异常删除文件删除单层目录,如该目录非空则抛出异常递归删除目录,从子目录度到父目录逐层尝试删除,遇到目录非空则抛出异常将文件名old改为new运行系统的shell命令遍历top路径以下所有的子目录,返回一个三元组:(路径,[包含目录],[包含文件])os.curdir指代当前目录(‘.’)os.pardir。

2023-12-25 14:50:26 121

原创 【MySQL学习笔记009】事务

事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

2023-12-24 22:32:53 119

原创 【MySQL学习笔记008】多表查询及案例实战

概述:从多张表中查询数据笛卡尔积:笛卡尔乘积是指在数学中,两个集合A集合和B集合的所有组合情况(在多表查询时,需要消除无效的笛卡尔积)

2023-12-24 22:29:17 130

原创 【MySQL学习笔记007】约束

约束是作用于表中字段上的规则,用于限制存储在表中的数据。:保证数据库中数据的正确、有效性和完整性。:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

2023-12-24 22:24:40 135

原创 【MySQL学习笔记006】MySQL中的常见函数

MySQL常见的字符串函数。

2023-12-24 22:22:18 100

原创 【YOLO系列】YOLOv3代码详解(五):utils.py脚本

将funcs中的元素进行某种累积或合并"""# 递归操作,将funcs中的元素进行某种累积或合并if funcs:else:实现图片数据增强# 获得范围为[a,b]的随机数"""通过随机缩放的方式调整图片的尺寸至(416, 416),随机改变图片的RGB、翻转方式来实现图片数据增强"""image = Image.open(line[0]) # 打开需要训练的图片iw, ih = image.size # 获取图片的宽度与高度# 获取Gound Truth框。

2023-12-24 21:54:45 71

原创 【YOLO系列】YOLOv3代码详解(四):模型脚本model.py

定义一个darknet_conv_kwargs字典,传递“kernel_regularizer”、“padding”参数# 如果输入的kwargs中定义了strides为(2,2),则padding模式为valid,否则为same模式# 将输入的kwargs值更新到darknet_conv_kwargs字典中# 定义一个no_bias_kwargs字典# 将传递里面的kwargs值更新到no_bias_kwargs字典中。

2023-12-24 21:51:30 471

原创 【YOLO系列】YOLOv3代码详解(三):训练脚本train.py

(1)创建计算图、定义输入图片的Tensor、y_true的形状(2)判断是否加载预训练模型的权重yolo_weights.h5,并冻结模型中除3层输出层以外的所有层;(3)定义模型的loss(4)返回model# 创建模型# 首先清楚其他的计算图# 定义一个输入层,接受任意大小和形状的彩色(3通道)图片,返回一个Tensor# 获取输入图片的高和宽# 获取Anchor Box的数量。

2023-12-24 21:45:06 348

yolov3中kmeans算法生成Anchor Box脚本

我们在YOLO V2中说到,在Faster RCNN中anchor boxes大小都是手动设定的,这就带有一定的主观性,会使得网络在使用中不能更好的做出预测。这是在使用anchor boxes出现的第一个问题。为了解决这个问题,于是YOLO V2提出了使用k-Means聚类方法在训练集中自动的获取每个anchor boxes的大小,以替代人工设置。但是如果直接使用k-Mean的欧氏距离来度量进行聚类的话,结果会导致大的box比小的box产生更大的误差。而在YOLO V2中使用聚类的目的是为了使得anchor boxes和Ground Truth有更大的IOU,因此这就和anchor boxes的尺寸大小没有直接的关系。那么,具体怎么实现,请见脚本

2023-12-15

yolo目标检测标签文件txt与xml文件相互转化脚本

YOLO(You Only Look Once)是一种流行的目标检测算法。为了训练或使用YOLO模型,我们需要目标检测数据集,其中包含图像和对应的标签。标签通常描述了图像中物体的位置和类别。这些标签可以是XML或TXT格式。 如果你需要在TXT和XML之间进行转换,以下是一个简单的脚本示例,它使用Python的库,OpenCV等。这个脚本仅作为一个起点,可能需要根据具体情况进行修改。

2023-12-13

【Python基础】用Pyinstaller打包程序,轻松搞定程序内有图片导致exe无法运行问题

【Python基础】用Pyinstaller打包程序,轻松搞定程序内有图片导致exe无法运行问题

2023-06-08

空空如也

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

TA关注的人

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