wisescootering / infrareddrone

Aerial infrared photography
GNU Affero General Public License v3.0
15 stars 4 forks source link

infrared & visible Aerial photography

our drone setup

infrared+visible

General information

Main features


๐Ÿ”‹ Set up



๐Ÿ‹ Docker


Note:


๐Ÿ”ฅ Classic software installation


For practical reasons, only windows is supported as of now... For anything else please use the docker version!


๐ŸŽ“ Tutorial



โœˆ๏ธ Flying tutorial


Note: spinning the drone above the QR code (Aruco) chart is also possible, it does not require a turntable but it's less recommended


โš ๏ธ REMINDER โš ๏ธ


โ–ถ๏ธ Image processing tutorial

synchronization validation

flight altitude extracted from Exif data

Fused results visible and NIR to provided NDVI for instance

โŒ Keep in mind that things are not perfect and there can sometimes be failures. If there's a picture which is very important, you are encouraged to re-run the processing with a manual option to assist the alignment (next to the processed image, you can find a .bat dedicated to reprocessing your image with manual assistance : example HYPERLAPSE_0008_REDO.bat).

assisted alignment UI

๐Ÿ—บ๏ธ Third party maps software

Original metadata from the DJI drone are copied into the output file therefore these images are ready to be re-used in thirdparty software. We'll prepare tiles to be stitched in OpenDroneMap and later allow you to visualize under QGIS with access to maps.

๐Ÿ—บ๏ธOpenDroneMap

You'll need to have ๐Ÿ‹ Docker running to be able to stitch maps using OpenDroneMaps.

Note: In case you didn't use --odm-multispectral option in run.py you'll get a folder for each spectral modality (visible, nir, ndvi, vir)

Stitching NIR images in QGIS

๐Ÿ—บ๏ธQGIS

Once stitched with ODM, you can visualize the map in QGIS and start annotating your map.

Please refer to the following tutorial (in french) on how to create vegetation visualization under QGIS.

๐Ÿ’ฒ Pix4DFields

For instance, creating a map is possible in Pix4DField in case you own a license (I used the Trial version which is available for 15days)

Stitching NIR images in Pix 4D fields


๐Ÿ†˜ Details



โš™๏ธ run.py command line interface


run.py [--config CONFIG] [--clean-proxy] [--odm-multispectral] [--traces {vis,nir,vir,ndvi}] [--selection {all,best-synchro,best-mapping}]


โš™๏ธ Configuration files


โ“ At step 2/ of the tutorial, you have probably copy pasted the config.json from the sample folder. Here are some details on how configuration works.

โš™๏ธ Create configuration file from the template ( .xlsx for beginers or .json for advanced users)

If you want to change the configuration, you have 2 options

JSON configuration approach

{
  "synchro":"Synchro/synchro.npy",
  "output": "ImgIRdrone",
  "visible": "AerialPhotography/*.DNG",
  "nir": "AerialPhotography/*.RAW",
  "visible_timelapse": 2.0,
  "nir_timelapse": 3.0
}

Excel configuration approach

๐Ÿšซ EXCEL CONFIG IS NOT SUGGESTED / DEPRECATED ๐Ÿšซ

configuration excel

Link with synchro.bat is made automatically

Manual fallback : forcing parameters

for instance, you have to copy/paste into the excel

Synchronization software

Alignment and Fusion


๐Ÿค“ Technical details


Details on processing

Data processing description

Pre-processing

Post-processing

Semi-automatic fallback

While reviewing the data, there may still be some issues in alignment. Unfortunately multispectral alignment is an ill-posed problem and sometimes the automatic system fails. There's still a way to save your images.


๐ŸŒŽ Exploiting data in third-party software



โœ๐Ÿป Scientific references

๐Ÿ“Ž Technical notes


๐ŸŽฎ CODE STUFF - Image processing and visualization features


With this project comes a few useful tool, especially the interactive image processing GUI which makes complex pipelines easily tunable.

๐Ÿงฑ Image processing pipeline

interactive.imagepipe.Imagepipe class is designed to build a simple image processing pipeline with interactive sliders. If you're interested, refer to the documentation


๐Ÿ“ Camera calibration

Refer to the calibration documents Details on calibration procedure & extra documents


๐Ÿ“œ Release note


v1.0

v1.1

v1.2

v1.3