简单看了一下官方推荐的八位技术大神2022年开发者工具推荐,发现他们推荐的工具适用范围都比较宽泛,有些也比较通用,比如腾讯云(数据存放与同步)、docker(镜像环境管理)、todesk(远程连接)等。其中有不少工具自己在平时开发过程中也经常用到,也确实很好用。我觉得一些通用性的工具,包括但不限于这些技术大神,很多其他C站创作者应该也会反复推荐。而从我的角度来看,我则希望可以更多地推荐一些自己经常使用的,在自己所在领域内很有帮助的一些工具或者软件,让这次征文活动中的工具箱内容更加丰富多样。我所在的领域,往大了说,是测绘遥感地信(其实这三者交叉较大,有很多共同点),往小了说,则主要在做三维重建相关的事情。因此,我下面就三维重建领域中自己使用过的一些好用的工具进行推荐(排序不分先后,仅大致按照类别进行分类),希望能对大家有所帮助 ~
  


文章目录

  • 1. CloudCompare
    • 1.1 简介
    • 1.2 相关链接
    • 1.3 使用评价
  • 2. PCL (Point Cloud Library)
    • 2.1 简介
    • 2.2 相关链接
    • 2.3 使用评价
  • 3. MeshLab
    • 3.1 简介
    • 3.2 相关链接
    • 3.3 使用评价
  • 4. Colmap
    • 4.1 简介
    • 4.2 相关链接
    • 4.3 使用评价
  • 5. PhotoScan / Metashape
    • 5.1 简介
    • 5.2 相关链接
    • 5.3 使用评价
  • 6. OpenMVG
    • 6.1 简介
    • 6.2 相关链接
    • 6.3 使用评价
  • 7. ArcGIS
    • 7.1 简介
    • 7.2 相关链接
    • 7.3 使用评价
  • 8. Surfer
    • 8.1 简介
    • 8.2 相关链接
    • 8.3 使用评价
  • 9. QGIS
    • 9.1 简介
    • 9.2 相关链接
    • 9.3 使用评价
  • 10. Visual Studio / VS Code
    • 10.1 简介
    • 10.2 相关链接
    • 10.3 使用评价

  

1. CloudCompare

1.1 简介

  CloudCompare是一款集三维点云(Point Cloud)数据查看、编辑、处理为一体的三维点云数据配套开源软件,该软件支持多种三维点云数据格式。其所功能包括点云可视化、配准、分割、合并、抽稀、旋转、法向量计算、泊松构网、滤波等功能。除了自带丰富强大的点云数据处理功能之外,CloudCompare(为了简化描述,后续简称cc)还可以方便地进行拓展,比如插件的编写,甚至是下载其源代码直接进行修改等等。

1.2 相关链接

  cc的相关链接如下:

  • 官网:http://www.cloudcompare.org/main.html
  • 下载链接:http://www.danielgm.net/cc/release/
  • github:https://github.com/CloudCompare/CloudCompare

1.3 使用评价

  个人认为,cc在点云处理领域是具有举足轻重的地位的,应该是无人不知的。它的优势体现在如下几个方面:

  • 开源免费,可扩展性强,其源代码可以直接下载获得。
  • 轻量且功能丰富。cc的打开速度很快,基本不需要等待,功能强大,对点云的显示效果很好,同时也支持超大点云的导入和处理。我目前最多使用它处理过几千万点的点云数据。当然,其性能也和电脑本身性能息息相关。
  • 支持GPU。这一点对于点云数据的渲染和处理加速都有很重要的意义。
  • 界面简单友好。界面清爽,有汉化版,操作便捷。
  • 持续更新。cc已经有了好多年的历史了,时至今日也还在不断更新和优化。

  从我接触点云数据到现在,已经有了两三年的使用经验了。从一开始只是使用cc进行一下点云数据的可视化渲染,使用它里面的一些裁剪、旋转平移、配准、抽稀等已有工具,到后来直接下载它的源码,自己根据需求进行修改和编译,编写插件等等。关于cc的使用,我也写了有一个专栏,链接。大家如果有遇到什么问题的话,可以直接来这里找找~
  


  

