【寻找公共祖先(普通二叉树)】BJ某IT厂面试题 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”题解,利用HashMap+HashSet技术栈解决。
【岛屿最大面积】BJ某IT厂笔试题 该题在LeetCode上能找到原题,大致意思是,给你一个大小为 m x n 的二进制矩阵 grid。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0。由于IT厂面试都需要自测输入输出,建议小伙伴们去练习一下自测输入,我这里使用的是Java。该题大致解法就是使用递归。
【计算机视觉】简述对EQ-Net的理解 文章整体结构如上图,可以大体将EQ-Net分为三个部分,第一部分成为嵌入部分(Embedding Staget),该部分主要嵌入输入点云,它的一个优势是它不仅仅可以嵌入基于点的网络还能嵌入基于体素的网络,大大提高了其泛化性。第二部分是查询阶段,该部分的输入有两部分,一部分是支持点,另一部分是查询点,该部分主要是通过查询原始数据集,点云分割的话基本上就是将整个点云数据集输入到网络中。这篇文章主要提出了一个基于查询方法的统一范式,它解决了一些不仅仅是点云分割的问题,还解决了三维点云分类和三维目标检测的问题。
在windows上可视化redis中间件 windows下安装redis的话可以去B站上查看一下怎么安装,主要是在github上去下载,目前更新的比较快,不过很多视频都是装的5.x的版本,它也是一个傻瓜式的安装,装完之后,在终端测试一下。因为redis可以分布在很多服务器上,但是我们只有一台电脑,所以我们将redis.windows.conf中的127.0.0.1的注释去掉。首先需要下载一下RedisDesktopManager这个可视化工具,在很多CSDN博客上都有博主进行介绍,其实就是一个傻瓜式安装。在终端启动redis。
【点云分割】简述对DMSF(多尺度融合的扩张邻域搜索)的理解 对于点云分割来说,对于特征提取这部分环节非常重要,很多网络都是学习邻域点的相对位置关系,这样可以将点云的空间结构加入网络中。然后大部分网络会利用特征之间的关系进行一个权重的学习,作用是为了更好的学习特征,也可以理解为更好的学习邻域的一种特征关系。感受野在学习点云局部特征中非常重要,尤其是在特征学习前,如果对点云的感受野进行扩大,会保留点云原有的特征,对分割效果应该会更好。DMSF这篇文章的创新点我认为有两个,一个是比较新颖的扩张KNN,另一点是对邻域搜索的特征进行了增强学习,并且进行了多尺度的融合(邻域搜索
【图卷积做点云分割】简述对AGNet的理解 之前看的论文比较多的是大场景点云分割的,它们的做法就是获取邻域特征信息编码,然后利用注意力等加权学习特征,之后聚合局部的特征(自注意力池聚合),完成下采样的工作。其实图卷积也可以很好的完成分割效果,自从PointNet没有提取到邻域局部特征信息后,很多图卷积的网络都使用了一种边缘卷积的方法来学习邻域之间点云的特征关系。但是像DGCNN这种虽然学习了邻域的特征,但是在聚合的时候使用了和PointNet一样的对称函数(max pooling),这种方法虽然简单,而且可以解决点云的排序不变性,但是这样会丢失很多信
RandLA-Net网络在Semantic3D数据集分割复现 最近一直在看些大场景点云分割的文章,它们的方法无非就是对邻域的点云信息进行编码学习特征,然后利用注意力等加权学习特征,最后在利用各种方法去聚合特征。有的网络比较复杂的还在结合上下文信息时去添加注意力模块或者融合不同尺度的的点云特征获取更好的分割效果。今天给大家复现一下RandLA-Net的Semantic3D数据集的训练过程。首先,RandLA-Net中的复现环境是Ubuntu16.04,tf1.11,CUDA9.0版本的。但是我的电脑是Ubuntu18.04的,所以我尝试使用tf1.14去复现。首先根
【点云分割】边界分割对点云分割的监督学习(CBL) 对于大场景点云分割来说,对于邻域局部特征进行学习聚合时,对于类别的边界点云分割效果往往不好,因为学习局部特征时没有一个区别度,常常会将不同类别的点云聚合到一起进行下采样。利用边界分割对点云分割进行一个监督学习,实验证明可以有助于分割结果。网络框架不需要进行多层的注意力学习等。CBL这篇文章就是对边界点云进行了一个监督学习,利用的输入时点云的真实标签,该模块可以以很多点云分割网络(PointTransformer、RandLA等)作为baseline,效果都要优于它们。首先定义了边界点云的真实标签和预测标签
【计算机视觉】简述对PAConv(对点云分割的动态核卷积)的理解 对于点云分割来说,最重要解决的问题基本上有两个,一个是点云的无序性问题,另一个是点云的不规则和稀疏问题。对于前者的问题,其实2017年的PointNet提出的对称函数(max pooling)就已经解决了,但是目前有很多取代之的方法。后者,很多网络利用学习邻域局部特征,编码相对位置特征解决,KPConv提出了一种可变形的Kernel,但是它的核点是固定的,针对不同的场景可能还需要进行改变,PAConv中的Kernel的灵活性要更高一点,而且PAConv的网络结构具有很大的灵活,可以利用其他先进网络的back
【计算机视觉】简述对CSANet(交叉注意力网络)进行点云分割的理解 针对大场景点云分割算法来说,学习邻域局部特征是非常重要的一步,所以很多网络在编码完相对位置特征之后,都会利用特征去进行一个注意力的学习,更好的学习点云的局部特征,但是它也是指利用特征或者坐标分别去进行注意力的学习,然后利用各种方法区聚合特征,CSANet是利用特征和坐标的交叉注意力去学习特征,然后结合上下文信息的时候是利用一种前向传播的方法,融合不同尺度的点云特征,但是它采样的方法是最远点采样。它整体的结构和大部分点云分割算法类似,都是编码层加解码层的结构,但是它结合山下文信息的时候,它是利用编码层的同
【计算机视觉】简述对LFT-Net(大场景点云分割)的理解 对于RandLA来说,它设计的LFA模块,解决了点云局部特征提取的问题,但是它只是学习了一个十维的位置特征向量,并将其和原始进行拼接,这种方法虽然学习到了邻域的局部特征,但是学习到的特征没经过细致的学习(例如通道间的不同、特征间的差异等等),直接利用自注意力池聚合了特征,所以导致分割的效果没有如今的高(其实已经很高了)。LFT-Net采取的思想和大部分点云分割思想一致,它和之前我讲述的一篇叫DLA-Net的很像,都是利用的Transformer的结构去学习,但是那篇文章利用的是特征之间的减法然后拼接学习的位
【点云分割】简述对PointWeb的理解 最近看了很多大场景点云分割的论文,它们使用的都是RS采样的方法,随机采样导致最关键的一个问题就是采样的点比较多,而且会导致一些地方的点特征丢失的情况,今天给大家介绍一篇2019年CVPR的文章,PointWeb。自从PointNet开发出来,在点云分割上学习点与点之间的关系(邻域局部特征)成为了一个必然的研究方向,...
【计算机视觉】简述对大场景点云语义分割的理解(综述) 大家好,最近看了很多大场景点云分割的论文,就这个博客给大家进行一下总结,方便大家一起学习和理解。大场景点云目前很多算法都是基于RandLA-Net进行更新迭代的,它们的思想转变都是由FPS采样变为RS采样,这样采样的好处是可以降低采样的时间,并且可以处理点数比较多的点云。目前很多点云分割算法都是基于2017年的PointNet进行改进的,它提出的逐点MLP的思想有效的解决了点云的无序性。首先对于CVPR2020年的RandLA-Net,它是比较经典大场景点云分割网络,它提出的LFA结构(LocSE+At
【计算机视觉】简述对BLNet(大场景点云分割中的双向学习网络)的理解 大场景点云分割,很多网络都是基于RandLA改进的网络,但是他们只是简单的提取了点的邻域局部特征,BLNet是根据空间位置关系和特征差关系的双重关系来对输入的特征进行一个学习,起到一个丰富特征的作用,而且它不像DLA一样,繁琐的网络结构,还利用特征注意力加权特征,BLNet的BidConv模块简单学习完特征之后利用自注意力聚合特征,而且它的点是可以不断更新的,也就是解决了点云之间的一个移动问题,点云的不规则问题。它整体的网络框架与KPConv,RandLA都类似,都是4+4的编码层+解码层结构。BLNet的
【计算机视觉】简述对BAF-LAC(大场景点云分割)的理解 对于RandLA来说,算是近几年大场景点云分割的一个开篇之作,它提出的LFA模块去聚合局部的特征并且结合全局特征去实现分割的效果,它的网络框架也被现在很多算法网络去进行改进更新。目前很多网络都是在RandLA的基础上改进的,例如我博客里面的DLA-Net(添加类似于Point Transformer的自注意力模块去加权特征),LFA-Net(局部特征的注意力加权),DNNE(框架类似于RandLA,搜索邻域时进行了扩张搜索),它们都是在RandLA的基础之上去更新的。今天给大家介绍的是一种添加了局部聚合分类
【计算机视觉】简述对Dilated Nearest-Neighbor Encoding(针对点云分割的扩张搜索编码)的理解 大场景点云分割算法基本都是去提取邻域特征,添加注意力模块等对其实现更好的分割结果,但是点云经过下采样之后还是会丢失一部分特征信息,所以针对上下文信息进行多级多尺度融合的效果去学习点云分割目前看起来很不错,DNNE这篇文章,是在RandLA-Net的基础之上进行改进的,它在KNN搜索邻域的时候,搜索的是2K的点,意思就是直接对感受野扩大了一倍,搜索2K点,但是学习的时候只是提取K个点,所以它减少了学习复杂度的基础上还扩大了网络的感受野。DNEE的网络框架主要是4个编码层和4个解码层,下采样层主要是RS+DLF