当前位置:网站首页>[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

边栏推荐
- Format - C language project sub file
- DOM 渲染系统(render mount patch)响应式系统
- Noip 2002 popularity group selection number
- LeetCode 30. 串联所有单词的子串
- file_ put_ contents
- I made mistakes that junior programmers all over the world would make, and I also made mistakes that I shouldn't have made
- The "booster" of traditional office mode, Building OA office system, was so simple!
- 我们有个共同的名字,XX工
- PHP mnemonic code full text 400 words to extract the first letter of each Chinese character
- Get the link behind? Parameter value after question mark
猜你喜欢
AcWing 787. Merge sort (template)
Sword finger offer II 091 Paint the house
Try to reprint an article about CSDN reprint
Parameters of convolutional neural network
我们有个共同的名字,XX工
Arbre DP acwing 285. Un bal sans patron.
AcWing 786. Number k
22-06-28 Xi'an redis (02) persistence mechanism, entry, transaction control, master-slave replication mechanism
数字化转型中,企业设备管理会出现什么问题?JNPF或将是“最优解”
状态压缩DP AcWing 291. 蒙德里安的梦想
随机推荐
Sword finger offer II 029 Sorted circular linked list
Try to reprint an article about CSDN reprint
Escape from heaven and forget what he suffered. In ancient times, it was called the punishment of escape from heaven. Article collection
SQL statement error of common bug caused by Excel cell content that is not paid attention to for a long time
数字化管理中台+低代码,JNPF开启企业数字化转型的新引擎
LeetCode 324. 摆动排序 II
【点云处理之论文狂读前沿版12】—— Adaptive Graph Convolution for Point Cloud Analysis
Using DLV to analyze the high CPU consumption of golang process
Shell script kills the process according to the port number
剑指 Offer II 091. 粉刷房子
Phpstudy 80 port occupied W10 system
Instant messaging IM is the countercurrent of the progress of the times? See what jnpf says
LeetCode 508. 出现次数最多的子树元素和
Pic16f648a-e/ss PIC16 8-bit microcontroller, 7KB (4kx14)
LeetCode 535. Encryption and decryption of tinyurl
【点云处理之论文狂读经典版10】—— PointCNN: Convolution On X-Transformed Points
Complex character + number pyramid
教育信息化步入2.0,看看JNPF如何帮助教师减负,提高效率?
How to use Jupiter notebook
AcWing 787. 归并排序(模板)