2. PCL (Point Cloud Library)

2.1 简介

  PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应用。
  PCL利用OpenMP、GPU、CUDA等先进高性能计算技术,通过并行化提高程序实时性。K近邻搜索操作的构架是基于FLANN (Fast Library for Approximate Nearest Neighbors)所实现的,速度也是技术中最快的。PCL中的所有模块和算法都是通过Boost共享指针来传送数据的,因而避免了多次复制系统中已存在的数据的需要。

2.2 相关链接

  • 官网:https://pointclouds.org/
  • 下载链接:https://pointclouds.org/downloads/
  • github:https://github.com/PointCloudLibrary

2.3 使用评价

  PCL也是我之前使用的比较多的一个库。与cc一样,PCL库也是点云处理领域的一个必备工具。不过它不是一个软件,而是一个C++编程库,里面实现了很多点云处理的相关算法,比如KD树的构建、法向量计算,而对于点云配准算法ICP,其实现的算法就包括一般ICP、GICP、TrimmedICP等等,非常丰富。而且这些算法的接口都很友好,使用起来非常方便,比如KD树的构建,一两行代码即可搞定,极大地提升了点云数据处理程序的编写效率。
  


  

3. MeshLab

3.1 简介

  MeshLab是一个开源、可移植和可扩展的三维几何处理系统,主要用于交互处理和非结构化编辑三维三角形网格。该系统发布于2005年年底,旨在提供一整套三维扫描、 编辑、 清洗、 拼合、 检查、 呈现和转换网格数据的工具。

3.2 相关链接

  • 官网:https://www.meshlab.net/
  • 下载链接:https://www.meshlab.net/#download
  • github:https://github.com/cnr-isti-vclab/meshlab

3.3 使用评价

  MeshLab,顾名思义,是专门用于处理三维数据类型中的mesh数据的。它可以对mesh数据进行很好的可视化和交互。相比较而言,cc也可以用于mesh数据的可视化和交互,但是MeshLab会更专业一些,而且它也是开源免费的。所以我们通常会默认,使用cc来处理点云数据,使用MeshLab来处理mesh数据。
  


  

4. Colmap

4.1 简介

  Colmap是一个通用的运动恢复结构(Structure from Motion, SfM)和多视图立体(Multi-View Stereo, MVS)管道,具有图形和命令行界面。它为有序和无序图像集合的重建提供了广泛的功能。该软件根据新的BSD许可证获得许可。该库由2016年CVPR上的一篇论文中提出,名为:Structure-from-motion revisited。我也曾写过一篇该论文的阅读笔记,感兴趣的话可以看看。截至目前,该库仍然是传统增量式SfM中的SOTA方法。由于其出色的结果和开源且持续维护,它在计算机视觉领域得到了广泛的应用。可以这么说,如果某篇论文需要使用到SfM方法去获取稀疏重建结果,那么该论文十有八九用的就是Colmap。截至目前,该论文的被引量已将近3000次。

4.2 相关链接

  • 官网:http://colmap.github.io/index.html
  • 下载链接:http://colmap.github.io/install.html
  • github:https://github.com/colmap/colmap

