TOF系列—深度图滤波

news2024/9/28 0:03:08

         本篇文章主要介绍TOF深度图的后处理,鉴于自身水平所限,如有错误,欢迎批评指正。(欢迎进Q群交流:874653199)

        TOF由于其本身的特性,导致其所获得的深度图存在以下问题:

        1.对空的地方存在许多离散噪点;

        2.边缘处存在许多飞点;

        3.点云不够平滑。

        对深度图进行滤波处理,可以有效的去除噪点,并获得更为平滑的点云数据。深度图的滤波可以分为以下三个部分:

        1.深度图去噪;

        2.深度图平滑;

        3.深度图补全。

        深度图去噪是指去除对空的噪点,物体边缘产生的飞点,以及指定范围外的点。深度图平滑是指对深度图像进行平滑,深度图平滑在点云上的表现是点云更平整,厚度更薄。深度图补全则是针对去噪及平滑后的深度图进行补充,输出更多的有效信息(本博文不涉及)。

        深度图平滑函数如下图所示:

图1 深度图平滑函数

        中值滤波:将指定方框内的数据进行排序,并选取中间的数据替代当前的像素值;

        均值滤波:将指定方框内的数据进行求和,并取均值,选取均值替代当前的像素值;

        双边滤波:一种非线性滤波器,可保持边缘,并进行降噪平滑。采用加权平均,具有两个权重;

        深度图去噪函数如下图所示:

图2 深度图去噪函数

        IR过曝滤除:将IR值大于指定阈值像素的深度值置为零,由于像素点过曝会影响周围像素,所以同时将过曝点周围的像素深度值置零,经验长度为2;

        IR欠曝滤除:将IR值小于指定阈值像素的深度值置为零,该像素点置信度降低,计算出的深度值不可靠;

        Sobel边缘去噪:边缘通常是物体交界处,会产生一定的噪点,利用sobel进行边缘检测,并将边缘点去除;

        连通域面积去噪:检测深度图中的连通域,并计算其面积,将面积小于阈值的连通域中的像素的对应深度值置零;

        法向量去噪:根据深度图计算法向量,并根据阈值将像素值对应的深度值置零;

       分类梯度去噪:根据阈值1将深度图分为前景和背景;将前景中梯度大于阈值2的像素点对应的深度值置零;将背景中梯度大于阈值2的像素点对应的深度值置零。

        使用TOF模组正对白墙,采集数据,并进行相应的滤波。

深度图平滑函数:

均值滤波:

                ​​​​​​ ​​​​​​​        

                                        a.原始点云                                            b.均值滤波核=3

        ​​​​​​​        ​​​​​​​        

                                        c. 均值滤波核                                    d.均值滤波核=7

均值滤波

中值滤波:

        ​​​​​​​        ​​​​​​​        

                                                a.原始点云                              b.中值滤波核=3

        ​​​​​​​        ​​​​​​​        ​​​​​​​    

                                           c. 中值滤波核=5                   d. 中值滤波核=7

中值滤波

双边滤波:

        ​​​​​​​        ​​​​​​​        ​​​​​​​     

                                                a.原始点云                    b.双边滤波——参数40、80

        ​​​​​​​        ​​​​​​​        ​​​​​​​      

                                     c.双边滤波——参数50、100               d.双边滤波——参数60120

5 双边滤波

        使用TOF采集如下场景的深度图,如下图所示:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

                                                               图6 测量场景

深度图去噪函数:

过曝滤除:

        ​​​​​​​        ​​​​​​​         

                                            a.原始点云                                b.IR=thresh1

        ​​​​​​​        ​​​​​​​        

                                        c.IR=thresh2

过曝滤除

欠曝滤除:

        ​​​​​​​        ​​​​​​​         

                                        a.原始点云                                b.IR=thresh1

        ​​​​​​​        ​​​​​​​        

                                        c.IR=thresh2

欠曝滤除

