- 博客(499)
- 收藏
- 关注

原创 按关键字搜索自己的CSDN博客
搜索自己博客的功能在谷歌输入关键词,格式如下:<要检索的关键词> site:blog.csdn.net/<博客名>马氏距离 site:blog.csdn.net/djfjkj52
2020-02-28 19:38:15
241
原创 角度回归——角度编码方式
longside: 旋转矩形框的最长边* shortside: 与最长边对应的另一边* Θ: x轴顺时针旋转遇到最长边所经过的角度利用好cv2.minAreaRect()函数+总结规律就可以注意opencv4.1.2版本cv2.minAreaRect()函数生成的最小外接矩形框(x,y,w,h,θ)的几个大坑:(1) 在绝大数情况下 Θ∈[-90, 0);(2) 部分水平或垂直的目标边框,其θ值为0;(3) width或height有时输出0, 与此同时Θ = 90;
2023-09-21 14:11:31
10
转载 【C++学习(7)】this指针
在 【C++学习(6)】静态成员 中最后提到了 class 的成员函数需要用this 指针来调用。在建立对象的时候,对象中的数据成员会分配自己独立的存储空间.但是对于成员函数来说,一个函数的代码段在内存中只有一份.也就是说,同一个类中的不同对象在调用自己的成员函数时,其实它们调用的是同一个函数代码.既然是调用同一个代码段,那么如何确保调用的是自己的数据成员呢?
2023-09-20 10:40:39
4
原创 【C++学习(5)】C++中对象作为参数传递给函数的三种情况(值传递,指针传递,引用传递)
实际参数 复制到 形式参数(对形式参数进行初始化)。与实际参数无关。因此在class 传递时,值传递方式,会调用 复制构造函数 进行新(临时)对象的初始化,不会修改原来的 class。
2023-09-20 09:03:59
14
转载 【C++学习(6)】c++ - (1U << X)有什么作用?
c++ - (1U << X)有什么作用?我找到了这段代码:enum{IsDynamic = (1U << 0), // …IsSharable = (1U << 1), // …IsStrong = (1U << 2) // …};(1U << X)有什么作用?最佳答案它设置位掩码:1U << 0 = 11U << 1 = 21U << 2 = 4etc…发生的情况是1U(
2023-09-19 16:57:26
2
转载 【C++学习(4)】C++构造函数后面的冒号
中,不能用在变量定义后再赋值,冒号初始化是给数据成员分配内存空间时就进行初始化,就是说分配一个数据成员只要冒号后有此数据成员的赋值表达式(此表达式必须是括号赋值表达式),那么分配了内存空间后在进入函数体之前给数据成员赋值,就是说初始化这个数据成员此时函数体还未执行。对于在函数中初始化,是在所有的数据成员被分配内存空间后才进行的。这样是有好处的,有的数据成员需要在构造函数调入之后函数体执行之前就进行初始化如引用数据成员,常量数据成员和对象数据成员。
2023-09-19 16:54:38
4
原创 【QT开发(5)】0919-QT里面新增ui类,新增使用opencv读取图片的普通类,在ui类中显示图片
1、Qt Creator快速入门_第三版__霍亚飞编著2、
2023-09-19 16:53:47
101
原创 单目SLAM的尺度不确定性的再次分析20230810
(能写出来的都是大佬,是真的大佬:))这其中就涉及到尺度的不确定性,一方面,由MVG 可知对极几何是一个为零的约束,即反向延长空间点P与两光心o1/o2的连线到O1/O2,组成相似三角形Po1o2与PO1O2.则,这两个位姿同时满足同一个对极约束,这就体现了单目的尺度不确定性(手机回答,只能文字描述),对于单应矩阵好像也是同样的道理(请大佬指正)。缩放完后,设第0帧的位置为相机坐标系原点,则第1帧的位置就可以由R, t得到。此外,分解E的过程中,如果相机发生的是纯旋转,导致t为零,那么,得到的E也将为零。
2023-08-18 16:26:58
89
转载 【可变形卷积4】 可变形卷积、动态卷积等新型卷积,真如论文中说的那么好用吗?
如何几行代码替换常规卷积层并涨点?可变形卷积、动态卷积等新型卷积,真如论文中说的那么好用吗?PP-YOLO:CenterNet也也是类似做法。似乎大部分网络,都可以把最后几层conv换成可变形卷积?除了轻微增加推断速度,有的硬件不支持,有没有其他缺点(诸如对某些场景泛化性差)?
2023-08-17 16:50:55
58
原创 【可变形卷积3】 DCNv2 安装
(1)github上最新版的DCNv2源码在"https://github.com/CharlesShang/DCNv2",但是该版本源码不支持PyTorch1.7,如果使其支持PyTorch1.7需要做以下修改:将DCNv2/src/cuda/dcn_v2_cuda.cu中所有的THCState_getCurrentStream(state)替换成c10::cuda::getCurrentCUDAStream()。
2023-08-17 16:44:55
188
转载 【可变形卷积2】可变形卷积原理解读
考虑到传统卷积必须是方方正正的 k × k 的卷积核,作者认为这个感受野太规则,无法很好地捕捉特殊形状的特征,因此在其基础上加了偏置:如上图所示,传统的卷积输入只能是图 (a) 中的九个绿点,而在加上偏移量之后,皆可以四处飞,比如飞到图 (bcd) 中蓝点的位置。
2023-08-17 16:35:53
20
翻译 Region Proposal by Guided Anchoring,一种有效的基于锚点几何形状的特征适应模块,CVPR2019
区域锚是现代目标检测技术的基石。最先进的探测器大多依赖于密集的锚定方案,锚定在空间域上用预定义的一组比例和宽高比均匀采样。在本文中,我们将重新审视这一基础阶段。我们的研究表明,它可以更有效地完成。具体来说,我们提出了一种替代方案,称为引导锚定(Guided Anchoring),它利用语义特征来引导锚定。该方法联合预测目标中心可能存在的位置以及不同位置的尺度和宽高比。在预测锚点形状的基础上,我们通过一个特征适应模块来缓解特征不一致性。我们也研究使用高质量的建议来提高检测性能。
2023-08-17 16:08:44
9
转载 【训练样本选择】ATSS 自适应训练样本选择:弥补基于锚点和无锚点检测之间的差距,CVPR2020(三)
CVPR2020中的文章ATSS揭露到anchor-based和anchor-free的目标检测算法之间的效果差异原因是由于正负样本的选择造成的。而在目标检测算法中正负样本的选择是由gt与anchor之间的匹配策略决定的。因此我们研究一下目前现有的匹配策略,并根据现状给出改进思路。
2023-08-17 11:19:03
16
翻译 【训练样本选择】ATSS 自适应训练样本选择:弥补基于锚点和无锚点检测之间的差距,CVPR2020(二)
在训练对象检测器时,我们首先需要定义正样本和负样本进行分类,然后使用正样本进行回归。根据前面的分析,前者是至关重要的,无锚探测器FCOS改进了这一步。它引入了一种新的方法来定义正面和负面,比传统的基于IoU的策略取得了更好的性能。受此启发,我们深入研究了目标检测中最基本的问题:如何定义正训练样本和负训练样本,并提出了自适应训练样本选择(ATSS)。与传统的策略相比,我们的方法几乎没有超参数,对不同的设置具有鲁棒性。
2023-08-17 10:21:53
20
翻译 【训练样本选择】ATSS 自适应训练样本选择:弥补基于锚点和无锚点检测之间的差距,CVPR2020(一)
论文名字:Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection中文论文名:通过自适应训练样本选择来弥补基于锚点和无锚点检测之间的差距作者:Shifeng Zhang, Cheng Chi, Yongqiang Yao来自:中科大自动化所模式识别重点实验室代码:https://github.com/sfzhang15/ATSS。
2023-08-17 10:20:55
30
转载 实时ipm所需要的pitch角,但是Pitch 角度随车辆震动的问题分析与解决方案
消除图像透视投影影响的一个通用方法是使用IPM(逆透视变换),IPM的前提是需要知道相机相对于地面的变换关系,而我们通过标定可以获得相机和车辆之间的变换关系,正常情况下,我们使用固定的外参来进行前视图像和bev图像之间的wrap,但是由于不平整的地面, 车辆运动加减速,上下坡的影响,相机的角度(相对于地面的)会以外参为均值发生变化,我们需要实时的估计出这个变化,从而得到正确的IPM图像。以地图定位为例,pose指的是对每时每刻的载体相对于世界的transform进行估计,这里的世界指的是地图坐标系。
2023-05-24 16:03:15
566
原创 【pytorch损失函数(6)】Focal loss, for dense object detection再分析
之前翻译了这篇,但是理解还不深。今天借着研究rotation的计划,回顾这篇文章。
2023-05-24 10:25:41
500
转载 RetinaNet 代码分析
HeadFpn输出的分支,每一个都会进行分类和回归操作分类输出每层特征经过4次卷积+relu操作,然后再通过head 卷积输出最终预测输出,尺度是其中14400 = 40409,9为anchor个数,最后在把所有结果拼接在一起[1,19206,80]的tensor。可以理解为每一个特征图位置预测9个anchor,每个anchor具有80个类别。拼接操作为了和anchor的形式统一起来,方便计算loss和前向预测。
2023-05-24 10:24:52
132
转载 【论文】Focal-EIOU Loss:Focal and Efficient IOU Loss for Accurate Bounding Box Regression 用于精确边界框回归
损失函数之Focal-EIoU Loss:CVPR2020的一篇关于边界框损失函数文章:Focal and Efficient IOU Loss for Accurate Bounding Box Regression。在Focal-EIoU Loss这篇论文中,作者提出CIoU中的相对比例存在若干问题,因此提出了更为直接的使用边长作为惩罚项。此外为了解决低质量样本造成的损失值剧烈震荡的问题,这篇论文设计了一个用于回归的Focal Loss。
2023-05-24 10:21:48
356
转载 【pytorch损失函数(5)】nn.NLLLoss, negative log likelihood loss,负对数似然损失
NLLLoss: negative log likelihood loss,负对数似然损失。确实没搞清楚这个公式跟对数有什么关系,看公式就是取每行对应列别的值。
2023-05-24 09:13:05
90
转载 【mmdetection】mmdetection 开启tensorboard
将dict(type=‘TextLoggerHook’)注释掉,去掉dict(type=‘TensorboardLoggerHook’)的注释即可。mmdetection 默认是不开启tensorboard的,如果你想要打开,首先找到。
2023-05-18 08:36:11
95
转载 用 ssh 传输文件,pv传输,I ssh root@管道
需要将文件拷贝到服务器上去,请求帮助安装 scp 程序。我尝试了对那台服务器执行 scp 命令,结果是 -bash: scp: command not found,但是 ssh 是正常可以用的。这种情况下应该是 openssh-clients 被删掉了。但是!scp 命令是基于 ssh 协议的,既然可以用 ssh ,还要什么 scp 呢!我们可以直接用 ssh 就可以传输文件,学会了之后,发现它比 scp 还好用,scp 的 path 写起来比较蛋疼。
2023-05-18 08:33:37
102
转载 因内网搭建开发环境,需要做一个Ubuntu的本地镜像源。
因内网搭建开发环境,需要做一个Ubuntu的本地镜像源。一、镜像获取1、先确认需要的镜像源的名称,可从https://help.ubuntu.com/ 查询2、在Ubuntu下安装apt-mirror3、修改apt-mirror配置文件4、创建镜像的本地目录5、开始拉取镜像二、本地镜像源的部署二、本地镜像源的部署1、安装web服务器(nginx)2、配置web服务3、镜像服务挂载4、重新载入 nginx 服务。
2023-05-10 15:13:45
758
转载 深度学习中的两种不确定性:偶然不确定性和认知不确定性(Aleatoric Uncertainty & Epistemic Uncertainty)
转载:https://zhuanlan.zhihu.com/p/56986840注: 本文中,概念、公式与实验均基于 Alex Kendall & Yarin Gal的论文:https://arxiv.org/pdf/1703.04977.pdf。
2023-05-08 14:56:36
598
1
原创 【实验笔记】深度学习中的确定性Uncertainty in Deep Learning(资料汇总,不断更新)
现在我们传统深度学习算法几乎只能给出一个特定的结果,而不能给出模型自己对结果有多么confident. 的确,在分类问题中,我们会在网络的最后一层添加一个softmax函数来获得概率,但是模型仍然无法表示自己对结果不确定。
2023-05-08 14:50:08
248
转载 归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)
b. 梯度:以输入-隐层-输出这样的三层BP为例,我们知道对于输入-隐层权值的梯度有2ew(1-a^2)*x的形式(e是誤差,w是隐层到输出层的权重,a是隐层神经元的值,x是输入),若果输出层的数量级很大,会引起e的数量级很大,同理,w为了将隐层(数量级为1)映身到输出层,w也会很大,再加上x也很大的话,从梯度公式可以看出,三者相乘,梯度就非常大了。比如SVM 用高斯核的时候,所有维度共用一个方差,这不就假设特征分布是圆的么,输入椭圆的就坑了人家,所以简单的归一化都还不够好,来杯白化才有劲。
2023-05-06 11:20:02
119
翻译 翻译:L0 Norm, L1 Norm, L2 Norm & L-Infinity Norm;范数(norm)是数学中的一种基本概念
L0 Norm:It is actually not a norm. (See the conditions a norm must satisfy here【维基百科关于norm的定义】). Corresponds to the total number of nonzero elements in a vector.L1 Norm:L2 norm:Gives the largest magnitude among each element of a vector.给出向量的每个元素中的最大幅度。
2023-05-06 10:58:43
321
原创 【pytorch损失函数(1)】之nn.BCELoss二进制交叉熵和 nn.BCEWithLogitsLoss
可以看出梯度都与sigmoid函数的梯度有关,如下图所示,sigmoid函数在两端的梯度均接近0,这导致反向传播的梯度也很小,这就这就不利于网络训练,这就是 梯度消失问题。在面对不同的分类问题的时候,选择的loss function也不一样,二分类和多标签分类通常使用sigmoid函数而多分类则一般使用softmax函数(互斥性质)。目标值 y的范围是0-1之间。的到的一个一个样本的分类结果,这个结果的通俗解释就是:为第一类的概率为0.2,为第二类的概率为0.5,为第三类的结果过0.3。
2023-05-06 10:43:03
1098
原创 【pytorch损失函数(3)】nn.L1Loss()和nn.SmoothL1Loss()
平均绝对误差(MAE)是一种用于回归模型的损失函数。MAE 是目标变量和预测变量之间绝对差值之和,因此它衡量的是一组预测值中的平均误差大小,而不考虑它们的方向,范围为 0~∞。上图为平均绝对误差函数图,其中目标真值为 100,预测范围在-10000 到 10000 之间,均方 误差损失(Y 轴)在预测值(X 轴)=100 处有最小值,范围为 0~∞。主要问题:导数为常数,在 Loss 函数最小值处容易震荡,导致难以收敛到最优值。
2023-05-06 09:49:33
1443
原创 【pytorch损失函数(4)】nn.MSELoss,(Mean Squared Error,MSE) 均方误差(MSE)(squared L2 norm,平方L2范数)。它也被称为L2 Loss。
它也被称为L2 Loss。上图为均方误差函数图,其中目标真值为 100,预测范围在-10000 到 10000 之间,均方 误差损失(Y 轴)在预测值(X 轴)=100 处有最小值,范围为 0~∞。可以看出梯度都与sigmoid函数的梯度有关,如下图所示,sigmoid函数在两端的梯度均接近0,这导致反向传播的梯度也很小,这就这就不利于网络训练,这就是梯度消失问题。导数变化,不稳定,尤其是在早期阶段(损失越大,导数越大),随着导数越来越小, 训练速度变得越来越慢。
2023-05-06 09:32:33
869
转载 【Attention(1)】注意力机制(attention mechanism)是解决信息超载问题的主要手段的一种资源分配方案:两种分类:自上而下和自下而上
中文名:注意力机制外文名:Attention Mechanism类 别:聚焦式、基于显著性注意力机制(Attention Mechanism)源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。上述机制通常被称为注意力机制。人类视网膜不同的部位具有不同程度的信息处理能力,即敏锐度(Acuity),只有视网膜中央凹部位具有最强的敏锐度。为了合理利用有限的视觉信息处理资源,人类需要选择视觉区域中的特定部分,然后集中关注它。
2023-04-27 11:15:08
172
转载 【Attention(3)】【QKV的注意力机制】 主要思路(笔记)
与我预想的不同,以为一个前馈神经网络就可以输出所有对应的得分,即输出层的维度是与input序列长度一样;1、先进行相似度的值进行归一化后会生成对齐概率值(“I"与source中每个单词的相似度(和为1)),也可以注意力值;这里的v与上面的V是不一样的,这属于一个单隐藏层的前馈神经网络;v属于隐藏层激活后的一个计算得分的权重系数矩阵;3、然后相应的V与相应的P进行加权求和,就得到了context vetor;3、"I"与"中国人"的相似度;1、"I"与"我"的相似度,2、"I"与"是"的相似度;
2023-04-27 10:48:29
479
转载 【Attention(4)】【QKV的自注意力机制】 主要思路(笔记)
也就是说,X 序列每一个长度为 Dx,输入系统(输入N 个(这里设 N=3)),则此时得到三个长度为Dk的向量,每一个向量得到一个对应的Q K V,不改变输入的 X 的对应 N 这部分的维度,但是将长度 Dx 改变为了 Dv(这里的 Dv 是可以任意设置的,只要通过操作此时从 X 到值 V 的投影操作对应的矩阵 Wv 就可以了)想要模拟全连接神经网络的思路来构建一种更好的,可以处理变长输入序列 + 捕捉长距离关系的模型,可以考虑利用注意力机制来 动态地 生成权重,这也就是 自注意力模型 的主要思路。
2023-04-27 09:45:36
422
转载 【Attention(9)】【CNN-attention机制】Squeeze-and-Excitation Networks(SENet)通过压缩与激励实现特征强化,最简单最易实现的SE模块
Squeeze-and-Excitation Networks(SENet)是由自动驾驶公司Momenta在2017年公布的一种全新的图像识别结构,它通过对特征通道间的相关性进行建模,把重要的特征进行强化来提升准确率。这个结构是2017 ILSVR竞赛的冠军,top5的错误率达到了2.251%,比2016年的第一名还要低25%,可谓提升巨大。这么大的提升是怎么来的呢?今天就来介绍下这个冠军背后的原理细节。一、结构和原理图1是SENet的Block单元,图中的Ftr是传统的卷积结构,X和U是Ftr的输入
2023-04-27 09:31:03
100
转载 【Attention(10)】RNN->Seq2Seq->Attention->Self-Attention->Transformer
在Seq2Seq结构中,编码器Encoder把所有的输入序列都编码成一个统一的语义向量Context,然后再由解码器Decoder解码。在解码器Decoder解码的过程中,不断地将前一个时刻t-1 的输出作为后一个时刻 t 的输入,循环解码,直到输出停止符为止。与经典RNN结构不同的是,Seq2Seq结构不再要求输入和输出序列有相同的时间长度!
2023-04-26 17:11:31
21
转载 【Transform(5)】来源于《Attention is all you need》的Transformer 的结构怎样的?与注意力机制有什么联系?
Vaswani et al. 在2017年发表了论文,介绍了Self-attention以及基于前者的Transformer架构。我的栏目其他文章已经介绍了:seq2seq结构,经典的attention结构,QKV注意力机制,自注意力机制,多头注意力机制。以此为基础知识,现在讨论:Transformer。讲完了transformer,我后续有机会会讲一下BERT。
2023-04-26 16:57:04
79
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人