computer vision论文代码分析
Niuip
这个作者很懒,什么都没留下…
展开
-
小白科研笔记:深入理解mmDetection框架——损失函数
1. 前言这篇博客主要分析mmDetection框架中常见的损失函数,以及它们的具体实现。2. 目标检测中常见的损失函数2.1 平滑L1范数平滑L1范数用于描述目标框回归中的损失函数:Smooth_L1(x)={0.5∥x−xgt∥22/β,∥x−xgt∥1<β∥x−xgt∥1−0.5β,∥x−xgt∥1≥β\text{Smooth} \_L1(x) =\left\{\begin{aligned}& 0.5\Vert x-x_{gt} \Vert_2^2/\beta,&原创 2020-06-11 10:44:09 · 3346 阅读 · 2 评论 -
小白科研笔记:深入理解mmDetection框架——网络架构
1. 前言这篇博客图解mmDetection搭建检测器网络架构的代码流程。在讲解的过程中,还是会以3D目标检测框架SA-SSD做例子讨论。2. 网络架构2.1 理论上的说明这段说明以单阶段3D目标检测框架SA-SSD为例。它的输入是[W0,L0,H0,C0][W_0,L_0,H_0,C_0][W0,L0,H0,C0]的稀疏三维特征张量。SA-SSD由backbone,neck,和detector三部分组成。它前向计算的图解如下所示:...原创 2020-06-10 17:44:05 · 2826 阅读 · 1 评论 -
小白科研笔记:深入理解mmDetection框架——数据输入
1. 前言这篇博客讨论mmDetection框架的数据输入过程。原创 2020-06-05 09:45:36 · 2322 阅读 · 2 评论 -
小白科研笔记:深入理解mmDetection框架——训练推断流程
1. 前言这篇博客讨论mmDetection框架的训练推断的总体流程。在讲解它的训练流程的过程中,我会以3d目标检测算法SA-SSD为讲解对象。首先解析训练流程,然后去讨论推断流程。2. 训练2.1 总体流程训练过程中的程序调用图如下所示。图1:总体训练流程图3. 推断3.1 总体流程推断过程中的程序调用图如下所示。图2:总体推断流程图4. 结束语...原创 2020-05-22 17:48:24 · 2362 阅读 · 0 评论 -
小白科研笔记:深入理解mmDetection框架——总起篇
1. 前言开源目标检测框架mmdetection在2D/3D的目标检测上受到越来越多使用者的青睐。作为一个半商业半学术的开源框架,它的很多内部细节是值得学习和借鉴的。同时,没有一个框架是绝对完美的,但是站在巨人的肩膀上无疑会看的更远。小白我认识mmdetection框架是源于对检测算法SA-SSD的研究。在使用和调试SA-SSD和领略mmdetection框架的便捷高效之后,我打算认真分析mmdetection的架构。这是我将要写作的系列博客的核心原因。考虑到我主要做3D目标检测之一块,所以代码的阅读也是原创 2020-05-20 17:18:50 · 3850 阅读 · 1 评论 -
小白科研笔记:简析论文DeepGCNs: Can GCNs Go as Deep as CNNs
1. 前言这篇博客主要分析一篇ICCV 2019的一篇深度图卷积网络性能的文章DeepGCNs: Can GCNs Go as Deep as CNNs。这篇文章的核心创新点是把残差连接(Residual Connection)和全连接方式(Dense Connection)从二维卷积迁移到图卷积中,同时把空洞卷积(Dilated Convolution)概念延伸至图卷积中。这篇文章其实比较通俗易懂,咱就直接讲解核心点。2. 创新点2.1 图神经网路的残差连接作者所做的所有实验都是关于室内场景下点云原创 2020-05-14 11:01:28 · 1676 阅读 · 0 评论 -
小白科研笔记:简析SOTA目标检测算法3D-CVF
1. 前言最近KITTI的3D目标检测榜刷出了一个新的Top One算法3D-CVF。做算法,有时间需要跟紧新的网络架构。所以这篇博客主要分析这篇论文3D-CVF: Generating Joint Camera and LiDAR Features Using Cross-View Spatial Feature Fusion for 3D Object Detection。2. 3D-CVF2.1 网络架构首先来看看这篇论文的结构框图,如下所示。有一说一,这个框图画的很细心,也很细致。图1:原创 2020-05-13 11:21:09 · 3188 阅读 · 1 评论 -
小白科研笔记:从零学习基于TSDF的三维重建
这篇博客主要分析这个老哥做的`Python`实现的基于`TSDF`地图的三维重建原创 2020-05-04 17:41:15 · 13374 阅读 · 14 评论 -
小白科研笔记:理解对比学习
1. 前言在深度学习中,自监督学习或半监督学习是一个很有意思并且非常吸引人的领域。监督学习的损失函数比较直观和简洁,跟真值有直接的联系。而自监督学习或半监督学习的误差函数的构建比较复杂,需要从原始数据中挖掘出有价值的信息作为损失函数。并且损失函数的设计高度依赖于领域知识。但是这一类学习方法的好处是可以在标注数据较少甚至没有的场合完成网络的训练。对比学习(Contrastive Learning)...原创 2020-05-03 10:46:34 · 3341 阅读 · 2 评论 -
小白科研笔记:简析图神经网络收敛性的理论证明
1. 前言这篇博客主要简析一篇`ICLR2020`的论文`What Graph Neural Network Cannot Learn: Depth vs Width`。想借研究这篇论文的时间,打一打图神经网络的理论基础。因为我比较关心图神经网络在点云处理方面的研究,所以对文章的讨论我会以点云处理来举例子。原创 2020-05-02 12:04:09 · 3604 阅读 · 3 评论 -
小白科研总结:总结自己科研若干条建议
1. 前言小白做科研时间已有三年,码龄两年(研究生初期使用Matlab就不算进去啦),大方向是深度学习和计算机视觉。这个期间踩过无数的坑,所以做个科研总结,希望自己和志趣相同的小火把不去踩同样的坑。2. 给自己的科研建议Tip 1: 前期不要怼轮子我把这个建议放在首位。怼轮子指凭一己之力推导出某个复杂算法的全部公式,或者是复现出某个复杂算法的全部代码。在初次入坑的时候,该领域的知识点并没有...原创 2020-05-01 12:59:47 · 1556 阅读 · 4 评论 -
小白科研笔记:简析SA-SSD中的数据增强机制
1. 前言当前,目标检测的深度网络一般训练至少50个Epoch。如果每个Epoch喂入的数据都是一样的,网络的误差函数可能会快速下降,但是会有很大的几率出现过拟合。这就像高中的笔者一直死记硬背地做一套习题,掌握不了知识变通一样。为了融汇贯通知识点,就需要做各式各样的练习题。在深度学习里,这就是数据增强(Data Augmentation),把输入的数据进行变形(Ground Truth也随之变化...原创 2020-05-01 09:52:04 · 1363 阅读 · 7 评论 -
小白科研笔记:从MSE Loss到Cross-Entropy Loss到Focal Loss再到Circle Loss
1. 前言这篇博客讨论分类问题的误差损失函数。原创 2020-04-28 22:37:00 · 2576 阅读 · 0 评论 -
简记:计算机图形学课程
我对计算机图形学很感兴趣,既然有时间,不如就学一点东西呗。点击这里进入Bilibili网课链接。课程主讲人是闫令琪教授,他的个人主页是:https://sites.cs.ucsb.edu/~lingqi/。、...原创 2020-04-27 19:45:56 · 238 阅读 · 0 评论 -
小白科研笔记:简析3d目标检测框指标计算和结果文本输出以及结果可视化
1. 前言因为工作需要,要了解3d目标检测框的指标计算过程。2. 3D目标框数据格式随便打开一个Ground truth标签,比如000006.txt,可以看到如下的内容:Car 0.00 2 -1.55 548.00 171.33 572.40 194.42 1.48 1.56 3.62 -2.72 0.82 48.22 -1.62Car 0.00 0 -1.21 505.25 168...原创 2020-04-26 20:49:52 · 7702 阅读 · 8 评论 -
小白科研笔记:点云目标检测相关文献速读-Part D
1. 前言快把最近库存的点云类论文读完了。每一年都有大批大批的SOTA论文诞生,有的是新鲜的思想,有的是从近两年框架上汲取灵感的结构,有点也会相互撞车。不管什么样的文章,作为泛读,我关注对我有帮助的闪光点。原创 2020-04-25 20:31:36 · 749 阅读 · 0 评论 -
小白科研笔记:理解PointNet++中的three_interpolate前向计算和反向求导
1. 前言处于科研需要,我需要理解PointNet++中的Interpolated (propogated) features,即特征插值计算过程(如果不需要当然就不去理解它啦)。它如SA-SSD论文中的公式所示:它在代码中的实现如下所示:# known 表示已知点的位置信息 [m,4]# known_feats 表示已知点的特征信息 [m,C]# unknown 表示需要插值点的位置...原创 2020-04-17 11:58:01 · 2028 阅读 · 3 评论 -
小白科研笔记:点云目标检测相关文献速读-Part C
1. 前言机器再跑网络,啥也干不了,接着看论文。之前的博客基本上把这两年SOTA的3D目标检测算法分析了一边。后续我会分析一些扩展的点云应用文章。2. Attentional ShapeContextNet首先看一篇CVPR2018的文章“Attentional ShapeContextNet for Point Cloud Recognition”。这是一篇使用点云注意力机制的文章。2....原创 2020-04-16 21:00:06 · 1216 阅读 · 3 评论 -
小白科研笔记:点云目标检测相关文献速读-Part B
1. 3DSSD首先分析CVPR2020的3D目标检测文章“3DSSD: Point-based 3D Single Stage Object Detector”。原创 2020-04-15 16:43:28 · 714 阅读 · 1 评论 -
小白科研笔记:点云目标检测相关文献速读-Part A
1. 前言原创 2020-04-14 16:17:37 · 996 阅读 · 0 评论 -
小白科研笔记:深入理解SA-SSD中的Part-sensitive Warping机制
1. 前言这篇博客将细致分析3D目标单阶段检测方法`SA-SSD`中的`Part-sensitive warping`机制。原创 2020-04-13 20:27:58 · 1110 阅读 · 3 评论 -
SA-SSD的ssd_rotate_head.py代码的Bug
真是坑啊,torch1.4.0跟torch1.1.0不太一样,修改ssd_rotate_head.py代码中的bilinear_interpolate_torch_gridsample,改为def bilinear_interpolate_torch_gridsample(image, samples_x, samples_y): C, H, W = image.shape ...原创 2020-04-08 13:18:15 · 679 阅读 · 8 评论 -
配置Spconv的Bug解决
现在Spconv是1.1版本的(升级了!!)Pytorch1.4.0 以及 Torchvision0.5.0才能顺利编译!原创 2020-04-07 11:43:49 · 2285 阅读 · 1 评论 -
小白科研笔记:理解PointRCNN中的Stage-Two细节
1. 前言博客写作的这天是清明节。致敬那些抗击新馆病毒的医护人员。我的上一篇博客分析了PointRCNN框中中预选3d框的生成和基于区间(对Bin的翻译)的3d框误差函数。讨论了基于区间的3d框误差函数的思想源于F-PointNet。这篇博客讨论PointRCNN的后续操作,即如何从一大堆3d预选目标框中回归出精度更高的检测结果呢?这对应PointRCNN中的RCNN部分。RCNN是属于Reg...原创 2020-04-04 13:08:56 · 1119 阅读 · 3 评论 -
小白科研笔记:简析PointRCNN的基于Bin的误差机制
1. 前言PointRCNN是一篇做3D目标检测的CVPR2019的文章。目前位居KITTI目标检测榜首的是PV-RCNN。这个算法的前身就是PointRCNN。它们的作者都是同一个人。考虑到PV-RCNN算法有些复杂,于是我想先从PointCNN着手。这是我写这篇博客的原因。在分析单阶段目标检测算法SA-SSD时候,已经积累了一些3d目标检测的知识代码储备,希望这次的讨论能够顺利一些。2. ...原创 2020-04-03 23:05:00 · 2885 阅读 · 7 评论 -
小白科研笔记:深入理解SA-SSD的子网络细节和Loss计算以及数据增强策略
1. 引言前面若干篇博客讨论分析了SA-SSD的输入输出流,所需数据集的格式,整体网络框架,voxel生成,Anchor使用,BEV特征转换等等细节。同时对mmdetection的训练数据处理,训练推断等等做了了解。学习一个新东西可以采用自顶向下方式(Top-to-down)。沿着这条路一直向下走,这篇博客主要探讨SA-SSD中各种误差函数的计算细节。...原创 2020-04-02 22:22:39 · 2168 阅读 · 5 评论 -
小白科研笔记:剖析SA-SSD的Voxel生成和Anchor机制以及稀疏卷积特征变换细节
1. 引言对于3D目标检测算法SA-SSD,考虑到我还是个大白,代码层面上有$N$个细节我还不是特别懂。具体而言,我会解决以下几个问题: - `Voxel`是怎么生成的,数据格式是什么? - `Anchor`是怎么生成的,数据格式是什么?以及`Anchor Mask`是什么? - `Anchor`和`Anchor Mask`用在哪里? - 3D稀疏卷积特征如何变成BEV特征?原创 2020-03-31 16:31:35 · 3687 阅读 · 10 评论 -
小白科研笔记:作为普通卷积概念上的延伸——认识流形稀疏卷积
最近看一些3D目标检测算法(比如之前分析的CVPR2020的SA-SSD),发现它们都调用spconv这个库。spconv对应Facebook在CVPR2018发的一篇文章。文章全名是3D Semantic Segmentation with Submanifold Sparse Convolutional Networks。文章核心创新点是提出了子流形上的稀疏卷积层(对Submanifold Sparse Convolution直译,简称为SSCN)。别看Submanifold Sparse Convol原创 2020-03-29 18:00:30 · 5861 阅读 · 7 评论 -
小白科研笔记:简析CVPR2020论文SA-SSD的网络搭建细节
1. 引言现有的3D目标检测的算法的实现都比较复杂。在深入网络细节之前,需要弄清楚数据的输入输出流,数据以怎样的format输入到核心算法模块,又以怎样的format输出,以及评价算法模块的指标又有哪些,等等基础问题。为什么需要了解这些基础问题?笔者觉得,分析他人代码的唯一目的就是搭建自己的代码。否则了解大概就足够了。不以自己实际需求为主纯粹地分析代码多少有些浪费时间(笑哭)。多多少少有些功利,...原创 2020-03-28 16:33:53 · 3130 阅读 · 3 评论 -
简析SA-SSD使用mmdect框架生成训练数据的代码细节
1. 前言我的上一篇博客简要分析了SA-SSD在预处理训练评估的框架。这篇博客将更近一步去分析SA-SSD内部网络。考虑到SSD是基于mmdetection实现的,所以这篇博客也会分析涉及到mmdetection的一部分代码。...原创 2020-03-27 13:38:39 · 2265 阅读 · 0 评论 -
简析SA-SSD在预处理训练评估的框架
1. 前言作为一个小白,笔者认为,从实践角度去深入一个深度学习领域(比如3D目标检测),不可忽视两件最为基础的事情:(1)怎样处理数据集;(2)怎样评估实验结果。这篇博客分析cvpr2020论文SA-SSD: Structure Aware Single-stage 3D Object Detection from Point Cloud的开源代码中的数据预处理,模型训练和结果评估这几块基础代码...原创 2020-03-26 19:24:04 · 3216 阅读 · 3 评论 -
小白科研笔记:理解PointConv和对此类方法感想
1. 引言2018年之后出现较多新的处理点云的深度学习算法。不同于那些调参数设计复杂网络架构的方法,这些文章从面向点云的卷积运算(Convolution for point cloud)着手,试图从更底层理解点云。主要参考文献如下:...原创 2020-03-25 11:39:22 · 1785 阅读 · 3 评论 -
小白科研笔记:PyTorch Geometric的入门
开始使用Markdown编辑器写博客笔记。1. PyTorch Geometric配置PyG的配置比预期要麻烦一点。PyG只支持两种Cuda版本,分别是Cuda9.2和Cuda10.1。而我的笔记本配置是Cuda10.0,考虑到我Pytorch版本是1.2.0+cu92,不是最新的,因此选择使用Cuda9.2的PyG 1.2.0(Cuda向下兼容)。按照PyG官网的安装教程,需要安装torch...原创 2020-03-21 19:02:53 · 2721 阅读 · 3 评论 -
小白科研笔记:边缘卷积在点云的应用和更深入的讨论
1. 前言点云是无序且没有结构的。这是任何基于点云的深度学习算法所必须考虑的常识。常用的处理方法有:(1)把点云体素化(Voxel)变成BEV图像,把点云的处理转换为图像的处理,在我的前一篇博客有所讨论;(2)使用参数化连续卷积(Parametric Continuous Convolutions)直接提取点云特征,在我的另一篇博客有所讨论;(3)从点云中采样出核心点,获得核心点特征,再经最大...原创 2020-03-19 17:38:05 · 2482 阅读 · 2 评论 -
小白科研笔记:深度连续卷积和它在深度补全中应用
1. 前言由于LiDAR点云稀疏的特性,根据它得到的LiDAR深度图也是稀疏的。这对LiDAR-Camera多传感器信息融合造成挑战。Continuous Convolution是近年处理LiDAR-Camera信息融合的方法之一。这篇博客尝试探究Continuous Convolution在深度补全的应用。我将主要参考下面两篇文章:(1)Shenlong Wang, Simon Suo,...原创 2020-03-18 12:36:41 · 2736 阅读 · 1 评论 -
小白解读论文:Multi-Task Multi-Sensor Fusion for 3D Object Detection
啦啦啦。好久没更新了。暂先跳过引言和综述直接看方法。把方法看懂了才看这些。Multi-Sensor指标定好的LiDAR-Camera系统。Multi-Task指3d和2d目标识别(侧重于车辆,2D and 3D box regression),路面检测(ground estimation),以及深度补(depth completion)。文章实验以3D目标检测为主。流程图如下所示:...原创 2020-03-17 10:58:53 · 4454 阅读 · 2 评论 -
CVPR:A Two-point Method for PTZ Camera Calibration in Sports的C++程序分析(2)
CVPR:A Two-point Method for PTZ Camera Calibration in Sports的C++程序分析(2)首先声明一些变量, const char * model_file = "/Users/jimmy/Desktop/BTDT_ptz_soccer/model/seq2_model.txt"; const char * ptz_feature_...原创 2018-05-18 20:33:41 · 361 阅读 · 0 评论 -
CVPR:A Two-point Method for PTZ Camera Calibration in Sports的C++程序分析(3)
CVPR:A Two-point Method for PTZ Camera Calibration in Sports的C++程序分析(3)原创 2018-05-20 21:17:19 · 252 阅读 · 0 评论 -
CVPR:A Two-point Method for PTZ Camera Calibration in Sports的C++程序分析(4)
CVPR:A Two-point Method for PTZ Camera Calibration in Sports的C++程序分析(4)原创 2018-05-25 15:55:18 · 324 阅读 · 0 评论 -
CVPR:A Two-point Method for PTZ Camera Calibration in Sports的C++程序分析(5)
CVPR:A Two-point Method for PTZ Camera Calibration in Sports的C++程序分析(5)今天接着分析,函数preemptiveRANSACOneToMany()的step2,来看这一段代码的含义, // count outliers as energy measurement for (int i ...原创 2018-05-28 16:42:30 · 245 阅读 · 0 评论