利用lidar生成深度图

前言

目前,深度图像的获取方法有:激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法等。针对深度图像的研究重点主要集中在以下几个方面:深度图像的分割技术,深度图像的边缘检测技术,基于不同视点的多幅深度图像的配准技术,基于深度数据的三维重建技术,基于深度图像的三维目标检测技术,深度数据的多分辨率建模和几何压缩技术等。在PCL中深度图像与点云最主要的区别在于,其近邻的检索方式不同,并且可以互相转换。

RangeImage概念及相关算法

1.1 深度图像简介

深度图像(Depth Images),也被称为距离影像(Range Images),是指将图像采集器到场景中各点的距离(深度)值作为像素值的图像,它直接反映了景物可见表面的几何形状,利用它可以很方便的解决3D目标描述中的许多问题。深度图像经过坐标转换可以计算为点云数据,有规则及必要信息的点云数据也可以反算为深度图像数据。

从数学模型上看,深度图像可以看作是标量函数 在集合 上的离散采样,得到 ,其中 为二维网格(矩阵)的索引,
在这里插入图片描述

1.2 PCL中RangeImage的相关类

PCL中的range_image库包含两个表达深度图像和对深度图像进行操作的类,其依赖于pcl::common模块。深度图像(或距离图像)的像素值代表从传感器到物体的距离或者深度,如下图所示。深度图像是物体三维表示形式,一般通过立体相机或者ToF相机获取。如果知道相机的内标定参数,就可以将深度图像转化为点云。
在这里插入图片描述

pcl::RangeImage rangeImage;rangeImage.createFromPointCloud(pointCloud,angularResolution, maxAngleWidth,maxAngleHeight,sensorPose,coordinate_frame,noiseLevel,minRange,borderSize);
std::cout << rangeImage << "\n";

基于经典图像处理的方法

虽然基于CNN的方法已经霸榜了KITTI的Depth Completion,但是在小数据量情况下,基于经典图像处理的算法依旧有其优势。我们来看看几个常见的基于图像处理的深度图补全思路。

High-resolution LIDAR-based Depth Mapping using Bilateral Filter

这篇文章的直接在点云投影的深度图像上做补全,没有用到彩色图像信息,方法颇为平凡,可读之处在于实验,它把最常见的几个图像滤波方法做了非常细致的对比。它的输入是一个点云投影成的颇为稠密的深度图,尚未没有去除背景点。它的方法分为两步:第一步是背景点剔除,在局部区域用DBSCAN取剔除远处的cluster;第二步是用双边滤波器(Bilateral Filter)对深度图进行插值,以达补全的目的。

背景点剔除,在每一个局部区域内,用DBSCAN将有值的点聚类为几个类,距离函数是相对深度差 -neighborhood值为0.08,如果DBSCAN有超过两个类,根据类的大小取选择哪个类参与下一步插值,总体是偏向于靠近相机的类。

双线性插值,对每一个空白点 ,它的局部窗口内有值点集为 ,它的深度值为:在这里插入图片描述
最后的结果如上表所示。BF*为上述方法,毫无疑问效果最好。其他方法并未做遮挡检测,这个比较颇为不公平。BF方法没有做遮挡检测。NEA是取距离最近值。DEL是做Delaunay三角花后插值。MIN方法其实就是Z-buffer的方法,效果不赖。MED是中值滤波。IDW是线性插值,线性系数是Inverse Distance Weighting。KRI是Kriging Filter。AVE是均值滤波。MAX是最大值滤波。

这篇文章其实有四个问题:第一个问题是是速度,对每一个窗口做DBSCAN速度会极慢,可以改用点云渲染里面的技巧快速去除背景。第二个问题是在深度图像里面做插值有些不合理,我们应该在视差图中用重心坐标进行插值,这一点在我的另外一篇文章里描述了。第三个问题是它的输入深度图像其实非常稠密,它是由好几帧激光雷达点云拼接出来的,无法处理更为稀疏的图像。最后一个问题是这篇16年的文章的想法其实在其很多年之前的文章就有了,比如这篇08年的文章,这篇08年的文章甚至比这篇16年的文章提供了更为全面和深刻的分析。

详见:深度图像补全(Depth Map Completion) - 上
(3)聚类算法之DBSCAN算法

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

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

相关文章

真心建议今年拿下软考证书,再不冲就晚了!

随着国家计算机与软件技术的发展&#xff0c;每年报名参加计算机软件资格考试&#xff08;简称&#xff1a;软考&#xff09;的人越来越多。 据工信部新闻发布会消息&#xff1a;2023年有超500万人都在考软考&#xff0c;报名人数较2020年直翻10倍。 据悉&#xff0c;国内持软…

HTTP(1)

目录 一、认识HTTP协议 理解 应用层协议 二、fiddler的安装以及介绍 1、fiddler的安装 2、fiddler的介绍 三、HTTP 报文格式 1、http的请求 2、http的响应 五、认识URL 六、关于URL encode 一、认识HTTP协议 HTTP 全称为&#xff1a;“超文本传输协议”&#xff0c;是…

代码随想录算法训练营第35天| 435. 无重叠区间、763.划分字母区间、56. 合并区间

435. 无重叠区间 题目链接&#xff1a;无重叠区间 题目描述&#xff1a;给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 解题思想&#xff1a; 这道题目和射气球很像。 *“需…

源支付V7免授权版2.99,精心修复各种打不开错误问题

源支付V7免授权版2.99&#xff0c;精心修复各种打不开错误问题 前几次花钱购买都有点问题&#xff0c;这次购买这个版全部测试功能正常 本站一次性修复各种打不开提示提示&#xff0c;祝你使用愉快&#xff0c; 其他说明&#xff1a;其他文件全部没加密&#xff0c;只有8.1这…

Linux(4)常见操作整理-静态路由-双网卡-文件上传下载-运维思路-性能监测方法-jar包查找

五、常见操作 1、静态路由配置 【描述】&#xff1a;当前ifconfig eno16777728 对应ip&#xff1a;172.41.0.120 【解决】&#xff1a; &#xff08;1&#xff09; [rootlocalhost ~]# cd /etc/sysconfig/network-scripts/ &#xff08;2&#xff09; 添加文件&#xff1a…

【CTFshow 电子取证】套的签到题

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

Vue生命周期,从听说到深入理解(全面分析)

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xff0c;挂载实例到 DOM&#xff0c;以及在数据改变时更新 DOM。在此过程中&#xff0c;它也会运行被称为生命周期钩子的函数&#xff0c;让开发者有机会在特定阶…

HCIP的学习(6)

OSPF—开放式最短路径优先协议 动态路由的评判标准 1、占用资源 2、收敛速度 3、选路动态路由分类&#xff1a; IGP---内部网关协议DV型---距离矢量型---RIPLS型---链路状态型---OSPFEGP---外部网关协议OSPF---无类别的路由协议&#xff08;携带真实掩码&#xff09;组播224.0…

你管这破玩意叫网络

你是一台电脑&#xff0c;你的名字叫 A 很久很久之前&#xff0c;你不与任何其他电脑相连接&#xff0c;孤苦伶仃。 直到有一天&#xff0c;你希望与另一台电脑 B 建立通信&#xff0c;于是你们各开了一个网口&#xff0c;用一根网线连接了起来。 用一根网线连接起来怎么就能…

【JavaEE】Thread类中run和start的区别

文章目录 先说结论Run方法Start方法 先说结论 当你想要创建一个新的线程并执行某些任务时&#xff0c;你应该重写run方法以提供任务的具体实现&#xff0c;并通过调用start方法来启动新线程 run方法包含了线程应该执行的代码&#xff0c;但直接调用它并不会启动新的线程。 s…