4.3 使用评价

  关于Colmap,我对它的使用算是比较深入了,它是和我的研究内容最相关的一个库。从一开始进入SfM这个领域,我自己动手复现了完整的增量式SfM,到后来使用Colmap进行一些稀疏重建的任务,对它的输出结果进行转换和应用,以及将自己获得的一些结果写成Colmap格式并导入其中进行可视化等等。对此,我也有写了一个关于Colmap的专栏,链接。而对于SfM这个方向,我也有一个专栏,链接。如果大家有遇到一些相关的问题,也许可以来这里找找,说不定有你想要的答案。
  Colmap的界面非常清爽简洁,或者你也可以说是很朴素。实在的界面下,也是实在的功能。它提供了很完整且功能很强大的增量式重建pipeline,你既可以在可视化界面下进行UI交互操作,也可以通过命令行使用命令来进行重建。而且,它的功能还远不止稀疏重建,它还能进行稠密重建,输出密集点云和深度图等等,是一个小而精的三维重建利器。同时,它还提供了一些非常好用的数据转换脚本,链接,包括matlab、python、shell三种语言,可以帮助你快速认识其数据结构,并和你的实际需求进行转换。
  


  

5. PhotoScan / Metashape

5.1 简介

  PhotoScan(现在改名叫Metashape了)是一款基于影像自动生成高质量三维模型的优秀软件,这对于3D建模需求来说实在是一把利器。PhotoScan无需设置初始值,无须相机检校,它根据最新的多视图三维重建技术,可对任意照片进行处理,无需控制点,而通过控制点则可以生成真实坐标的三维模型。照片的拍摄位置是任意的,无论是航摄照片还是高分辨率数码相机拍摄的影像都可以使用。其基本功能与Colmap类似,重建的效果也优于Colmap,但是它是一个商业软件。

5.2 相关链接

  • 官网:https://www.agisoft.com/
  • 下载链接:https://www.agisoft.com/downloads/installer/

5.3 使用评价

  作为三维重建领域的一个优秀商业软件,PhotoScan可以实现高质量的图像重建。它可以方便地对相机进行分组操作,比如我要对一个使用五镜头无人机倾斜摄影测量图像进行稀疏重建,相比于Colmap,PhotoScan的重建结果更为完整(对于大场景,Colmap容易丢失掉很多相机)。因此,若想要更好的重建结果,可以考虑使用PhotoScan。
  


  

6. OpenMVG

6.1 简介

  OpenMVG是一款开源的SfM软件,它在某些方面要优于Bundler,可以利用多张任意拍摄的照片,重建场景的三维模型。其目标是,通过开发C++框架,从图像/摄影测量中扩展对3D重建的认识。

6.2 相关链接

  • 教程:https://github.com/openMVG/openMVG/wiki
  • github:https://github.com/openMVG/openMVG

6.3 使用评价

  OpenMVG也是一个开源三维重建库,与上面介绍的Colmap、PhotoScan功能类似。与Colmap相比,它不仅实现了增量式SfM Pipeline,同时还实现了全局式的SfM Pipeline。有关增量式和全局式SfM的介绍,可以参考我的这篇博客:增量式SfM详细流程介绍及实现方法。也就是说,它的功能更多,但是它没有UI界面,只能通过调用它提供的方法,去编写和完成自己的SfM任务。后续,我的工作中将会需要用到全局式SfM中的多个场景块的融合,也将使用OpenMVG进行进一步的研究。
  


  

7. ArcGIS

7.1 简介

  ArcGIS作为一个可伸缩的平台,无论是在桌面,在服务器,在野外还是通过Web,为个人用户也为群体用户提供GIS的功能。ArcObjects包含了许多的可编程组件,从细粒度的对象(例如单个的几何对象)到粗粒度的对象(例如与现有ArcMap文档交互的地图对象),涉及面极广,这些对象为开发者集成了全面的GIS功能。ArcGIS是一个总称,其包含有多个分工不同的产品,包括ArcMap、ArcScene、ArcGlobe、ArcCatalogue等软件。

7.2 相关链接

  • 官网:https://www.esri.com/zh-cn/arcgis/about-arcgis/overview

