算法笔记
文章平均质量分 86
Gamma and Beta
这个作者很懒,什么都没留下…
展开
-
SinNerf理解和效果
这篇文章讲的是将可见的这一个view propagates到 看不见的view上。我的理解是就是,假设有50个相机对着一个物体,这些相机的位姿,内外参都是知道的,只是只有一个相机是有图像,其他的相机都没有图像。因为相机和相机的关系是知道的,可以通过image wraping,根据现有的reference view 和相机之间关系,去推算那些unseen view的深度。该方法主要解决的问题是: 现有都使用多张照片来进行nerf 表示的学习,这篇文章的话,主要是想使用一张单视角的照片来Nerf表示的学习。原创 2024-06-16 22:59:05 · 500 阅读 · 0 评论 -
GNeRF论文理解
那么生成器会根据提供的相机位姿,去生成假的照片,然后对这些假的照片进行渲染(这里就就和一般的nerf一样)。上述的结构的训练就是和一般的GAN一样。本文提出的方式,首先是不需要一个大致的相机位姿的初始化,只需要有一个大致的相机位姿分布,且可以在较大的轨迹内进行优化。一共分成了两个阶段,其实就是coarse-to-fine的样子,第一个阶段大致的输出一个粗糙的nerf estimation 以及 相机相机位姿,然后第二个阶段开始联合优化 (nerf estimation和相机的位姿。原创 2024-06-03 00:05:25 · 389 阅读 · 0 评论 -
LoFTR 笔记和理解
这就是fine-level要考虑的问题了,细腻度的匹配实际上是在粗力度匹配完成的基础之做的优化。这正好满足这个需求,先使用self-attention来做自相关,找到自身最重要的特征,然后再把这个最重要的特征拿和另一张图最重要的特征做cross-attention。传统的特征匹配方法主要依赖于特征点的检测,如果特征点的检测出现问题,比如某一些的关键点没有检测到,就会直接影响特征点的匹配。此外特征点的检测还存在 位置不同但是特征很相似的问题,比如两个在白墙上的点,虽然位置不同但是特征很相似。原创 2024-05-24 18:29:52 · 387 阅读 · 0 评论 -
MVSnet 代码详解(pytorch)
我的理解是,这里给到的 src_projection matrix是指,从src的相机坐标系投射到世界坐标系的投影矩阵。我们想要的是,将src的特征投影到ref的feature plane 上面。照片的shape是 (1,5,3,1184,1600)代表着1个batch,5张图片,然后一次是每张图片的channel和大小。采样得到的特征的shape是(1,32,192,296,400),大小和特征图大小一致,只是多了一个用来表示深度范围的维度。这个应该对应的是原图中画圈的地方。原创 2024-05-24 03:32:13 · 569 阅读 · 0 评论 -
MVS net笔记和理解
然后将源图像的特征图通过相机的内外参将 它从相机坐标系投射至世界坐标系,然后就可以在 volume 中找到一个对应的深度范围,然后再将特征投射到reference image的特征图上,假设深度值是完美的,那么reference image 上的点所带有的特征应该是和原图像中被投射的点的特征是一样的。通过深度学习的方式,可以让网络去学习在相对不同的光照效果下的重建,也可以学习到镜面反射的效果。这里文章是使用的一个深度期望来表示的深度概率,然而不是简单的使用概率最大的深度作为点的深度。原创 2024-05-23 17:31:16 · 479 阅读 · 0 评论 -
Point-Nerf 理论笔记和理解
基本的nerf 是通过过拟合MLP来完成任意视角场景的重建,这有什么问题呢?这样会导致模型的训练很慢且完全没有泛化能力。训练出来模型只能用于一个场景的重建。且Nerf的输入只能是 照片以及相机位姿。但是point nerf 可以使用点云作为输入并且考虑到了每一个点对应的2D features。这个有什么好处呢。他可以省去大量sample的过程。原创 2024-05-22 21:02:55 · 782 阅读 · 0 评论 -
Swin Transformer 笔记与理解
和之前transformer不同的是在swin transformer中 我们还需要对分开的patch在进一步的细分成更小的窗口,这里将每一个小patch继续分成大小为7*7的64个更小的窗口。Swim transformer的主要的贡献就是使用分层和窗口的概念来为这个框架提供了一个类似CNN感受野的东西,不仅可以兼顾了transformer本身优秀的全局信息获取的能力,且通过窗口的设计也提供了局部信息的获取能力。上述的过程只重视了窗口之内的特征,但是完全没有考虑到窗口之间的特征联系。原创 2024-05-17 15:52:53 · 458 阅读 · 0 评论 -
Nerf基础学习记录
Nerf 是可以理解成是一种隐式的3D表达方式。隐式表达可以理解成是用一个条件或者方程来表示一个3D几何,没有实实在在的几何形状。相反,显式表达就诸如mesh, 点云,体素这类的,能够实实在在看到的。Nerf的网络结构非常简单,也就是一个mlp。Nerf主要的目的,就是从给到的大量照片中学习,从而可以渲染任意视角下的RGB图像。它的输入数据是(x,y,z,ϕ\phiϕθ\thetaθ),ϕ\phiϕθ\thetaθ可以理解成相机位姿,分别代表的是当前相机对世界坐标系的旋转和平移。原创 2024-05-16 04:14:33 · 524 阅读 · 0 评论 -
对比学习笔记
对比学习是在没有标签的前提下学习样本之间的是否相似,其实和二分类比较相似,判断两个图像是不是属于同一个类别。换句话来说就是把相近的分布推得更近,不相近的分布推得更远。对比学习是自监督学习的一种。自监督学习有着自己给没有标签添加标签的能力,置信度最高的标签将会成为下一轮的GT从而来监督模型训练。在对比学习中就是给让模型根据特征的相似程度来将输入标记成正样本或者是负样本。他和半监督和无监督有着明显的不同,这里需要稍微注意一下。原创 2024-05-13 21:11:13 · 671 阅读 · 1 评论 -
PF-NET与3D点云补全
和一般的MLP不一样的点是,一般的MLP是只会在最后一层使用max pooling,CMLP是对MLP中每一层的特征都做一次max pooling, 最终的特征是把每一个使用max pooling 得到的特征拼接起来。形成一个分辨率的隐编码,然后将不同分辨率的隐编码拼在一起形成最终的隐编码用于描述输入的残缺点云。这个问题在实际解决的时候主要有2个问题,第一就是点云补充得过于完整,比如目标点云中是有缺口,但是补全的过程往往会顾虑掉这些细节,其二,补得过于稀疏,补充的点云没有很好的填补缺失部分。原创 2024-04-30 19:36:08 · 480 阅读 · 0 评论 -
Pointnet和Pointnet++提取点云特征的思想
同理的,如果点多于20个点,就将点按照离中心的距离,从近到远排列起来,将多出的部分抛弃。为了尽可能多的提取特征,pointnet++使用配合了多种半径(指cluster的大小)和cluster中点的数量,并将得到的不同的特征整合成一个特征作为最终的特征。首先需要知道的是点云数据主要携带的信息,它所携带的信息通常是它在3D空间中的坐标和对应的点所携带的法向量。但是对于点云而言点和点之间进行位置交换是不会影响点云整体表示的,换句话说如果点云是一辆车,就算交换一些点的位置,点云还是表示的一辆车。原创 2024-04-29 22:41:39 · 665 阅读 · 0 评论 -
VAE在3D点云上应用总结
但是有一个问题是需要注意的,就是在训练VAE的时候,从pytorch的角度上来讲,decoder的输入是从encoder输出的分布中的采样得到的,但是采样会导致computational graph上出现nondeterminitic node, 从而导致无法最反向传播。这种结构比较可以用到3D人物的点云生成上面,因为3D人体每个部分的细节分布是不一样的,比如身体的shape可以用稀疏点云就可以大致的描述出它的形状了,但是脸部和手部,如果使用同样分布的稀疏点云,就很难描述出脸部的细节,比如五官。原创 2024-04-26 15:53:43 · 920 阅读 · 0 评论 -
Drivable 3D Gaussian Avatars 论文笔记
我个人的理解是这里需要一个volume的概念, 因为cage-based deformation的核心其实是将cage看成是coarse proxy,所以在cage里面的点就显得很重要,而一般triangle surface 它很难提供volume的概念,因为一个triangle在空间中只是平面的一个小部分, 而四面体 tetrahedra 本身就可以提供volume的概念。比如文中将 3D 高斯的Mean 表示成了从低分辨率的Mesh 采样的点的位置。这么做就等于是将之前的形变表示,转移到的高斯上。原创 2024-01-22 05:49:05 · 1590 阅读 · 0 评论 -
Vision Transformer 总结
Transformer 简单总结和理解原创 2024-04-24 17:30:33 · 494 阅读 · 0 评论 -
(OpenCV)图像算法笔记 (Part 1)
文章结构1. opecv读取与显示图像2. Mat 对象的性质和使用3.提高图像对比度4. opencv 基本图像操作4.1 读写像素4.2 图像的混合4.3 像素操作5.绘制基本的集合图像5.1 点5.2 线5.3 矩形5.4 椭圆5.5 不规则多边形6. 线性滤波与非线性滤波6.1 线性滤波6.2 非线性滤波7.基本的图形学操作7.1 膨胀7.2 腐蚀7.3 开操作7.4 闭操作7.5 顶帽7.6 黑帽8. 图像金字塔8.1 高斯金字塔8.1.1 高斯不同以及它的作用8.2 拉普拉斯金字塔8. 图像的阈原创 2022-01-04 17:10:56 · 2509 阅读 · 0 评论 -
FPN (特征金字塔) 的原理和代码
文章结构1. 为什么会使用金字塔式的representation以及它存在的问题。2. 原理和特点。3. 如何基于resnet实现(思路)。4. 小总结1. 为什么会使用金字塔式的representation以及它存在的问题。论文中提到一些传统的使用深度学习来做物体检测的结构会倾向于避开使用金字塔性质的representation, 因为使用这样的representation会对算力和内存带来很大的压力。但是金字塔形式的representation对物体检测有着非常大的作用。因为它可以将一张图像在多个不原创 2021-12-02 12:01:02 · 9719 阅读 · 1 评论 -
SMPLR 论文笔记
SMPLR 论文笔记SMPL是一个参数化的模型,通过输入shape和pose两个参数可以输出一个真实的3D人体模型。但是预估SMPL的两个参数难度很大。即使通过神经网络进行回归也存在着很多劣势。论文中提及了一下3个直接使用神经网络回归shape和pose参数会引发的问题:SMPL many-to-one property .noise sensitivity of model.generate artifacts.以上的三个问题会导致回归出来的参数在传进SMPL之后出现ill-pose 的情况原创 2021-07-19 21:51:49 · 375 阅读 · 0 评论 -
AdaBoost原理介绍以及python自实现
文章目录1. adaboost 与集成学习2. adaboost算法原理3. adaboost算法自实现4. 总结1. adaboost 与集成学习adaboost 算法是非常成功的集成学习算法之一。再详细的记录adaboost之前,先记录一些集成学习的相关概念。首先集成学习分为两种,同质集成以及异质集成。前者所指的是基学习器是用相同的算法得到的,比如决策树。而异质学习器的个体学习器是有不同的算法组成的。集成学习通常分为两类,boosting和bagging。从adaboost的名字上就能够看出,它是属原创 2021-07-18 20:40:10 · 545 阅读 · 0 评论 -
索伯(Sobel)算子原理讲解和实现
文章目录边缘检测边缘检测边缘检测是常用的数字图像处理方法之一。具体的边缘检测方法可以使用sobel(索伯)来做。索伯算子是一种多用于边缘检测的离散性差分算子。索伯算子有两组不同的卷积因子,可以多一张图片做横向以及纵向的平面卷积。详细的讲就是,假设要对一张图中的(x,y)这个点使用索伯算子。首先用两个卷积因子分别对该点做卷积,从而可得出该点在这两个方向上的亮度差分近似值。将xy两个方向的亮度近似值进行结合之后,即可得到该点亮度。 得到的是一个数,如果这个值大于了阈值,那么这个点就可以被考虑成边缘点。原创 2021-05-29 21:17:17 · 11846 阅读 · 0 评论 -
堆叠沙漏网络(stacked hourglass network)
最近一直在准备3D人体重建的项目,所以在这里记录一下对hourglass net的一些浅显的理解。本文将以SHN来表示来表示stacked hourglass network。SHN在人体姿势预测(human pose estimation)效果很好。也常常被用到和SMPL相关的项目的当中,比如SMPLR。hourglass 网络可以在像素级的精度上来预测RGB图片中人体关节的位置,使用SHN的效果大致如下所示,在计算机视觉领域,我们会发现使用一般的CNN网络结构就可以很好的对物品进行分类,也就是说原创 2021-05-10 05:11:50 · 5302 阅读 · 0 评论 -
5分钟了解推荐系统算法
文章结构1. 推荐系统的种类2. 推荐系统常见算法3. 总结1. 推荐系统的种类在互联网发达的今天,推荐系统已经成为了不少互联网产品的重要组成部分,甚至是不可获取的一部分。那么推荐系统在这些互联网产品中到底做了些什么。推荐系统的实则是一个信息处理系统,主要用于预测用户偏好。推荐系统的可以通过不同的方向给用户做出推荐。推荐系统大致分为:人工推荐系统,聚合推荐系统,个性化推荐系统。人工推荐系统就是人工将推荐内容加到网站或者APP的首页或者其他目标位置。它听起来是是比较过时,但是现在很多的软件也会结合人工的原创 2021-04-09 03:47:00 · 658 阅读 · 0 评论 -
Word2vec论文理解
文章结构1. 为什么需要 vector representation2. CBOW 和 skip-gram3. 总结1. 为什么需要 vector representation语言模型可以理解成是一个分类任务。给定上文出现的概率计算整个词库中出现在当前位置的。每一个词库中的单词都可以被理解成是一个单独的类别。具体的语言模型在RNN中讲得比较清晰。每一个词语在作为输入数据之前都应该向量化。很常用的一种预处理文本的方式就是独热编码(one-hot )。独热编码很容易理解,一个向量中只有一个值为1,其余的值都原创 2021-04-01 18:39:27 · 883 阅读 · 0 评论 -
注意力机制(Attention)原理详解
文章结构1. 为什么需要Attention2. Attention的基本原理3. Attention存在的问题总结1. 为什么需要Attention在了解Attention之前,首先应该了解为什么我们需要注意力机制。我们以传统的机器翻译为例子来说明为什么我们需要Attention。传统的机器翻译,也称机器翻译(Neural machine translation),它是由encoder和decoder两个板块组成。其中Encoder和Decoder都是一个RNN,也可以是LSTM。不熟悉RNN是如何工原创 2021-03-29 22:29:47 · 36984 阅读 · 7 评论 -
通俗易懂的RNN与梯度问题(梯度爆炸/梯度消失)
文章结构1. 简述语言模型2. Vanilla-RNN 工作原理3. 递归神经网络存在的问题3.1 梯度爆炸与梯度消失是怎么样产生的4. LSTM1. 简述语言模型现在的语言模型使用很广泛。最常见的应用之一,就是各种输入法的预测输入。比如,当用户输入一段文字之后,输入法会自动的预测用户可能想要输入的内容。再比如,所搜引擎当我们输入前一两个词的时候,他可以推测出你可能想要输入什么,如下图所示:语言模型试图找出输入句子之中,每一个词之间的依赖关系。换一句话来说,当模型看到了词A,它能够计算出在整个字典中原创 2021-03-13 00:45:53 · 7200 阅读 · 3 评论 -
卷积神经网络原理详解
文章结构1.如何理解神经网络2.前馈网络3.反向传播算法4. 全连接网络5.卷积网络5.1卷积网络的基本概念5.2 卷积网络与全连接网络的关系5.3 怎么理解卷积5.4 卷积网络的前向传播5.5 卷积网络的反向传播1.如何理解神经网络神经网络通常是由三个部分组成,输入层,隐藏层以及输出层。2.前馈网络3.反向传播算法4. 全连接网络5.卷积网络从前面对全连接网络的描述中,可以发现全连接网络试图去描述整个有向图中所有元素之间的关系,因为每一个变量都会有自己的参数,这可能会导致参数量剧。在机器学习原创 2021-03-06 03:47:51 · 4931 阅读 · 2 评论 -
概率图模型和马尔可夫模型
概率图模型和马尔可夫随机场文章结构1.什么是概率图模型1.1 有向图模型1.2马尔可夫模型1.3 马尔可夫模型的常见问题和解决方法1).什么是无向图模型2).条件随机场1.什么是概率图模型绝大多是机器学习的目的就是从给定的数据中学习到数据的特点,从给定的数据中找出数据与数据之间的关系。但是对于有一些数据而言,数据与数据之间的关系无法直接并且准确地从给定数据中观察到,因为这样的数据存在着一个或者多个隐变量。这些隐变量使得属性之间的联系变得更加的复杂。所以我们需要一个模型来清晰地表示变量与变量之间关系的概原创 2021-02-26 22:59:18 · 5345 阅读 · 3 评论 -
PCA(主成分分析)算法理解和实现(python)
记录个人对算法的理解文章结构我们为什么要使用PCAPCA算法理解与数学推导个人PCA算法的简单实现总结我们为什么要使用PCA在机器学习领域,一直都有一个特别让人头痛的问题,那就是"维度灾难"(curse of dimensionality)。当一个数据集的特征过于多的时候,那么这个数据集的维度就会特别的大。过大的维度会给我们的模型带来非常大的压力,整个模型的训练需要极大运算资源(computationally expensive)。所以在实际的生产中,我们总是在思考如何将高维数据使用低维数原创 2021-02-23 01:20:14 · 1041 阅读 · 0 评论 -
EM(expectation maximization)算法的理解和证明
本文记录个人对EM算法的理解首先为什么要是用EM算法,他适用于哪些场景呢?大家都知道EM算法是聚类算法的一种。 这个算法的核心是在数据已知的前提下讨论参数的合理性。换一句话说, 他是可以用似然函数建模的。等下会记录如何用数学语言描述这个算法。但是首先先试用经典的投硬币的问题将这个抽象的算法形象化。如何形象的理解EM算法假设我们现在有2枚硬币...原创 2021-02-16 05:21:47 · 2699 阅读 · 6 评论