前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RGBD融合原理及实践[通俗易懂]

RGBD融合原理及实践[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-10-01 09:28:32
发布于 2022-10-01 09:28:32
96400
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

RGBD融合原理及实践

前言

好久没更新博客了,主要是因为懒,最近有些得闲,决定纪录下之前的工作。RT,RGBD数据融合其实就是将3D摄像机的RGB与Depth数据做融合显示的过程,做法也不难理解,就是将depth camera与rgb camera的像素对应起来即可。

原理部分

原理部分主要借鉴这篇 博文, 详细的公式在这就不作重复了,贴张图吧。

从上面的博客或图片可以看出,关键先找到两个camera的外参矩阵RT,一开始我是按照博客的来用GML Camera Calibration Toolbox进行内外参矩阵,然后利用公式求出RT,但实际测试下来我尝试在同一场景下同时采集双目摄像头的几组正面棋盘,获得它们的外参得出的RT都不正常,这里的RT很重要,直接影响到后面计算对应像素! 后面我还是转用大杀器matlab calibration toolbox,虽然比GML标定要麻烦,每张图都要手动选四个参考角点,但胜在它稳定、精度高啊,我基本走一次流程下来得到的RT就比较准确了。所以,标个内参的话可以用GML,比较快搞掂,但需要双目标定时还是用回matlab吧,哈哈。 哦,对了,matlab出来的旋转矩阵是om,需要做一个罗格变换成标准的3×3矩阵,toolbox里自带了接口,直接用即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Rotation vector:             om = [ 0.05129   0.00136  -0.02893 ] ? [ 0.03624   0.03419  0.00277 ]
>> rodrigues(om) 
ans =
    0.9996    0.0289    0.0006
   -0.0289    0.9983   -0.0513
   -0.0021    0.0512    0.9987

实践

来到实践部分,写了一个简单的脚本做验证,主要是验证下标定出的RT是否正确可用。(注意代码里IR即指depth camera)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from numpy import *
import numpy as np
# import matplotlib.pylab as plt


#双目内参
# ir camera
# 408.72767  0           332.18622
# 0        410.38278    227.32216
# 0        0             1 
# 
# rgb camera
# 438.63884  0      337.13761
# 0          440.86391   254.91443
# 0         0             1
#  


ir_in = np.loadtxt("ir_matlab_intrinsic.txt")
rgb_in = np.loadtxt("rgb_matlab_intrinsic.txt")

# RT矩阵
R = np.array([[0.9996,    0.0289,    0.0006], [-0.0289,    0.9983,   -0.0513], [-0.0021,    0.0512,    0.9987]])
T = np.array([[-54.58182],   [2.11322],  [-0.64764]])

print (R)
print (T)
# ir 内参逆阵
ir_in_I = linalg.inv(ir_in)
print (ir_in_I)

# 建立ir像面坐标,900指某一点的深度900mm,注意是 Zc [x  y 1]
pixel_depth = 900
test = np.array([[129 * pixel_depth], [302 * pixel_depth], [pixel_depth]])

print ("---- Pir ---")
P_ir = np.dot(ir_in_I, test)
print (P_ir)
P_rgb = np.dot(R, P_ir) + T
print ("---- P rgb ---")
print (P_rgb)
p_rgb = np.dot(rgb_in, P_rgb)

print (p_rgb)
print (p_rgb / p_rgb[2])

上面代码主要验证IR camera坐标 (129, 302)与RGB对应的坐标是多少,最终输出的p_rgb x y分量即为对应的rgb坐标值,实际测试下来还是蛮准确的。OK,验证完事后,可以用C++实现下上面的脚本,对每个pixel都做这样的转换处理,即可以得到rgb depth camera对应关系,也就是说做到这两者的数据融合咯。 注意最好用eigen这样的三方库,直接用opencv的矩阵运算实在太慢了(其实主要是cv::Mat 动态变量分配空间比较耗时,反复调用的话延时完全不可接受)。 下图为实际的融合效果,初步来看效果还是不错的。(请忽视右上角的那几道条纹,那是因为rgb摄像头在日光灯下产生了条纹)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192335.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月17日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
双目摄像头测量距离
在计算机视觉中,可以通过双目摄像头实现,常用的有BM 算法和SGBM 算法等,双目测距跟激光不同,双目测距不需要激光光源,是人眼安全的,只需要摄像头,成本非常底,也用于应用到大多数的项目中。本章我们就来介绍如何使用双目摄像头和SGBM 算法实现距离测量。
夜雨飘零
2020/06/02
4.3K2
【深度学习入门】——亲手实现图像卷积操作[通俗易懂]
深度学习中有一个很重要的概念就是卷积神经网络 CNN,卷积神经网络中又有卷积层、池化层的概念。尤其是卷积层,理解难度比较大,虽然书中或者是视频中都有详细介绍过它的基础概念,但对于求知欲望很强烈的我,我总心里痒痒的,总想亲手实现,看看效果,怕的就是自己会眼高手低,做技术人最可怕的就是眼高手低。所以,我打算用 python 来亲自验证一遍。
全栈程序员站长
2022/08/24
2.9K0
【深度学习入门】——亲手实现图像卷积操作[通俗易懂]
NumPy 初学者指南中文第三版:6~10
NumPy 具有许多从其前身 Numeric 继承的模块。 其中一些包具有 SciPy 对应版本,可能具有更完整的功能。 我们将在下一章中讨论 SciPy。
ApacheCN_飞龙
2023/04/17
2.5K0
NumPy 初学者指南中文第三版:6~10
Python OpenCV 蓝图:1~5
本章的目的是开发许多图像处理过滤器,并将其实时应用于网络摄像头的视频流。 这些过滤器将依靠各种 OpenCV 函数来通过拆分,合并,算术运算以及为复杂函数应用查找表来操纵矩阵。
ApacheCN_飞龙
2023/04/27
1.8K0
Python OpenCV 蓝图:1~5
利用Python进行数据分析笔记
本书讲的是利用Python进行数据控制、处理、整理、分析等方面的具体细节和基本要点。我的目标是介绍Python编程和用于数据处理的库和工具环境,掌握这些,可以让你成为一个数据分析专家。虽然本书的标题是“数据分析”,重点却是Python编程、库,以及用于数据分析的工具。这就是数据分析要用到的Python编程。
CtrlX
2023/03/21
5.3K0
利用Python进行数据分析笔记
精通 TensorFlow 1.x:6~10
在涉及有序数据序列的问题中,例如时间序列预测和自然语言处理,上下文对于预测输出非常有价值。可以通过摄取整个序列而不仅仅是最后一个数据点来确定这些问题的上下文。因此,先前的输出成为当前输入的一部分,并且当重复时,最后的输出结果是所有先前输入的结果以及最后一个输入。 循环神经网络(RNN)架构是用于处理涉及序列的机器学习问题的解决方案。
ApacheCN_飞龙
2023/04/23
1.3K0
CV深度学习面试问题记录
这是在牛客网上根据大家的面经收集过来的题目,并以自己的理解来作出回答,也查阅了很多博客和资料。水平有限,不一定是正确的,欢迎指正,铁子们要找工作的时候可以看看
棒棒鸡不棒
2022/09/02
1.1K0
CV深度学习面试问题记录
计算机视觉与模式识别学术速递[12.24]
【1】 ELSA: Enhanced Local Self-Attention for Vision Transformer 标题:ELSA:增强视觉转换器的局部自我注意 链接:https://arxiv.org/abs/2112.12786
公众号-arXiv每日学术速递
2021/12/27
1.3K0
树莓派计算机视觉编程:1~5
OpenCV 是用于计算机视觉的简单而强大的编程框架。 计算机视觉领域的新手和专家都喜欢它。 通过使用 Python 3 作为编程语言编写 OpenCV 程序,我们可以轻松地学习计算机视觉。 Raspberry Pi 单板计算机家族使用 Python 作为其首选开发语言。 使用 Raspberry Pi 开发板和 Python 3 学习 OpenCV 编程是我们可以遵循的最佳方法之一,可以开始我们的奇妙旅程,进入计算机视觉编程的惊人领域。 在本章中,您将熟悉开始使用 Raspberry Pi 和计算机视觉所需的所有重要概念。 在本章结束时,您将能够在各种 Raspberry Pi 主板型号上设置 Raspbian 操作系统(OS)。 您还将学习如何将这些板连接到互联网。
ApacheCN_飞龙
2023/04/27
8.4K0
树莓派计算机视觉编程:1~5
计算机视觉学术速递[8.17]
【1】 Flying Guide Dog: Walkable Path Discovery for the Visually Impaired Utilizing Drones and Transformer-based Semantic Segmentation 标题:飞行导盲犬:基于无人机和Transformer的视障人士可行走路径发现 链接:https://arxiv.org/abs/2108.07007
公众号-arXiv每日学术速递
2021/08/24
2K0
人工智能学术速递[7.6]
cs.AI人工智能,共计75篇 【1】 What Makes for Hierarchical Vision Transformer? 标题:是什么造就了分层视觉转换器? 作者:Yuxin Fang
公众号-arXiv每日学术速递
2021/07/27
1.7K0
计算机视觉与模式识别学术速递[12.14]
【1】 Pedestrian Trajectory Prediction via Spatial Interaction Transformer Network 标题:基于空间交互Transformer网络的行人轨迹预测 链接:https://arxiv.org/abs/2112.06624
公众号-arXiv每日学术速递
2021/12/17
1.2K0
TensorFlow 卷积神经网络实用指南:1~5
TensorFlow 是 Google 创建的开源软件库,可让您构建和执行数据流图以进行数值计算。 在这些图中,每个节点表示要执行的某些计算或功能,连接节点的图边表示它们之间流动的数据。 在 TensorFlow 中,数据是称为张量的多维数组。 张量围绕图流动,因此命名为 TensorFlow。
ApacheCN_飞龙
2023/04/23
1K0
机器学习学术速递[6.21]
【1】 Self-supervised Incremental Deep Graph Learning for Ethereum Phishing Scam Detection 标题:自监督增量式深度图学习在以太网络钓鱼检测中的应用
公众号-arXiv每日学术速递
2021/07/02
1.6K0
机器学习学术速递[6.30]
【1】 Learning latent causal graphs via mixture oracles 标题:基于混合预言的潜在因果图学习
公众号-arXiv每日学术速递
2021/07/02
2K0
Improvise_a_Jazz_Solo_with_an_LSTM_Network_v3a-2
Welcome to your final programming assignment of this week! In this notebook, you will implement a model that uses an LSTM to generate music. You will even be able to listen to your own music at the end of the assignment.
列夫托尔斯昊
2020/08/25
1.6K0
Improvise_a_Jazz_Solo_with_an_LSTM_Network_v3a-2
机器学习学术速递[10.19]
【1】 Beltrami Flow and Neural Diffusion on Graphs 标题:图上的Beltrami流与神经扩散 链接:https://arxiv.org/abs/2110.09443
公众号-arXiv每日学术速递
2021/10/21
2.1K0
相关推荐
双目摄像头测量距离
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验