sobel边缘去噪:

        ​​​​​​​        ​​​​​​​         

                                        a.原始点云                               b.sobel边缘去噪

9  sobel边缘去噪

连通域面积去噪:

        ​​​​​​​        ​​​​​​​         

                                        a.原始点云                                        b.area=10

        ​​​​​​​        ​​​​​​​        

                                        c.area=30

10 连通域去噪

法向量去噪:

        ​​​​​​​        ​​​​​​​         

                                        a.原始点云                                    b.Normal

11 法向量去噪

分段梯度去噪:

        ​​​​​​​        ​​​​​​​         

                                        a.原始点云                                    ​​​​​​​        b.梯度1

        ​​​​​​​        ​​​​​​​         

                                        c.梯度2                                     ​​​​​​​        ​​​​​​​    d.梯度3

12 分段梯度去噪

组合去噪:

        组合去噪可以有效的弥补各种方法的缺点,对于复杂场景,组合去噪删除了绝大部分的噪点,同时又尽可能多的保留了有效点数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2171569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot与MyBatis-Plus的整合与综合实例

MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程、以及高级映射。MyBatis3 提供的注解可以取代 XML。例如,使用注解 Select 直接编写 SQL 完成数据查询。MyBatis-Plus 是一个对 MyBatis 进行增强的工具,在 MyBatis 的基础上只做增…

剑指 offer 刷题集

目录 数组 1. LCR 121. 寻找目标值 - 二维数组 2. LCR 120. 寻找文件副本 3. LCR 128. 库存管理 I 4. LCR 131. 砍竹子 I 5. LCR 132. 砍竹子 II 6. LCR 135. 报数 7. LCR 139. 训练计划 I 8. LCR 158. 库存管理 II 9. LCR 159. 库存管理 III 10. LCR 160. 数据流中…

从GPS接收机灵敏度出发--理论计算GPS最低的跟踪灵敏度

思博伦售后团队 对射频工程师来说,自己设计的接收机灵敏度(Receiver Sensitivity)是最关注也是最重要的参数之一。所以我们首先来看看接收机灵敏度的定义: 在满足一定误码率的条件下,接收机能容许接受到的最小信号电平…

FPGA学习(3)-38译码器实现

目录 1.38译码器概述 2.VIVADO步骤 2.1创建工程,添加源文件 2.2添加仿真文件,并进行仿真 ​2.3添加管脚约束 2.4生成bit文件 2.5 烧录程序 3.实验结果 1.38译码器概述 即三个输入A2A1A0,输出的十进制数,例如LHL(010)2…

class 026 哈希表、有序表和比较器的用法

这篇文章是看了“左程云”老师在b站上的讲解之后写的, 自己感觉已经能理解了, 所以就将整个过程写下来了。 这个是“左程云”老师个人空间的b站的链接, 数据结构与算法讲的很好很好, 希望大家可以多多支持左程云老师, 真心推荐. https://space.bilibili.com/8888480?spm_id_f…

Docker实践与应用:深度探索与丰富案例

一、引言 在当今的软件开发和运维领域,Docker已经成为了一种不可或缺的技术。它以容器化的方式改变了软件的开发、部署和运行模式,为企业和开发者带来了前所未有的便利和效率提升。本文将深入探讨Docker的实践操作以及丰富的应用举例,带您全面…

点餐小程序实战教程12菜品展示

目录 1 点餐界面2 显示菜品分类2.1 创建变量2.2 数据绑定 3 显示菜品总结 我们上一篇介绍了数据源的设计方法,讲解了菜品分类和菜品数据源的创建以及后台功能的开发。有了后台功能并且准备好数据之后,我们就需要开发小程序部分。 现实中你看到的想到的绝…

基于SpringBoot+Vue3的在线报名系统

一、项目介绍 1.1 项目介绍 本项目为一个报名系统,实现了基本的报名流程,功能完善,前后端皆有个人独立开发,功能相对不是特别难,但该有的功能还是都已经实现。 1.2 技术架构 主要技术栈: SpringBoot2 …

