Create 3D model from pictures using ODM

1 minute read

In this tutorial, we will be creating a 3D model of a tajine from 44 pictures. We will be using OpenDroneMap open source software.


Setting up OpenDroneMap

  • Install docker desktop

  • Run from the following command in terminal to download odm image to your local machine (1,5 GB approx.):

docker pull opendronemap/odm

Building the 3D model

  • Place some images (JPEGs or TIFFs) in a folder named “images” in a project folder in the datasets folder in the home directory (for example /home/your-user/datasets/tajine/images)
Tajine images for odm
  • Run the following command:
docker run -ti --rm -v /home/youruser/datasets:/datasets opendronemap/odm --project-path /datasets project

This command will be used all the time, for the first time it will download the docker image to your machine (1,5 Gb approx.).

Viewing the model

When the process finishes, the results will be organized as follows:

|-- images/
    |-- img-1234.jpg
    |-- ...
|-- opensfm/
    |-- see mapillary/opensfm repository for more info
|-- odm_meshing/
    |-- odm_mesh.ply                    # A 3D mesh
|-- odm_texturing/
    |-- odm_textured_model.obj          # Textured mesh
    |-- odm_textured_model_geo.obj      # Georeferenced textured mesh
|-- odm_georeferencing/
    |-- odm_georeferenced_model.laz     # LAZ format point cloud
|-- odm_orthophoto/
    |-- odm_orthophoto.tif              # Orthophoto GeoTiff

Open the textured model (odm_textured_model_geo.obj) or the mesh using MeshLab (open source system for processing and editing 3D triangular meshes).

First result

first model unedited

Final result

After some editing on Mesh-Lab, here are the final results:

final tajine