日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Open3d学习计划—高级篇 5(RGBD融合)

發(fā)布時間:2023/11/27 生活经验 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Open3d学习计划—高级篇 5(RGBD融合) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Open3D是一個開源庫,支持快速開發(fā)和處理3D數(shù)據(jù)。Open3D在c++和Python中公開了一組精心選擇的數(shù)據(jù)結(jié)構(gòu)和算法。后端是高度優(yōu)化的,并且是為并行化而設(shè)置的。

本系列學(xué)習(xí)計劃有Blue同學(xué)作為發(fā)起人,主要以O(shè)pen3D官方網(wǎng)站的教程為主進(jìn)行翻譯與實踐的學(xué)習(xí)計劃。點云PCL公眾號作為免費(fèi)的3D視覺,點云交流社區(qū),期待有使用Open3D或者感興趣的小伙伴能夠加入我們的翻譯計劃,貢獻(xiàn)免費(fèi)交流社區(qū),為使用Open3D提供中文的使用教程。

ps:感覺這章名字應(yīng)該叫通過RGBD數(shù)據(jù)生成網(wǎng)格,關(guān)于這章的內(nèi)容建議大家去百度搜一下關(guān)于TSDF算法的博客,或者直接看下面給出的參考論文,有助于大家理解)
Open3d實現(xiàn)了一種可擴(kuò)展的RGBD圖像融合算法。這個算法基于[Curless1996]?和[Newcombe2011]?提出的技術(shù)。為了支持大尺度的場景,我們使用了Integrater in ElasticReconstruction.中介紹的分層哈希結(jié)構(gòu)。

從 .log 文件中讀取軌跡

該教程使用函數(shù) read_trajectory從 .log 文件中讀取相機(jī)軌跡。一個示例 .log文件如下:

# examples/TestData/RGBD/odometry.log

0   0   1
1   0   0   2
0   1   0   2
0   0   1 -0.3
0   0   0   1
1   1   2
0.999988  3.08668e-005  0.0049181  1.99962
-8.84184e-005  0.999932  0.0117022  1.97704
-0.0049174  -0.0117024  0.999919  -0.300486
0  0  0  1
class CameraPose:def __init__(self, meta, mat):self.metadata = metaself.pose = matdef __str__(self):return 'Metadata : ' + ' '.join(map(str, self.metadata)) + '\n' + \"Pose : " + "\n" + np.array_str(self.pose)def read_trajectory(filename):traj = []with open(filename, 'r') as f:metastr = f.readline()while metastr:metadata = list(map(int, metastr.split()))mat = np.zeros(shape=(4, 4))for i in range(4):matstr = f.readline()mat[i, :] = np.fromstring(matstr, dtype=float, sep=' \t')traj.append(CameraPose(metadata, mat))metastr = f.readline()return traj
camera_poses = read_trajectory("../../TestData/RGBD/odometry.log")

TSDF空間融合(TSDF volume integration)

Open3d提供了兩種類型的TSDF空間:UniformTSDFVolume和ScalableTSDFVolume。推薦使用后一種的原因是因為使用了多層結(jié)構(gòu)支持大尺度場景.
ScalableTSDFVolume有幾個參數(shù)。

  • voxel_length = 4.0 / 512.0 表示TSDF空間中單個體素尺度是 4.0m/512.0 = 7.8125 m 。減小這個值會得到高分辨率的TSDF空間,但是整合結(jié)果容易受到深度噪聲的影響。

  • sdf_trunc = 0.04指定符號距離函數(shù)(signed distance function ,SDF)的截斷值。

  • 當(dāng) color_type = TSDFVolumeColorType.RGB8時,8位的RGB顏色也被整合作為TSDF空間的一部分。

浮點類型強(qiáng)度也能夠通過color_type = TSDFVolumeColorType.Gray32和

convert_rgb_to_intensity = True被整合在一起.顏色整合的靈感來自PCL.

volume = o3d.integration.ScalableTSDFVolume(voxel_length=4.0 / 512.0,sdf_trunc=0.04,color_type=o3d.integration.TSDFVolumeColorType.RGB8)for i in range(len(camera_poses)):print("Integrate {:d}-th image into the volume.".format(i))color = o3d.io.read_image("../../TestData/RGBD/color/{:05d}.jpg".format(i))depth = o3d.io.read_image("../../TestData/RGBD/depth/{:05d}.png".format(i))rgbd = o3d.geometry.RGBDImage.create_from_color_and_depth(color, depth, depth_trunc=4.0, convert_rgb_to_intensity=False)volume.integrate(rgbd,o3d.camera.PinholeCameraIntrinsic(o3d.camera.PinholeCameraIntrinsicParameters.PrimeSenseDefault),np.linalg.inv(camera_poses[i].pose))

Integrate 0-th image into the volume.
Integrate 1-th image into the volume.
Integrate 2-th image into the volume.
Integrate 3-th image into the volume.
Integrate 4-th image into the volume.

抽取網(wǎng)格

