自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

原创 Wise-IoU 作者导读:基于动态非单调聚焦机制的边界框损失

目标检测作为计算机视觉的核心问题,其检测性能依赖于损失函数的设计。边界框损失函数作为目标检测损失函数的重要组成部分,其良好的定义将为目标检测模型带来显著的性能提升。近年来的研究大多假设训练数据中的示例有较高的质量,致力于强化边界框损失的拟合能力。但我们注意到目标检测训练集中含有低质量示例,如果一味地强化边界框对低质量示例的回归,显然会危害模型检测性能的提升。Focal-EIoU v1 被提出以解决这个问题,但由于其聚焦机制是静态的,并未充分挖掘非单调聚焦机制的潜能。

2023-02-05 11:12:29 33061 159

原创 Torch 论文复现:结构重参数化 RepVGGBlock

近年来,卷积神经网络的结构已经变得越来越复杂;得益于多分支结构良好的收敛能力,多分支结构越来越流行但是,使用多分支结构的时候,一方面无法有效地利用并行加速,另一方面增加了 MAC为了使简单结构也能达到与多分支结构相当的精度,在训练 RepVGG 时使用多分支结构 (3×3 卷积 + 1×1 卷积 + 恒等映射),以借助其良好的收敛能力;在推理、部署时利用重参数化技术将多分支结构转化为单路结构,以借助简单结构极致的速度。

2022-07-20 12:52:07 4291 5

原创 蓝桥杯 Python B组 省一必备知识清单

2022 年省赛:我估计 48.5 分左右 (满分 150)。广东总共 78 个省一,我只排到了第 33 (42.3%)2022 年国赛:最后一道大题没时间写 —— 暴力就能满分的题,血亏,最后国三2023 年省赛:居然是全省第二 (广东 B 组省一共 91 人,前 2.1%),差点没把我笑死在本篇文章中,我将从“知识预备”、“刷题网站”、“函数模板”三个方面为大家讲解怎样准备蓝桥杯 Python 组的比赛。

2022-06-04 15:52:01 19418 12

原创 YOLOv5 源码解析 —— 网络模型建立

在 YOLOv5 源码中,模型的建立是依靠 yolo.py 中的函数和对象完成的:

2022-04-30 17:08:37 9126 8

原创 Kannala-Brandt 鱼眼相机模型

最近在学习 ORB-SLAM3 的源代码,并模仿、重构了相机模型的实现在学习的过程中发现针孔相机 (Pinhole) 与鱼眼相机 (Fisheye) 都有畸变参数,但是鱼眼相机无法使用 cv::undistort 函数去畸变在对鱼眼相机的深度归一化平面进行可视化后,发现鱼眼相机真的不需要去畸变参考文献:A generic camera model and calibration method for conventional, wide-angle, and fish-eye lenses。

2024-05-05 14:02:06 415

原创 Torch 模型 感受野可视化

感受野是卷积神经网络 (CNN) 中一个重要的概念,它表示 CNN 每一层输出的特征图上的像素点在输入图像上映射的区域。感受野的大小和形状直接影响到网络对输入图像的感知范围和精度,进而调整网络结构、卷积核大小和步长等参数,以改善网络的性能。

2024-04-17 12:12:34 343

原创 蓝桥杯【第15届省赛】Python B组 32.60 分

F 题列表越界访问了……省一但没什么好名次。C 语言网真是 ** 测评,时间限制和考试的不一样,E 题给我整时间超限?

2024-04-13 14:49:30 15638 71

原创 Pyinstaller 打包的文件过大,根本原因在于包含了冗余的依赖文件

网上有许多减大小的方法,比如虚拟环境 (减少二进制文件的搜索路径)、upx 压缩 (逐个压缩二进制文件,能减体积但可能增加启动时间)。但它们都没有解决 exe 文件过大的根本原因,

2024-01-06 21:13:32 1755 4

原创 Python 程序单例运行

本文的代码采用了进程检测的手段,在主代码运行之前检测程序的运行状态 (check_running_status),如果当前程序已在一个进程中运行,则报错退出。有些场景中,需要确保程序不被重复运行,也就是程序只在一个进程中被执行 (e.g., 微信)将上述代码写于 ./test.py 中,再将以下代码写于 ./tmp.py 中。程序单例运行的解决方案有:进程检测、端口抢占、文件锁。同时运行这两个程序,则可发现其中一个程序报错。

