当前位置:网站首页>[point cloud series] pointfilter: point cloud filtering via encoder decoder modeling
[point cloud series] pointfilter: point cloud filtering via encoder decoder modeling
2022-04-23 13:18:00 【^_^ Min Fei】
List of articles
1. Summary
Published in TVCG2021 Periodical
Code :http://github.com/dongbo-BUAA-VR/Pointfilter
It basically uses the thinking of bilateral filtering
2. motivation
Learn the displacement vector , Denoised points = noise + Displacement vector
So the essential processing is to calculate The displacement vector here .
3. Method
Preprocessing :
Given a set of point clouds Real block P P P And noise block P ^ \hat{P} P^, r r r It's a block radius , Generally, it is the diagonal of the bounding box 5%

P P P: Clean point cloud
N N N: noise

Once the block is generated , Two problems need to be considered in point cloud filtering :
- How to avoid Unnecessary degrees of freedom in the observation domain ?
- How to protect Pointfilter Sensitive to some geometric transformations ?
about 1, You can transform the block to the origin ( With p i ^ \hat{p_i} pi^ Centered ), And make a telescopic transformation

In order to ensure the invariance of rigid body , Use PAC alignment , First of all Z Axis , then X Axis .
For the convenience of parameter adjustment , The default input is fast ∣ P ^ i ∣ = 500 |\hat{P}_i|=500 ∣P^i∣=500, The number of blocks is less than 500 Then fill , If it is greater than, conduct down sampling .
The overall framework :
According to the adjacent structure Project each noise onto the foundation surface , Therefore, the codec network is designed :

Encoder Encoder
Input :PCA Processed point cloud
Purpose : Or features represent information
Content :
- feature extraction : use MLP Realization , Different scale feature extraction
- Collector: In fact, that is max-pooling operation , Turn the feature into a 1024 Dimension characteristics .
The whole is basically PointNet+Batch Norm, Ensure that the characteristics of each layer are standard distribution .

The code description :
class pointfilter_decoder(nn.Module):
def __init__(self):
super(pointfilter_decoder, self).__init__()
self.fc1 = nn.Linear(1024, 512)
self.fc2 = nn.Linear(512, 256)
self.fc3 = nn.Linear(256, 3)
self.bn1 = nn.BatchNorm1d(512)
self.bn2 = nn.BatchNorm1d(256)
self.dropout_1 = nn.Dropout(0.3)
self.dropout_2 = nn.Dropout(0.3)
def forward(self, x):
x = F.relu(self.bn1(self.fc1(x)))
# x = self.dropout_1(x)
x = F.relu(self.bn2(self.fc2(x)))
# x = self.dropout_2(x)
x = torch.tanh(self.fc3(x))
return x
Decoder decoder
The decoder is directly FCN, Then convert to the coordinate domain .
Here we need to pay attention to , What we learned is the part of denoising , So the formula 7 r R − 1 f ( . ) r\mathbf{R}^{-1}f(.) rR−1f(.) This term is a displacement vector .

As shown in the figure , In fact, it's here n i n_i ni

The code description :
class pointfilter_decoder(nn.Module):
def __init__(self):
super(pointfilter_decoder, self).__init__()
self.fc1 = nn.Linear(1024, 512)
self.fc2 = nn.Linear(512, 256)
self.fc3 = nn.Linear(256, 3)
self.bn1 = nn.BatchNorm1d(512)
self.bn2 = nn.BatchNorm1d(256)
self.dropout_1 = nn.Dropout(0.3)
self.dropout_2 = nn.Dropout(0.3)
def forward(self, x):
x = F.relu(self.bn1(self.fc1(x)))
# x = self.dropout_1(x)
x = F.relu(self.bn2(self.fc2(x)))
# x = self.dropout_2(x)
x = torch.tanh(self.fc3(x))
return x
Loss function
There are two kinds of : Projection loss L p r o j a L^a_{proj} Lproja + Loss of similarity L r e p L_{rep} Lrep
Using the aggregation of exclusion penalty terms , The total loss is as follows 5 Shown . among η = 0.97 \eta=0.97 η=0.97

Projection loss : The formula 3

Gauss function : The formula 4



d i a g diag diag The size is P i P_i Pi The diagonal length of the bounding box , m = ∣ P ^ i ∣ m=|\hat{P}_i| m=∣P^i∣, The default angle is supported 15 degree . n \mathbf{n} n Is the normal vector .
analysis
Combined with the traditional denoising method loss, Compact expression ; But it is not very good to retain sharp noise .
4. experiment

版权声明
本文为[^_^ Min Fei]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230611136878.html
边栏推荐
- async void 導致程序崩潰
- 2020最新Android大厂高频面试题解析大全(BAT TMD JD 小米)
- mui 关闭其他页面,只保留首页面
- MySQL basic statement query
- 7_ The cell type scores obtained by addmodule and gene addition method are compared in space
- Complete project data of UAV apriltag dynamic tracking landing based on openmv (LabVIEW + openmv + apriltag + punctual atom four axes)
- 普通大学生如何拿到大厂offer?敖丙教你一招致胜!
- AUTOSAR from introduction to mastery 100 lectures (83) - bootloader self refresh
- Mui close other pages and keep only the first page
- 5道刁钻的Activity生命周期面试题,学完去吊打面试官!
猜你喜欢

2020最新Android大厂高频面试题解析大全(BAT TMD JD 小米)

EMMC / SD learning notes

Imx6ull QEMU bare metal tutorial 2: usdhc SD card

filter()遍历Array异常友好

FatFs FAT32 learning notes
![[51 single chip microcomputer traffic light simulation]](/img/70/0d78e38c49ce048b179a85312d063f.png)
[51 single chip microcomputer traffic light simulation]

three. JS text ambiguity problem

UEFI learning 01-arm aarch64 compilation, armplatformpripeicore (SEC)

MySQL -- 16. Data structure of index

@Excellent you! CSDN College Club President Recruitment!
随机推荐
“湘见”技术沙龙 | 程序员&CSDN的进阶之路
async void 導致程序崩潰
@优秀的你!CSDN高校俱乐部主席招募!
[wechat applet] flex layout usage record
Three channel ultrasonic ranging system based on 51 single chip microcomputer (timer ranging)
mui 关闭其他页面,只保留首页面
The use of dcast and melt in R language is simple and easy to understand
GIS practical tips (III) - how to add legend in CASS?
Mui + hbuilder + h5api simulate pop-up payment style
"Xiangjian" Technology Salon | programmer & CSDN's advanced road
[walking notes]
ESP32 VHCI架构传统蓝牙设置scan mode,让设备能被搜索到
(个人)最近项目开发后存在的系统漏洞整理
three.js文字模糊问题
Example interview | sun Guanghao: College Club grows and starts a business with me
Temperature and humidity monitoring + timing alarm system based on 51 single chip microcomputer (C51 source code)
Design of body fat detection system based on 51 single chip microcomputer (51 + OLED + hx711 + US100)
Design and manufacture of 51 single chip microcomputer solar charging treasure with low voltage alarm (complete code data)
uniapp image 引入本地图片不显示
AUTOSAR from introduction to mastery 100 lectures (52) - diagnosis and communication management function unit