资讯专栏INFORMATION COLUMN

如何使用OpenDroneMap对航拍图像快速建模

sherlock221 / 3616人阅读

摘要:当你驾轻就熟地用无人机拍摄了某个地区的航拍图像后,除了分享到微信朋友圈里,还可以做些什么呢或许能助你开启思路。

当你驾轻就熟地用无人机拍摄了某个地区的航拍图像后,除了分享到微信朋友圈里,还可以做些什么呢?或许 OpenDroneMap 能助你开启思路。

OpenDroneMap 是一个开源的航拍图像处理工具,可以把航拍图像进行点云、正射影像和高程模型等转换处理。

一般的无人机用的都是「傻瓜式」的相机,其实这跟你用手机或普通数码相机拍的没差,只是拍摄的角度不一样而已。它们拍出来的照片都是非量测影像(non-metric imagery),而 OpenDroneMap 则可以将这些非量测影像转换成三维地理建模数据,并应用在地理信息系统中。

具体而言,OpenDroneMap 可以将航拍图像处理为下面几种格式的数据:

点云(Point Clouds)

纹理数字表面建模(Textured Digital Surface Models)

正射校正影像(Orthorectified Imagery)

数字高程模型(Digital Elevation Models)

……


使用方法

OpenDroneMap 支持 Docker,这意味着你可以在不同的操作系统上运行 OpenDroneMap。下面以 Mac OS 为例,介绍 OpenDroneMap 的使用方法。

1、安装 Docker CE

到 Docker 官网 https://docs.docker.com/engine/installation/ 找到并下载适用于你所使用的操作系统的 Docker CE 版本(Docker EE 是企业版,暂时用不上)。经过「傻瓜式」的安装后,可以在 Terminal 上输入 docker --version 检验 Docker 是否安装成功。

2、下载 OpenDroneMap 的镜像

确认 Docker 成功安装后,在 Terminal 上输入以下指令:

docker pull opendronemap/opendronemap

Docker 就会从 Docker Hub 中下载 OpenDroneMap 的镜像到本地中。为提高下载速度,建议提前使用 Proxifier 之类的工具(建议自行 Google)让 Terminal 走上代理道路。镜像下载完成后,在 Terminal 输入 docker images 指令,就能查看到刚才下载的 OpenDroneMap 的镜像了。

3、创建文件目录

在 Finder 上任意一目录新建一个名为 images 的文件夹,作为待处理图片的存放位置。我的习惯是以「项目名 / images」的方式来对目录进行命名,这样能更直观地管理文件。比如:

//odm_test_1/images
//odm_test_2/images

接下来,就需要把你需要进行处理的航拍影像拷贝到 images 文件夹中了,如果你暂时没有这些航拍图像的话,可以在 https://github.com/OpenDroneMap/odm_data 上下载范例素材。

我在网站上下载了「aukerman」素材的图像文件,这个范例素材似乎是对某个绿化公园连续拍摄的航拍图像,查看每个图像文件的 info(Command + I),都能找到它的经纬度信息。我们可以用 OpenDroneMap 对这些文件进行「正射影像(拼接)」和「纹理网面建模」的处理。

4、运行 OpenDroneMap

在航拍图像文件拷贝到 images 目录以后,打开 Terminal 并定位到项目文件夹(比如 odm_test_1)中,执行以下指令:

docker run -it --rm 
    -v $(pwd)/images:/code/images 
    -v $(pwd)/odm_orthophoto:/code/odm_orthophoto 
    -v $(pwd)/odm_texturing:/code/odm_texturing 
    opendronemap/opendronemap

指令的作用是:通过 OpenDronMap 对 odm_test_1/images 目录下的图像文件同时进行「正射影像(odm_orthophoto)」和「纹理网面建模(odm_texturing)」的图像处理(作为测试,为了节省时间,你可以只选取 odm_orthophoto 或 odm_texturing 其中一种处理方式):

指令解释:

docker run -it --rm

Docker 的运行指令。-it 指让 Docker 分配一个伪输入终端并以交互模式运行容器;--rm 是指在容器运行完之后自动清除以节省电脑存储空间。

-v $(pwd)/images:/code/images

-v 是用来将本地目录绑定到容器中的,在本例子中,是让 OpenDroneMap 知道待处理的照片在哪里;冒号前面,代表的是本地 images 路径,其中 (pwd) 代表当前 Teminal 定位目录的绝对路径,你可以更改为其他目录的绝对路径;冒号后面,是指容器的路径,这个是不能更改的。

-v $(pwd)/odm_orthophoto:/code/odm_orthophoto

