Odm: 拆分合并无法在服务器中创建子模型

创建于 2019-07-19  ·  3评论  ·  资料来源: OpenDroneMap/ODM

你是如何安装 OpenDroneMap 的? (Docker,本机,...)?

在 Linux 服务器中使用 Docker

你的浏览器和操作系统是什么? (复制/粘贴 https://www.whatismybrowser.com/ 的输出)

通过 PuTTy 的命令行

问题是什么?

当我在本地机器上运行 ODM 时,无论是否拆分数据集,它都可以正常工作,使用

docker run -it --rm -v G:/test:/datasets/code opendronemap/odm --project-path /datasets

要么

docker run -it --rm -v G:/test:/datasets/code opendronemap/odm --project-path /datasets --split 10 --split-overlap 3

只要我在本地文件夹(硬盘驱动器或 USB 外部磁盘)中有数据,它就会按预期执行所有操作

但是当我在服务器上运行它时,它只能在没有split 命令的情况下工作:

docker run -it --rm -v /my-server/Project 文件夹:/datasets/code opendronemap/odm --project-path /datasets
工作正常,但只要我添加
--split 10 --split-overlap 3

到代码,我收到以下错误:

[信息] 运行 /code/SuperBuild/src/opensfm/bin/opensfm create_submodels >/var/www/data/44a86e01-7ff1-4848-a6b6-711097026c96/opensfm
回溯(最近一次调用最后一次):
文件“/code/SuperBuild/src/opensfm/bin/opensfm”,第 34 行,在
命令.运行(参数)
文件“/code/SuperBuild/src/opensfm/opensfm/commands/create_submodels.py”,第37行,运行中
meta_data.load_clusters_with_neighbors())
>create_submodels 中的文件“/code/SuperBuild/src/opensfm/opensfm/large/metadataset.py”,第 154 行
os.symlink(src_relpath, dst)
OSError: [Errno 95] 不支持操作
回溯(最近一次调用最后一次):
文件“/code/run.py”,第 56 行,在
应用程序执行()
文件“/code/stages/odm_app.py”,第 93 行,在执行中
self.first_stage.run()
运行中的文件“/code/opendm/types.py”,第 376 行
self.next_stage.run(输出)
运行中的文件“/code/opendm/types.py”,第 357 行
self.process(self.args,输出)
文件“/code/stages/splitmerge.py”,第 65 行,正在处理中
octx.run(“create_submodels”)
运行中的文件“/code/opendm/osfm.py”,第 21 行
(context.opensfm_path,命令,self.opensfm_project_path))
运行中的文件“/code/opendm/system.py”,第 76 行
引发异常(“孩子返回{}”。格式(retcode))
例外:孩子返回 1

似乎 opensfm 在读取/写入子模型文件夹时出现问题。 我加入了docker用户组,但是运行命令时没有sudo权限。

什么应该是预期的行为? 如果这是一个功能请求,请详细描述您认为应该对代码进行的更改,如果可能的话,引用应该进行更改的文件和行。

预期的行为是 ODM 创建子模型文件夹,并分块处理数据集,然后我可以提取每个子模型的正射影像和 DSM 以处理较小的 tif 文件

我们如何重现这一点? (您执行了哪些步骤来触发问题?您使用哪些参数进行处理?如果可能,请附上您上传到 Google Drive 或 Dropbox 的数据集的副本。请详细说明)

在服务器磁盘上使用 --split 运行 ODM

所有3条评论

我一直在和服务器管理员来来回回,我想我们已经发现了问题:
Symlinks 在 cifs 文件系统上运行时出现问题,这需要将 mfsymlink 标志添加到 mount 命令,这就是我收到错误的原因。 添加 mfsymlink 标志后,该过程工作正常。 我现在正在运行一个更大的数据集来确定,但现在似乎已经修复了。

是的,这是完全有道理的。 大量使用符号链接对于文件系统来说是一个明确的问题。

Piero - 你仍然认为这是一个错误,还是我们应该要求 x-ancin 在文档中添加一些东西,如果可以的话?

我不认为这是一个错误,而是一个文件系统问题。 关闭。

此页面是否有帮助?
0 / 5 - 0 等级