open3d
文章平均质量分 81
梦醒blue
深度学习,open3d,相机调优,微光图像处理,图像处理,opencv,深度学习部署。
展开
-
Open3d学习计划——高级篇 12(交互式可视化)–最终章
Open3d学习计划——高级篇 12(交互式可视化)本篇教程介绍了Open3d的可视化窗口的交互功能。# examples/Python/Advanced/interactive_visualization.pyimport numpy as npimport copyimport open3d as o3ddef demo_crop_geometry(): print("Demo for manual geometry cropping") print(翻译 2021-01-24 21:30:04 · 4792 阅读 · 11 评论 -
Open3d学习计划——高级篇 11(无阻塞可视化/动态可视化)
Open3d学习计划——高级篇 11(无阻塞可视化/动态可视化)当需要快速可视化静态几何形状时,draw_geometries()是一个十分有用的函数。然而这个函数会锁定一个进程直到可视化的窗口被关闭。翻译 2021-01-24 19:42:39 · 7068 阅读 · 15 评论 -
Open3d学习计划——高级篇 10(自定义可视化)
Open3d学习计划——高级篇 10(自定义可视化)通过draw_geometries和draw_geometries_with_custom_animation函数可以很方便的使用Open3d的可视化功能,所有的都可以通过GUI去完成。在可视化窗口按 h 键,可以看到相关的帮助信息。详细的请参考:可视化。......翻译 2021-01-05 11:07:02 · 9619 阅读 · 4 评论 -
Open3d学习计划——高级篇 9(表面重建)
Open3d学习计划——高级篇 9(表面重建)在许多场景下我们希望生成密集的3D几何形状,比如三角网格。然而从多视图立体算法和深度传感器中我们只能够获得非结构化的点云数据。我们需要使用表面重建算法来从非结构化的输入中得到三角网格。Open3d实现了文献中已有的算法:Alpha shapes [Edelsbrunner1983]Ball pivoting [Bernardini1999]Poisson [Kazhdan2006]Alpha shapesalpha shape [Edelsbru翻译 2020-12-09 15:22:52 · 9352 阅读 · 8 评论 -
Open3d学习计划——高级篇 8(网格变形)
Open3d学习计划——高级篇 8(网格变形)如果我们想使用少量的约束使得三角网格变形,我们使用相应的网格变形算法。Open3d实现了[SorkineAndAlexa2007] 中的尽可能严格的算法,以优化下面的能量函数:∑i∑j∈N(i)wij∣∣(pi′−pj′)−Ri(pi−pj)∣∣2\sum_{i}\sum_{j∈N(i)} w_{ij}||(p_{i}^{'}-p_{j}^{'})-R_{i}(p_{i}-p_{j})||^2i∑j∈N(i)∑wij∣∣(pi′−pj′)−Ri翻译 2020-11-24 10:47:27 · 1461 阅读 · 3 评论 -
Open3d学习计划——高级篇 7(颜色映射)
Open3d学习计划——高级篇 6(体素化)将颜色映射到从深度相机重建的几何形状。由于彩色帧和深度帧不一定是完美对齐的,所以使用彩色图像进行纹理映射的结果会导致一个模糊的彩色映射。Open3d提供了基于[Zhou2014]中的彩色映射优化算法。下面的教程将会提供彩色映射优化算法的示例。输入下面的代码读取彩色和深度图像对,并且生成 rgbd_image。注意convert_rgb_to_intensity标志位设置为 False。只是为了保留8-bit彩色通道而不是使用单通道浮点型图像。在应用彩色映翻译 2020-11-11 15:00:38 · 3413 阅读 · 3 评论 -
Open3d学习计划——高级篇 6(体素化)
Open3d学习计划——高级篇 6(体素化)点云和三角网格是一种十分灵活的,但是不规则的几何类型。体素网格是通过规则的3D网格来表示的另一种3D几何类型,并且它可以看作是2D像素在3D上的对照物。Open3d中的VoxelGrid几何类型能够被用来处理体素网格数据。从三角网格中生成Open3d提供了create_from_triangle_mesh函数能够从三角网格中生成体素网格。它返回一个体素网格,其中所有与三角形相交的网格被设置为1,其余的设置为0。其中voxel_zie参数是用来设置网格分辨率。翻译 2020-10-09 20:07:02 · 9357 阅读 · 13 评论 -
Open3d学习计划——高级篇 5(RGBD融合,RGBD integration)
Open3d学习计划——高级篇 5(RGBD融合)Open3d实现了一种可扩展的RGBD图像融合算法。这个算法基于[Curless1996] 和[Newcombe2011] 提出的技术。为了支持大尺度的场景,我们使用了Integrater in ElasticReconstruction.中介绍的分层哈希结构。从 .log 文件中读取轨迹该教程使用函数 read_trajectory从 .log 文件中读取相机轨迹。一个示例 .log文件如下:# examples/TestData/RGBD/odo翻译 2020-10-09 11:13:24 · 4492 阅读 · 2 评论 -
Open3d学习计划——高级篇 4(多视角点云配准)
Open3d学习计划——高级篇 4(多视角配准配准)多视角配准是在全局空间中对齐多个几何形状的过程。比较有代表性的是,输入是一组几何形状 {Pi}\lbrace P_i\rbrace{Pi}(可以是点云或者RGBD图像)。输出是一组刚性变换{Ti}\lbrace T_i \rbrace{Ti},是的变换后的点云 {TiPi}\lbrace T_i P_i \rbrace{TiPi} 可以在全局空间中对齐。Open3d通过姿态图估计提供了多视角配准的接口。具体的技术细节请参考[Choi2015].翻译 2020-09-24 11:26:31 · 5599 阅读 · 7 评论 -
Open3d学习计划——高级篇 3(点云全局配准)
Open3d学习计划——高级篇 3(点云全局配准)ICP配准和彩色点云配准都被称为局部点云配准方法,因为他们都依赖一个粗糙的对齐作为初始化。本篇教程将会展现另一种被称为全局配准的配准方法.这种系列的算法不要求一个初始化的对齐,通常会输出一个没那么精准的对齐结果,并且使用该结果作为局部配准的初始化.可视化该辅助函数可以将配准的源点云和目标点云一起可视化.def draw_registration_result(source, target, transformation): source_te翻译 2020-09-14 17:23:15 · 10168 阅读 · 26 评论 -
Open3d学习计划——高级篇 2(彩色点云配准)
Open3d学习计划——高级篇 2(彩色点云配准)本教程演示了一种同时使用几何和颜色进行配准的ICP变体。它实现了这篇文章的算法 [Park2017] 。它实现了颜色信息锁定与切平面的对齐(The color information locks the alignment along the tangent plane)。这个算法与之前的ICP配准速度相当,但是实现了更高的精度和鲁棒性。本教程使用的符号来自ICP配准。可视化函数为了掩饰不同颜色点云之间的对齐,draw_registration_res翻译 2020-08-30 17:25:23 · 5421 阅读 · 26 评论 -
Open3d学习计划——高级篇 1(点云离群点移除)
Open3d学习计划——高级篇 1(点云离群点移除)当我们从扫描设备获取点云数据时,数据会包含人想除去的噪声和伪影。这篇教程将会介绍如何使用Open3d除去离群点。数据预处理使用 voxel_downsample 去采样得到点云。print("Load a ply point cloud, print it, and render it")pcd = o3d.io.read_point_cloud("../../TestData/ICP/cloud_bin_2.pcd")o3d.visualiz翻译 2020-08-18 19:27:28 · 6474 阅读 · 3 评论 -
Open3d学习计划——13(Azure Kinect)
Open3d学习计划——13(Azure Kinect)欢迎大家关注“点云PCL”公众号,进入群聊一起学习。这一篇因为没有相机,所以并没有尝试过.有条件的小伙伴尝试过以后欢迎分享.注意:Azure Kinect只支持在Windows和Ubuntu 18.04下使用.安装安装Azure Kinect SDK从这篇指南中下载Azure Kinect SDK(K4A).在Ubuntu中,你将要设置udev规则去使用不带sudo的Kinect相机,请参考以下指南.安装以后,你需要在Linux的窗口运翻译 2020-08-03 16:37:30 · 3047 阅读 · 4 评论 -
Open3d学习计划——12(Jupyter 可视化)
Open3d学习计划——12(Jupyter 可视化)欢迎大家关注“点云PCL”公众号,进入群聊一起学习。从0.4.0版本开始,我们通过webGL添加了对Jupyter的实验性支持.如果从pip或者conda安装Open3d的话,jupyter支持会默认开启.如果从源码安装Open3d的话,请设置Python绑定环境,了解如何建立Jupyter支持的Open3d.要注意的是,Jupyter可视化依然处于早期的实验性阶段,以下是主要的限制.只支持点云数据.相机是用固定参数初始化的,因此初始化的视角翻译 2020-08-03 11:22:27 · 3416 阅读 · 2 评论 -
Open3d学习计划——11(使用NumPy)
Open3d学习计划——11(使用NumPy)欢迎大家关注“点云PCL”公众号,进入群聊一起学习。Open3d的数据结构天生的支持NumPy.下面教程将会使用NumPy生成一个sync函数的变体并且使用Open3d可视化出来.首先我们生成一个n×3n×3n×3的矩阵xyz,每一列的x,y,z都由一个函数 z=sin(x2+y2)x2+y2z= \frac{\sin(x^2+y^2)}{x^2+y^2}z=x2+y2sin(x2+y2).决定.znormz_{norm}znorm是z在[0,1]翻译 2020-08-03 10:08:39 · 2438 阅读 · 2 评论 -
Open3d学习计划——10(KDTree)
Open3d学习计划——10(KDTree)欢迎大家关注“点云PCL”公众号,进入群聊一起学习。学习计划 9 由另一位小伙伴翻译,题目为:Open3d 学习计划——9(ICP配准)需要学习的朋友可以点击题目进入。KDTreeOpen3d使用FLANN构建KDTree以便进行快速最近邻检索。从点云中建立KDTree下面的代码读取一个点云并且构建一个KDTree。这是下面最邻近查询的需处理步骤。print("Testing kdtree in open3d ...")print("Load a翻译 2020-08-03 09:34:33 · 4359 阅读 · 7 评论 -
Open3d学习计划——8(可视化)
Open3d学习计划——8(可视化)欢迎大家关注“点云PCL”公众号,进入群聊一起学习。draw_geometries函数Opene3d提供了一个方便的可视化函数draw_geometries,他接受一组几何对象(PointCloud,TriangleMesh或者Image),并且一起渲染他们。我们在可视化界面提供了许多功能,例如通过鼠标的缩放,旋转和平移,改变渲染风格和屏幕截图。在窗口界面按 h 打印出全部的函数列表。print("Load a ply point cloud, print it,翻译 2020-06-29 10:35:44 · 12345 阅读 · 24 评论 -
Open3d学习计划——7(RGBD测程法)
Open3d学习计划——7(RGBD测程法)欢迎大家关注“点云PCL”公众号,进入群聊一起学习。RGBD测程法(RGBD Odometry)是去寻找两个RGBD图像之间的相机移动。他的输入是一对RGBImage的实例,输出是刚体变换形式的运动。Open3d实现了 [Steinbrucker2011] and [Park2017]中的方法。读取相机内参(camera intrinsic)我们首先从json文件中读取相机内参。pinhole_camera_intrinsic = o3d.io.read翻译 2020-06-18 15:37:45 · 2287 阅读 · 2 评论 -
Open3d学习计划——6(RGBD图像)
Open3d学习计划——6(RGBD图像)翻译 2020-06-04 16:26:15 · 8403 阅读 · 6 评论 -
Open3d学习计划——5(变换)
Open3d学习计划——5(变换)欢迎大家关注“点云PCL”公众号,进入群聊一起学习。Open3d的几何类型有许多变化方法。在本节教程中我们将会展示如何使用旋转(rotate),平移(translate),缩放(scale)和变换(transform)。平移(translate)这里我们展示的第一个算法是平移。平移算法就是通过单个三维向量 ttt 来平移所有点/顶点,vt=v+tv_{t} = v + tvt=v+t。下面的代码展示了网格分别在x方向和y方向平移一次的结果。mesh = o3d.翻译 2020-05-29 15:30:38 · 6130 阅读 · 0 评论 -
Open3d学习计划——4(网格)
Open3d学习计划——3(网格)open3d有一种被称为TriangleMesh的3d三角网格的数据结构。下面的代码展示了如何从一个ply文件读取三角网格数据并且打印它的顶点和三角形。print("Testing mesh in open3d ...")mesh = o3dtut.get_knot_mesh()print(mesh)print('Vertices:')print(np.asarray(mesh.vertices))print('Triangles:')print(np.as翻译 2020-05-23 19:57:27 · 8018 阅读 · 6 评论 -
Open3d学习计划——3(点云)
点云(Point Cloud)这篇文章将会介绍点云数据的一些基本用法。(本教程可视化的点云数据为官方图片,自己可以根据手头数据进行测试,或者去官方github主页下载对应测试数据)可视化点云本教程的第一部分是读取点云数据并将其可视化。print("Load a ply point cloud, print it, and render it")pcd = o3d.io.read_point_cloud("../../TestData/fragment.ply")print(pcd)print(翻译 2020-05-22 15:52:47 · 25565 阅读 · 57 评论 -
Open3d学习计划——2(使用帮助与IO)
Open3d学习计划——2在上篇文章,我们介绍了Open3D是什么,和Python版本的如何安装。本篇文章将介绍原文档中Open3D得基础用法,本文翻译文档为0.10.0版本open3d文档,更多之前版本的信息请去查阅官方文档,不同版本API会有少许不同,请注意(如果在使用中提示没有某个类或者函数,就去上篇文章找到官方文档接口,去看看是不是函数发生了变化)。Python接口本节将会介绍如何导入open3d包并打印帮助信息。通过下面的代码就可以导入open3dimport open3d as o3d翻译 2020-05-22 10:05:44 · 8954 阅读 · 10 评论 -
Open3d学习计划——1(简介与安装)
Open3d学习计划——1什么是Open3d翻译 2020-05-21 10:50:55 · 14462 阅读 · 4 评论