7.3 使用评价

  ArcGIS的体量很大,当然其功能也非常强大,是目前最顶级的GIS工具之一。还记得我本科那会,我们有不少专业课都是需要用到ArcGIS的,甚至还有专门讲解ArcGIS的课程。它可以实现几乎所有的GIS相关任务,比如路径规划、缓冲区分析、遮挡分析、应急模拟等等。其最核心的软件是ArcMap,我们可以使用它进行一些数据的可视化、修改、分析等工作。而使用ArcScene,我们则可以实现三维的地形可视化和交互操作。此外,ArcEngine则给我们提供了扩展和修改ArcGIS的接口,基于此,我们可以很方便地进行功能扩展、个性化功能定制。
  


  

8. Surfer

8.1 简介

  Surfer软件是美国Golden Software公司编制的一款以画三维图(等高线、image map、3d surface)的软件。该软件简单易学,其自带的帮助(help)菜单对如何使用该软件解释详细,其中的教程(tutorial)也清晰介绍了Surfer的简单应用。
  Surfer 具有的强大插值功能和绘制图件能力,使它成为用来处理XYZ数据,是地质工作者常用的专业成图软件。可以轻松制作基面图、数据点位图、分类数据图、等值线图、线框图、地形地貌图、趋势图、矢量图以及三维表面图等;提供11种数据网格化方法,包含几乎所有流行的数据统计计算方法;提供各种流行图形图像文件格式的输入输出接口以及各大GIS软件文件格式的输入输出接口,大大方便了文件和数据的交流和交换;提供新版的脚本编辑引擎,自动化功能得到极大加强。

8.2 相关链接

  • 官网:https://www.goldensoftware.com/products/surfer
  • 下载链接:https://www.goldensoftware.com/products/download

8.3 使用评价

  正如简介中所述,Surfer主要的应用领域是GIS中的三维图绘制、显示、编辑等,算是一个专业性比较强的软件了。我之前主要是用它来进行DEM数据的插值。提到插值,我们应该可以很容易想到最近邻插值、双线性插值、双三次插值等等。其实这些插值方法还只是比较普通常见的,而在地理信息领域,我们至少还应该知道克里金插值,这是一种在地形图插值中效果非常好的插值方法,而这一方法在一些开源库中我们是没法找到的,也许是因为它太复杂了。但是Surfer里面则有该方法的实现,我之前通过实践证明,在对地形图进行插值的时候,该插值方法确实优于一些通用插值方法。除此之外,Surfer里面还提供了很多其他的插值方法实现,有十余种。所以如果你也有一些地理信息数据处理的需求,不妨考虑一下Surfer,它也许会是你的一个得力助手。
  


  

9. QGIS

9.1 简介

  QGIS是一个用户界面友好的桌面地理信息系统,可运行在Linux、Unix、Mac OSX和Windows等平台之上。QGIS是基于Qt,使用C++开发的一个用户界面友好、跨平台的开源版桌面地理信息系统。QGIS软件的主要特点有:

  1. 支持多种GIS数据文件格式。通过GDAL/OGR扩展可以支持多达几十种数据格式.
  2. 支持PostGIS数据库。
  3. 支持从WMS,WFS服务器中获取数据
  4. 集成了Grass的部分功能。
  5. 支持对GIS数据的基本操作,如属性的编辑修改等。
  6. 支持创建地图。
  7. 通过插件的形式支持功能的扩展

9.2 相关链接

  • 主页:https://qgis.org/en/site/getinvolved/index.html
  • 下载链接:https://qgis.org/en/site/forusers/download.html
  • github:https://github.com/qgis/QGIS

9.3 使用评价

  QGIS也是一个功能非常丰富的地理信息软件,与ArcGIS相比,其是开源的。因此,你可以轻松将其下载并安装使用。它也提供了丰富详细的操作手册、简洁友好的UI,可以让你快速上手。不过我使用它最多的功能是图像的查看。因为对于一张图像,使用默认的图像查看器是没法准确获取某个像素在图像中的坐标,以及该像素的RGB三通道数值信息的。而使用QGIS,我们就可以方便地完成这个任务,这对于一些图像处理任务是至关重要的。
  


  

10. Visual Studio / VS Code

