Realsense

使用说明:

1、组装拍摄三脚架与滑动条轨,将RealSense相机与手机一同装置在三脚架的滑动条轨上。
2、连接RealSense到笔记本电脑,不需任何配置即可直接适配设备。
3、打开PC端软件,调至Real Sense功能区并点击开始按键即可查看实时图像(包含RGB与RGB-D图像)。

软件部分具体操作如下:
本软件配合Real Sense开发、编写。程序主要实现的功能如图3所示:
在这里插入图片描述

图3 、程序主界面
该图为程序主界面,为了提高用户使用便捷性,我们将实现的功能进行分区域化,主要分为如上图的四个功能区,从左至右分别是图像查看与超像素分割区、Real Sense调用区、图像压缩区和特征匹配区。
1图像预处理
如图4所示为图像查看区,由上至下依次为:读取本地图片文件、放大、缩小、上一张、下一张、超像素分割功能。读取的本地图片可一次性读取多张,通过上一张和下一张来滚动查看。
在这里插入图片描述

图4、图像查看区主界面
运行主程序并选择图片查看选项卡后点击文件选取按键,即可得到如图5所示的文件选取弹窗,此时、按键分别为放大和缩小查看功能,往下的、 两个按键分别为“上一张”、“下一张”滚动查看图片功能,若选择的图像为单张图像则“上一张”、“下一张”按钮点击无效。
在这里插入图片描述

图5、文件选取
接下来对所选取的图像进行超像素分割时,如图6点击超像素按键后会弹出一个参数设置窗口,在输入参数后,程序的后台会将当前图像进行超像素分割。其中“超像素分割”功能调用了OpenCV库中的Slic算法进行处理,如图7所示。
在这里插入图片描述
图6、超像素分割参数设置
在这里插入图片描述

图7、超像素分割后的图像
2、RealSense调用
如图8所示为RealSense调用区主界面,功能键由上至下以此为:打开摄像头、保存当前图像(深度图与RGB图像)、摄像头画面停止,其中保存按键再次按下为停止保存,如果不按则为连续保存采集到的图像帧,以上三个功能键皆基于pyrealsense2库函数来实现。
在这里插入图片描述

图8、 RealSense功能调用区

在点击第一个按键后RealSense摄像头将会打开如图9所示,左边为RGB摄像头、右边为深度摄像头;点击第二个按键后摄像头将会启动图像保存直到再次按下才会停止保存,保存的图像为代码同级目录下的imgSave文件夹如图10所示,另外为了增强可操作性还设置了摄像头画面停止功能:点击最后一个按键摄像头的图像将会停止以方便查看,点击后画面将会再次复原。
在这里插入图片描述

图9、Real Sense启动图像采集在这里插入图片描述

图10、保存的RGB图像与深度图像
3、图像压缩
在点击主界面的第三个选项卡后,将会打开如图11所示的图像压缩的功能界面,该界面分为两个主要模块:原图像区(左)、压缩后图像区(右)。在选取本地图像后将会其显示到左边的显示区中,此时可使用缩放功能来查看图像;右边的则会将压缩后的图像进行显示,同时也有缩放功能进行查看以及保存功能来保存压缩后的图像。
在这里插入图片描述

图11、图像压缩区主界面

点击后选取本地文件后,顶端会分别显示所选取图像的宽度与高度值,也可点击、来进行缩放查看如图12所示,接下来在如图13所示的下拉列表选择压缩比(预设可供选择的压缩比有1:2, 1:3, 1:4,1:16),随后点击将会进行图像压缩如图14所示,同样也可点击右边的、来对压缩后的图像进行缩放查看,最后点击将会保存该压缩图像到项目同级目录的imgPressSave文件夹内,如图15所示。
在这里插入图片描述

图12、本地读取待压缩文件
在这里插入图片描述
图13、选取压缩比
在这里插入图片描述
图14、图像压缩
在这里插入图片描述
图15、保存压缩后的图像

4特征匹配
点击主界面的第四个功能区选项卡后,将会进入图像深度信息匹配功能区,该功能区主界面如图16所示:

图16、特征匹配功能区主界面
点击按键后将会出现本地图片选取的对话框,此时用户将依次选入两张待选取的两张图片,在界面的顶部会显示两张图片的保存绝对路径、匹配后的图像将会自动保存到项目同级目录的imgMatChing文件夹下如图17与图18所示:
在这里插入图片描述
图17、特征匹配后的图像
在这里插入图片描述

图18、匹配图像的保存
随后点击有右边的深度回归功能,程序后台会对超像素分割后图像进行深度回归效果图如图19所示:
在这里插入图片描述

图19、深度回归后效果图

算法部分

1、SLIC超像素分割算法
基于k均值聚类算法,并在此基础上进行改进。首先是初始化聚类中心,在图像内均匀的分配聚类中心。假设图片总共有 N 个像素点,预分割为 K 个相同尺寸的超像素,那么每个超像素的大小为N/ K ,则相邻聚类中心的距离(步长)近似为S=sqrt(N/K)。
其次是对聚类中心进行修正,在聚类中心的nn邻域内重新选择聚类中心(一般取n=3)。具体方法为:计算该邻域内所有像素点的梯度值,将聚类中心移到该邻域内梯度最小的地方。这样做的目的是为了避免聚类中心落在梯度较大的轮廓边界上,以免影响后续聚类效果。
然后, 在每个聚类中心周围的邻域内为每个像素点分配类标签(即属于哪个聚类中心)。和标准的k-means在整张图中搜索不同,SLIC的搜索范围限制为2S
2S,可以加速算法收敛。在此注意一点:期望的超像素尺寸为SS,但是搜索的范围是2S2S。
再而是距离度量。包括颜色距离和空间距离。对于每个搜索到的像素点,分别计算它和该种子点的距离。距离计算方法如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

