Meshroom/meshroom/nodes/aliceVision/TracksBuilding.py
2024-11-25 16:32:08 +01:00

97 lines
3.3 KiB
Python

__version__ = "1.0"
from meshroom.core import desc
from meshroom.core.utils import DESCRIBER_TYPES, VERBOSE_LEVEL
class TracksBuilding(desc.AVCommandLineNode):
commandLine = 'aliceVision_tracksBuilding {allParams}'
size = desc.DynamicNodeSize('input')
category = 'Sparse Reconstruction'
documentation = '''
It fuses all feature matches between image pairs into tracks. Each track represents a candidate point in space, visible from multiple cameras.
'''
inputs = [
desc.File(
name="input",
label="SfMData",
description="Input SfMData file.",
value="",
exposed=True,
),
desc.ListAttribute(
elementDesc=desc.File(
name="featuresFolder",
label="Features Folder",
description="Folder containing some extracted features and descriptors.",
value="",
),
name="featuresFolders",
label="Features Folders",
description="Folder(s) containing the extracted features and descriptors.",
exposed=True,
),
desc.ListAttribute(
elementDesc=desc.File(
name="matchesFolder",
label="Matches Folder",
description="Folder containing some matches.",
value="",
),
name="matchesFolders",
label="Matches Folders",
description="Folder(s) in which computed matches are stored.",
exposed=True,
),
desc.ChoiceParam(
name="describerTypes",
label="Describer Types",
description="Describer types used to describe an image.",
values=DESCRIBER_TYPES,
value=["dspsift"],
exclusive=False,
joinChar=",",
exposed=True,
),
desc.IntParam(
name="minInputTrackLength",
label="Min Input Track Length",
description="Minimum track length.",
value=2,
range=(2, 10, 1),
),
desc.BoolParam(
name="useOnlyMatchesFromInputFolder",
label="Use Only Matches From Input Folder",
description="Use only matches from the input 'matchesFolder' parameter.\n"
"Matches folders previously added to the SfMData file will be ignored.",
value=False,
invalidate=False,
advanced=True,
),
desc.BoolParam(
name="filterTrackForks",
label="Filter Track Forks",
description="Enable/Disable the track forks removal. A track contains a fork when incoherent matches\n"
"lead to multiple features in the same image for a single track.",
value=False,
),
desc.ChoiceParam(
name="verboseLevel",
label="Verbose Level",
description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL,
value="info",
),
]
outputs = [
desc.File(
name="output",
label="Tracks",
description="Path to the output tracks file.",
value=desc.Node.internalFolder + "tracksFile.json",
),
]