Former-commit-id: 49fec77e9b
pull/1161/head
Dakota Benjamin 2016-02-26 15:20:42 -05:00
rodzic d42e55aefd
commit 4402c662df
1 zmienionych plików z 61 dodań i 76 usunięć

137
README.md
Wyświetl plik

@ -40,28 +40,78 @@ Steps to get OpenDroneMap running:
Support for Ubuntu 12.04 is currently BROKEN with the addition of OpenSfM and Ceres-Solver. We are working hard to get it working again in the future.
Run install.sh to build.
#### Building OpenDroneMap using git
./install.sh
cd path/to/odm/dir
git clone https://github.com/OpenDroneMap/OpenDroneMap.git .
export PYTHONPATH=$PYTHONPATH:`pwd`/SuperBuild/install/lib/python2.7/dist-packages
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/SuperBuild/install/lib
bash configure.sh
mkdir build && cd build && cmake .. && make && cd ..
#### Running OpenDroneMap
From a directory full of your images, run
First you need a set of images, which may or may not be georeferenced. There are two ways OpenDroneMap can understand geographic coordinates. First, the images can be geotagged in their EXIF data. This is the default. Alternatively, you can create a GCP file, [a process detailed here](https://github.com/OpenDroneMap/OpenDroneMap/wiki/2.-Running-OpenDroneMap#running-odm-with-ground-control)
./run.py
Create a project folder and places your images in an "images" directory:
An overview of installing and running OpenDroneMap on Ubuntu can be found here: https://www.youtube.com/watch?v=e2qp3o8caPs
Here are some other videos:
|-- /path/to/project/
|-- images/
|-- img-1234.jpg
|-- ...
Then run:
python run.py --project-path /path/to/project
There are many options for tuning your project. See the [wiki](https://github.com/OpenDroneMap/OpenDroneMap/wiki/3.-Run-Time-Parameters) or run `python run.py -h`
When the process finishes, the results will be organized as follows
|-- images/
|-- img-1234.jpg
|-- ...
|-- images_resize/
|-- img-1234.jpg
|-- ...
|-- opensfm/
|-- not much useful in here
|-- pmvs/
|-- recon0/
|-- models/
|-- option-0000.ply # Dense point cloud
|-- odm_meshing/
|-- odm_mesh.ply # A 3D mesh
|-- odm_meshing_log.txt # Output of the meshing task. May point out errors.
|-- odm_texturing/
|-- odm_textured_model.obj # Textured mesh
|-- odm_textured_model_geo.obj # Georeferenced textured mesh
|-- texture_N.jpg # Associated textured images used by the model
|-- odm_georeferencing/
|-- odm_georeferenced_model.ply # A georeferenced dense point cloud
|-- odm_georeferenced_model.ply.laz # LAZ format point cloud
|-- odm_georeferenced_model.csv # XYZ format point cloud
|-- odm_georeferencing_log.txt # Georeferencing log
|-- odm_georeferencing_utm_log.txt # Log for the extract_utm portion
|-- odm_georeferencing/
|-- odm_orthophoto.png # Orthophoto image (no coordinates)
|-- odm_orthophoto.tif # Orthophoto GeoTiff
|-- odm_orthophoto_log.txt # Log file
|-- gdal_translate_log.txt # Log for georeferencing the png file
Here are some other videos, which may be outdated:
- https://www.youtube.com/watch?v=7ZTufQkODLs (2015-01-30)
- https://www.youtube.com/watch?v=m0i4GQdfl8A (2015-03-15)
Now that texturing is in the code base, you can access the full textured meshes using MeshLab. Open MeshLab, choose `File:Import Mesh` and choose your textured mesh from a location similar to the following: `reconstruction-with-image-size-1200-results\odm_texturing\odm_textured_model.obj`
For Ubuntu 15.10 users, this will help you get running:
```
sudo apt-get install python-xmltodict
sudo ln -s /usr/lib/x86_64-linux-gnu/libproj.so.9 /usr/lib/libproj.so
```
__For Ubuntu 15.10 users, this will help you get running:__
sudo apt-get install python-xmltodict
sudo ln -s /usr/lib/x86_64-linux-gnu/libproj.so.9 /usr/lib/libproj.so
---
@ -89,68 +139,3 @@ Documentation:
For documentation, please take a look at our [wiki](https://github.com/OpenDroneMap/OpenDroneMap/wiki).
Troubleshooting:
================
Make sure you have enough RAM and CPU. Only lowercase file extension supported now.
If you run ODM with your own camera, it is possible you will see something like this:
```
- configuration:
--cmvs-maxImages: 500
--end-with: pmvs
--match-size: 200
--matcher-ratio: 0.6
--matcher-threshold: 2
--pmvs-csize: 2
--pmvs-level: 1
--pmvs-minImageNum: 3
--pmvs-threshold: 0.7
--pmvs-wsize: 7
--resize-to: 1200
--start-with: resize
- source files - Fri Sep 19 13:47:42 UTC 2014
no CCD width or focal length found for DSC05391.JPG - camera: "SONY DSC-HX5V"
no CCD width or focal length found for DSC05392.JPG - camera: "SONY DSC-HX5V"
no CCD width or focal length found for DSC05393.JPG - camera: "SONY DSC-HX5V"
no CCD width or focal length found for DSC05394.JPG - camera: "SONY DSC-HX5V"
no CCD width or focal length found for DSC05395.JPG - camera: "SONY DSC-HX5V"
no CCD width or focal length found for DSC05396.JPG - camera: "SONY DSC-HX5V"
no CCD width or focal length found for DSC05397.JPG - camera: "SONY DSC-HX5V"
no CCD width or focal length found for DSC05398.JPG - camera: "SONY DSC-HX5V"
no CCD width or focal length found for DSC05399.JPG - camera: "SONY DSC-HX5V"
found no usable images - quitting
Died at ../../OpenDroneMap/./run.pl line 364.
```
This means that your camera is not in the database, https://github.com/OpenDroneMap/OpenDroneMap/blob/gh-pages/ccd_defs.json
This problem is easily remedied. We need to know CCD size in the camera. We'll get these for our Sony Cyber-shot DSC-HX5 from dpreview: http://www.dpreview.com/products/sony/compacts/sony_dschx5/specifications
So, we'll add the following line to our ccd_defs.json:
"SONY DSC-HX5V": 6.104,
To check that ccd_defs.json compiles, run `ccd_defs_check.py`
If it prints the message 'CCD_DEFS compiles OK', then you can commit your changes.
And so others can use it, we'll do a pull request to add it to our array for everyone else.
---
Maintainers can run the ccd_defs.json compilation test automatically by creating a
symbolic link in .git/hooks to hooks/pre-commit
cd .git/hooks
ln -s ../../hooks/pre-commit
If ccd_defs.json does not compile, then the pre-commit hook will abort the commit.