2023-07-20 11:52:13 516

原创 蓝桥杯【第14届国赛】Python B组

倒数第二题交的时候多了一个print,只拿了国二,吐血本题解仅代表个人观点,仅供参考,欢迎各位指正。

2023-06-10 16:28:29 8031 22

原创 matplotlib 齐次坐标系 绘制 2D 闪烁斑点

而对于每一个斑点,又需要考虑斑点个体属性:出生时间 (start)、出生位置 (xy)、半径 (radius)、颜色 (color)、寿命 (deltas),以控制斑点的外形和闪烁速度。绘制闪烁的斑点群,需要考虑几个群体属性:群体的生成位置 (xylim),斑点数量 (n),斑点的半径均值 (r),斑点的寿命均值 (delta)而对于闪烁斑点的旋转、平移,主要使用了。利用这个类,可以实现闪烁斑点的持续旋转。

2023-04-09 23:16:56 641

原创 蓝桥杯【第14届省赛】Python B组 77.00 分

居然是全省第二 (广东 B 组省一共 91 人,前 2.1%),差点没把我笑死运气成分比较多,当时比赛的时候只做对了 A、C、I,然后在 D、F、J 混了点分 (本题解是赛后思考修正的),归功于 I 的分值比较高又刚好会做哈哈。

2023-04-08 15:29:06 14929 27

原创 matplotlib 齐次坐标系 绘制旋转 3D 立体

齐次坐标系描述了刚体的坐标系、位置,而且还提供了一套相对旋转、相对移动、绝对旋转、绝对移动的方法,用来绘制旋转的 3D 立体是再好不过的选择。

2023-04-02 17:31:15 1646

原创 数位dp题集 Python

数位 dp 是个让人头疼的问题,特别是对于前导零的处理方法,还是得多多练习。

2023-04-02 00:07:35 731

原创 Torch 论文复现:Vision Transformer (ViT)

论文标题:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale从 TPUv3-core-days 可以看到,ViT 所需的训练时间比 ResNet 更短,同时 ViT 取得了更高的准确率ViT 的基本思想是,把一张图片拆分成若干个 patch (16×16),每个 patch 当作 NLP 中的一个单词,若干个 patch 组成一个句子,用 Transformer 进行处理。

2023-01-31 17:51:24 1764

原创 Python 现代控制理论 —— 梯度下降法实现的线性回归系统

线性回归是有监督学习中的经典问题,其核心在于找到样本的多个特征与标签值之间的线性关系。而线性回归系统给出权重向量:使得该样本的预测值为:当所有样本的预测值与标签值的误差最小时,即代表该线性回归系统找到了最优的拟合曲线本文采用了梯度下降法以解决线性回归问题。梯度下降法与现代控制系统相似,现代控制系统实现的梯度下降法如下:该系统将线性回归问题的权重向量作为状态变量,以损失函数反向传播的梯度作为,并通过对权重向量进行更新(其中的可视为学习率),使得所有样本的误差越来越小。

2022-12-27 22:21:03 1003

原创 numpy 多标签数据集划分 留出法 / 欠采样

在计算机视觉任务中,很多时候会面对棘手的多标签数据集,比如多标签分类数据集 (即一张图像有多个标签)、目标检测数据集、语义分割数据集对于类别数量均衡的数据集,留出法可以为模型分配更多的训练数据,从而使模型具备更好的效果;而对于类别极其不均衡的数据集,通过欠采样为模型提供类别均衡的数据集,可以避免模型在某一类别上的识别出现严重的缺陷在大模型的训练中,留出法是最常用的数据集划分方法;而欠采样因为可以得到类别均衡的数据集,被广泛应用于少样本迁移学习像这样的 pd.Dataframe (记为。

2022-09-28 01:04:59 2366 5

原创 Python 焦点损失改进的 Logistic 模型

时,损失值会在正样本的概率在0.8以上时迅速衰减到0附近)作为损失函数,使模型更加关注难以分类的样本,以提高逻辑回归模型的性能。逻辑回归模型是经典的二分类模型,因其计算方式也可用于预测概率。)可以看出,正样本的概率在0.8以上时仍有较大的损失值,这将阻碍模型对难以分类的样本进行学习。求解时使用的损失函数为交叉熵,记二分类布尔值为。,进而使用梯度下降法对模型的权重向量和偏置进行求解。,记学习率为 h,逻辑回归模型通过。根据链式求导法则,同样可得出。来求解最优的权重向量和偏置。,其先计算该样本的得分。

2022-09-14 20:50:40 554

原创 Python 遗传算法 Genetic Algorithm

粒子群算法是在 n 维空间内寻找最优解,对于无法映射在 n 维空间内的解集并不能很好的求解例如旅行商问题,寻找可以遍历 15 个地点的最短路径(当然可以用二进制状态压缩 + 动态规划解决),以 {0, 1, ..., 14} 表示这些地点,并以 {0, 1, ..., 14} 的一种排列方式为一个解当这个问题的解集映射在 15 维空间中时,这个空间中的可行解将非常的稀疏,从而阻碍粒子群的搜索。

2022-09-14 19:54:33 1245 1

原创 numpy 分类模型评估 混淆矩阵

先来看最基础的二分类模型的混淆矩阵查准率(精确度)真阳性样本在所有预测为阳性的样本中的占比查全率(召回率)真阳性样本在所有真实为阳性的样本中的占比,自动驾驶的目标检测因为在遗漏目标时有巨大的安全隐患,所以要求接近 100% 的召回率查准率和查全率的调和平均数,β 表示了查准率的权值(查全率的权值为 1),比较常用的是:FPFNTPFNFNFPFP由此可知,对于每一个类别,都可以由混淆矩阵各计算出 Precision、Recall。

2022-08-23 00:24:57 771

原创 Torch 模型 onnx 文件的导出和调用

OpenNeuralNetworkExchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移Torch所定义的模型为动态图,其前向传播是由类方法定义和实现的但是Python代码的效率是比较底下的,试想把动态图转化为静态图,模型的推理速度应当有所提升onnx文件可被打开,以查看模型结构。...

2022-07-24 23:34:07 7623 4

原创 Torch 论文复现:梯度加权类激活映射 Grad-CAM

全称Gradient-weightedClassActivationMapping,用于卷积神经网络的可视化,甚至可以用于语义分割不过我是主要研究目标检测的,在看论文的时候就没有在意语义分割的部分Grad-CAM的前身是,CAM的基本的思想是求分类网络某一类别得分对高维特征图(卷积层的输出)的偏导数,从而可以该高维特征图每个通道对该类别得分的权值;而高维特征图的激活信息(正值)又代表了卷积神经网络的所感兴趣的信息,加权后使用热力图呈现得到CAM。......

2022-07-14 00:01:11 3667 5

原创 Torch 论文复现:卷积注意力模块 CBAM

与SEBlock相比,CBAM对分类网络的Top-1Error约有0.2%的改进;对Top-5Error约有0.1%的改进但是SEBlock的不足之处在于只有通道注意力,没有空间注意力,用在目标检测这种定位任务上效果可想而知。

2022-07-08 23:10:27 1464

原创 Python 线性 SVM 可视化

支持向量机作为经典的二分类算法,在数学建模比赛中的优越性在于可解释性较强 —— 不像某神经网络因为核函数的引入,会使得数据的维度增加,当维度大于 3 时无法可视化所以在此只针对线性 SVM 进行讲解,以二维样本的二分类为例对于该部分样本,显然有 (紫色实线) 将蓝色样本、橙色样本分离开记每一个样本为 ,给定标签 ,该分界线 (紫色实线) 使得:又有两极端直线 (粉色虚线) 与分界线等距,使得:记 ,所有样本均需满足:当两极端直线的间隔最大时,则找到最优的分界线,根据两平行线的距离公式有:可得 SVM 的最

2022-07-08 00:50:47 2465 6

原创 Torch 论文复现:卷积网络正则化 DropBlock

