__version__ = "1.0" from meshroom.core import desc 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="", uid=[0], ), desc.ListAttribute( elementDesc=desc.File( name="featuresFolder", label="Features Folder", description="Folder containing some extracted features and descriptors.", value="", uid=[0], ), name="featuresFolders", label="Features Folders", description="Folder(s) containing the extracted features and descriptors." ), desc.ListAttribute( elementDesc=desc.File( name="matchesFolder", label="Matches Folder", description="Folder containing some matches.", value="", uid=[0], ), name="matchesFolders", label="Matches Folders", description="Folder(s) in which computed matches are stored." ), desc.ChoiceParam( name="describerTypes", label="Describer Types", description="Describer types used to describe an image.", value=["dspsift"], values=["sift", "sift_float", "sift_upright", "dspsift", "akaze", "akaze_liop", "akaze_mldb", "cctag3", "cctag4", "sift_ocv", "akaze_ocv", "tag16h5"], exclusive=False, uid=[0], joinChar=",", ), desc.IntParam( name="minInputTrackLength", label="Min Input Track Length", description="Minimum track length.", value=2, range=(2, 10, 1), uid=[0], ), 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, uid=[], 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, uid=[0], ), desc.ChoiceParam( name="verboseLevel", label="Verbose Level", description="Verbosity level (fatal, error, warning, info, debug, trace).", value="info", values=["fatal", "error", "warning", "info", "debug", "trace"], exclusive=True, uid=[], ) ] outputs = [ desc.File( name="output", label="Tracks", description="Path to the output tracks file.", value=desc.Node.internalFolder + "tracksFile.json", uid=[], ), ]