10.1 简介

  上述介绍的软件可能都有点儿专业性,最后就也介绍一种开发者绕不开的通用的工具——IDE(Integrated Development Environment,集成开发环境)吧。Microsoft Visual Studio(简称VS),相信所有开发者都不会陌生。它是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。Visual Studio是最流行的Windows平台应用程序的集成开发环境。最新版本为 Visual Studio 2022版本,基于.NET Framework 4.8 。
  VS虽然功能非常强大,但是它只能在Windows/Mac系统上运行。对此,微软也推出了跨平台的,更加轻量级的IDE——VS Code。相比于VS,它少了很多功能,但是基本的开发管理工具还是齐全的,更轻量且可以在Linux等其他系统上运行,也是一个非常受欢迎的免费IDE。
  一般的使用方法是,在Windows/Mac系统上进行C++开发时使用Visual Studio,而在Linux上,无论是C++开发,还是python深度学习任务,都使用VS Code(当然在Linux系统上你也用不了Visual Studio)。

10.2 相关链接

  • 官网:https://visualstudio.microsoft.com/zh-hans/

10.3 使用评价

  在琳琅满目的开发者IDE中,相信VS说第二,没人敢说第一了。我从接触计算机编程开始,就在使用VS了。正如上面所说的,一般在Windows/Mac系统上,我都会首选VS作为IDE。因为它的功能实在是太强大了,它提供了非常多的开发辅助功能,可以大大减轻我们的开发负担。当然,它也是有缺陷的,最明显的就比如,它的体量太大了,要占用系统几十G内存,同时在打开过程中的加载也会需要一点儿等待时间。此外,我们还需要明确的一点是,在Windows系统上进行C++开发是一件比较让人头疼的事,因为经常会遇到各种环境问题和各种Bug。对此,我在之前开发的过程中,有写了一个专栏,链接,记录了在VS使用过程中遇到的一些问题。而后来,我开始接触深度学习,需要在Linux系统下进行python开发。这时,VS Code则成了一个非常不错的选择。它不仅可以在Linux系统上使用,而且体量也大大减小,可以算是一款轻量级的IDE了。关于VS Code,我有一个小专栏,链接。
  总结一下就是,Windows/Mac系统上选择VS,Linux系统上选择VS Code就对了。

