代码阅读
文章平均质量分 67
麒麒哈尔
这个作者很懒,什么都没留下…
展开
-
【代码阅读】PointNet++中的Three_nn的CUDA实现
文章目录给定点集known和unknown,Three_nn实现的功能是对于unknown的每个点,找到其在known中最临近的3个点的距离和下标,直接看cu代码,在src/interpolate_gpu.cu中:__global__ void three_nn_kernel_fast(int b, int n, int m, const float *__restrict__ unknown, const float *__restrict__ known, float *__restric原创 2021-06-01 19:45:31 · 623 阅读 · 1 评论 -
【代码阅读】PointNet++代码梳理
文章目录SA层FP层本文为PointNet++代码梳理的导言部分,其他部分详见(一)PointNet++代码梳理PointNet++的核心操作是SA层和FP层,这里就来梳理一下SA层和FP层都干了什么。SA层参数:降采样点的数量(npoints),邻域半径(radii),邻域内点的数量(nsample),MLP输入:xyz,features计算过程如下:new_xyz_idx = FPS(xyz, npoints) #使用FPS选出降采样点的下标,记作new_xyz_idxnew_xyz原创 2021-06-01 19:33:10 · 1891 阅读 · 0 评论 -
【代码阅读】PointNet++中ball query的CUDA实现
文章目录本文为PointNet++ CUDA代码阅读系列的第二部分,其他详见:1、PointNet++中的FPS的CUDA实现2、PointNet++中ball query的CUDA实现 (本文)3、PointNet++中的Three_interpolate的CUDA实现CUDA代码要在pytorch中使用,必须设置好CUDA代码与python的接口,并用python编写pytorch中的模块,这两部分详见PointNet++中的FPS的CUDA实现。本文直接看ball query的实现。给定一原创 2021-06-01 19:01:23 · 2089 阅读 · 0 评论 -
【代码阅读】Sparse Convolution代码理解
文章目录OpenPCDet:VoxelBackBone8xspconvSparse TensorSubMConv3dget_indice_pairsindice_subm_convGEMMSparse Convolution成功用于3D目标检测的网络,例如Second,Part-A^2,PV-RCNN等,证明其有效性。相比于3D Convolution,在运算速度和显存消耗中有巨大的优势。Sparse Convolution在SECOND论文中提出,并且原文中给出了实现的方法。但在Part-A2A^2A2原创 2021-05-06 23:34:36 · 8968 阅读 · 5 评论 -
【代码阅读】PVCNN
文章目录Voxelizationpythoncppcu前向计算反向传播Point-Voxel CNN for Efficient 3D Deep Learning, 2019 NIPScode:https://github.com/mit-han-lab/pvcnn文章的的解读可以看我另一篇博客。PVconv的具体实现在pvcnn-master/modules/pvconv.pyvoxel_features, voxel_coords = self.voxelization(features, c原创 2020-11-17 21:07:04 · 2573 阅读 · 7 评论 -
【代码阅读】PointNet++中的FPS的CUDA实现
文章目录Pytorch的接口cppcu之前只是使用PointNet++,也没有想过是怎么实现的。之前学了一下cuda编程,这里就来详解一个示例。本文使用的代码是PointRCNN中PointNet++的实现。Pytorch的接口FPS的实现是用c和cu实现的,所以先看一下pytorch中的定义。在pointnet2/pointnet2_utils.py中class FurthestPointSampling(Function): @staticmethod def forward(原创 2020-07-19 21:52:44 · 2873 阅读 · 2 评论 -
【代码阅读】详解在Pytorch中定义自己写的CUDA编程函数
文章目录Pointnet++函数的pytorch接口设置要点目前,3D的网络,尤其时point-based的网络,很多模块在pytorch中都没有官方实现,这就需要我们自己写。例如PointNet++中的FPS,group,query等函数。之前也只是用过,对其的修改也限于python层面,这次,就好好探究一下,如何自定义一个函数,如何将其加入到pytorch中,使得在pytorch中也能用。其实,这一块,有非常详细的官方文档,讲述了如何自定义一个函数,并将其放入Pytorch中。当然,如何写一个函数,原创 2020-06-24 20:39:52 · 7280 阅读 · 12 评论 -
【代码阅读】Part-A^2 Net 代码
sudo apt-get install libboost-all-devhttps://cloud.tencent.com/developer/article/1629517https://blog.csdn.net/matriculate_in19/article/details/106304279原创 2020-05-28 19:56:50 · 1608 阅读 · 13 评论 -
【代码阅读】RandLA-Net
文章目录数据预处理datasetRandLa-Net是新提出来的针对大场景语义分割的方法,效果拔群。我对该文章的解读可以看我另外一篇博客,论文作者给出的代码是TensorFlow版本的。接下来,我们就看一下这个代码都做了什么操作。以SemanticKitti为例。数据预处理# utils/data_prepare-semantickitti.py# line 42-50points = DP.load_pc_kitti(join(pc_path, scan_id))labels = DP.l原创 2020-05-19 21:17:29 · 9882 阅读 · 45 评论 -
【代码阅读】VoteNet (推荐阅读源码,学到的东西很多)
文章目录本文是针对VoteNet:Deep Hough Voting for 3D Object Detection in Point Clouds论文的源码的理解。VoteNet的解读可以参考我的另外一篇博客。具体的源码,可在github上下载。总的来说,代码写的非常优雅,我觉得光从代码的结构来看,也有很多可以借鉴的地方。所以本文先看一下代码的结构,然后再跟进去详解。# train.py...原创 2019-12-03 19:34:34 · 15132 阅读 · 65 评论 -
【代码阅读】YOLOv3 Loss构建详解
aaaYolov3网络框架Loss构建功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Yolov3YOLOv3 是Y...原创 2019-05-29 18:19:42 · 15072 阅读 · 24 评论 -
【代码阅读】PointNet++具体实现详解
qqq原创 2019-06-03 20:38:41 · 15639 阅读 · 48 评论 -
【代码阅读】PointRCNN网络可视化,代码详解
aaaPointRCNNPointRCNN网络结构PointRCNNPointRCNN是CVPR2019中3D目标检测的文章。3D目标检测是一个计算机视觉中比较新的任务,其他的文献综述可以参考我的另外一篇博客3D Object Detection 3D目标检测综述该文章使用two-stage方式,利用PointNet++作为主干网络,先完成segmentation任务,判断每个三维点的lab...原创 2019-06-04 17:43:47 · 23190 阅读 · 197 评论 -
【代码阅读】Faster RCNN 网络结构详解
这里写自定义目录标题Faster RCNNImage Pro-Processing主干网络Faster RCNN作为two stage目标检测方法的代表作,其中有很多模块非常经典,在后续的two stage的模型中有广泛的应用。而且在3D Object Detection的问题中,也是如此。这就回顾一下Faster RCNN的网络结构。这里推荐一个博客,http://www.telesens....原创 2019-09-14 10:53:57 · 11841 阅读 · 16 评论