An automated workflow for in-flight radiometric calibration of UAV imagery
Project description
reflectdetect
An automated workflow for in-flight radiometric calibration of UAV imagery
Overview
Welcome to the official repository for the paper, "Application Note: An automated workflow for in-flight radiometric calibration of UAV imagery".
Abstract
UAVs equipped with optical sensors have transformed remote sensing in vegetation science by providing high-resolution, on-demand data, enhancing studies in forestry, agriculture, and environmental monitoring. However, accurate radiometric calibration of UAV imagery remains challenging due to environmental variability and the limitations of existing methods, such as the common single gray reference panel, which is prone to errors. reflectdetect, an open-source tool, addresses these challenges by automating radiometric calibration using geotagging and AprilTag detection. This dual-module approach ensures reliable calibration under varying conditions, reduces human error, and increases efficiency through a user-friendly CLI. reflectdetect's modular design supports future enhancements and broader applicability across research fields.
Workflow 1: Geolocation-Based Calibration
- Gather Panel Reflectance Data
For the bands you will capture images in, either from the manufacturer (for commercial panels) or using a field spectrometer (for DIY panels). Save these values in apanel_properties.json
file. - Position the calibration panels in the field
- Capture the locations of the panel corners
We used a Device Name in our testing, save the data in apanel_locations.gpkg
file. - Fly your drone mission, capturing images.
- Rectifying and geo-reference the images
We used Metashape in our testing - Run reflectdetect:
Convert the orthophotos to reflectance data.
Workflow 2: AprilTag-Based Calibration
- Gather Panel Reflectance Data
For the bands you will capture images in, either from the manufacturer (for commercial panels) or using a field spectrometer (for DIY panels). Save these values in apanel_properties.json
file. - Print an AprilTag for each panel, see Official AprilTag Repo
- Field Setup
Position the calibration panels and place the AprilTags according to the placement guide. - Fly your drone mission, capturing images.
- Run reflectdetect:
Convert the images to reflectance data.
Key Concepts and Vocabulary
-
Panel: Calibration sheets placed in the field, used to compare captured intensity values in images with known reflectance values in the
panel_properties.json
file. -
AprilTag / Tag: A visual marker used for accurate detection in images.
-
Field: The area captured by drone imagery.
-
Image: Individual bands of captured data. reflectdetect assumes all images were taken at equal time intervals and named in the format
*_{band_index}.tif
.
For example,IMG_0052_6.tif
indicates the 6th band. -
Orthophoto / Photo: An image where all bands are combined and geo-referenced.
Installation
Installing Python
To get started with this project, you'll need to have Python installed on your system. Follow the steps below to install Python:
1. Check if Python is Already Installed
Before installing, check if Python is already installed on your system:
-
Windows/Mac/Linux:
Open a terminal or command prompt and run the following command:
python --version
or
python3 --version
If Python is installed, you will see a version number. (Python 3.10 or higher is required)
2. Download and Install Python
If Python is not installed, follow these steps:
-
Windows:
- Go to the official Python website.
- Download the latest version for Windows.
- Run the installer. Make sure to check the option "Add Python to PATH" during installation.
- Complete the installation process.
-
Mac:
- Download the latest version of Python from the Python website.
- Open the downloaded
.pkg
file and follow the instructions to install. - Alternatively, you can use Homebrew:
brew install python
-
Linux:
- Use the package manager for your distribution (e.g.,
apt
for Ubuntu):sudo apt update sudo apt install python3
- For other distributions, refer to your package manager's documentation.
- Use the package manager for your distribution (e.g.,
Installing ExifTool
ExifTool is an essential tool for working with image metadata in reflectdetect. Follow the instructions below to install ExifTool on your system.
Windows Installation
-
Download ExifTool:
- Visit the ExifTool Home Page and download the latest 64bit Windows
Executable (
exiftool-xx.xx_64.zip
).
- Visit the ExifTool Home Page and download the latest 64bit Windows
Executable (
-
Extract the Zip File:
- Double-click the downloaded
.zip
file to open it, then drag theexiftool-xx.xx_64x
folder to your Desktop ( wherexx
represents the version).
- Double-click the downloaded
-
Prepare for Command Line Use:
- Open the
exiftool-12.96_xx
folder on your Desktop. - Rename the
exiftool(-k).exe
file toexiftool.exe
. - Move the folder folder to a convenient location (e.g.,
C:\ExifTool\
or another folder of your choice).
- Open the
-
Add the Folder to the PATH:
- Open the Start Menu, search and select
Edit environment variables for your account
. - Under the User variables section, find the variable named
PATH
and select it. Then click Edit. - In the new window, click New and enter the path to the folder where you moved exiftool.exe (e.g.,
C:\ExifTool
). - Click OK to close all the windows.
- Open the Start Menu, search and select
-
Verify Installation:
- Open Command Prompt (
cmd
) and typeexiftool
. You should see ExifTool's help information, confirming it is installed and recognized by your system.
- Open Command Prompt (
macOS Installation
-
Download ExifTool:
- Visit the ExifTool Home Page and download the latest MacOS Package (
ExifTool-xx.xx.pkg
).
- Visit the ExifTool Home Page and download the latest MacOS Package (
-
Install ExifTool:
- Double-click the downloaded
.pkg
file and follow the installation instructions.
- Double-click the downloaded
-
Verify Installation:
- Open Terminal and type
exiftool
. You should see ExifTool's help information, confirming it is installed and recognized by your system.
- Open Terminal and type
Linux Installation
-
Install via Package Manager:
- On most Linux distributions, you can install ExifTool using the package manager. For example, on Ubuntu, run:
sudo apt-get install libimage-exiftool-perl
- On most Linux distributions, you can install ExifTool using the package manager. For example, on Ubuntu, run:
-
Manual Install:
- For manual installation instruction visit the ExifTool Install Page
-
Verify Installation:
- Open your terminal and type
exiftool
. You should see ExifTool's help information, confirming it is installed and recognized by your system.
- Open your terminal and type
Installing reflectdetect
To install the reflectdetect CLI tools to your system, open a command line or terminal and run
pip install reflectdetect
Now the reflectdetect CLI Tools reflectdetect-converter
, reflectdetect-apriltag
and reflectdetect-geolocation
should be available.
Usage
Find the information about running each workflow in their respective files:
Planned Features
- Support for unequal time intervals between images
- Customize parameters on a per panel basis
- Add dataset verification script
- Remove 5% of outliers in panel intensities value
Contributing
We welcome and encourage contributions! If you'd like to get involved, please feel free to:
- Fork the repository.
- Make your changes.
- Submit a pull request (PR).
We'll review your PR as soon as possible. Thank you for contributing!
Gallery
Apriltag Placement Guide
AI Usage Card
References
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file reflectdetect-0.1.13.tar.gz
.
File metadata
- Download URL: reflectdetect-0.1.13.tar.gz
- Upload date:
- Size: 51.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4f9aebd0cf322096eeb33da89cfca13c356706087eead689f6cc1a7724e9030 |
|
MD5 | 4aed67619f8394f5cee461d4a15d3e4f |
|
BLAKE2b-256 | c95f4379f62de608ce58549e35cdbdd3b0d5f5f7cfc09e22707e28aea7420f91 |
File details
Details for the file reflectdetect-0.1.13-py3-none-any.whl
.
File metadata
- Download URL: reflectdetect-0.1.13-py3-none-any.whl
- Upload date:
- Size: 60.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47fdc124dc17e9b8ec2670383bb082ac1899bace2b2aed82176a2ac066ae895d |
|
MD5 | 59ebf6addff01a3be0370f7e52a63e79 |
|
BLAKE2b-256 | 21a086047a5d7224d4f8500a0906f5c42b77a959861af281411abe8cf6018a97 |