mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-08-01 07:48:37 +02:00
[nodes] D-G: Harmonize and improve labels and descriptions
Use CamelCase for all labels, always end descriptions with periods, and replace the mixed use of single and double quotes with double quotes only.
This commit is contained in:
parent
241bead35c
commit
5c2865968d
11 changed files with 971 additions and 935 deletions
File diff suppressed because it is too large
Load diff
|
@ -18,32 +18,32 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='SfMData',
|
||||
description='SfMData file.',
|
||||
value='',
|
||||
name="input",
|
||||
label="SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.File(
|
||||
name="depthMapsFolder",
|
||||
label="DepthMaps Folder",
|
||||
description="Input depth maps folder",
|
||||
label="Depth Maps Folder",
|
||||
description="Input depth maps folder.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='minViewAngle',
|
||||
label='Min View Angle',
|
||||
description='Minimum angle between two views.',
|
||||
name="minViewAngle",
|
||||
label="Min View Angle",
|
||||
description="Minimum angle between two views.",
|
||||
value=2.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='maxViewAngle',
|
||||
label='Max View Angle',
|
||||
description='Maximum angle between two views.',
|
||||
name="maxViewAngle",
|
||||
label="Max View Angle",
|
||||
description="Maximum angle between two views.",
|
||||
value=70.0,
|
||||
range=(10.0, 120.0, 1.0),
|
||||
uid=[0],
|
||||
|
@ -51,7 +51,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
),
|
||||
desc.IntParam(
|
||||
name="nNearestCams",
|
||||
label="Number of Nearest Cameras",
|
||||
label="Number Of Nearest Cameras",
|
||||
description="Number of nearest cameras used for filtering.",
|
||||
value=10,
|
||||
range=(0, 20, 1),
|
||||
|
@ -61,7 +61,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
desc.IntParam(
|
||||
name="minNumOfConsistentCams",
|
||||
label="Min Consistent Cameras",
|
||||
description="Min Number of Consistent Cameras",
|
||||
description="Minimum number of consistent cameras.",
|
||||
value=3,
|
||||
range=(0, 10, 1),
|
||||
uid=[0],
|
||||
|
@ -69,15 +69,15 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
desc.IntParam(
|
||||
name="minNumOfConsistentCamsWithLowSimilarity",
|
||||
label="Min Consistent Cameras Bad Similarity",
|
||||
description="Min Number of Consistent Cameras for pixels with weak similarity value",
|
||||
description="Minimum number of consistent cameras for pixels with weak similarity value.",
|
||||
value=4,
|
||||
range=(0, 10, 1),
|
||||
uid=[0],
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='pixToleranceFactor',
|
||||
label='Tolerance Size',
|
||||
description='Filtering tolerance size factor (in px).',
|
||||
name="pixToleranceFactor",
|
||||
label="Tolerance Size",
|
||||
description="Filtering tolerance size factor, in pixels.",
|
||||
value=2.0,
|
||||
range=(0.001, 10.0, 0.1),
|
||||
uid=[0],
|
||||
|
@ -85,8 +85,8 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
),
|
||||
desc.IntParam(
|
||||
name="pixSizeBall",
|
||||
label="Filtering Size in Pixels",
|
||||
description="Filtering size in pixels",
|
||||
label="Filtering Size",
|
||||
description="Filtering size in pixels.",
|
||||
value=0,
|
||||
range=(0, 10, 1),
|
||||
uid=[0],
|
||||
|
@ -94,27 +94,27 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
),
|
||||
desc.IntParam(
|
||||
name="pixSizeBallWithLowSimilarity",
|
||||
label="Filtering Size in Pixels Bad Similarity",
|
||||
description="Filtering size in pixels",
|
||||
label="Filtering Size Bad Similarity",
|
||||
description="Filtering size in pixels for low similarity.",
|
||||
value=0,
|
||||
range=(0, 10, 1),
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='computeNormalMaps',
|
||||
label='Compute Normal Maps',
|
||||
description='Compute normal maps per depth map.',
|
||||
name="computeNormalMaps",
|
||||
label="Compute Normal Maps",
|
||||
description="Compute normal maps for each depth map.",
|
||||
value=False,
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
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'],
|
||||
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=[],
|
||||
),
|
||||
|
@ -122,9 +122,9 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
|
||||
outputs = [
|
||||
desc.File(
|
||||
name='output',
|
||||
label='Filtered DepthMaps Folder',
|
||||
description='Output folder for generated depth maps.',
|
||||
name="output",
|
||||
label="Filtered Depth Maps Folder",
|
||||
description="Output folder for generated depth maps.",
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
),
|
||||
|
@ -132,21 +132,21 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
# by specifying that it generates 2 sequences of images
|
||||
# (see in Viewer2D.qml how these attributes can be used)
|
||||
desc.File(
|
||||
name='depth',
|
||||
label='Depth Maps',
|
||||
description='Filtered depth maps.',
|
||||
semantic='image',
|
||||
value=desc.Node.internalFolder + '<VIEW_ID>_depthMap.exr',
|
||||
name="depth",
|
||||
label="Depth Maps",
|
||||
description="Filtered depth maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
|
||||
uid=[],
|
||||
group='', # do not export on the command line
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
name='sim',
|
||||
label='Sim Maps',
|
||||
description='Filtered sim maps.',
|
||||
semantic='image',
|
||||
value=desc.Node.internalFolder + '<VIEW_ID>_simMap.exr',
|
||||
name="sim",
|
||||
label="Sim Maps",
|
||||
description="Filtered sim maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
|
||||
uid=[],
|
||||
group='', # do not export on the command line
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
]
|
||||
|
|
|
@ -14,36 +14,45 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
|
|||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='Input SfMData',
|
||||
description='SfMData file.',
|
||||
value='',
|
||||
name="input",
|
||||
label="Input SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.File(
|
||||
name='checkerboards',
|
||||
label='Checkerboards Folder',
|
||||
description='Folder containing checkerboard JSON files.',
|
||||
value='',
|
||||
name="checkerboards",
|
||||
label="Checkerboards Folder",
|
||||
description="Folder containing checkerboard JSON files.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='cameraModel',
|
||||
label='Camera Model',
|
||||
description='Camera model used to estimate distortion.',
|
||||
value='3deanamorphic4',
|
||||
values=['3deanamorphic4'],
|
||||
name="cameraModel",
|
||||
label="Camera Model",
|
||||
description="Camera model used to estimate distortion.",
|
||||
value="3deanamorphic4",
|
||||
values=["3deanamorphic4"],
|
||||
exclusive=True,
|
||||
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='SfMData File',
|
||||
description='Path to the output SfMData file.',
|
||||
value=desc.Node.internalFolder + 'sfmData.sfm',
|
||||
name="output",
|
||||
label="SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
uid=[],
|
||||
)
|
||||
]
|
||||
|
|
|
@ -14,71 +14,73 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='Input SfMData',
|
||||
description='SfMData file containing a complete SfM.',
|
||||
value='',
|
||||
name="input",
|
||||
label="Input SfMData",
|
||||
description="SfMData file containing a complete SfM.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.File(
|
||||
name='sfmDataFilter',
|
||||
label='SfMData Filter',
|
||||
description='Filter out cameras from the export if they are part of this SfMData. Export all cameras if empty.',
|
||||
value='',
|
||||
name="sfmDataFilter",
|
||||
label="SfMData Filter",
|
||||
description="Filter out cameras from the export if they are part of this SfMData.\n"
|
||||
"If empty, export all cameras.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.File(
|
||||
name='viewFilter',
|
||||
label='View Filter',
|
||||
description='Select the cameras to export using an expression based on the image filepath. Export all cameras if empty.',
|
||||
value='',
|
||||
name="viewFilter",
|
||||
label="View Filter",
|
||||
description="Select the cameras to export using an expression based on the image filepath.\n"
|
||||
"If empty, export all cameras.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='exportUVMaps',
|
||||
label='Export UV Maps',
|
||||
description='Export UV Maps, absolutes values (x,y) of distortion are encoding in UV channels.',
|
||||
name="exportUVMaps",
|
||||
label="Export UV Maps",
|
||||
description="Export UV maps. Absolutes values (x, y) of distortion are encoded in UV channels.",
|
||||
value=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='exportUndistortedImages',
|
||||
label='Export Undistorted Images',
|
||||
description='Export Undistorted Images.',
|
||||
name="exportUndistortedImages",
|
||||
label="Export Undistorted Images",
|
||||
description="Export undistorted images.",
|
||||
value=False,
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='undistortedImageType',
|
||||
label='Undistort Image Format ',
|
||||
description='Image file format to use for undistorted images ("jpg", "png", "tif", "exr (half)").',
|
||||
value='exr',
|
||||
values=['jpg', 'png', 'tif', 'exr'],
|
||||
name="undistortedImageType",
|
||||
label="Undistort Image Format",
|
||||
description="Image file format to use for undistorted images ('jpg', 'png', 'tif', 'exr (half)').",
|
||||
value="exr",
|
||||
values=["jpg", "png", "tif", "exr"],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
enabled= lambda node: node.exportUndistortedImages.value,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='exportFullROD',
|
||||
label='Export Full ROD',
|
||||
description='Export Full ROD.',
|
||||
name="exportFullROD",
|
||||
label="Export Full ROD",
|
||||
description="Export full ROD.",
|
||||
value=False,
|
||||
enabled=lambda node: node.exportUndistortedImages.value and node.undistortedImageType.value == 'exr',
|
||||
enabled=lambda node: node.exportUndistortedImages.value and node.undistortedImageType.value == "exr",
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='correctPrincipalPoint',
|
||||
label='Correct Principal Point ',
|
||||
description='Correct Principal Point.',
|
||||
name="correctPrincipalPoint",
|
||||
label="Correct Principal Point",
|
||||
description="Correct principal point.",
|
||||
value=True,
|
||||
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'],
|
||||
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=[],
|
||||
),
|
||||
|
@ -86,26 +88,26 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
|
||||
outputs = [
|
||||
desc.File(
|
||||
name='output',
|
||||
label='Folder',
|
||||
description='Output folder with animated camera and undistorted images.',
|
||||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder with animated camera and undistorted images.",
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
),
|
||||
desc.File(
|
||||
name='outputCamera',
|
||||
label='Camera',
|
||||
description='Output filename for the animated camera in Alembic format.',
|
||||
value=desc.Node.internalFolder + 'camera.abc',
|
||||
group='', # exclude from command line
|
||||
name="outputCamera",
|
||||
label="Camera",
|
||||
description="Output filename for the animated camera in Alembic format.",
|
||||
value=desc.Node.internalFolder + "camera.abc",
|
||||
group="", # exclude from command line
|
||||
uid=[],
|
||||
),
|
||||
desc.File(
|
||||
name='outputUndistorted',
|
||||
label='Undistorted Images',
|
||||
description='Output Undistorted images.',
|
||||
value=desc.Node.internalFolder + 'undistort',
|
||||
group='', # exclude from command line
|
||||
name="outputUndistorted",
|
||||
label="Undistorted Images",
|
||||
description="Output undistorted images.",
|
||||
value=desc.Node.internalFolder + "undistort",
|
||||
group="", # exclude from command line
|
||||
uid=[],
|
||||
),
|
||||
]
|
||||
|
|
|
@ -7,21 +7,23 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
|
|||
commandLine = 'aliceVision_exportColoredPointCloud {allParams}'
|
||||
|
||||
category = 'Export'
|
||||
documentation = '''
|
||||
'''
|
||||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='Input SfMData',
|
||||
description='SfMData file containing a complete SfM.',
|
||||
value='',
|
||||
name="input",
|
||||
label="Input SfMData",
|
||||
description="SfMData file containing a complete SfM.",
|
||||
value="",
|
||||
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'],
|
||||
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=[],
|
||||
),
|
||||
|
@ -29,9 +31,9 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
|
|||
|
||||
outputs = [
|
||||
desc.File(
|
||||
name='output',
|
||||
label='Point Cloud Filepath',
|
||||
description='Output point cloud with visibilities as SfMData file.',
|
||||
name="output",
|
||||
label="Point Cloud Filepath",
|
||||
description="Output point cloud with visibilities as SfMData file.",
|
||||
value="{cache}/{nodeType}/{uid0}/pointCloud.abc",
|
||||
uid=[],
|
||||
),
|
||||
|
|
|
@ -8,30 +8,32 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
size = desc.DynamicNodeSize('input')
|
||||
|
||||
category = 'Export'
|
||||
documentation = '''
|
||||
'''
|
||||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='Input',
|
||||
description='SfMData file.',
|
||||
value='',
|
||||
name="input",
|
||||
label="Input",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
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'],
|
||||
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"],
|
||||
exclusive=False,
|
||||
uid=[0],
|
||||
joinChar=',',
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
name="featuresFolder",
|
||||
label="Features Folder",
|
||||
description="",
|
||||
description="Folder containing some extracted features and descriptors.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
|
@ -43,7 +45,7 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
elementDesc=desc.File(
|
||||
name="matchesFolder",
|
||||
label="Matches Folder",
|
||||
description="",
|
||||
description="Folder containing some computed matches.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
|
@ -52,21 +54,21 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
description="Folder(s) in which computed matches are stored."
|
||||
),
|
||||
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'],
|
||||
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='Folder',
|
||||
description='Output path for the features and descriptors files (*.feat, *.desc).',
|
||||
name="output",
|
||||
label="Folder",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
),
|
||||
|
|
|
@ -16,19 +16,28 @@ MeshroomMaya contains a user interface to browse all cameras.
|
|||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='Input SfMData',
|
||||
description='',
|
||||
value='',
|
||||
name="input",
|
||||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
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='Folder',
|
||||
description='Folder for MeshroomMaya outputs: undistorted images and thumbnails.',
|
||||
name="output",
|
||||
label="Folder",
|
||||
description="Folder for MeshroomMaya outputs: undistorted images and thumbnails.",
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
),
|
||||
|
|
|
@ -32,126 +32,126 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='SfMData',
|
||||
description='SfMData file.',
|
||||
value='',
|
||||
name="input",
|
||||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.File(
|
||||
name='masksFolder',
|
||||
label='Masks Folder',
|
||||
description='Use masks to filter features. Filename should be the same or the image uid.',
|
||||
value='',
|
||||
name="masksFolder",
|
||||
label="Masks Folder",
|
||||
description="Use masks to filter features. Filename should be the same or the image UID.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
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'],
|
||||
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=',',
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='describerPreset',
|
||||
label='Describer Density',
|
||||
description='Control the ImageDescriber density (low, medium, normal, high, ultra).\n'
|
||||
'Warning: Use ULTRA only on small datasets.',
|
||||
value='normal',
|
||||
values=['low', 'medium', 'normal', 'high', 'ultra', 'custom'],
|
||||
name="describerPreset",
|
||||
label="Describer Density",
|
||||
description="Control the ImageDescriber density (low, medium, normal, high, ultra).\n"
|
||||
"Warning: Use ULTRA only on small datasets.",
|
||||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra", "custom"],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
group=lambda node: 'allParams' if node.describerPreset.value != 'custom' else None,
|
||||
),
|
||||
desc.IntParam(
|
||||
name='maxNbFeatures',
|
||||
label='Max Nb Features',
|
||||
description='Max number of features extracted (0 means default value based on Describer Density).',
|
||||
name="maxNbFeatures",
|
||||
label="Max Nb Features",
|
||||
description="Maximum number of features extracted (0 means default value based on Describer Density).",
|
||||
value=0,
|
||||
range=(0, 100000, 1000),
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
enabled=lambda node: (node.describerPreset.value == 'custom'),
|
||||
enabled=lambda node: (node.describerPreset.value == "custom"),
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='describerQuality',
|
||||
label='Describer Quality',
|
||||
description='Control the ImageDescriber quality (low, medium, normal, high, ultra).',
|
||||
value='normal',
|
||||
values=['low', 'medium', 'normal', 'high', 'ultra'],
|
||||
name="describerQuality",
|
||||
label="Describer Quality",
|
||||
description="Control the ImageDescriber quality (low, medium, normal, high, ultra).",
|
||||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='contrastFiltering',
|
||||
label='Contrast Filtering',
|
||||
name="contrastFiltering",
|
||||
label="Contrast Filtering",
|
||||
description="Contrast filtering method to ignore features with too low contrast that can be considered as noise:\n"
|
||||
"* Static: Fixed threshold.\n"
|
||||
"* AdaptiveToMedianVariance: Based on image content analysis.\n"
|
||||
"* NoFiltering: Disable contrast filtering.\n"
|
||||
"* GridSortOctaves: Grid Sort but per octaves (and only per scale at the end).\n"
|
||||
"* GridSort: Grid sort per octaves and at the end (scale * peakValue).\n"
|
||||
"* GridSortScaleSteps: Grid sort per octaves and at the end (scale and then peakValue).\n"
|
||||
"* NonExtremaFiltering: Filter non-extrema peakValues.\n",
|
||||
value='GridSort',
|
||||
values=['Static', 'AdaptiveToMedianVariance', 'NoFiltering', 'GridSortOctaves', 'GridSort', 'GridSortScaleSteps', 'GridSortOctaveSteps', 'NonExtremaFiltering'],
|
||||
" - Static: Fixed threshold.\n"
|
||||
" - AdaptiveToMedianVariance: Based on image content analysis.\n"
|
||||
" - NoFiltering: Disable contrast filtering.\n"
|
||||
" - GridSortOctaves: Grid Sort but per octaves (and only per scale at the end).\n"
|
||||
" - GridSort: Grid sort per octaves and at the end (scale * peakValue).\n"
|
||||
" - GridSortScaleSteps: Grid sort per octaves and at the end (scale and then peakValue).\n"
|
||||
" - NonExtremaFiltering: Filter non-extrema peakValues.\n",
|
||||
value="GridSort",
|
||||
values=["Static", "AdaptiveToMedianVariance", "NoFiltering", "GridSortOctaves", "GridSort", "GridSortScaleSteps", "GridSortOctaveSteps", "NonExtremaFiltering"],
|
||||
exclusive=True,
|
||||
advanced=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='relativePeakThreshold',
|
||||
label='Relative Peak Threshold',
|
||||
description='Peak Threshold relative to median of gradients.',
|
||||
name="relativePeakThreshold",
|
||||
label="Relative Peak Threshold",
|
||||
description="Peak threshold relative to median of gradients.",
|
||||
value=0.01,
|
||||
range=(0.01, 1.0, 0.001),
|
||||
advanced=True,
|
||||
uid=[0],
|
||||
enabled=lambda node: (node.contrastFiltering.value == 'AdaptiveToMedianVariance'),
|
||||
enabled=lambda node: (node.contrastFiltering.value == "AdaptiveToMedianVariance"),
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='gridFiltering',
|
||||
label='Grid Filtering',
|
||||
description='Enable grid filtering. Highly recommended to ensure usable number of features.',
|
||||
name="gridFiltering",
|
||||
label="Grid Filtering",
|
||||
description="Enable grid filtering. Highly recommended to ensure usable number of features.",
|
||||
value=True,
|
||||
advanced=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='workingColorSpace',
|
||||
label='Working Color Space',
|
||||
description='Allows you to choose the color space in which the data are processed.',
|
||||
value='sRGB',
|
||||
values=['sRGB', 'Linear', 'ACES2065-1', 'ACEScg', 'no_conversion'],
|
||||
name="workingColorSpace",
|
||||
label="Working Color Space",
|
||||
description="Allows you to choose the color space in which the data are processed.",
|
||||
value="sRGB",
|
||||
values=["sRGB", "Linear", "ACES2065-1", "ACEScg", "no_conversion"],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='forceCpuExtraction',
|
||||
label='Force CPU Extraction',
|
||||
description='Use only CPU feature extraction.',
|
||||
name="forceCpuExtraction",
|
||||
label="Force CPU Extraction",
|
||||
description="Use only CPU feature extraction.",
|
||||
value=True,
|
||||
uid=[],
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name='maxThreads',
|
||||
label='Max Nb Threads',
|
||||
description='Specifies the maximum number of threads to run simultaneously (0 for automatic mode).',
|
||||
name="maxThreads",
|
||||
label="Max Nb Threads",
|
||||
description="Maximum number of threads to run simultaneously (0 for automatic mode).",
|
||||
value=0,
|
||||
range=(0, 24, 1),
|
||||
uid=[],
|
||||
advanced=True,
|
||||
),
|
||||
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'],
|
||||
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=[],
|
||||
)
|
||||
|
@ -159,9 +159,9 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
|
||||
outputs = [
|
||||
desc.File(
|
||||
name='output',
|
||||
label='Features Folder',
|
||||
description='Output path for the features and descriptors files (*.feat, *.desc).',
|
||||
name="output",
|
||||
label="Features Folder",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
),
|
||||
|
|
|
@ -34,17 +34,17 @@ then it checks the number of features that validates this model and iterate thro
|
|||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='SfMData',
|
||||
description='SfMData file.',
|
||||
value='',
|
||||
name="input",
|
||||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
name="featuresFolder",
|
||||
label="Features Folder",
|
||||
description="",
|
||||
description="Folder containing some extracted features and descriptors.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
|
@ -53,173 +53,177 @@ then it checks the number of features that validates this model and iterate thro
|
|||
description="Folder(s) containing the extracted features and descriptors."
|
||||
),
|
||||
desc.File(
|
||||
name='imagePairsList',
|
||||
label='Image Pairs',
|
||||
description='Path to a file which contains the list of image pairs to match.',
|
||||
value='',
|
||||
name="imagePairsList",
|
||||
label="Image Pairs",
|
||||
description="Path to a file which contains the list of image pairs to match.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
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'],
|
||||
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=',',
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='photometricMatchingMethod',
|
||||
label='Photometric Matching Method',
|
||||
description='For Scalar based regions descriptor\n'
|
||||
' * BRUTE_FORCE_L2: L2 BruteForce matching\n'
|
||||
' * ANN_L2: L2 Approximate Nearest Neighbor matching\n'
|
||||
' * CASCADE_HASHING_L2: L2 Cascade Hashing matching\n'
|
||||
' * FAST_CASCADE_HASHING_L2: L2 Cascade Hashing with precomputed hashed regions (faster than CASCADE_HASHING_L2 but use more memory) \n'
|
||||
'For Binary based descriptor\n'
|
||||
' * BRUTE_FORCE_HAMMING: BruteForce Hamming matching',
|
||||
value='ANN_L2',
|
||||
values=('BRUTE_FORCE_L2', 'ANN_L2', 'CASCADE_HASHING_L2', 'FAST_CASCADE_HASHING_L2', 'BRUTE_FORCE_HAMMING'),
|
||||
name="photometricMatchingMethod",
|
||||
label="Photometric Matching Method",
|
||||
description="For scalar based regions descriptors:\n"
|
||||
" - BRUTE_FORCE_L2: L2 BruteForce matching\n"
|
||||
" - ANN_L2: L2 Approximate Nearest Neighbor matching\n"
|
||||
" - CASCADE_HASHING_L2: L2 Cascade Hashing matching\n"
|
||||
" - FAST_CASCADE_HASHING_L2: L2 Cascade Hashing with precomputed hashed regions (faster than CASCADE_HASHING_L2 but use more memory)\n"
|
||||
"For Binary based descriptors:\n"
|
||||
" - BRUTE_FORCE_HAMMING: BruteForce Hamming matching",
|
||||
value="ANN_L2",
|
||||
values=("BRUTE_FORCE_L2", "ANN_L2", "CASCADE_HASHING_L2", "FAST_CASCADE_HASHING_L2", "BRUTE_FORCE_HAMMING"),
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='geometricEstimator',
|
||||
label='Geometric Estimator',
|
||||
description='Geometric estimator: (acransac: A-Contrario Ransac, loransac: LO-Ransac (only available for "fundamental_matrix" model)',
|
||||
value='acransac',
|
||||
values=['acransac', 'loransac'],
|
||||
name="geometricEstimator",
|
||||
label="Geometric Estimator",
|
||||
description="Geometric estimator:\n"
|
||||
" - acransac: A-Contrario Ransac.\n"
|
||||
" - loransac: LO-Ransac (only available for 'fundamental_matrix' model).",
|
||||
value="acransac",
|
||||
values=["acransac", "loransac"],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='geometricFilterType',
|
||||
label='Geometric Filter Type',
|
||||
description='Geometric validation method to filter features matches: \n'
|
||||
' * fundamental_matrix\n'
|
||||
' * fundamental_with_distortion\n'
|
||||
' * essential_matrix\n'
|
||||
' * homography_matrix\n'
|
||||
' * homography_growing\n'
|
||||
' * no_filtering',
|
||||
value='fundamental_matrix',
|
||||
values=['fundamental_matrix', 'fundamental_with_distortion', 'essential_matrix', 'homography_matrix', 'homography_growing', 'no_filtering'],
|
||||
name="geometricFilterType",
|
||||
label="Geometric Filter Type",
|
||||
description="Geometric validation method to filter features matches:\n"
|
||||
" - fundamental_matrix\n"
|
||||
" - fundamental_with_distortion\n"
|
||||
" - essential_matrix\n"
|
||||
" - homography_matrix\n"
|
||||
" - homography_growing\n"
|
||||
" - no_filtering",
|
||||
value="fundamental_matrix",
|
||||
values=["fundamental_matrix", "fundamental_with_distortion", "essential_matrix", "homography_matrix", "homography_growing", "no_filtering"],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='distanceRatio',
|
||||
label='Distance Ratio',
|
||||
description='Distance ratio to discard non meaningful matches.',
|
||||
name="distanceRatio",
|
||||
label="Distance Ratio",
|
||||
description="Distance ratio to discard non meaningful matches.",
|
||||
value=0.8,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name='maxIteration',
|
||||
label='Max Iteration',
|
||||
description='Maximum number of iterations allowed in ransac step.',
|
||||
name="maxIteration",
|
||||
label="Max Iterations",
|
||||
description="Maximum number of iterations allowed in the ransac step.",
|
||||
value=2048,
|
||||
range=(1, 20000, 1),
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='geometricError',
|
||||
label='Geometric Validation Error',
|
||||
description='Maximum error (in pixels) allowed for features matching during geometric verification.\n'
|
||||
'If set to 0, it will select a threshold according to the localizer estimator used\n'
|
||||
'(if ACRansac, it will analyze the input data to select the optimal value).',
|
||||
name="geometricError",
|
||||
label="Geometric Validation Error",
|
||||
description="Maximum error (in pixels) allowed for features matching during geometric verification.\n"
|
||||
"If set to 0, it will select a threshold according to the localizer estimator used\n"
|
||||
"(if ACRansac, it will analyze the input data to select the optimal value).",
|
||||
value=0.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='knownPosesGeometricErrorMax',
|
||||
label='Known Poses Geometric Error Max',
|
||||
description='Maximum error (in pixels) allowed for features matching guided by geometric information from known camera poses.\n'
|
||||
'If set to 0 it lets the ACRansac select an optimal value.',
|
||||
name="knownPosesGeometricErrorMax",
|
||||
label="Known Poses Geometric Error Max",
|
||||
description="Maximum error (in pixels) allowed for features matching guided by geometric information from known camera poses.\n"
|
||||
"If set to 0 it lets the ACRansac select an optimal value.",
|
||||
value=5.0,
|
||||
range=(0.0, 100.0, 1.0),
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='minRequired2DMotion',
|
||||
label='Minimal 2D Motion',
|
||||
description='Filter out matches without enough 2D motion (threshold in pixels). Use -1 to disable this filter. Useful for filtering the background during acquisition with a turntable and a static camera.',
|
||||
name="minRequired2DMotion",
|
||||
label="Minimal 2D Motion",
|
||||
description="Filter out matches without enough 2D motion (threshold in pixels).\n"
|
||||
"Use -1 to disable this filter.\n"
|
||||
"Useful for filtering the background during acquisition with a turntable and a static camera.",
|
||||
value=-1.0,
|
||||
range=(0.0, 10.0, 1.0),
|
||||
uid=[0],
|
||||
),
|
||||
desc.IntParam(
|
||||
name='maxMatches',
|
||||
label='Max Matches',
|
||||
description='Maximum number of matches to keep.',
|
||||
name="maxMatches",
|
||||
label="Max Matches",
|
||||
description="Maximum number of matches to keep.",
|
||||
value=0,
|
||||
range=(0, 10000, 1),
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='savePutativeMatches',
|
||||
label='Save Putative Matches',
|
||||
description='putative matches.',
|
||||
name="savePutativeMatches",
|
||||
label="Save Putative Matches",
|
||||
description="Save putative matches.",
|
||||
value=False,
|
||||
uid=[0],
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='crossMatching',
|
||||
label='Cross Matching',
|
||||
description='Make sure that the matching process is symmetric (same matches for I->J than for J->I)',
|
||||
name="crossMatching",
|
||||
label="Cross Matching",
|
||||
description="Ensure that the matching process is symmetric (same matches for I->J than for J->I).",
|
||||
value=False,
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='guidedMatching',
|
||||
label='Guided Matching',
|
||||
description='the found model to improve the pairwise correspondences.',
|
||||
name="guidedMatching",
|
||||
label="Guided Matching",
|
||||
description="Use the found model to improve the pairwise correspondences.",
|
||||
value=False,
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='matchFromKnownCameraPoses',
|
||||
label='Match From Known Camera Poses',
|
||||
description='Enable the usage of geometric information from known camera poses to guide the feature matching.\n'
|
||||
'If some cameras have unknown poses (so there is no geometric prior), the standard feature matching will be performed.',
|
||||
name="matchFromKnownCameraPoses",
|
||||
label="Match From Known Camera Poses",
|
||||
description="Enable the usage of geometric information from known camera poses to guide the feature matching.\n"
|
||||
"If some cameras have unknown poses (so there is no geometric prior), the standard feature matching will be performed.",
|
||||
value=False,
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='exportDebugFiles',
|
||||
label='Export Debug Files',
|
||||
description='debug files (svg, dot).',
|
||||
name="exportDebugFiles",
|
||||
label="Export Debug Files",
|
||||
description="Expor debug files (svg, dot).",
|
||||
value=False,
|
||||
uid=[],
|
||||
advanced=True
|
||||
),
|
||||
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'],
|
||||
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='Matches Folder',
|
||||
description='Path to a folder in which computed matches will be stored.',
|
||||
name="output",
|
||||
label="Matches Folder",
|
||||
description="Path to a folder in which the computed matches are stored.",
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
),
|
||||
|
|
|
@ -16,88 +16,88 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='Input Folder',
|
||||
description='Input Folder with evaluation datasets.',
|
||||
value='',
|
||||
name="input",
|
||||
label="Input Folder",
|
||||
description="Input folder with evaluation datasets.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='describerTypes',
|
||||
label='Describer Types',
|
||||
description='Describer types used to describe an image.',
|
||||
value=['sift'],
|
||||
values=['sift', 'sift_float', 'sift_upright', 'dspsift', 'akaze', 'akaze_liop', 'akaze_mldb', 'cctag3', 'cctag4', 'sift_ocv', 'akaze_ocv'],
|
||||
name="describerTypes",
|
||||
label="Describer Types",
|
||||
description="Describer types used to describe an image.",
|
||||
value=["sift"],
|
||||
values=["sift", "sift_float", "sift_upright", "dspsift", "akaze", "akaze_liop", "akaze_mldb", "cctag3", "cctag4", "sift_ocv", "akaze_ocv"],
|
||||
exclusive=False,
|
||||
uid=[0],
|
||||
joinChar=',',
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='describerPreset',
|
||||
label='Describer Density',
|
||||
description='Control the ImageDescriber density (low, medium, normal, high, ultra).\n'
|
||||
'Warning: Use ULTRA only on small datasets.',
|
||||
value='normal',
|
||||
values=['low', 'medium', 'normal', 'high', 'ultra'],
|
||||
name="describerPreset",
|
||||
label="Describer Density",
|
||||
description="Control the ImageDescriber density (low, medium, normal, high, ultra).\n"
|
||||
"Warning: Use ULTRA only on small datasets.",
|
||||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='describerQuality',
|
||||
label='Describer Quality',
|
||||
description='Control the ImageDescriber quality (low, medium, normal, high, ultra).',
|
||||
value='normal',
|
||||
values=['low', 'medium', 'normal', 'high', 'ultra'],
|
||||
name="describerQuality",
|
||||
label="Describer Quality",
|
||||
description="Control the ImageDescriber quality (low, medium, normal, high, ultra).",
|
||||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='contrastFiltering',
|
||||
label='Contrast Filtering',
|
||||
name="contrastFiltering",
|
||||
label="Contrast Filtering",
|
||||
description="Contrast filtering method to ignore features with too low contrast that can be considered as noise:\n"
|
||||
"* Static: Fixed threshold.\n"
|
||||
"* AdaptiveToMedianVariance: Based on image content analysis.\n"
|
||||
"* NoFiltering: Disable contrast filtering.\n"
|
||||
"* GridSortOctaves: Grid Sort but per octaves (and only per scale at the end).\n"
|
||||
"* GridSort: Grid sort per octaves and at the end (scale * peakValue).\n"
|
||||
"* GridSortScaleSteps: Grid sort per octaves and at the end (scale and then peakValue).\n"
|
||||
"* NonExtremaFiltering: Filter non-extrema peakValues.\n",
|
||||
value='Static',
|
||||
values=['Static', 'AdaptiveToMedianVariance', 'NoFiltering', 'GridSortOctaves', 'GridSort', 'GridSortScaleSteps', 'GridSortOctaveSteps', 'NonExtremaFiltering'],
|
||||
" - Static: Fixed threshold.\n"
|
||||
" - AdaptiveToMedianVariance: Based on image content analysis.\n"
|
||||
" - NoFiltering: Disable contrast filtering.\n"
|
||||
" - GridSortOctaves: Grid Sort but per octaves (and only per scale at the end).\n"
|
||||
" - GridSort: Grid sort per octaves and at the end (scale * peakValue).\n"
|
||||
" - GridSortScaleSteps: Grid sort per octaves and at the end (scale and then peakValue).\n"
|
||||
" - NonExtremaFiltering: Filter non-extrema peakValues.",
|
||||
value="Static",
|
||||
values=["Static", "AdaptiveToMedianVariance", "NoFiltering", "GridSortOctaves", "GridSort", "GridSortScaleSteps", "GridSortOctaveSteps", "NonExtremaFiltering"],
|
||||
exclusive=True,
|
||||
advanced=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='relativePeakThreshold',
|
||||
label='Relative Peak Threshold',
|
||||
description='Peak Threshold relative to median of gradients.',
|
||||
name="relativePeakThreshold",
|
||||
label="Relative Peak Threshold",
|
||||
description="Peak threashold relative to the median of gradients.",
|
||||
value=0.01,
|
||||
range=(0.01, 1.0, 0.001),
|
||||
advanced=True,
|
||||
uid=[0],
|
||||
enabled=lambda node: (node.contrastFiltering.value == 'AdaptiveToMedianVariance'),
|
||||
enabled=lambda node: (node.contrastFiltering.value == "AdaptiveToMedianVariance"),
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='gridFiltering',
|
||||
label='Grid Filtering',
|
||||
description='Enable grid filtering. Highly recommended to ensure usable number of features.',
|
||||
name="gridFiltering",
|
||||
label="Grid Filtering",
|
||||
description="Enable grid filtering. Highly recommended to ensure a usable number of features.",
|
||||
value=True,
|
||||
advanced=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='forceCpuExtraction',
|
||||
label='Force CPU Extraction',
|
||||
description='Use only CPU feature extraction.',
|
||||
name="forceCpuExtraction",
|
||||
label="Force CPU Extraction",
|
||||
description="Use only CPU feature extraction.",
|
||||
value=True,
|
||||
uid=[],
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name='invalidate',
|
||||
label='Invalidate',
|
||||
description='Invalidate.',
|
||||
name="invalidate",
|
||||
label="Invalidate",
|
||||
description="Invalidate.",
|
||||
value=0,
|
||||
range=(0, 10000, 1),
|
||||
group="",
|
||||
|
@ -106,17 +106,17 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
desc.StringParam(
|
||||
name="comments",
|
||||
label="Comments",
|
||||
description="Comments",
|
||||
description="Comments.",
|
||||
value="",
|
||||
group="",
|
||||
uid=[],
|
||||
),
|
||||
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'],
|
||||
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=[],
|
||||
)
|
||||
|
@ -124,9 +124,9 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
|
||||
outputs = [
|
||||
desc.File(
|
||||
name='output',
|
||||
label='Folder',
|
||||
description='Output path for the features and descriptors files (*.feat, *.desc).',
|
||||
name="output",
|
||||
label="Folder",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
),
|
||||
|
|
|
@ -18,85 +18,85 @@ It is known to be faster but less robust to challenging datasets than the Increm
|
|||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='input',
|
||||
label='Input',
|
||||
description="SfM Data File",
|
||||
value='',
|
||||
name="input",
|
||||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
name='featuresFolder',
|
||||
label='Features Folder',
|
||||
description="",
|
||||
value='',
|
||||
name="featuresFolder",
|
||||
label="Features Folder",
|
||||
description="Folder containing some extracted features.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
name='featuresFolders',
|
||||
label='Features Folders',
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
description="Folder(s) containing the extracted features."
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
name='matchesFolder',
|
||||
label='Matches Folder',
|
||||
description="",
|
||||
value='',
|
||||
name="matchesFolder",
|
||||
label="Matches Folder",
|
||||
description="Folder containing some computed matches.",
|
||||
value="",
|
||||
uid=[0],
|
||||
),
|
||||
name='matchesFolders',
|
||||
label='Matches Folders',
|
||||
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'],
|
||||
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"],
|
||||
exclusive=False,
|
||||
uid=[0],
|
||||
joinChar=',',
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='rotationAveraging',
|
||||
label='Rotation Averaging Method',
|
||||
description="Method for rotation averaging :\n"
|
||||
" * L1 minimization\n"
|
||||
" * L2 minimization\n",
|
||||
values=['L1_minimization', 'L2_minimization'],
|
||||
value='L2_minimization',
|
||||
name="rotationAveraging",
|
||||
label="Rotation Averaging Method",
|
||||
description="Method for rotation averaging:\n"
|
||||
" - L1 minimization\n"
|
||||
" - L2 minimization",
|
||||
values=["L1_minimization", "L2_minimization"],
|
||||
value="L2_minimization",
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='translationAveraging',
|
||||
label='Translation Averaging Method',
|
||||
description="Method for translation averaging :\n"
|
||||
" * L1 minimization\n"
|
||||
" * L2 minimization of sum of squared Chordal distances\n"
|
||||
" * L1 soft minimization",
|
||||
values=['L1_minimization', 'L2_minimization', 'L1_soft_minimization'],
|
||||
value='L1_soft_minimization',
|
||||
name="translationAveraging",
|
||||
label="Translation Averaging Method",
|
||||
description="Method for translation averaging:\n"
|
||||
" - L1 minimization\n"
|
||||
" - L2 minimization of sum of squared Chordal distances\n"
|
||||
" - L1 soft minimization",
|
||||
values=["L1_minimization", "L2_minimization", "L1_soft_minimization"],
|
||||
value="L1_soft_minimization",
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.BoolParam(
|
||||
name='lockAllIntrinsics',
|
||||
label='Force Lock of All Intrinsic Camera Parameters.',
|
||||
description='Force to keep constant all the intrinsics parameters of the cameras (focal length, \n'
|
||||
'principal point, distortion if any) during the reconstruction.\n'
|
||||
'This may be helpful if the input cameras are already fully calibrated.',
|
||||
name="lockAllIntrinsics",
|
||||
label="Lock All Intrinsic Camera Parameters",
|
||||
description="Force to keep all the intrinsics parameters of the cameras (focal length, \n"
|
||||
"principal point, distortion if any) constant during the reconstruction.\n"
|
||||
"This may be helpful if the input cameras are already fully calibrated.",
|
||||
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'],
|
||||
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=[],
|
||||
)
|
||||
|
@ -104,23 +104,23 @@ It is known to be faster but less robust to challenging datasets than the Increm
|
|||
|
||||
outputs = [
|
||||
desc.File(
|
||||
name='output',
|
||||
label='Output SfMData File',
|
||||
description='Path to the output sfmdata file',
|
||||
value=desc.Node.internalFolder + 'sfm.abc',
|
||||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
uid=[],
|
||||
),
|
||||
desc.File(
|
||||
name='outputViewsAndPoses',
|
||||
label='Output Poses',
|
||||
description='''Path to the output sfmdata file with cameras (views and poses).''',
|
||||
value=desc.Node.internalFolder + 'cameras.sfm',
|
||||
name="outputViewsAndPoses",
|
||||
label="Output Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
uid=[],
|
||||
),
|
||||
desc.File(
|
||||
name='extraInfoFolder',
|
||||
label='Folder',
|
||||
description='Folder for intermediate reconstruction files and additional reconstruction information files.',
|
||||
name="extraInfoFolder",
|
||||
label="Folder",
|
||||
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue