correct time-sift formatting

pull/238/head
Stephen Mather 2025-07-07 12:25:46 -04:00 zatwierdzone przez GitHub
rodzic 325aefe032
commit 792f031457
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
1 zmienionych plików z 13 dodań i 33 usunięć

Wyświetl plik

@ -270,10 +270,9 @@ When previously mapped sites need revisited, OpenDroneMap can align multiple ver
Animated gif comparing two separately processed, but aligned digital surface models.
Plugin Time-SIFT
================
----------------
This script does Time-SIFT processing with ODM. Time-SIFT is a method
for multi-temporal analysis without the need to co-registrate the data.
The script at contrib/time-sift in the ODM repository does Time-SIFT processing with ODM. Time-SIFT is a method for multi-temporal analysis without the need to co-registrate the data.
D. Feurer, F. Vinatier, Joining multi-epoch archival aerial images in
a single SfM block allows 3-D change detection with almost
@ -283,7 +282,7 @@ for multi-temporal analysis without the need to co-registrate the data.
(https://doi.org/10.1016/j.isprsjprs.2018.10.016)
Requirements
------------
============
- ODM ! :-)
- subprocess
@ -296,13 +295,12 @@ Requirements
- textwrap
Usage
-----
=====
Provided example
~~~~~~~~~~~~~~~~
================
Download or clone `this
repo <https://forge.inrae.fr/Denis.Feurer/timesift-odm-data-example.git>`__
Download or clone `this repo <https://forge.inrae.fr/Denis.Feurer/timesift-odm-data-example.git>`__
to get example data.
Then execute
@ -311,34 +309,19 @@ Then execute
python Timesift_odm.py datasets --end-with odm_filterpoints
It should make the Time-SIFT processing on the downloaded example data,
stopping after the filtered dense clouds step.
It should make the Time-SIFT processing on the downloaded example data, stopping after the filtered dense clouds step.
In the destination dir, you should obtain new directories, ``0_before``
and ``1_after`` at the same level as the ``time-sift-block`` directory.
These new directories contain all the results natively co-registered.
In the destination dir, you should obtain new directories, ``0_before`` and ``1_after`` at the same level as the ``time-sift-block`` directory. These new directories contain all the results natively co-registered.
You can then use `CloudCompare <https://cloudcompare.org/>`__ to compute
distance between the
``datasets/0_before/odm_filterpoints/point_cloud.ply`` and the
``datasets/1_after/odm_filterpoints/point_cloud.ply`` and obtain this
image showing the difference between the two 3D surfaces. Here, two soil
samples were excavated as can be seen on the image below. |image1|
You can then use `CloudCompare <https://cloudcompare.org/>`__ to compute distance between the ``datasets/0_before/odm_filterpoints/point_cloud.ply`` and the ``datasets/1_after/odm_filterpoints point_cloud.ply`` and obtain this image showing the difference between the two 3D surfaces. Here, two soil samples were excavated as can be seen on the image below. |image1|
Your own data
~~~~~~~~~~~~~
In your dataset directory (usually ``datasets``, but you can have chosen
another name) you have to prepare a Time-SIFT project directory (default
name : ``time-sift-block``, *can be tuned via a parameter*) that
contains : \* ``images/`` : a subdirectory with all images of all
epochs. This directory name is fixed as it is the one expected by ODM \*
``images_epochs.txt`` : a file that has the same format as the file used
for the split and merge ODM function. This file name *can be tuned via a
parameter*.
In your dataset directory (usually ``datasets``, but you can have chosen another name) you have to prepare a Time-SIFT project directory (default name : ``time-sift-block``, *can be tuned via a parameter*) that contains : \* ``images/`` : a subdirectory with all images of all epochs. This directory name is fixed as it is the one expected by ODM \*
``images_epochs.txt`` : a file that has the same format as the file used for the split and merge ODM function. This file name *can be tuned via a parameter*.
The ``images_epochs.txt`` file has two columns, the first column
contains image names and the second contains the epoch name as follows
The ``images_epochs.txt`` file has two columns, the first column contains image names and the second contains the epoch name as follows
::
@ -358,10 +341,7 @@ Your directory, before running the script, should look like this :
├── images/
└── images_epochs.txt
At the end of the script you obtain a directory by epoch (at the same
level as the Time-SIFT project directory). Each directory is processed
with images of each epoch and all results are natively co-registered due
to the initial sfm step done with all images.
At the end of the script you obtain a directory by epoch (at the same level as the Time-SIFT project directory). Each directory is processed with images of each epoch and all results are natively co-registered due to the initial sfm step done with all images.
::