猿创征文|三维重建领域的开发者工具箱相关推荐

  1. 猿创征文| 我的开发者工具箱之数据分析师装备库

    工欲善其事,必先利其器. --<论语·卫灵公> 文章目录 前言 一.对接需求阶段 (一)DBeaver (二)WPS 二.设计阶段 (一)亿图图示 (二)Confluence 三.模型报表 ...

  2. 猿创征文|收到谷歌开发者大会正式邀请(Java学生的自学之路)

    文章目录 一.前言 二.收到谷歌邮件 三.感想 四.学习之路 1. 坚持看网课并整理笔记 2.勤加练习 3.坚持总结 4.刷题技巧 5.心态调整 五.结语 一.前言 上一次通过了CSDN内部筛选后,在 ...

  3. 猿创征文|2022 年我的开发者工具

    猿创征文|2022 年我的开发者工具 文章目录 猿创征文|2022 年我的开发者工具 摘要 版本控制工具-Github Github Desktop git-cola SSH工具-X Shell 7 ...

  4. 猿创征文|我的前端学习之旅【来自一名大四老学长的真情流露】

    猿创征文 | 我的前端学习之旅 自我介绍 我浑噩的大一大二(是不是另一个你) 我的大三生活 大三上(学习过程.学习方法.推荐网站) 大三下(技术提升.荣誉证书.推荐比赛) 我与 CSDN 的机缘(从小 ...

  5. 猿创征文|工具百宝箱-代码编辑器-版本控制工具-终端神器-项目与事务跟踪工具-SFTP客户端

    工具没有绝对意义上的好坏之分,只有需求适合与否,这些需求可能包括:功能.价格.安全.服务.技术等诸多方面. 技术在更新迭代,开发者工具也在更新迭代.一个高效趁手的工具在工作上锦上添花.给大家推荐一下我 ...

  6. 猿创征文|六年一日,我的焚膏继晷之路

    猿创征文|我在Python领域的焚膏继晷之路 一.自我介绍 二.我和师父的机缘 三.拜师 or 闹剧? 四.我在CSDN的收获 五.关于我的学习 六.我的憧憬 一.自我介绍 大家好,我是 热爱科技的刘 ...

  7. 猿创征文|工具百宝箱-编辑器-笔记工具-日常小工具-原型设计工具

    这篇文主要介绍了开发者工具之外的一些日常小工具,我用这些小工具主要完成什么工作.分享给大家 官方活动入口:「猿创征文 」第四季 | 2022 年我的开发者工具 猿创征文|工具百宝箱-代码编辑器-版本控 ...

  8. 猿创征文|【深度学习前沿应用】文本生成

    猿创征文|[深度学习前沿应用]文本生成 作者简介:在校大学生一枚,C/C++领域新星创作者,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践 ...

  9. 猿创征文|前路有光,初心莫忘,从编程小白,到如今小有所成,我这一路是如何走来的?

    前言 无论是谁,对于编程来说,一开始看都很难看懂的,这也是为什么这个行业,属于互联网高薪行业代表的原因之一. 我是属于自学编程的非科班码农,在我看来,自学编程应该重点思考下自己的学习方式以及是否对 J ...

  10. 猿创征文|工作中遇到技术盲区后的自我成长

    猿创征文|工作中遇到技术盲区后的自我成长 1.立场 我是一名python后端开发程序员,在一家创业公司中兢兢业业工作快两年了,从软件架构.开发.测试.部署.运维一手经办,到开发文档.API接口.开发周 ...

最新文章

  1. 就《在企业中发起和推广DevOps》的问答
  2. go移植linux内核书名叫啥,Go语言移植Linux内核数据结构hlist
  3. ui设计现状与意义_想转行UI设计?你必须要了解以下内容
  4. 数据可视化技术对于企业的重要性
  5. Window系统下 MongoDB 下载 和 安装
  6. 通过Spring Boot中的手动Bean定义提高启动性能
  7. js的tree数组对象扁平化思否_JavaScript数组_二维数组_三维数组(二十五)
  8. JAVA 发送邮件功能
  9. 目前最值得推荐的几款黑科技APP,快来收藏吧!
  10. 【线上活动】材料计算训练营(量子力学、物理、化学、新能源、碳中和、生物制药、化工、新材料、催化、锂电池、半导体)
  11. 华为海思芯片 10 年备胎史!
  12. 海康萤石云硬盘录像机SDK使用
  13. Ubuntu下Git安装图形化代码合并工具kdiff3
  14. springboot使用rocketmq-spring-boot-starter整合RocketMQ
  15. 计算机网络——局域网(期末复习)
  16. 英语发音规则---Y字母
  17. 如何学习stm32,怎么学习stm32,不是仅仅看教程,照着写复制代码
  18. HG 新闻 RS5 环境点
  19. 零点起飞学java视频_零点起飞学java (刘升华) 高清PDF_IT教程网
  20. 【大厂面试】堆的内存结构及GC垃圾回收机制

热门文章

  1. 配置静态IP失败总结
  2. iOS系列—wakeup in XNU
  3. c语言高级编辑器,选项,文本编辑器,C/C++,高级
  4. python教程马哥_【60集全】全新马哥教育 运维必备python基础语法全讲解_IT教程网...
  5. 十年互联网 十个风云人物
  6. QtCreator总是崩溃卡死的问题
  7. Endnote: 如何区分中英文期刊
  8. 电脑IE打开慢的主要原因
  9. win10重装系统后出现的0xc0000225问题解决
  10. hdu 4498 自适应simpson