DropBlock是一种类似于dropout的简单方法,它与dropout的主要区别在于,它从层的特征图中抹除连续区域,而不是抹除独立的随机单元。在论文中,最优的超参数是block_size=7,keep_prob=0.9,但实际使用时仍需要根据Loss的变化情况做出调整。从实验结果可以看到,ResNet-50在使用了DropBlock后在验证集上的准确率有一定的提升。类似地,DropBlock通过随机地置零网络的响应,实现了通道之间的解耦,缓解了网络的过拟合现象。......

2022-07-02 02:50:45 1192

原创 Torch 二维多通道卷积运算方式

对于单通道卷积的运算,相信大家已经见过不少了那么在卷积神经网络中,图像的通道数是怎样实现“从3到8”这样的跳变呢?使用Torch的Conv2d可以发现,weight参数的shape是[8,3,5,5]可以看到,Torch的运算结果和我的运算结果是一样的,猜想成立TorchGuess提出这个运算方式,是为了帮助大家更好地理解卷积在实际的部署中,是不是使用这样的方式运算我就不清楚了。...

2022-06-24 13:34:06 2161 2

原创 Python Selenium 字节校招实习岗筛选

最近常想,Python 可以到哪些岗位就职?于是我便瞄到了字节跳动的校招网站 https://jobs.bytedance.com/campus/position?,想用 requests 模块来爬取 Python 相关的岗位但众所周知,get 请求爬到网页源代码不是难事,难的地方在找到目标数据对应的 post 请求为了避开这“蛋疼”的一环,直接在浏览器操作得了 —— 于是 selenium 它来了与 requests 不同,selenium 只需要输入一个 get 请求就完事了首先编辑目标的 url 的参

2022-06-20 14:24:04 1914 2

原创 蓝桥杯【第13届国赛】Python B组 131.30分

每道题的分数都是在下面的链接测的,再按照蓝桥的分数 (可参考我的里的说明) 计算出这个分数。当初比赛的时候只有 32 分,拿了个国三,真的是菜死我了。

2022-06-18 15:16:49 2933 10

原创 Python 大数的质因数分解

肝了一天总算把大数质因数分解搞定了,这篇文章主要涉及了 Pollard rho 算法和试除法所以最终的质因数分解是由这两个算法构成的,以下环境配备至此涉及到的算法有:试除法,Miller Rabin 素性测试,Pollard rho 因数分解。

2022-06-10 17:13:45 3670 1

原创 蓝桥杯【第13届省赛】Python 实现

这个题集涵盖了第十三届省赛所有组别的编程题,但 Python B 组的题解我写在了另一篇文章中:蓝桥杯【第13届省赛】Python B组 98.95分测试链接:https://www.dotcpp.com/oj/train/1023/

2022-06-03 18:10:18 5602 3

原创 Torch 全连接层权值共享的手势识别网络

机器人学实验课的考核是,利用机械臂做一下拓展应用,所以花了很多时间来设计了这个神经网络因为这个神经网络的思路比较新颖,而且尝试了一些防止过拟合、性能优化的手段,所以决定记录一下。...

2022-05-29 02:33:00 1019

原创 蓝桥杯【第13届省赛】Python B组 98.95分

只能说这波有点混,我估计 48.5 分左右 (满分 150)。广东总共 78 个省一,我只排到了第 33 (42.3%)考前主要在力扣上面练,考试时发现并无卵用,打蓝桥杯还是要以真题为主考完没有第一时间写题解也是因为考试时有很多不懂的,现在已经是个要打国赛的人了,重新做一下。

2022-05-04 14:04:24 12525 33

原创 Python 层次分析法 AHP

