Tasks metadata: parametrizationLink
AimLink
They aim at keeping track of the parameters used by algorithms during any ROMI task. They enable to trace back results and compare them.
Database locationLink
Located under the metadata
directory of the plant scan dataset, these JSON files contain the parameters used to run the task and are produced by each task.
Examples of task metadata JSON file names:
AnglesAndInternodes_1_0_2_0_0_1_9e87e344e6.json
Colmap_True____feature_extrac_3bbfcb1413.json
Masks_True_5_out_9adb9db801.json
TreeGraph_out__CurveSkeleton_5dca9a2821.json
Undistorted_out_____fb3e3fa0ff.json
Voxels_False___background___False_0ac9c133f7.json
Visualization.json
The tasks ids are a concatenation of the task name, the first values of the first 3 parameters sorted by parameter name and a md5hash of the name/parameters as a cananocalised json (from luigi documentation of task_id_str)
AnglesAndInternodes taskLink
ConfigurationLink
To configure this task, we use the [AnglesAndInternodes]
section in the TOML configuration file.
For example:
[AnglesAndInternodes]
upstream_task = "TreeGraph"
characteristic_length = 1.0
stem_axis_inverted = false
Database locationLink
Found under metadata/AnglesAndInternodes_*.json
.
JSON exampleLink
Example of metadata/AnglesAndInternodes_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"characteristic_length": 1.0,
"min_elongation_ratio": 2.0,
"min_fruit_size": 0.1,
"number_nn": 50,
"output_file_id": "out",
"scan_id": "",
"stem_axis": 2,
"stem_axis_inverted": "False",
"upstream_task": "ClusteredMesh"
}
}
ClusteredMesh taskLink
ConfigurationLink
To configure this task, we use the [Colmap]
section in the TOML configuration file.
For example:
[ClusteredMesh]
upstream_task = "SegmentedPointCloud"
min_vol = 1.0
min_length = 10.0
Database locationLink
Found under metadata/ClusteredMesh_*.json
.
JSON exampleLink
Example of metadata/ClusteredMesh_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"min_length": 10.0,
"min_vol": 1.0,
"output_file_id": "out",
"scan_id": "",
"upstream_task": "SegmentedPointCloud"
}
}
Colmap taskLink
ConfigurationLink
To configure this task, we use the [Colmap]
section in the TOML configuration file.
For example:
[Colmap]
matcher = "exhaustive"
compute_dense = false
[Colmap.cli_args.feature_extractor]
"--ImageReader.single_camera" = "1"
"--SiftExtraction.use_gpu" = "1"
[Colmap.cli_args.exhaustive_matcher]
"--SiftMatching.use_gpu" = "1"
[Colmap.cli_args.model_aligner]
"--robust_alignment_max_error" = "10"
[Colmap.bounding_box] # default to None
x = [150, 650]
y = [150, 650]
z = [-90, 300]
Database locationLink
Found under metadata/Colmap_*.json
.
JSON exampleLink
Example of metadata/Colmap_*.json
corresponding to the example TOML configuration file:
{
"bounding_box": {
"x": [
282.3466418101626,
590.7798175997629
],
"y": [
386.77943280470265,
589.1307313142569
],
"z": [
22.820168903922998,
259.7594718279537
]
},
"task_params": {
"align_pcd": "True",
"calibration_scan_id": "",
"cli_args": {
"exhaustive_matcher": {
"--SiftMatching.use_gpu": "1"
},
"feature_extractor": {
"--ImageReader.single_camera": "1",
"--SiftExtraction.use_gpu": "1"
},
"model_aligner": {
"--robust_alignment_max_error": "10"
}
},
"compute_dense": "False",
"matcher": "exhaustive",
"output_file_id": "out",
"scan_id": "",
"upstream_task": "ImagesFilesetExists"
}
}
CurveSkeleton taskLink
ConfigurationLink
To configure this task, we use the [CurveSkeleton]
section in the TOML configuration file.
For example:
[CurveSkeleton]
upstream_task = "TriangleMesh"
Database locationLink
Found under metadata/CurveSkeleton_*.json
.
JSON exampleLink
Example of metadata/CurveSkeleton_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"output_file_id": "out",
"scan_id": "",
"upstream_task": "TriangleMesh"
}
}
Masks taskLink
ConfigurationLink
To configure this task, we use the [Masks]
section in the TOML configuration file.
Default parametrization based on linear masking.
For example:
[Masks]
upstream_task = "Undistorted"
type = "linear"
parameters = "[0,1,0]"
dilation = 5
binarize = true
threshold = 0.3
Database locationLink
Found under metadata/Masks_*.json
.
JSON exampleLink
Example of metadata/Masks_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"binarize": "True",
"dilation": 5,
"output_file_id": "out",
"parameters": [
0,
1,
0
],
"query": {},
"scan_id": "",
"threshold": 0.3,
"type": "linear",
"upstream_task": "ImagesFilesetExists"
}
}
PointCloud taskLink
ConfigurationLink
To configure this task, we use the [PointCloud]
section in the TOML configuration file.
For example:
[PointCloud]
upstream_task = "Voxels"
level_set_value = 1.0
log = false
background_prior= -200
min_contrast = 10.0
min_score = 0.2
Database locationLink
Found under metadata/PointCloud_*.json
.
JSON exampleLink
Example of metadata/PointCloud_*.json
:
{
"task_params": {
"background_prior": 0.5,
"level_set_value": 1,
"log": "False",
"min_contrast": 10.0,
"min_score": 0.2,
"output_file_id": "out",
"scan_id": "",
"upstream_task": "Voxels"
}
}
Segmentation2D taskLink
ConfigurationLink
To configure this task, we use the [Segmentation2D]
section in the TOML configuration file.
For example:
[Segmentation2D]
upstream_task = "Undistorted"
model_fileset = "ModelFileset"
query = "{\"channel\":\"rgb\"}"
model_id = "Resnetdataset_gl_png_896_896_epoch50"
resize = true
binarize = true
dilation = 1
Sx = 896
Sy = 896
epochs = 1
batch = 1
learning_rate = 0.0001
threshold = 0.0035
[ModelFileset]
scan_id = "models"
Database locationLink
Found under metadata/Segmentation2D_*.json
.
JSON exampleLink
Example of metadata/Segmentation2D_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"Sx": 896,
"Sy": 896,
"binarize": "True",
"dilation": 1,
"inverted_labels": [
"background"
],
"labels": [],
"model_fileset": "ModelFileset",
"model_id": "Resnetdataset_gl_png_896_896_epoch50",
"output_file_id": "out",
"query": {
"channel": "rgb"
},
"resize": "True",
"scan_id": "",
"threshold": 0.0035,
"upstream_task": "Undistorted"
}
}
SegmentedPointCloud taskLink
ConfigurationLink
To configure this task, we use the [SegmentedPointCloud]
section in the TOML configuration file.
For example:
[SegmentedPointCloud]
upstream_segmentation = "Segmentation2D"
upstream_task = "PointCloud"
use_colmap_poses = true
Database locationLink
Found under metadata/SegmentedPointCloud_*.json
.
JSON exampleLink
Example of metadata/SegmentedPointCloud_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"output_file_id": "out",
"scan_id": "",
"upstream_segmentation": "Segmentation2D",
"upstream_task": "PointCloud",
"use_colmap_poses": "True"
}
}
TreeGraph taskLink
ConfigurationLink
To configure this task, we use the [TreeGraph]
section in the TOML configuration file.
For example:
[TreeGraph]
upstream_task = "CurveSkeleton"
z_axis = 2
stem_axis_inverted = false
Database locationLink
Found under metadata/TreeGraph_*.json
.
JSON exampleLink
Example of metadata/TreeGraph_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"output_file_id": "out",
"scan_id": "",
"upstream_task": "CurveSkeleton",
"z_axis": 2,
"z_orientation": 1
}
}
TriangleMesh taskLink
ConfigurationLink
To configure this task, we use the [TriangleMesh]
section in the TOML configuration file.
For example:
[TriangleMesh]
upstream_task = "PointCloud"
Database locationLink
Found under metadata/TriangleMesh_*.json
.
JSON exampleLink
Example of metadata/TriangleMesh_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"output_file_id": "out",
"scan_id": "",
"upstream_task": "PointCloud"
}
}
Undistorted taskLink
ConfigurationLink
To configure this task, we use the [Undistorted]
section in the TOML configuration file.
For example:
[Undistorted]
upstream_task = "ImagesFilesetExists"
Database locationLink
Found under metadata/Undistorted_*.json
.
JSON exampleLink
Example of metadata/Undistorted_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"output_file_id": "out",
"query": {},
"scan_id": "",
"upstream_task": "ImagesFilesetExists"
}
}
Visualization taskLink
ConfigurationLink
To configure this task, we use the [Visualization]
section in the TOML configuration file.
For example:
[Visualization]
upstream_point_cloud = "PointCloud"
upstream_mesh = "TriangleMesh"
upstream_colmap = "Colmap"
upstream_angles = "AnglesAndInternodes"
upstream_skeleton = "CurveSkeleton"
upstream_images = "ImagesFilesetExists"
max_image_size = 1500
max_point_cloud_size = 10000
thumbnail_size = 150
Database locationLink
Found under metadata/Visualization.json
.
JSON exampleLink
Example of metadata/Visualization.json
corresponding to the example TOML configuration file:
{
"files": {
"angles": "AnglesAndInternodes",
"camera": "cameras",
"images": [
"image_00000_rgb",
"image_00001_rgb",
"image_00002_rgb",
"image_00003_rgb",
"image_00004_rgb",
"image_00005_rgb",
"image_00006_rgb",
"image_00007_rgb",
"image_00008_rgb",
"image_00009_rgb",
"image_00010_rgb",
"image_00011_rgb",
"image_00012_rgb",
"image_00013_rgb",
"image_00014_rgb",
"image_00015_rgb",
"image_00016_rgb",
"image_00017_rgb",
"image_00018_rgb",
"image_00019_rgb",
"image_00020_rgb",
"image_00021_rgb",
"image_00022_rgb",
"image_00023_rgb",
"image_00024_rgb",
"image_00025_rgb",
"image_00026_rgb",
"image_00027_rgb",
"image_00028_rgb",
"image_00029_rgb",
"image_00030_rgb",
"image_00031_rgb",
"image_00032_rgb",
"image_00033_rgb",
"image_00034_rgb",
"image_00035_rgb",
"image_00036_rgb",
"image_00037_rgb",
"image_00038_rgb",
"image_00039_rgb",
"image_00040_rgb",
"image_00041_rgb",
"image_00042_rgb",
"image_00043_rgb",
"image_00044_rgb",
"image_00045_rgb",
"image_00046_rgb",
"image_00047_rgb",
"image_00048_rgb",
"image_00049_rgb",
"image_00050_rgb",
"image_00051_rgb",
"image_00052_rgb",
"image_00053_rgb",
"image_00054_rgb",
"image_00055_rgb",
"image_00056_rgb",
"image_00057_rgb",
"image_00058_rgb",
"image_00059_rgb"
],
"measures": "measures",
"mesh": "TriangleMesh",
"point_cloud": "PointCloud",
"poses": "images",
"skeleton": "CurveSkeleton",
"thumbnails": [
"thumbnail_00000_rgb",
"thumbnail_00001_rgb",
"thumbnail_00002_rgb",
"thumbnail_00003_rgb",
"thumbnail_00004_rgb",
"thumbnail_00005_rgb",
"thumbnail_00006_rgb",
"thumbnail_00007_rgb",
"thumbnail_00008_rgb",
"thumbnail_00009_rgb",
"thumbnail_00010_rgb",
"thumbnail_00011_rgb",
"thumbnail_00012_rgb",
"thumbnail_00013_rgb",
"thumbnail_00014_rgb",
"thumbnail_00015_rgb",
"thumbnail_00016_rgb",
"thumbnail_00017_rgb",
"thumbnail_00018_rgb",
"thumbnail_00019_rgb",
"thumbnail_00020_rgb",
"thumbnail_00021_rgb",
"thumbnail_00022_rgb",
"thumbnail_00023_rgb",
"thumbnail_00024_rgb",
"thumbnail_00025_rgb",
"thumbnail_00026_rgb",
"thumbnail_00027_rgb",
"thumbnail_00028_rgb",
"thumbnail_00029_rgb",
"thumbnail_00030_rgb",
"thumbnail_00031_rgb",
"thumbnail_00032_rgb",
"thumbnail_00033_rgb",
"thumbnail_00034_rgb",
"thumbnail_00035_rgb",
"thumbnail_00036_rgb",
"thumbnail_00037_rgb",
"thumbnail_00038_rgb",
"thumbnail_00039_rgb",
"thumbnail_00040_rgb",
"thumbnail_00041_rgb",
"thumbnail_00042_rgb",
"thumbnail_00043_rgb",
"thumbnail_00044_rgb",
"thumbnail_00045_rgb",
"thumbnail_00046_rgb",
"thumbnail_00047_rgb",
"thumbnail_00048_rgb",
"thumbnail_00049_rgb",
"thumbnail_00050_rgb",
"thumbnail_00051_rgb",
"thumbnail_00052_rgb",
"thumbnail_00053_rgb",
"thumbnail_00054_rgb",
"thumbnail_00055_rgb",
"thumbnail_00056_rgb",
"thumbnail_00057_rgb",
"thumbnail_00058_rgb",
"thumbnail_00059_rgb"
],
"zip": "scan"
},
"task_params": {
"max_image_size": 1500,
"max_point_cloud_size": 10000,
"output_file_id": "out",
"scan_id": "",
"thumbnail_size": 150,
"upstream_angles": "AnglesAndInternodes",
"upstream_colmap": "Colmap",
"upstream_images": "Undistorted",
"upstream_mesh": "TriangleMesh",
"upstream_point_cloud": "PointCloud",
"upstream_skeleton": "CurveSkeleton"
}
}
Voxels taskLink
ConfigurationLink
To configure this task, we use the [Voxels]
section in the TOML configuration file.
For example:
[Voxels]
upstream_mask = "Masks"
upstream_colmap = "Colmap"
use_colmap_poses = true
voxel_size = 1.0
type = "carving"
log = false
invert = false
labels = "[]"
Database locationLink
Found under metadata/Voxels_*.json
.
JSON exampleLink
Example of metadata/Voxels_*.json
corresponding to the example TOML configuration file:
{
"task_params": {
"invert": "False",
"labels": [
"background"
],
"log": "False",
"output_file_id": "out",
"scan_id": "",
"type": "averaging",
"upstream_colmap": "Colmap",
"upstream_mask": "Segmentation2D",
"use_colmap_poses": "True",
"voxel_size": 0.01
}
}
Scan taskLink
Todo
For some reason the parameters are defined in the metadata/metadata.json
file.
Definition can be found here.