
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://raw.githubusercontent.com/OpenDroneMap/OpenDroneMap/master/img/odm_image.png
ODM(OpenDroneMap)是一个开源命令行工具包,专注于处理无人机航拍图像。无人机通常搭载简单的傻瓜相机,其拍摄的图像虽视角独特,但本质上属于非量测图像。ODM能够将这些普通图像转化为三维地理数据,可与其他地理数据集结合使用,实现从影像到地理空间信息的转化。若需图形用户界面,可搭配https://github.com/OpenDroneMap/WebODM%E4%BD%BF%E7%94%A8%E3%80%82
!https://raw.githubusercontent.com/OpenDroneMap/OpenDroneMap/master/img/tol_ptcloud.png
简言之,ODM是一套将民用无人机原始影像处理为多种有用产品的工具链,可生成的产品包括:
ODM集成了Michael Waechter、Nils Moehrle和Michael Goesele的最新3D重建技术,相关研究成果参见论文。详细文档可参考快速入门及官方文档。
ODM适用于需要将无人机影像转化为地理空间数据的各类场景,包括但不限于:
使用Docker是运行ODM的最简单方式。首先需安装Docker(参考Docker Ubuntu安装教程,macOS和Windows用户可参考Docker官方文档)。安装完成后,执行以下命令运行预构建镜像,处理当前目录images文件夹中的影像(可修改路径,详细说明见https://github.com/OpenDroneMap/OpenDroneMap/wiki/Docker%EF%BC%89%EF%BC%9A
bashdocker run -it --rm \ -v "$(pwd)/images:/code/images" \ -v "$(pwd)/odm_orthophoto:/code/odm_orthophoto" \ -v "$(pwd)/odm_texturing:/code/odm_texturing" \ opendronemap/opendronemap
构建自定义镜像
如需从源码构建镜像,执行:
bashdocker build -t my_odm_image --no-cache .
若需减小镜像体积,可使用--squash参数(需启用Docker实验性功能):
bashdocker build --squash -t my_odm_image .
启用实验性功能:编辑/etc/docker/daemon.json文件,添加:
json{ "experimental": true }
然后重启Docker服务:
bashsudo service docker restart
挂载输出目录
默认情况下,处理结果保存在容器内。通过-v参数挂载本地目录可持久化保存结果。如需获取所有中间输出,使用:
bashdocker run -it --rm \ -v "$(pwd)/images:/code/images" \ -v "$(pwd)/odm_georeferencing:/code/odm_georeferencing" \ -v "$(pwd)/odm_meshing:/code/odm_meshing" \ -v "$(pwd)/odm_orthophoto:/code/odm_orthophoto" \ -v "$(pwd)/odm_texturing:/code/odm_texturing" \ -v "$(pwd)/opensfm:/code/opensfm" \ -v "$(pwd)/smvs:/code/smvs" \ opendronemap/opendronemap
传递自定义参数
可直接在docker run命令后附加run.py脚本参数,例如调整影像分辨率和CCD尺寸:
bashdocker run -it --rm \ -v "$(pwd)/images:/code/images" \ -v "$(pwd)/odm_orthophoto:/code/odm_orthophoto" \ -v "$(pwd)/odm_texturing:/code/odm_texturing" \ opendronemap/opendronemap --resize-to 1800 --force-ccd 6.16
使用自定义配置文件
通过挂载本地settings.yaml文件传递配置:
bashdocker run -it --rm \ -v "$(pwd)/images:/code/images" \ -v "$(pwd)/odm_orthophoto:/code/odm_orthophoto" \ -v "$(pwd)/odm_texturing:/code/odm_texturing" \ -v "$(pwd)/settings.yaml:/code/settings.yaml" \ opendronemap/opendronemap
处理完成后,结果文件按以下结构组织:
|-- images/ # 原始影像 |-- images_resize/ # 调整尺寸后的影像 |-- opensfm/ # OpenSfM处理结果 | |-- depthmaps/ | |-- merged.ply # 非地理参考稠密点云 |-- odm_meshing/ | |-- odm_mesh.ply # 三维网格模型 |-- odm_texturing/ | |-- odm_textured_model_geo.obj # 地理参考带纹理模型 |-- odm_georeferencing/ | |-- odm_georeferenced_model.ply # 地理参考点云 |-- odm_orthophoto/ |-- odm_orthophoto.tif # 正射影像(GeoTIFF格式)
.obj和.ply文件可使用MeshLab查看.tif文件可使用QGIS等GIS软件打开!https://raw.githubusercontent.com/alexhagiopol/OpenDroneMap/feature-better-docker/toledo_dataset_example_mesh.jpg
!https://raw.githubusercontent.com/OpenDroneMap/OpenDroneMap/master/img/bellus_map.png
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 opendronemap/odm 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: