当前位置:网站首页>[point cloud processing paper crazy reading classic version 9] - pointwise revolutionary neural networks
[point cloud processing paper crazy reading classic version 9] - pointwise revolutionary neural networks
2022-07-03 09:08:00 【LingbinBu】
Pointwise-CNN: Pointwise Convolutional Neural Networks
Abstract
- problem : 3D The field of deep learning of data has attracted many people's attention , But based on CNN No one has noticed the point cloud learning of
- Method : This paper presents a convolutional neural network for point cloud semantic segmentation and target recognition
- Technical details : point-wise convolution Operations can be used at each point & fully convolutional network
- Code :https://github.com/hkust-vgd/pointwise TensorFlow edition

Related work
equivariance And invariance What's the difference ?

Pointwise Convolution
Convolution
One convolution kernel Take each point in the point cloud as the center .kernel Medium neighbor points It can be done to center point An impact . Every kernel There is one. size or radius, According to each convolution layer neighbor points Adjust the quantity of .pointwise convolution It can be expressed as :
x i ℓ = ∑ k w k 1 ∣ Ω i ( k ) ∣ ∑ p j ∈ Ω i ( k ) x j ℓ − 1 x_{i}^{\ell}=\sum_{k} w_{k} \frac{1}{\left|\Omega_{i}(k)\right|} \sum_{p_{j} \in \Omega_{i}(k)} x_{j}^{\ell-1} xiℓ=k∑wk∣Ωi(k)∣1pj∈Ωi(k)∑xjℓ−1
among , k k k Traverse kernel support All in sub-domains. Ω i ( k ) \Omega_{i}(k) Ωi(k) With a little i i i Centred kernel Of the k k k individual sub-domain. p i p_{i} pi Yes. i i i Coordinates of . ∣ ⋅ ∣ |\cdot| ∣⋅∣ yes sub-domain Number of all points in . w k w_{k} wk It's No k k k individual sub-domain Medium kernel The weight , x i x_{i} xi and x j x_{j} xj Indication point i i i and spot j j j Place the value of the , ℓ − 1 \ell-1 ℓ−1 and ℓ \ell ℓ Is the index of the input and output layers .
Binding graph 1 Better understanding , Divide the area near the center into grids , The features in each grid are first added and then normalized with density , Finally, multiply by the convolution weight in the grid to get the characteristics of a grid , The features of multiple grids are added to obtain new features .
Gradient backpropagation
In order to ensure pointwise convolution Can be trained , It is necessary to calculate the input data and kernel Weight dependent gradient . Make L L L Is the loss function , The gradient associated with the input can be defined as :
∂ L ∂ x j ℓ − 1 = ∑ i ∈ Ω j ∂ L ∂ x i ℓ ∂ x i ℓ ∂ x j ℓ − 1 \frac{\partial L}{\partial x_{j}^{\ell-1}}=\sum_{i \in \Omega_{j}} \frac{\partial L}{\partial x_{i}^{\ell}} \frac{\partial x_{i}^{\ell}}{\partial x_{j}^{\ell-1}} ∂xjℓ−1∂L=i∈Ωj∑∂xiℓ∂L∂xjℓ−1∂xiℓ
Where the given point j j j, We traverse all of them neighbor points i i i. Following chain rule, ∂ L / ∂ x i ℓ \partial L / \partial x_{i}^{\ell} ∂L/∂xiℓ It's the upward layer of back propagation ℓ \ell ℓ Gradient of , ∂ x i ℓ / ∂ x j ℓ − 1 \partial x_{i}^{\ell} / \partial x_{j}^{\ell-1} ∂xiℓ/∂xjℓ−1 It can be written. :
∂ x i ℓ ∂ x j ℓ − 1 = ∑ k w k 1 ∣ Ω i ( k ) ∣ ∑ p j ∈ Ω i ( k ) 1 \frac{\partial x_{i}^{\ell}}{\partial x_{j}^{\ell-1}}=\sum_{k} w_{k} \frac{1}{\left|\Omega_{i}(k)\right|} \sum_{p_{j} \in \Omega_{i}(k)} 1 ∂xjℓ−1∂xiℓ=k∑wk∣Ωi(k)∣1pj∈Ωi(k)∑1
Similarly , And kernel Weight dependent gradients can be obtained by traversing all points i i i Define :
∂ L ∂ w k = ∑ i ∂ L ∂ x i ℓ ∂ x i ℓ ∂ w k \frac{\partial L}{\partial w_{k}}=\sum_{i} \frac{\partial L}{\partial x_{i}^{\ell}} \frac{\partial x_{i}^{\ell}}{\partial w_{k}} ∂wk∂L=i∑∂xiℓ∂L∂wk∂xiℓ
among :
∂ x i ℓ ∂ w k = 1 ∣ Ω i ( k ) ∣ ∑ p j ∈ Ω i ( k ) x j ℓ − 1 \frac{\partial x_{i}^{\ell}}{\partial w_{k}}=\frac{1}{\left|\Omega_{i}(k)\right|} \sum_{p_{j} \in \Omega_{i}(k)} x_{j}^{\ell-1} ∂wk∂xiℓ=∣Ωi(k)∣1pj∈Ωi(k)∑xjℓ−1
This article uses convolution kernels The size is 3 × 3 × 3 3 \times 3 \times 3 3×3×3, Every kernel The weights of points in the cell are the same .
And in volumes The convolution in is different , The network in this article does not pooling, Don't use pooling The reason for this is :
- There is no need to lower and upper sample the point cloud , When the point cloud is mapped to a high-dimensional space , Down sampling and up sampling are troublesome
- The search operation of adjacent points only needs to be established once
Point order
stay PointNet in , The input point cloud is disordered , The subsequent processing process will learn symmetric functions for processing .
In our approach , The input point cloud has a specific order ,XYZ or Morton curve. stay object recognition Tasks , The order of points will affect the final global eigenvector . stay semantic segmentation, The order doesn't matter .
`A-trous convolution
introduce stride Parameters , You can extend the kernel size , So as to expand the perception domain , There is no need to deal with too many points in convolution . This significantly improves the speed without sacrificing the accuracy demonstrated in our experiments .
Point attributes
For easier implementation convolution operator, The coordinates of points and others are stored respectively attributes ( Color 、 The normal vector 、 Or other high-dimensional features output from the previous layer ). No matter how deep the layers are , The coordinates of points can be used for the search of adjacent points .
experiment
Semantic segmentation
S3DIS dataset:



SceneNN dataset:


Object recognition




Convergence

Ablation experiments

Point order & Neighborhood radius

Morton curve Method will make the storage of points in memory very close
Deeper networks

Running time
Intel Core i7 6900K with 16 threads:
- forward convolution 1.272 seconds
- backward propagation 2.423 seconds
NVIDIA TITAN X speed up 10%
Layer visualization

边栏推荐
- The method for win10 system to enter the control panel is as follows:
- 低代码起势,这款信息管理系统开发神器,你值得拥有!
- php public private protected
- Common penetration test range
- Introduction to the usage of getopts in shell
- LeetCode 532. 数组中的 k-diff 数对
- Binary tree sorting (C language, char type)
- How to place the parameters of the controller in the view after encountering the input textarea tag in the TP framework
- 22-06-28 西安 redis(02) 持久化机制、入门使用、事务控制、主从复制机制
- First Servlet
猜你喜欢
Instant messaging IM is the countercurrent of the progress of the times? See what jnpf says
LeetCode 30. 串联所有单词的子串
LeetCode 241. Design priorities for operational expressions
Debug debugging - Visual Studio 2022
Phpstudy 80 port occupied W10 system
In the digital transformation, what problems will occur in enterprise equipment management? Jnpf may be the "optimal solution"
excel一小时不如JNPF表单3分钟,这样做报表,领导都得点赞!
传统办公模式的“助推器”,搭建OA办公系统,原来就这么简单!
即时通讯IM,是时代进步的逆流?看看JNPF怎么说
LeetCode 57. Insert interval
随机推荐
Methods of checking ports according to processes and checking processes according to ports
How to delete CSDN after sending a wrong blog? How to operate quickly
DOM render mount patch responsive system
22-05-26 Xi'an interview question (01) preparation
浅谈企业信息化建设
LeetCode 1089. Duplicate zero
php public private protected
<, < <,>, > > Introduction in shell
Binary tree sorting (C language, char type)
How to use Jupiter notebook
Using DLV to analyze the high CPU consumption of golang process
剑指 Offer II 091. 粉刷房子
20220630 learning clock in
【点云处理之论文狂读前沿版12】—— Adaptive Graph Convolution for Point Cloud Analysis
AcWing 786. 第k个数
LeetCode 871. 最低加油次数
Sending and receiving of request parameters
数字化转型中,企业设备管理会出现什么问题?JNPF或将是“最优解”
Find the combination number acwing 886 Find the combination number II
On the difference and connection between find and select in TP5 framework