type
status
date
slug
summary
tags
category
icon
password
Last edited time
Jun 19, 2024 01:43 AM
😀
去除背景残影提升性能,填充成方形实现数据压缩
 

📝 主旨内容

去除点云背景残影

💡
背景干扰到异常检测,传统方法通过RANSAC移除背景平面后,再通过DB-Scan保留最大的联通块
notion image
notion image

Random sample consensus(RANSAC 随机抽样一致算法)识别并移除平面

💡
迭代k次,每次随机选择一些点构建模型,根据阈值去尝试包含之前未选择的点,最终保留能够包含最多点的模型(和样本点)
💡
需要指定迭代步数,阈值,每次选的点个数(论文内迭代步数为1000,阈值为0.005,点数为50)
RANSAC能够减少离群点的影响
RANSAC能够减少离群点的影响
notion image
💡
RANSAC代码实现
💡
RANSAC用于平面估计代码实现
💡
实现的时候只去点云四周边缘10个像素用于背景平面的估计,得到平面后,距离背景低于0.005都将被视作背景被移除(相同位置下的图像也就被置成黑色)
900 * 10 * 4 - 10 * 10 * 4 = 35600(每次随机选50个点)
900 * 10 * 4 - 10 * 10 * 4 = 35600(每次随机选50个点)

Density-Based Spatial Clustering of Applications with Noise(DB-Scan)保留最大的联通块

💡
作为1996年提出的聚类算法,在2014年被KDD授予时间检验奖
在DBSCAN算法中,一个点的邻域内点的数量分为以下三种情况:
  1. 核心点(Core Point):如果一个点的邻域内(包括该点自身)至少包含MinPts个点,则该点被标记为核心点。
  1. 边界点(Border Point):如果一个点的邻域内点的数量少于MinPts,但是它在某个核心点的ε邻域内,则该点被标记为边界点。
  1. 噪声点(Noise Point):如果一个点的邻域内点的数量少于MinPts,且它不在任何核心点的ε邻域内,则该点被标记为噪声点。
在这幅图里,minPts = 4,点 A 和其他红色点是核心点,因为它们的 ε-邻域(图中红色圆圈)里包含最少 4 个点(包括自己),由于它们之间相互相可达,它们形成了一个聚类。点 B 和点 C 不是核心点,但它们可由 A 经其他核心点可达,所以也属于同一个聚类。点 N 是局外点,它既不是核心点,又不由其他点可达。
在这幅图里,minPts = 4,点 A 和其他红色点是核心点,因为它们的 ε-邻域(图中红色圆圈)里包含最少 4 个点(包括自己),由于它们之间相互相可达,它们形成了一个聚类。点 B 和点 C 不是核心点,但它们可由 A 经其他核心点可达,所以也属于同一个聚类。点 N 是局外点,它既不是核心点,又不由其他点可达。
💡
需要指定阈值ε和最少包含的点MinPts(论文内分别为0.006和30)

一点缺陷

💡
处理的时间长,会损失一部分主体
notion image
notion image

性能提升?

notion image

数据标准化

💡
图像和点云都进行插值填充成方形
notion image
676KB
676KB
notion image
 
113KB
113KB
notion image
 

数据压缩减少显存和时间消耗?

💡
显存和时间都下降了大约一半
notion image
M3DM双库版本
Bagel
Cable_Gland
Carrot
Cookie
Dowel
Foam
Peach
Potato
Rope
Tire
处理前显存占用(MB)
4218/5908/7040
8188
9496
9496
10808
10808
12296
12296
12296
12296
处理后显存占用(MB)
2724/3700
3700/3712
3712/4872
4872
4872/6040
6040
6040/7528
7528
7528
7528
M3DM双库版本训练时间
处理前
5小时19分钟42秒
处理后
2小时55分钟0秒

🤗 总结归纳

 

📎 参考文章

 
LeetCode第400场周赛题解LeetCode第402场周赛题解
Loading...