自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SinNerf理解和效果

这篇文章讲的是将可见的这一个view propagates到 看不见的view上。我的理解是就是,假设有50个相机对着一个物体,这些相机的位姿,内外参都是知道的,只是只有一个相机是有图像,其他的相机都没有图像。因为相机和相机的关系是知道的,可以通过image wraping,根据现有的reference view 和相机之间关系,去推算那些unseen view的深度。该方法主要解决的问题是: 现有都使用多张照片来进行nerf 表示的学习,这篇文章的话,主要是想使用一张单视角的照片来Nerf表示的学习。

2024-06-16 22:59:05 446

原创 GNeRF论文理解

那么生成器会根据提供的相机位姿,去生成假的照片,然后对这些假的照片进行渲染(这里就就和一般的nerf一样)。上述的结构的训练就是和一般的GAN一样。本文提出的方式,首先是不需要一个大致的相机位姿的初始化,只需要有一个大致的相机位姿分布,且可以在较大的轨迹内进行优化。一共分成了两个阶段,其实就是coarse-to-fine的样子,第一个阶段大致的输出一个粗糙的nerf estimation 以及 相机相机位姿,然后第二个阶段开始联合优化 (nerf estimation和相机的位姿。

2024-06-03 00:05:25 359

原创 LoFTR 笔记和理解

这就是fine-level要考虑的问题了,细腻度的匹配实际上是在粗力度匹配完成的基础之做的优化。这正好满足这个需求,先使用self-attention来做自相关,找到自身最重要的特征,然后再把这个最重要的特征拿和另一张图最重要的特征做cross-attention。传统的特征匹配方法主要依赖于特征点的检测,如果特征点的检测出现问题,比如某一些的关键点没有检测到,就会直接影响特征点的匹配。此外特征点的检测还存在 位置不同但是特征很相似的问题,比如两个在白墙上的点,虽然位置不同但是特征很相似。

2024-05-24 18:29:52 324

原创 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 456

原创 MVS net笔记和理解

然后将源图像的特征图通过相机的内外参将 它从相机坐标系投射至世界坐标系,然后就可以在 volume 中找到一个对应的深度范围,然后再将特征投射到reference image的特征图上,假设深度值是完美的,那么reference image 上的点所带有的特征应该是和原图像中被投射的点的特征是一样的。通过深度学习的方式,可以让网络去学习在相对不同的光照效果下的重建,也可以学习到镜面反射的效果。这里文章是使用的一个深度期望来表示的深度概率,然而不是简单的使用概率最大的深度作为点的深度。

2024-05-23 17:31:16 398

原创 Point-Nerf 理论笔记和理解

基本的nerf 是通过过拟合MLP来完成任意视角场景的重建,这有什么问题呢?这样会导致模型的训练很慢且完全没有泛化能力。训练出来模型只能用于一个场景的重建。且Nerf的输入只能是 照片以及相机位姿。但是point nerf 可以使用点云作为输入并且考虑到了每一个点对应的2D features。这个有什么好处呢。他可以省去大量sample的过程。

2024-05-22 21:02:55 737

原创 Swin Transformer 笔记与理解

和之前transformer不同的是在swin transformer中 我们还需要对分开的patch在进一步的细分成更小的窗口,这里将每一个小patch继续分成大小为7*7的64个更小的窗口。Swim transformer的主要的贡献就是使用分层和窗口的概念来为这个框架提供了一个类似CNN感受野的东西,不仅可以兼顾了transformer本身优秀的全局信息获取的能力,且通过窗口的设计也提供了局部信息的获取能力。上述的过程只重视了窗口之内的特征,但是完全没有考虑到窗口之间的特征联系。

2024-05-17 15:52:53 319

原创 Nerf基础学习记录

Nerf 是可以理解成是一种隐式的3D表达方式。隐式表达可以理解成是用一个条件或者方程来表示一个3D几何,没有实实在在的几何形状。相反,显式表达就诸如mesh, 点云,体素这类的,能够实实在在看到的。Nerf的网络结构非常简单,也就是一个mlp。Nerf主要的目的,就是从给到的大量照片中学习,从而可以渲染任意视角下的RGB图像。它的输入数据是(x,y,z,ϕ\phiϕθ\thetaθ),ϕ\phiϕθ\thetaθ可以理解成相机位姿,分别代表的是当前相机对世界坐标系的旋转和平移。

2024-05-16 04:14:33 489

原创 对比学习笔记

对比学习是在没有标签的前提下学习样本之间的是否相似,其实和二分类比较相似,判断两个图像是不是属于同一个类别。换句话来说就是把相近的分布推得更近,不相近的分布推得更远。对比学习是自监督学习的一种。自监督学习有着自己给没有标签添加标签的能力,置信度最高的标签将会成为下一轮的GT从而来监督模型训练。在对比学习中就是给让模型根据特征的相似程度来将输入标记成正样本或者是负样本。他和半监督和无监督有着明显的不同,这里需要稍微注意一下。

2024-05-13 21:11:13 642 1

原创 PF-NET与3D点云补全

和一般的MLP不一样的点是,一般的MLP是只会在最后一层使用max pooling,CMLP是对MLP中每一层的特征都做一次max pooling, 最终的特征是把每一个使用max pooling 得到的特征拼接起来。形成一个分辨率的隐编码,然后将不同分辨率的隐编码拼在一起形成最终的隐编码用于描述输入的残缺点云。这个问题在实际解决的时候主要有2个问题,第一就是点云补充得过于完整,比如目标点云中是有缺口,但是补全的过程往往会顾虑掉这些细节,其二,补得过于稀疏,补充的点云没有很好的填补缺失部分。

2024-04-30 19:36:08 341

原创 Pointnet和Pointnet++提取点云特征的思想

同理的,如果点多于20个点,就将点按照离中心的距离,从近到远排列起来,将多出的部分抛弃。为了尽可能多的提取特征,pointnet++使用配合了多种半径(指cluster的大小)和cluster中点的数量,并将得到的不同的特征整合成一个特征作为最终的特征。首先需要知道的是点云数据主要携带的信息,它所携带的信息通常是它在3D空间中的坐标和对应的点所携带的法向量。但是对于点云而言点和点之间进行位置交换是不会影响点云整体表示的,换句话说如果点云是一辆车,就算交换一些点的位置,点云还是表示的一辆车。

2024-04-29 22:41:39 496

原创 VAE在3D点云上应用总结

但是有一个问题是需要注意的,就是在训练VAE的时候,从pytorch的角度上来讲,decoder的输入是从encoder输出的分布中的采样得到的,但是采样会导致computational graph上出现nondeterminitic node, 从而导致无法最反向传播。这种结构比较可以用到3D人物的点云生成上面,因为3D人体每个部分的细节分布是不一样的,比如身体的shape可以用稀疏点云就可以大致的描述出它的形状了,但是脸部和手部,如果使用同样分布的稀疏点云,就很难描述出脸部的细节,比如五官。

2024-04-26 15:53:43 800

原创 Vision Transformer 总结

Transformer 简单总结和理解

2024-04-24 17:30:33 463

原创 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 1490

原创 ROS基础(part 1)

因为最近研究所的项目涉及到了ROS,这里简单记录一下,有关ROS的学习收获。文章目录1. ROS的安装经历2. ROS的基本概念3. ROS的基本命令4. ROS 编程基础4.1 如何创建工作区4.2 工作区的构成1. ROS的安装经历ROS的安装中遇到绝大多数的问题都是缺乏依赖包,或者是下载速度特别慢。其实跟着官方文档进行操作会避免很多麻烦。第一步,需要set up source.list。在做这一步的时候,千万不能直接照着复制,官方提供了中国地区专用的链接,使用他们下载ROS会快很多,这可以

2022-01-12 12:00:49 616

原创 (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 2049

原创 FPN (特征金字塔) 的原理和代码

文章结构1. 为什么会使用金字塔式的representation以及它存在的问题。2. 原理和特点。3. 如何基于resnet实现(思路)。4. 小总结1. 为什么会使用金字塔式的representation以及它存在的问题。论文中提到一些传统的使用深度学习来做物体检测的结构会倾向于避开使用金字塔性质的representation, 因为使用这样的representation会对算力和内存带来很大的压力。但是金字塔形式的representation对物体检测有着非常大的作用。因为它可以将一张图像在多个不

2021-12-02 12:01:02 9472 1

原创 整数反转python实现

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。这道题的核心在于如将整数拆分开,又应该如何将分开的整数重组。首先可以使用取余的操作将一个整数从个位数开始拆分。每一次整数的合并都比上一次计算结果大10倍。所以我们可以根据这个规律总结出一下公式,用于合并拆分下来的整数。假设输入的整数为 num = 123,首先创建两个中间变量

2021-09-14 20:10:35 1107

原创 判断是否存在重复的元素

给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。这道题不叫简单,只是让判断是否有重复的元素。可以使用集合的思想。如果一个列表去重前后的长度不一样长,那就一定是有重复的元素,相反就没有。所以代码如下,只有一行:def Solution(nums): return len(nums) != len(set(nums))...

2021-09-12 21:02:16 373

原创 买卖股票的最佳时机

题目:给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。题目看上去很像动态规划算法,但是这道题可以使用其他的方法来求解。利益最大化在这里可以理解成,只要第n+1天的价格高于第n天的价格,就可以卖出,然后再买进。所以可以遍历给出的列表,若列表的 n+1 位大于第n位,就可以将他们的插值作为利润,并进行累加。

2021-09-12 20:18:00 99

原创 删除排序数组中的重复项

初级算法训练题笔记与理解01题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。实例1:输入:nums = [1,1,2]输出:2, nums = [1,2]实例2:输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]主要的思路是使用双指针,实则是将不同的元素已到了列表的前面。假设定义两个指针,一个为左指针,一个为右指针。右指针的主要任务是用于遍历列表。当右指针指到列

2021-09-12 19:56:14 116

原创 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 327

原创 AdaBoost原理介绍以及python自实现

文章目录1. adaboost 与集成学习2. adaboost算法原理3. adaboost算法自实现4. 总结1. adaboost 与集成学习adaboost 算法是非常成功的集成学习算法之一。再详细的记录adaboost之前,先记录一些集成学习的相关概念。首先集成学习分为两种,同质集成以及异质集成。前者所指的是基学习器是用相同的算法得到的,比如决策树。而异质学习器的个体学习器是有不同的算法组成的。集成学习通常分为两类,boosting和bagging。从adaboost的名字上就能够看出,它是属

2021-07-18 20:40:10 523

原创 (计算机视觉实战) 自动驾驶 python实现

拿到数据之后,应该先对数据进行合理的分析了解数据。首先了解数据可以分为一下两个方面,查看数据是否平衡,查看数据最大值与最最小值是否在正常范围内,这可以在一定的程度上减少异常值的出现。数据是在行车模拟骑上收集的。它包含了三个摄像头从左中右三个角度捕捉到的行车图像的存储位置以及对应的方向盘转动角度等信息。首先先对steering属性进行一些分析。将数据使用pandas读入,可取出该特征,并对该特征的用直方图画出该特征的分布。分布图的X轴表示的是方向盘转动的角度,而y轴表示的是这个角度,在收集到的数据中所出

2021-06-20 21:41:02 2048

原创 索伯(Sobel)算子原理讲解和实现

文章目录边缘检测边缘检测边缘检测是常用的数字图像处理方法之一。具体的边缘检测方法可以使用sobel(索伯)来做。索伯算子是一种多用于边缘检测的离散性差分算子。索伯算子有两组不同的卷积因子,可以多一张图片做横向以及纵向的平面卷积。详细的讲就是,假设要对一张图中的(x,y)这个点使用索伯算子。首先用两个卷积因子分别对该点做卷积,从而可得出该点在这两个方向上的亮度差分近似值。将xy两个方向的亮度近似值进行结合之后,即可得到该点亮度。 得到的是一个数,如果这个值大于了阈值,那么这个点就可以被考虑成边缘点。

2021-05-29 21:17:17 11381

原创 堆叠沙漏网络(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 5168

原创 (计算机视觉实战)image captioning(图像描述)

使用网络提取图片特征的时候,因为使用的是GPU。出现了以下报错。tensorflow.python.framework.errors_impl.InternalError: Blas GEMM launch failed : a.shape=(1, 25088), b.shape=(25088, 4096), m=1, n=4096, k=25088 [Op:MatMul]解决方式是在代码在使用网络之前加入以下两句代码,即可解决问题:physical_devices = tf.config.li

2021-04-27 19:12:28 6308 2

原创 (计算机视觉实战)图片风格迁移

在导入图像的时候出现了一个神奇的问题:明明文件夹中有符合格式的图片,但是会得到以下报错:图片存储的路径结构如下图所示:我使用的是ImageFolder来读取图片:images = datasets.ImageFolder(root='pic_subject/content_/1', transform=transform_)最初怀疑是自己的路径出现了问题,但是我使用一下代码确定,我所输入的路径是准确无误的:print(os.list

2021-04-13 19:30:15 714 1

原创 (计算机视觉实战)迁移学习VGG16

文章结构1.小项目目标2. 迁移学习3. 实现1.小项目目标不管是在机器学习的哪一个领域中,迁移学习的作用都不可小觑。在工业生产中使用迁移学习的方法,可以使得一个模型稍加修改就可以应对多种类似的问题。节约了极大的时间成本。在这个小项目中,我们将迁移VGG16网络来训练Kaggle的猫与狗数据集。目标是能让我们迁移学习出来的网络可以高效的识别训练和测试集中的猫与狗。数据集可以直接移步到kaggle的官方网站上下载。传送门2. 迁移学习迁移学习的理论知识在这里就不在多赘述了。那么如何可以在代码中实现迁移

2021-04-11 00:40:51 2766 1

原创 (计算机视觉实战)基于内容的图像检索

文章结构1. 项目介绍2. 什么是卷积去噪编码器3.源码解释1. 项目介绍基于内容的图像检索,在工业生产中是有大量运用的。比如我们想在百度或者谷歌上搜索一张图片,搜素的过程就是通过图像的内容。想要完成基于图片内容的图片检索,首先应该确定以下的几件事情。首先既然是基于内容,如果一个图片中的噪音特别多,那么这些噪点就会被神经网络当做是图片内容的一部分进行学习。那么这样学出来的模型就很难正确的在大量的图片中对和目标相似的图片进行检索。另外,如何正确的提取一张图片的核心内容也是基于图片内容检索的关键。2. 什

2021-04-09 19:00:04 1385 3

原创 5分钟了解推荐系统算法

文章结构1. 推荐系统的种类2. 推荐系统常见算法3. 总结1. 推荐系统的种类在互联网发达的今天,推荐系统已经成为了不少互联网产品的重要组成部分,甚至是不可获取的一部分。那么推荐系统在这些互联网产品中到底做了些什么。推荐系统的实则是一个信息处理系统,主要用于预测用户偏好。推荐系统的可以通过不同的方向给用户做出推荐。推荐系统大致分为:人工推荐系统,聚合推荐系统,个性化推荐系统。人工推荐系统就是人工将推荐内容加到网站或者APP的首页或者其他目标位置。它听起来是是比较过时,但是现在很多的软件也会结合人工的

2021-04-09 03:47:00 591

原创 Word2vec论文理解

文章结构1. 为什么需要 vector representation2. CBOW 和 skip-gram3. 总结1. 为什么需要 vector representation语言模型可以理解成是一个分类任务。给定上文出现的概率计算整个词库中出现在当前位置的。每一个词库中的单词都可以被理解成是一个单独的类别。具体的语言模型在RNN中讲得比较清晰。每一个词语在作为输入数据之前都应该向量化。很常用的一种预处理文本的方式就是独热编码(one-hot )。独热编码很容易理解,一个向量中只有一个值为1,其余的值都

2021-04-01 18:39:27 734

原创 注意力机制(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 35760 7

原创 通俗易懂的RNN与梯度问题(梯度爆炸/梯度消失)

文章结构1. 简述语言模型2. Vanilla-RNN 工作原理3. 递归神经网络存在的问题3.1 梯度爆炸与梯度消失是怎么样产生的4. LSTM1. 简述语言模型现在的语言模型使用很广泛。最常见的应用之一,就是各种输入法的预测输入。比如,当用户输入一段文字之后,输入法会自动的预测用户可能想要输入的内容。再比如,所搜引擎当我们输入前一两个词的时候,他可以推测出你可能想要输入什么,如下图所示:语言模型试图找出输入句子之中,每一个词之间的依赖关系。换一句话来说,当模型看到了词A,它能够计算出在整个字典中

2021-03-13 00:45:53 6685 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 4439 2

原创 The payment model Question(简单建模问题实例1)

This blog is only for my personal review of mathematical modeling moduleOUTLINE1.Scenario2.Detailed steps3.Conclusions1.ScenarioSpecifications:Study4Less, a Student Loans Company, can provide the maintenance aspect of student finance (e.g. food, trans

2021-03-03 20:17:02 176

原创 what is mathematical modeling(什么是数学建模)

This blog is only for my personal review of mathematical modeling module.outline1. Why mathematical models?2. What is system?3. What is model and mathematical model?4. Classification of models.5. How to build a model?6. Examples1. Why mathematical models

2021-03-02 00:03:57 1233 2

原创 概率图模型和马尔可夫模型

概率图模型和马尔可夫随机场文章结构1.什么是概率图模型1.1 有向图模型1.2马尔可夫模型1.3 马尔可夫模型的常见问题和解决方法1).什么是无向图模型2).条件随机场1.什么是概率图模型绝大多是机器学习的目的就是从给定的数据中学习到数据的特点,从给定的数据中找出数据与数据之间的关系。但是对于有一些数据而言,数据与数据之间的关系无法直接并且准确地从给定数据中观察到,因为这样的数据存在着一个或者多个隐变量。这些隐变量使得属性之间的联系变得更加的复杂。所以我们需要一个模型来清晰地表示变量与变量之间关系的概

2021-02-26 22:59:18 5193 3

原创 PCA(主成分分析)算法理解和实现(python)

记录个人对算法的理解文章结构我们为什么要使用PCAPCA算法理解与数学推导个人PCA算法的简单实现总结我们为什么要使用PCA在机器学习领域,一直都有一个特别让人头痛的问题,那就是"维度灾难"(curse of dimensionality)。当一个数据集的特征过于多的时候,那么这个数据集的维度就会特别的大。过大的维度会给我们的模型带来非常大的压力,整个模型的训练需要极大运算资源(computationally expensive)。所以在实际的生产中,我们总是在思考如何将高维数据使用低维数

2021-02-23 01:20:14 983

原创 EM(expectation maximization)算法的理解和证明

本文记录个人对EM算法的理解首先为什么要是用EM算法,他适用于哪些场景呢?大家都知道EM算法是聚类算法的一种。 这个算法的核心是在数据已知的前提下讨论参数的合理性。换一句话说, 他是可以用似然函数建模的。等下会记录如何用数学语言描述这个算法。但是首先先试用经典的投硬币的问题将这个抽象的算法形象化。如何形象的理解EM算法假设我们现在有2枚硬币...

2021-02-16 05:21:47 2660 6

空空如也

空空如也

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

TA关注的人

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