【LLM学习之路】9月25日26日27日 第十二、十三、十四天 Transformer Encoder

【LLM学习之路】9月25日26日27日 第十二、十三、十四天 Transformer Encoder Encoder 负责将输入的词语序列转换为词向量序列,Decoder 则基于 Encoder 的隐状态来迭代地生成词语序列作为输出,每次生成一个词语。 王木头 词向量,使用高维向…

教师工作量|基于springBoot的教师工作量管理系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书(可指定任意题目) 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff…

论文笔记(四十七)Diffusion Policy: Visuomotor Policy

Diffusion Policy: Visuomotor Policy 文章概括摘要1. 介绍2. 扩散策略的公式化2.1 去噪扩散概率模型2.2 DDPM 训练2.3 用于视觉运动策略学习的扩散模型 3 关键设计决策3.1 网络架构选项3.2 视觉编码器3.3 噪声计划3.4 加速实时控制的推理 4. 扩散策略的四个引人入胜的特性4.1 …

Meta号称替代程序员的LlamaCoder效果被CodeFlying秒杀,来看实测!

在讲LlamaCoder之前咱先浅聊一下Meta 这两天Meta凭借着Connect 2024大会可谓是风头正盛,刚刚发布的全新开源多模态大模型Llama3.2,热度是一路赶超咱的小草莓啊。 作为一款开源大模型能够和闭源的4o-mini、Claude3 Haiku打的有来有回, 甚至L…

protobuf编码方式

protobuf编码方式 一个简单的例子 message Test1 {optional int32 a 1; }上述的proto文件,设置a 150,那么将其序列化后,得到的数据就是08 96 01,然后你使用protoscope工具去解析这些数据,就得到1 : 150&#xff0c…

labview更换操作系统后打开原VI闪退

labview更换操作系统后打开原VI闪退 问题描述: Windows11由家庭版更换为专业版后,重新安装labview2021,打开原来的项目,项目管理器可以正常打开,但是打开VI却闪退,并报错如下 出现这种原因主要是labview在…

Kubernetes深入详解(一)

目录 第一部分 K8s概念和架构 1、k8s概述和特性 2、K8s架构组件 3、k8s核心概念 第二部分 从零搭建k8s集群 1、搭建k8s环境平台规划 2、服务器硬件配置要求 3、搭建k8s集群部署方式 (1) 基于客户端工具kubeadm 1、安装Docker 2、添加阿里云YUM软件源 3、安 装kubea…

16.第二阶段x86游戏实战2-发包函数和怎么去找改写过的发包函数

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…

Stable Diffusion 优秀博客转载

初版论文地址:https://arxiv.org/pdf/2112.10752 主要流程图: Latent Diffusion Models(LDMs) DDPM是"Denoising Diffusion Probabilistic Models"的缩写, 去噪扩散概率模型 博客: https://ja…

【CSS in Depth 2 精译_041】6.4 CSS 中的堆叠上下文与 z-index(上)

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结)第二章 相对单位(已完结)第三章 文档流与盒模型(已完结)第四章 Flexbox 布局(已…

AT89C51 利用SBIT寻址,并且在内存中实现伪动态密码的混淆

前置发现 && 分析 char bdata DB[2]; //char sbit x bdata DB[0]^7; //取内存地址数组[0]地址的的七位 这样我们可以对数组DB中索引0的位置进行修改… 例如,将密码A映射到真实密码C,这样做的好处是你的程序被逆向分析的时候,攻击者无法真正知道密码到底是什么…因为…

C语言-线程

一,线程的概念 1,线程的定义 在 C 语言中,线程是程序执行的最小单位,它是进程中的一个实体,是被系统独立调度和分派的基本单位。 2、线程的特点 轻型实体:线程是一个轻型实体,它只拥有必不可少的资源,如程…