这行指令,是指希望使用 OpenDroneMap 对图像文件进行怎么样的处理,你可以根据项目的需要,输入不同的处理指令,OpenDroneMap 提供了以下几种处理方式:

odm_meshing # 3D 网面建模

odm_texturing # 纹理网面建模

odm_georeferencing # 地理配准后的点云图

odm_orthophoto # 正射影像图

opendronemap/opendronemap

这是指明需要调用的镜像,这里是调用 Repository 为 opendronemap/opendronemap 的镜像,可以用该镜像的 tag(如果有设置的话)和镜像 ID 替代。

5、查看结果

指令执行后,就交给程序去处理了。运行时间可能会稍长,请耐心等候,一切顺利的话,Terminal 就会下面的提示:

然后在项目的文件夹中(比如 odm_test_1),就能在 odm_orthophoto 和 odm_texturing 目录中看到对应的输出结果了。

正射影像的输出结果的 png 预览图:

或许有朋友会说,最后还不是一张常见的无人机俯视航拍图,但其实 odm_orthophoto 的输出结果还有一个后缀为 tif 的 GeoTIFF 文件,这可以应用在 QGIS 上作为光栅图层,供地理信息分析之用(比如实现地图的修测更新)。

小结

上述教程中的 GIS 术语可能翻译得不够到位,如有不妥的地方望请指出。

整体来说,有 docker 这样的工具能很大程度上减少配置开发环境的时间,也简化了不少的操作步骤,不过需要注意的是 OpenDroneMap 的项目还是挺占用电脑空间的,所以在操作之前,最好能确保电脑有足够的剩余空间。

上面的例子采用的是范例素材的航拍图像,如果要实际应用到自己的项目中,则需要自己使用无人机,结合相关软件的航线规划和定时拍摄功能,对某一个地区进行连续拍摄,将拍摄的图像文件导入到「images」文件夹中,再按教程步骤执行就能实现数据处理了。

此外,Docker 也有 Windows 版本,把教程中 Terminal 的操作换成 Windows 系统的 Cmd,或许也能实现(没有尝试过,所以不敢打包票)。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27002.html

相关文章

  • 如何用无人机航拍图像生成地图?

    摘要:上一篇推送介绍的可以根据无人机航拍图像的信息和图像重叠度实现快速建模以及地图构建,但命令行的操作界面难免会让部分用户感到不适应。有自己的官网,尽管是名称上带有字眼,但这并不意味着你可以在官网上对航拍图像进行操作。 上一篇推送介绍的 OpenDroneMap 可以根据无人机航拍图像的 GPS 信息和图像重叠度实现快速建模以及地图构建,但命令行的操作界面难免会让部分用户感到不适应。所以今天...

    ephererid 评论0 收藏0
  • 如何用无人机航拍图像生成地图?

    摘要:上一篇推送介绍的可以根据无人机航拍图像的信息和图像重叠度实现快速建模以及地图构建,但命令行的操作界面难免会让部分用户感到不适应。有自己的官网,尽管是名称上带有字眼,但这并不意味着你可以在官网上对航拍图像进行操作。 上一篇推送介绍的 OpenDroneMap 可以根据无人机航拍图像的 GPS 信息和图像重叠度实现快速建模以及地图构建,但命令行的操作界面难免会让部分用户感到不适应。所以今天...

    scwang90 评论0 收藏0
  • 以更少人力创建更擅长学习的系统 ?看专家详解生成式抗网络

    摘要:所谓的生成式对抗网络是深度学习领域内最热门的主题,有望以更少的人力创建更擅长学习的系统。警察与伪造者生成式对抗网络减少深度学习所需要的数据生成式对抗网络通过减少训练深度学习算法所需的数据量来解决该问题。 如果您还未听说过生成式对抗网络(generative adversarial network,GAN),不用担心,这篇文章将解答您的困惑。 所谓的生成式对抗网络是深度学习领域内最热门的主题,...

    mdluo 评论0 收藏0
  • 小样本学习(Few-shot Learning)综述

    摘要:面对这类问题,有一个专门的机器学习分支来进行研究和解决。如图所示,分别是三个类别的均值中心称,将测试样本进行后,与这个中心进行距离计算,从而获得的类别。 分类非常常见,但如果每个类只有几个标注样本,怎么办呢?笔者所在的阿里巴巴小蜜北京团队就面临这个挑战。我们打造了一个智能对话开发平台——Dialog Studio,以赋能第三方开发者来开发各自业务场景中的任务型对话,其中一个重要功能就是对意图...

    tigerZH 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<