Québec Simulated Forest
Dataset
Large-scale
QC-SF provides around 1.7 billions fully annoted point of a virtual boreal forest of Québec region. They were scanned with a virtual airborn LiDAR flying over 65,000 plots of 400m². When added up, they correspond to 20km²
Informative
Each of the 65,000 plots are highly diverse, both in structure and in content. The three main parameters are tree density, species mingling and low vegetation content. We provide classical scan information as well as a detailled segmentation and instance annotations
Realistic
Every model used to generate the virtual forest are real, or backed-up by previous litterature : Tree models were scanned with terestrial LiDAR and Ground models are extracted from real airborn LiDAR scans. We carried the LiDAR simulation with the awesome HELIOS++ software.
Download QC-SF Dataset
Compact version (33.1 GB) :
Each point contain X Y Z intensity speciesClassificiation
Extended version (47.8 GB) :
Each point contain X Y Z intensity returnNumber numberOfReturn objectInstance SpeciesClassificiation ElementClassificiation
Tasks
QC-SF dataset contain three forest vision tasks :
Tree instance segmentation 🌲
0: Ground
1: tree 1
2: tree 2 ...
n: Low vegetation
Species semantic segmentation 🍂
0: Ground
1: Abies Balsamea
2: Picea Marianna
3: Low vegetation
Element semantic segmentation 🌿
0: Ground
1: Foliage
2: Wood
3: Low vegetation
How to use QC-SF Dataset
Instructions (python 3.8 recommended)
Extract the archive
tar -xvf qc-sf.tar.bz2
Install OSToolBox
pip install ostoolbox
Import OSToolBox
import ostoolbox as ost
Get the path names of .ply files
file_list=ost.getFileBySubstr('path/to/qc-sf','.ply)
Open one .ply file
points=ost.readPly(path/to/file.ply)
Folder architecture
The archive is split in 3 folder: train, validation and test containing respectively 50k, 5k and 10k files.
Each dataset folder follows the same architecture as :
- test/
- train/
- val/
- td_5/
- ab_0/
- 5_0_0.ply
- 5_0_1.ply
- 5_0_2.ply
- ...
- ab_2/
- ab_4/
- ...
- td_8/
- td_10/
- ...
Each .ply file correspond to a plot data saved as little endian binary with following ascii header, for respectively compact and extended versions:
ply
format binary_little_endian 1.0
element vertex 12506
property float32 x
property float32 y
property float32 z
property float32 intensity
property int16 class
end_header
ply
format binary_little_endian 1.0
element vertex 12506
property float32 x
property float32 y
property float32 z
property float32 intensity
property int16 returnNumber
property int16 numberOfReturns
property int16 object
property int16 class
property int16 class_foliage
end_header
Paper
Extract the archive
tar -xvf qc-sf.tar.bz2
Install OSToolBox
pip install ostoolbox
Import OSToolBox
import ostoolbox as ost
Get the path names of .ply files
file_list=ost.getFileBySubstr('path/to/qc-sf','.ply)
Open one .ply file
points=ost.readPly(path/to/file.ply)
The archive is split in 3 folder: train, validation and test containing respectively 50k, 5k and 10k files.
Each dataset folder follows the same architecture as :
- test/
- train/
- val/
- td_5/
- ab_0/
- 5_0_0.ply
- 5_0_1.ply
- 5_0_2.ply
- ...
- ab_2/
- ab_4/
- ...
- ab_0/
- td_8/
- td_10/
- ...
- td_5/
Each .ply file correspond to a plot data saved as little endian binary with following ascii header, for respectively compact and extended versions:
ply format binary_little_endian 1.0 element vertex 12506 property float32 x property float32 y property float32 z property float32 intensity property int16 class end_header
ply format binary_little_endian 1.0 element vertex 12506 property float32 x property float32 y property float32 z property float32 intensity property int16 returnNumber property int16 numberOfReturns property int16 object property int16 class property int16 class_foliage end_header
Paper
In writting process, hopefully will be published in WACV 2025
Author contact: Olivier Stocker; Images source: icons8.com