其中,dc代表颜色距离,ds代表空间距离,Ns是类内最大空间距离,定义为Ns=S=sqrt(N/K),适用于每个聚类。最大的颜色距离Nc既随图片不同而不同,也随聚类不同而不同,所以我们取一个固定常数m(取值范围[1,40],一般取10)代替。最终的距离度量D’如下:
在这里插入图片描述

由于每个像素点都会被多个聚类中心搜索到,所以每个像素点都会有一个与周围聚类中心的距离,取最小值对应的聚类中心作为该像素点的聚类中心。
接下来是迭代优化。理论上上述步骤不断迭代直到误差收敛(可以理解为每个像素点聚类中心不再发生变化为止),实践发现10次迭代对绝大部分图片都可以得到较理想效果,所以一般迭代次数取10。
最后是增强连通性。经过上述迭代优化可能出现以下瑕疵:出现多连通情况、超像素尺寸过小,单个超像素被切割成多个不连续超像素等,这些情况可以通过增强连通性解决。主要思路是:新建一张标记表,表内元素均为-1,按照“Z”型走向(从左到右,从上到下顺序)将不连续的超像素、尺寸过小超像素重新分配给邻近的超像素,遍历过的像素点分配给相应的标签,直到所有点遍历完毕为止。

2、ORB特征匹配算法
图像的特征点可以简单的理解为图像中比较显著显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等。ORB采用FAST(features from accelerated segment test)算法来检测特征点。这个定义基于特征点周围的图像灰度值,检测候选特征点周围一圈的像素值,如果候选点周围领域内有足够多的像素点与该候选点的灰度值差别够大,则认为该候选点为一个特征点。

得到特征点后我们需要以某种方式描述这些特征点的属性。这些属性的输出我们称之为该特征点的描述子(Feature DescritorS).ORB采用BRIEF算法来计算一个特征点的描述子。
BRIEF算法的核心思想是在关键点P的周围以一定模式选取N个点对,把这N个点对的比较结果组合起来作为描述子。
在这里插入图片描述

步骤:
1.以关键点P为圆心,以d为半径做圆O。
2.在圆O内某一模式选取N个点对。这里为方便说明,N=4,实际应用中N可以取512.
假设当前选取的4个点对如上图所示分别标记为:
在这里插入图片描述

3.定义操作T
在这里插入图片描述

其中IA表示点A的灰度。
4.分别对已选取的点对进行T操作,将得到的结果进行组合。
假如:
在这里插入图片描述

则最终的描述子为:1011
理想的特征点描述子应该具备的属性:
在现实生活中,我们从不同的距离,不同的方向、角度,不同的光照条件下观察一个物体时,物体的大小,形状,明暗都会有所不同。但我们的大脑依然可以判断它是同一件物体。理想的特征描述子应该具备这些性质。即,在大小、方向、明暗不同的图像中,同一特征点应具有足够相似的描述子,称之为描述子的可复现性。
当以某种理想的方式分别计算描述子时,应该得出同样的结果。即描述子应该对光照(亮度)不敏感,具备尺度一致性(大小 ),旋转一致性(角度)等。
ORB并没有解决尺度一致性问题,在OpenCV的ORB实现中采用了图像金字塔来改善这方面的性能。ORB主要解决BRIEF描述子不具备旋转不变性的问题。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Realsense是由英特尔推出的一款深度摄像头技术,它能够实时获取RGB图像和深度信息,并具备识别和跟踪能力。而Matlab是一款强大的科学计算和数据分析软件,可以进行图像处理和计算机视觉的相关操作。 在Matlab中,我们可以利用Realsense的相机接口,获取来自Realsense摄像头的视频流和深度图像数据。首先,我们需要安装Realsense SDK和Matlab的相关支持包。接下来,通过Matlab的Realsense接口,我们可以实现诸如相机自动对焦、曝光调节等功能。同时,还可以设置相机参数,如图像分辨率、帧率等。 在获取到Realsense的图像和深度数据后,我们可以利用Matlab提供的图像处理函数进行各种操作。比如,我们可以使用Matlab的图像增强和滤波函数对图像进行预处理,以提高图像的质量和清晰度。或者,我们可以使用Matlab的深度图像处理函数,进行物体的跟踪和分割等操作。此外,我们还可以将Realsense获取到的图像和深度数据与其他传感器数据进行融合,实现更复杂的算法和应用。 综上所述,Realsense和Matlab的结合可以为我们提供一个强大的图像和深度数据处理平台。通过这两者的结合,我们可以实现各种计算机视觉和图像处理的应用,如三维重建、目标检测、姿态估计等。同时,由于Matlab的易用性和丰富的函数库,使用Realsense和Matlab进行开发和研究也变得更加方便和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值