import loggingimport timeimport numpy as npimport pandas as pdlogging.basicConfig(format='%(message)s', level=logging.INFO)LOGGER = logging.getLogger(__name__)成对比较矩阵该函数用于将下三角矩阵转化为成对比较矩阵def pair_comp_array(tril): ''' tril: 下三角矩阵 (以列为单.

2022-05-03 01:32:29 1948

原创 Python 灰色关联度 & 灰色预测模型

灰色关联度灰色关联度常用于分析影响因子与被影响因子的关联,是水论文的好东西import numpy as npdef gray_correlation(refer, data, rho=0.5): ''' refer: 参照数列 (列向量) data: 比较数列 (以列为单位) rho: 分辨率 return: 灰色关联度''' # 确保参照数列为列向量 refer = refer.reshape(-1, 1)

2022-05-02 22:55:43 4097 3

原创 Torch 梯度下降法 —— 非线性优化

eval_fcn 的作用:log (损失值的历史记录) 默认是使用 loss_fcn 计算得到的,如果设置了 eval_fcn,则会存储 eval_fcn 计算的损失值,例如:使用 SIoU 损失对锚框进行回归,但是为了验证 IoU 损失是否随着 SIoU 损失的下降而下降,设置 eval_fcn 为 IoU 损失。......

2022-05-01 22:50:45 1746

原创 YOLOv5 源码解析 —— 卷积神经单元

YOLOv5源码中,模型是依靠yaml文件建立的。而yaml文件中涉及到的卷积神经网络单元都是在models文件夹中的common.py声明的,所以自行设计网络结构之前有必要详解这个文件。

2022-04-27 00:11:35 11748 13

原创 Torch 神经网络训练器

重写loss函数后即可使用,但此时进度条只会输出平均损失值,如果要输出其它如准确率之类的信息,需要对_forward函数进行重写。以图像分类为例,使用交叉熵损失,_forward函数的返回值需要是平均损失。...

2022-04-21 22:14:09 2190

原创 Python 主成分分析法 PCA

主成分分析法是一种利用相关系数对数据进行降维的方法,可用于处理维数过多、指标意义不明确的数据。求相关系数的方法有很多种,下面只以协方差法为例相关系数输入是 shape 为 [sample, feature] 的原始数据,先对数据进行标准化,再求其协方差,即为各个维度之间的相关系数import numpy as npdef standardize(data, axis=None): ''' 标准化''' data = np.array(data) mean

2022-04-21 21:35:55 2651 4

原创 Python 粒子群算法 PSO

最优化问题可大致分为两类,可导的与不可导的可导的最优化问题 (e.g., 特征加权分类) 通常可使用梯度下降法解决,但不可导的最优化问题 (e.g., 神经网络超参数调整) 则只能使用遗传算法解决但遗传算法存在着明显的缺陷,即搜索方向过于随机、搜索效率低下,在更多的情况下粒子群算法会是更优的选择。

2022-04-17 00:33:57 3738 17

原创 Python 基础代码

涵盖了 基础知识、分支循环、异常处理、列表、元组、字符串、字典、集合、文件、函数、对象 以及 多个模块的代码。纯干货 (精炼无水分),如果有什么不懂的地方可以评论区留言喔~

2022-04-08 09:51:48 3967 1

DroneVehicle 数据集标注 xml -> txt

提取了标注文件中的旋转检测框信息,整理为 txt 文件。其中每一行 6 个数值分别表示:cls, x, y, w, h, angle,旋转角 angle 已收敛到 (-45, 45) 区间内。类别索引如下:{0: "car", 1: "truck", 2: "freight", 3: "bus", 4: "van"} 旋转框互不平行的两条边,都可以通过一个旋转角与x轴平行,且两个角的绝对值之和为90度。那么必有一个小于45度的角使得一条边与x轴平行——即该边离x轴最近,将其作为宽(这是最符合人类视觉的判断,故认为对神经网络更友好)

2022-02-15

DroneVehicle 数据集标注 xml -> txt

提取了标注文件中的旋转检测框信息,整理为 txt 文件。其中每一行 6 个数值分别表示:cls, x, y, w, h, angle,旋转角 angle 已收敛到 (-45, 45) 区间内。类别索引如下:{0: "car", 1: "truck", 2: "freight", 3: "bus", 4: "van"} 旋转框互不平行的两条边,都可以通过一个旋转角与x轴平行,且两个角的绝对值之和为90度。那么必有一个小于45度的角使得一条边与x轴平行——即该边离x轴最近,将其作为宽(这是最符合人类视觉的判断,故认为对神经网络更友好)

2022-02-15

Python 数据树与xml文件的互转

使用xml.etree模块对树结点进行管理,封装了读取文件的load函数、编写文件的dump函数

2022-02-06

空空如也

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

TA关注的人

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