7 Docker
Alan McConchie edytuje tę stronę 2020-01-20 16:31:42 -05:00
This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Docker

There are two ways to run ODM through Docker. One pulls the image from the Docker Hub and the other builds the image manually from a Dockerfile. OpenDroneMap is Dockerized, meaning you can use containerization to build and run it without tampering with the configuration of libraries and packages already installed on your machine. Docker software is free to install and use in this context. If you don't have it installed, see the Docker Ubuntu installation tutorial and follow the instructions up until "Create a Docker group" inclusive. You can also run docker on Windows and OSX.

Option 1: Pull from Docker Hub

This method is the fastest and most fool-proof method for running OpenDroneMap. You only need to run one command:

docker run -it --rm -v "$(pwd)/images:/code/images" -v "$(pwd)/odm_orthophoto:/code/odm_orthophoto" -v "$(pwd)/odm_georeferencing:/code/odm_georeferencing" opendronemap/odm --mesh-size 100000

This will pull an ODM docker image from the hub and run through it. Let's break down each part.

docker run -it --rm

-it instructs Docker to allocate a pseudo-TTY connected to the containers stdin; creating an interactive bash shell in the container. --rm will remove the container to save space (ODM projects can get big)

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

Here we are connecting 3 volumes. The path before the colon is the local, or host, path, and after the colon is the container path. Do not change the container path. $(pwd)/images is your input directory. and can be any absolute path. In our example, we use $(pwd) as shorthand for the absolute path to the current working directory. You can specify -v <path>:<path> any number of times. When ODM is done running, you can find the ODM products in $(pwd)/odm_georeferencing or whatever volume you mount.

opendronemap/odm

This is the tag that docker will use to find the OpenDroneMap image. If it is not found locally (i.e. it's your first time running) then it will look on Docker Hub and pull the image.

--mesh-size 10000

Here is where you can pass in any parameter for OpenDroneMap. See here for all the possible parameters.

Option 2: Installation from source

(Instructions below apply to Ubuntu 14.04, but the Docker image workflow has equivalent procedures for Mac OS X and Windows. See docs.docker.com)

Once Docker is installed, an OpenDroneMap Docker image can be created like so:

git clone https://github.com/OpenDroneMap/OpenDroneMap.git
cd OpenDroneMap
docker build -t my_odm_image .

Running

This run command is the same as in option 1 except you will specify my_odm_image as the tag instead of opendronemap/opendronemap.

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

You can see a breakdown in the section above.

Checking & Changing default Docker settings (RAM and CPUs)

Before running ODM it's advised to check that Docker is allocating sufficient resources to containers. In Windows this can be done in the 'Docker for Windows' program under the 'Advanced' tab.