CARS is a dedicated and open source 3D tool to produce Digital Surface Models from satellite imaging by photogrammetry. This Multiview stereo pipeline is intended for massive DSM production with a robust and performant design.
It is composed of:
A Python 3D API, based on xarray, enabling to realize all the computation steps leading to a DSM.
An end-to-end processing chain based on this API.
The chain can use dask (local or distributed cluster) or multiprocessing libraries to distribute the computations. The distributed cluster require centralized files storage and uses PBS scheduler only for now.
More precisely, CARS is composed of well known steps in Multiview Stereo Pipeline divided in two parts to process images stereo pairs :
Prepare sparse pipeline : The goal is to compute DSM required early data on the whole images to prepare the main computation. It also detects data-induced failures and degraded cases.
Compute_dsm dense pipeline : This step is composed of the intensive parts of CARS pipeline. It takes as inputs the prepare step’s outputs of several pairs and computes a unique DSM from them.
See Main CLI for CARS main command line interface.
Each stereo images pair is pre-processed independently via prepare pipeline. Each pipeline execution generates refined epipolar resampling grids and an estimation of the disparity range to calibrate the heavy intensive computing part. This pipeline process uses an approximated dem (typically SRTM). As shown in the figure above, the workflow is organized in sequential steps from input pairs (and metadata) to output data, except for the computation of sparse matches (performed tile-wise and distributed among Dask workers).
The prepare part will perform the following steps:
Compute the stereo-rectification grids of the input pair’s images
Compute sift matches between the left and right images in epipolar geometry
Derive an optimal disparity range from the matches
Derive a bilinear correction model of the right image’s stereo-rectification grid in order to minimize the epipolar error
Apply the estimated correction to the right grid
Export the left and corrected right grids
DSM compute pipeline
This dense mode pipeline processes a set of pairs and computes an unique DSM from them. Each pair will be processed independently using the epipolar grids and the disparity range computed in the prepare step. A corresponding set of points clouds will then be generated. Then this set will be merged together during the rasterization step.
After prepare pipeline(s), the
compute_dsm pipeline will be in charge of:
resampling the images pairs in epipolar geometry (corrected one for the right image) by using SRTM in order to reduce the disparity intervals to explore,
compute disparity for each image pair in epipolar geometry
triangulating the sights and get for each point of the reference image a latitude, longitude, altitude point
filtering the 3D points cloud via two consecutive filters. The first one removes the small groups of 3D points. The second filters the points which have the most scattered neighbors. Those two filters are activated by default.
projecting these altitudes on a regular grid as well as the associated color
For more details, here are the reference papers:
Youssefi D., Michel, J., Sarrazin, E., Buffe, F., Cournet, M., Delvit, J., L’Helguen, C., Melet, O., Emilien, A., Bosman, J., 2020. CARS: A photogrammetry pipeline using dask graphs to construct a global 3d model. IGARSS - IEEE International Geoscience and Remote Sensing Symposium.(https://ieeexplore.ieee.org/document/9324020)
Michel, J., Sarrazin, E., Youssefi, D., Cournet, M., Buffe, F., Delvit, J., Emilien, A., Bosman, J., Melet, O., L’Helguen, C., 2020. A new satellite imagery stereo pipeline designed for scalability, robustness and performance. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences.(https://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/V-2-2020/171/2020/)