使用?[LorensenAndCline1987]中提出的marching cubes 算法進(jìn)行網(wǎng)格繪制.

print("Extract a triangle mesh from the volume and visualize it.")
mesh = volume.extract_triangle_mesh()
mesh.compute_vertex_normals()
o3d.visualization.draw_geometries([mesh], front=[0.5297, -0.1873, -0.8272],lookat=[2.0712, 2.0312, 1.7251],up=[-0.0558, -0.9809, 0.1864], zoom=0.47)

Note:
TSDF空間就像3D空間中的加權(quán)平均過濾器.如果有更多的幀被整合,那么空間就會產(chǎn)生更加平滑的網(wǎng)格.請去?Make fragments?中查看更多的例子.

資源

三維點云論文及相關(guān)應(yīng)用分享

【點云論文速讀】基于激光雷達(dá)的里程計及3D點云地圖中的定位方法

3D目標(biāo)檢測:MV3D-Net

三維點云分割綜述(上)

3D-MiniNet: 從點云中學(xué)習(xí)2D表示以實現(xiàn)快速有效的3D LIDAR語義分割(2020)

win下使用QT添加VTK插件實現(xiàn)點云可視化GUI

JSNet:3D點云的聯(lián)合實例和語義分割

大場景三維點云的語義分割綜述

PCL中outofcore模塊---基于核外八叉樹的大規(guī)模點云的顯示

基于局部凹凸性進(jìn)行目標(biāo)分割

基于三維卷積神經(jīng)網(wǎng)絡(luò)的點云標(biāo)記

點云的超體素(SuperVoxel)

基于超點圖的大規(guī)模點云分割

更多文章可查看:點云學(xué)習(xí)歷史文章大匯總

SLAM及AR相關(guān)分享

【開源方案共享】ORB-SLAM3開源啦!

【論文速讀】AVP-SLAM:自動泊車系統(tǒng)中的語義SLAM

【點云論文速讀】StructSLAM:結(jié)構(gòu)化線特征SLAM

SLAM和AR綜述

常用的3D深度相機(jī)

AR設(shè)備單目視覺慣導(dǎo)SLAM算法綜述與評價

SLAM綜述(4)激光與視覺融合SLAM

Kimera實時重建的語義SLAM系統(tǒng)

SLAM綜述(3)-視覺與慣導(dǎo),視覺與深度學(xué)習(xí)SLAM

易擴(kuò)展的SLAM框架-OpenVSLAM

高翔:非結(jié)構(gòu)化道路激光SLAM中的挑戰(zhàn)

SLAM綜述之Lidar SLAM

基于魚眼相機(jī)的SLAM方法介紹

往期線上分享錄播匯總

第一期B站錄播之三維模型檢索技術(shù)

第二期B站錄播之深度學(xué)習(xí)在3D場景中的應(yīng)用

第三期B站錄播之CMake進(jìn)階學(xué)習(xí)

第四期B站錄播之點云物體及六自由度姿態(tài)估計

第五期B站錄播之點云深度學(xué)習(xí)語義分割拓展

第六期B站錄播之Pointnetlk解讀

[線上分享錄播]點云配準(zhǔn)概述及其在激光SLAM中的應(yīng)用

[線上分享錄播]cloudcompare插件開發(fā)

[線上分享錄播]基于點云數(shù)據(jù)的?Mesh重建與處理

[線上分享錄播]機(jī)器人力反饋遙操作技術(shù)及機(jī)器人視覺分享

[線上分享錄播]地面點云配準(zhǔn)與機(jī)載點云航帶平差

點云PCL更多活動請查看:點云PCL活動之應(yīng)屆生校招群

掃描下方微信視頻號二維碼可查看最新研究成果及相關(guān)開源方案的演示:

如果你對Open3D感興趣,或者正在使用該開源方案,就請加入我們,一起翻譯,一起學(xué)習(xí),貢獻(xiàn)自己的力量,目前階段主要以微信群為主,有意者發(fā)送“Open3D學(xué)習(xí)計劃”到公眾號后臺,和更多熱愛分享的小伙伴一起交流吧!如果翻譯的有什么問題或者您有更好的意見,請評論交流!!!!

以上內(nèi)容如有錯誤請留言評論,歡迎指正交流。如有侵權(quán),請聯(lián)系刪除

掃描二維碼

? ? ? ? ? ? ? ? ? ?關(guān)注我們

讓我們一起分享一起學(xué)習(xí)吧!期待有想法,樂于分享的小伙伴加入免費(fèi)星球注入愛分享的新鮮活力。分享的主題包含但不限于三維視覺,點云,高精地圖,自動駕駛,以及機(jī)器人等相關(guān)的領(lǐng)域。

分享及合作:微信“920177957”(需要按要求備注) 聯(lián)系郵箱:dianyunpcl@163.com,歡迎企業(yè)來聯(lián)系公眾號展開合作。

點一下“在看”你會更好看耶

總結(jié)

以上是生活随笔為你收集整理的Open3d学习计划—高级篇 5(RGBD融合)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。