斜率优化dp 笔记

任务安排1 有 N 个任务排成一个序列在一台机器上等待执行&#xff0c;它们的顺序不得改变。 机器会把这 N 个任务分成若干批&#xff0c;每一批包含连续的若干个任务。 从时刻 00 开始&#xff0c;任务被分批加工&#xff0c;执行第 i 个任务所需的时间是 Ti。 另外&#x…

HarmonyOS 应用开发之UIAbility组件启动模式

UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态。针对不同的业务场景&#xff0c;系统提供了三种启动模式&#xff1a; singleton&#xff08;单实例模式&#xff09;multiton&#xff08;多实例模式&#xff09;specified&#xff08;指定实例模式&#xff09;…

工厂能耗管控物联网解决方案

工厂能耗管控物联网解决方案 工厂能耗管控物联网解决方案是一种创新的、基于先进技术手段的能源管理系统&#xff0c;它深度融合了物联网&#xff08;IoT&#xff09;、云计算、大数据分析以及人工智能等前沿科技&#xff0c;以实现对工业生产过程中能源消耗的实时监测、精确计…

鸿蒙OS开发实战:【Socket小试MQTT连接】

本篇分享一下 HarmonyOS 中的Socket使用方法 将从2个方面实践&#xff1a; HarmonyOS 手机应用连接PC端 SocketServerHarmonyOS 手机应用连接MQTT 服务端 通过循序渐进的方式&#xff0c;全面了解实践HarmonyOS中的Socket用法 学习本章前先熟悉文档开发知识更新库gitee.com…

Pytorch入门实战 P4-猴痘图片,精确度提升

目录 一、前言&#xff1a; 二、前期准备&#xff1a; 1、设备查看 2、导入收集到的数据集 3、数据预处理 4、划分数据集&#xff08;8:2&#xff09; 5、加载数据集 三、搭建神经网络 四、训练模型 1、设置超参数 2、编写训练函数 3、编写测试函数 4、正式训练 …

C语言例4-30:将一个正整数的各位数字逆序输出

算法分析&#xff1a; 提取某一个正整数的最末一位数字&#xff0c;采用取模10的余数获得&#xff0c;以此类推即可。 代码如下&#xff1a; //将一个正整数的各位数字逆序输出 #include<stdio.h> int main(void) {int i,r;printf("输入一个正整数&#xff1a; \…

代码随想录算法训练营第三十八天 | 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

代码随想录算法训练营第三十八天 | 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯 509. 斐波那契数题目解法 70. 爬楼梯题目解法 746. 使用最小花费爬楼梯题目解法 感悟 509. 斐波那契数 题目 解法 使用动态规划 class Solution { public:int fib(int n) {if(n <…

如何准备科学海报

科学会议上的海报展示可以为早期职业研究人员提供宝贵的机会来练习他们的沟通技巧&#xff0c;获得有关他们研究的反馈&#xff0c;并扩大他们的网络。“通过与其他研究人员一对一地讨论我的工作&#xff0c;[我发现]我可以确定哪些工作做得好&#xff0c;哪些需要改进&#xf…

GEE22:基于目视解译的土地利用分类(随机森林监督分类)

采样点信息&#xff1a; 设置一下采样点参数&#xff1a; 代码&#xff1a; //设置研究区位置 var table ee.FeatureCollection("users/cduthes1991/boundry/China_province_2019"); var roi table.filter(ee.Filter.eq(provinces,beijing)); Map.centerObjec…

函数重载和引用

目录 一&#xff1a;函数重载 1.1函数重载的概念 1.2为什么C支持函数重载&#xff0c;而C语言不支持呢&#xff1f; 1.2.1结论 1.2.2分析 二&#xff1a;引用 2.1引用概念 2.2引用特性 ​编辑 2.3常引用 2.4使用场景 一&#xff1a;函数重载 在自然语言中&#x…