diff --git a/meshroom/nodes/aliceVision/DepthMap.py b/meshroom/nodes/aliceVision/DepthMap.py index 79590965..d4443139 100644 --- a/meshroom/nodes/aliceVision/DepthMap.py +++ b/meshroom/nodes/aliceVision/DepthMap.py @@ -23,571 +23,579 @@ Use a downscale factor of one (full-resolution) only if the quality of the input 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='imagesFolder', - label='Images Folder', - description='Use images from a specific folder instead of those specify in the SfMData file.\nFilename should be the image uid.', - value='', + name="imagesFolder", + label="Images Folder", + description="Use images from a specific folder instead of those specified in the SfMData file.\n" + "Filename should be the image UID.", + value="", uid=[0], ), desc.ChoiceParam( - name='downscale', - label='Downscale', - description='Downscale the input images to compute the depth map.\n' - 'Full resolution (downscale=1) gives the best result,\n' - 'but using a larger downscale will reduce computation time at the expense of quality.\n' - 'If the images are noisy, blurry or if the surfaces are challenging (weakly-textured or with specularities) a larger downscale may improve.', + name="downscale", + label="Downscale", + description="Downscale the input images to compute the depth map.\n" + "Full resolution (downscale = 1) gives the best result,\n" + "but using a larger downscale will reduce computation time at the expense of quality.\n" + "If the images are noisy, blurry or if the surfaces are challenging (weakly-textured or with specularities), a larger downscale may improve.", value=2, values=[1, 2, 4, 8, 16], exclusive=True, uid=[0], ), desc.FloatParam( - name='minViewAngle', - label='Min View Angle', - description='Minimum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).', + name="minViewAngle", + label="Min View Angle", + description="Minimum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).", 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 (select the neighbouring cameras, select depth planes from epipolar segment point).', + name="maxViewAngle", + label="Max View Angle", + description="Maximum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).", value=70.0, range=(10.0, 120.0, 1.0), uid=[0], advanced=True, ), desc.GroupAttribute( - name='tiling', - label='Tiling', - description='Tiles are used to split the computation into fixed buffers to best fit the GPU.', + name="tiling", + label="Tiling", + description="Tiles are used to split the computation into fixed buffers to fit the GPU best.", group=None, groupDesc=[ desc.IntParam( - name='tileBufferWidth', - label='Buffer Width', - description='Maximum tile buffer width.', + name="tileBufferWidth", + label="Buffer Width", + description="Maximum tile buffer width.", value=1024, range=(-1, 2000, 10), uid=[0], ), desc.IntParam( - name='tileBufferHeight', - label='Buffer Height', - description='Maximum tile buffer height.', + name="tileBufferHeight", + label="Buffer Height", + description="Maximum tile buffer height.", value=1024, range=(-1, 2000, 10), uid=[0], ), desc.IntParam( - name='tilePadding', - label='Padding', - description='Buffer padding for overlapping tiles.', + name="tilePadding", + label="Padding", + description="Buffer padding for overlapping tiles.", value=64, range=(0, 500, 1), uid=[0], ), desc.BoolParam( - name='autoAdjustSmallImage', - label='Auto Adjust Small Image', - description='Automatically adjust depth map parameters if images are smaller than one tile (maxTCamsPerTile=maxTCams, adjust step if needed).', + name="autoAdjustSmallImage", + label="Auto Adjust Small Image", + description="Automatically adjust depth map parameters if images are smaller than one tile\n" + "(maxTCamsPerTile = maxTCams, adjust step if needed).", value=True, uid=[0], advanced=True, ), ]), desc.BoolParam( - name='chooseTCamsPerTile', - label='Choose Neighbour Cameras Per Tile', - description='Choose neighbour cameras per tile or globally to the image.', + name="chooseTCamsPerTile", + label="Choose Neighbour Cameras Per Tile", + description="Choose neighbour cameras per tile or globally to the image.", value=True, uid=[0], advanced=True, ), desc.IntParam( - name='maxTCams', - label='Max Nb Neighbour Cameras', - description='Maximum number of neighbour cameras per image.', + name="maxTCams", + label="Max Nb Neighbour Cameras", + description="Maximum number of neighbour cameras per image.", value=10, range=(1, 20, 1), uid=[0], ), desc.GroupAttribute( - name='sgm', - label='SGM', - description='Semi-Global Matching (SGM) step computes a similarity volume and extracts the initial low-resolution depth map.\n' - 'This method is highly robust but has limited depth precision (banding artifacts due to a limited list of depth planes).', + name="sgm", + label="SGM", + description="The Semi-Global Matching (SGM) step computes a similarity volume and extracts the initial low-resolution depth map.\n" + "This method is highly robust but has limited depth precision (banding artifacts due to a limited list of depth planes).", group=None, groupDesc=[ - desc.IntParam( - name='sgmScale', - label='Downscale Factor', - description='Downscale factor applied on source images for the SGM step (in addition to the global downscale).', - value=2, - range=(-1, 10, 1), - uid=[0], - ), - desc.IntParam( - name='sgmStepXY', - label='Step XY', - description='The step is used to compute the similarity volume for one pixel over N (in the XY image plane).', - value=2, - range=(-1, 10, 1), - uid=[0], - ), - desc.IntParam( - name='sgmStepZ', - label='Step Z', - description='Initial step used to compute the similarity volume on Z axis (every N pixels on the epilolar line).\n' - '-1 means automatic estimation.\n' - 'This value will be adjusted in all case to fit in the max memory (sgmMaxDepths).', - value=-1, - range=(-1, 10, 1), - uid=[0], - ), - desc.IntParam( - name='sgmMaxTCamsPerTile', - label='Max Nb Neighbour Cameras Per Tile', - description='Maximum number of neighbour cameras used per tile.', - value=4, - range=(1, 20, 1), - uid=[0], - ), - desc.IntParam( - name='sgmWSH', - label='WSH', - description='Half-size of the patch used to compute the similarity. Patch width is wsh*2+1.', - value=4, - range=(1, 20, 1), - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='sgmUseSfmSeeds', - label='Use SfM Landmarks', - description='Use landmarks from Structure-from-Motion as input seeds to define min/max depth ranges.', - value=True, - uid=[0], - advanced=True, - ), - desc.FloatParam( - name='sgmSeedsRangeInflate', - label='Seeds Range Inflate', - description='Inflate factor to add margins around SfM seeds.', - value=0.2, - range=(0.0, 2.0, 0.1), - uid=[0], - advanced=True, - ), - desc.FloatParam( - name='sgmDepthThicknessInflate', - label='Thickness Inflate', - description='Inflate factor to add margins to the depth thickness.', - value=0.0, - range=(0.0, 2.0, 0.1), - uid=[0], - advanced=True, - ), - desc.FloatParam( - name='sgmMaxSimilarity', - label='Max Similarity', - description='Maximum similarity threshold (between 0 and 1) used to filter out poorly supported depth values.', - value=1.0, - range=(0.0, 1.0, 0.01), - uid=[0], - advanced=True, - ), - desc.FloatParam( - name='sgmGammaC', - label='GammaC', - description='GammaC threshold used for similarity computation.', - value=5.5, - range=(0.0, 30.0, 0.5), - uid=[0], - advanced=True, - ), - desc.FloatParam( - name='sgmGammaP', - label='GammaP', - description='GammaP threshold used for similarity computation.', - value=8.0, - range=(0.0, 30.0, 0.5), - uid=[0], - advanced=True, - ), - desc.FloatParam( - name='sgmP1', - label='P1', - description='P1 parameter for SGM filtering.', - value=10.0, - range=(0.0, 255.0, 0.5), - uid=[0], - advanced=True, - ), - desc.FloatParam( - name='sgmP2Weighting', - label='P2 Weighting', - description='P2 weighting parameter for SGM filtering.', - value=100.0, - range=(-255.0, 255.0, 0.5), - uid=[0], - advanced=True, - ), - desc.IntParam( - name='sgmMaxDepths', - label='Max Depths', - description='Maximum number of depths in the similarity volume.', - value=1500, - range=(1, 5000, 1), - uid=[0], - advanced=True, - ), - desc.StringParam( - name='sgmFilteringAxes', - label='Filtering Axes', - description='Define axes for the filtering of the similarity volume.', - value='YX', - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='sgmDepthListPerTile', - label='Depth List Per Tile', - description='Select the list of depth planes per tile or globally to the image.', - value=True, - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='sgmUseConsistentScale', - label='Consistent Scale', - description='Compare patch with consistent scale for similarity volume computation.', - value=False, - uid=[0], - ), - ]), + desc.IntParam( + name="sgmScale", + label="Downscale Factor", + description="Downscale factor applied on source images for the SGM step (in addition to the global downscale).", + value=2, + range=(-1, 10, 1), + uid=[0], + ), + desc.IntParam( + name="sgmStepXY", + label="Step XY", + description="The step is used to compute the similarity volume for one pixel over N (in the XY image plane).", + value=2, + range=(-1, 10, 1), + uid=[0], + ), + desc.IntParam( + name="sgmStepZ", + label="Step Z", + description="Initial step used to compute the similarity volume on Z axis (every N pixels on the epilolar line).\n" + "-1 means automatic estimation.\n" + "This value will be adjusted in all case to fit in the max memory (sgmMaxDepths).", + value=-1, + range=(-1, 10, 1), + uid=[0], + ), + desc.IntParam( + name="sgmMaxTCamsPerTile", + label="Max Nb Neighbour Cameras Per Tile", + description="Maximum number of neighbour cameras used per tile.", + value=4, + range=(1, 20, 1), + uid=[0], + ), + desc.IntParam( + name="sgmWSH", + label="WSH", + description="Half-size of the patch used to compute the similarity. Patch width is wsh*2+1.", + value=4, + range=(1, 20, 1), + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="sgmUseSfmSeeds", + label="Use SfM Landmarks", + description="Use landmarks from Structure-from-Motion as input seeds to define min/max depth ranges.", + value=True, + uid=[0], + advanced=True, + ), + desc.FloatParam( + name="sgmSeedsRangeInflate", + label="Seeds Range Inflate", + description="Inflate factor to add margins around SfM seeds.", + value=0.2, + range=(0.0, 2.0, 0.1), + uid=[0], + advanced=True, + ), + desc.FloatParam( + name="sgmDepthThicknessInflate", + label="Thickness Inflate", + description="Inflate factor to add margins to the depth thickness.", + value=0.0, + range=(0.0, 2.0, 0.1), + uid=[0], + advanced=True, + ), + desc.FloatParam( + name="sgmMaxSimilarity", + label="Max Similarity", + description="Maximum similarity threshold (between 0 and 1) used to filter out poorly supported depth values.", + value=1.0, + range=(0.0, 1.0, 0.01), + uid=[0], + advanced=True, + ), + desc.FloatParam( + name="sgmGammaC", + label="GammaC", + description="GammaC threshold used for similarity computation.", + value=5.5, + range=(0.0, 30.0, 0.5), + uid=[0], + advanced=True, + ), + desc.FloatParam( + name="sgmGammaP", + label="GammaP", + description="GammaP threshold used for similarity computation.", + value=8.0, + range=(0.0, 30.0, 0.5), + uid=[0], + advanced=True, + ), + desc.FloatParam( + name="sgmP1", + label="P1", + description="P1 parameter for SGM filtering.", + value=10.0, + range=(0.0, 255.0, 0.5), + uid=[0], + advanced=True, + ), + desc.FloatParam( + name="sgmP2Weighting", + label="P2 Weighting", + description="P2 weighting parameter for SGM filtering.", + value=100.0, + range=(-255.0, 255.0, 0.5), + uid=[0], + advanced=True, + ), + desc.IntParam( + name="sgmMaxDepths", + label="Max Depths", + description="Maximum number of depths in the similarity volume.", + value=1500, + range=(1, 5000, 1), + uid=[0], + advanced=True, + ), + desc.StringParam( + name="sgmFilteringAxes", + label="Filtering Axes", + description="Define axes for the filtering of the similarity volume.", + value="YX", + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="sgmDepthListPerTile", + label="Depth List Per Tile", + description="Select the list of depth planes per tile or globally to the image.", + value=True, + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="sgmUseConsistentScale", + label="Consistent Scale", + description="Compare patch with consistent scale for similarity volume computation.", + value=False, + uid=[0], + ), + ] + ), desc.GroupAttribute( - name='refine', - label='Refine', - description='The refine step computes a similarity volume in higher resolution but with a small depth range around the SGM depth map.\n' - 'This allows to compute a depth map with sub-pixel accuracy.', + name="refine", + label="Refine", + description="The refine step computes a similarity volume in higher resolution but with a small depth range around the SGM depth map.\n" + "This allows to compute a depth map with sub-pixel accuracy.", group=None, groupDesc=[ - desc.BoolParam( - name='refineEnabled', - label='Enable', - description='Enable depth/similarity map refinement process.', - value=True, - uid=[0], - ), - desc.IntParam( - name='refineScale', - label='Downscale factor', - description='Downscale factor applied on source images for the Refine step (in addition to the global downscale).', - value=1, - range=(-1, 10, 1), - uid=[0], - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.IntParam( - name='refineStepXY', - label='Step XY', - description='The step is used to compute the refine volume for one pixel over N (in the XY image plane).', - value=1, - range=(-1, 10, 1), - uid=[0], - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.IntParam( - name='refineMaxTCamsPerTile', - label='Max Nb Neighbour Cameras Per Tile', - description='Maximum number of neighbour cameras used per tile.', - value=4, - range=(1, 20, 1), - uid=[0], - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.IntParam( - name='refineSubsampling', - label='Number of Subsamples', - description='The number of subsamples used to extract the best depth from the refine volume (sliding gaussian window precision).', - value=10, - range=(1, 30, 1), - uid=[0], - advanced=True, - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.IntParam( - name='refineHalfNbDepths', - label='Half Number of Depths', - description='The thickness of the refine area around the initial depth map.\n' - 'This parameter defines the number of depths in front of and behind the initial value \n' - 'for which we evaluate the similarity with a finer z sampling.', - value=15, - range=(1, 50, 1), - uid=[0], - advanced=True, - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.IntParam( - name='refineWSH', - label='WSH', - description='Half-size of the patch used to compute the similarity. Patch width is wsh*2+1.', - value=3, - range=(1, 20, 1), - uid=[0], - advanced=True, - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.FloatParam( - name='refineSigma', - label='Sigma', - description='Sigma (2*sigma^2) of the gaussian filter used to extract the best depth from the refine volume.', - value=15.0, - range=(0.0, 30.0, 0.5), - uid=[0], - advanced=True, - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.FloatParam( - name='refineGammaC', - label='GammaC', - description='GammaC threshold used for similarity computation.', - value=15.5, - range=(0.0, 30.0, 0.5), - uid=[0], - advanced=True, - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.FloatParam( - name='refineGammaP', - label='GammaP', - description='GammaP threshold used for similarity computation.', - value=8.0, - range=(0.0, 30.0, 0.5), - uid=[0], - advanced=True, - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.BoolParam( - name='refineInterpolateMiddleDepth', - label='Interpolate Middle Depth', - description='Enable middle depth bilinear interpolation.', - value=False, - uid=[0], - enabled= lambda node: node.refine.refineEnabled.value, - ), - desc.BoolParam( - name='refineUseConsistentScale', - label='Consistent Scale', - description='Compare patch with consistent scale for similarity volume computation.', - value=False, - uid=[0], - enabled= lambda node: node.refine.refineEnabled.value, - ), - ]), + desc.BoolParam( + name="refineEnabled", + label="Enable", + description="Enable depth/similarity map refinement process.", + value=True, + uid=[0], + ), + desc.IntParam( + name="refineScale", + label="Downscale Factor", + description="Downscale factor applied on source images for the Refine step (in addition to the global downscale).", + value=1, + range=(-1, 10, 1), + uid=[0], + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.IntParam( + name="refineStepXY", + label="Step XY", + description="The step is used to compute the refine volume for one pixel over N (in the XY image plane).", + value=1, + range=(-1, 10, 1), + uid=[0], + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.IntParam( + name="refineMaxTCamsPerTile", + label="Max Nb Neighbour Cameras Per Tile", + description="Maximum number of neighbour cameras used per tile.", + value=4, + range=(1, 20, 1), + uid=[0], + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.IntParam( + name="refineSubsampling", + label="Number Of Subsamples", + description="The number of subsamples used to extract the best depth from the refine volume (sliding gaussian window precision).", + value=10, + range=(1, 30, 1), + uid=[0], + advanced=True, + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.IntParam( + name="refineHalfNbDepths", + label="Half Number Of Depths", + description="The thickness of the refine area around the initial depth map.\n" + "This parameter defines the number of depths in front of and behind the initial value\n" + "for which we evaluate the similarity with a finer z sampling.", + value=15, + range=(1, 50, 1), + uid=[0], + advanced=True, + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.IntParam( + name="refineWSH", + label="WSH", + description="Half-size of the patch used to compute the similarity. Patch width is wsh*2+1.", + value=3, + range=(1, 20, 1), + uid=[0], + advanced=True, + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.FloatParam( + name="refineSigma", + label="Sigma", + description="Sigma (2*sigma^2) of the Gaussian filter used to extract the best depth from the refine volume.", + value=15.0, + range=(0.0, 30.0, 0.5), + uid=[0], + advanced=True, + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.FloatParam( + name="refineGammaC", + label="GammaC", + description="GammaC threshold used for similarity computation.", + value=15.5, + range=(0.0, 30.0, 0.5), + uid=[0], + advanced=True, + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.FloatParam( + name="refineGammaP", + label="GammaP", + description="GammaP threshold used for similarity computation.", + value=8.0, + range=(0.0, 30.0, 0.5), + uid=[0], + advanced=True, + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.BoolParam( + name="refineInterpolateMiddleDepth", + label="Interpolate Middle Depth", + description="Enable middle depth bilinear interpolation.", + value=False, + uid=[0], + enabled= lambda node: node.refine.refineEnabled.value, + ), + desc.BoolParam( + name="refineUseConsistentScale", + label="Consistent Scale", + description="Compare patch with consistent scale for similarity volume computation.", + value=False, + uid=[0], + enabled= lambda node: node.refine.refineEnabled.value, + ), + ] + ), desc.GroupAttribute( name="colorOptimization", label="Color Optimization", - description='Color optimization post-process parameters.', + description="Color optimization post-process parameters.", group=None, groupDesc=[ - desc.BoolParam( - name='colorOptimizationEnabled', - label='Enable', - description='Enable depth/similarity map post-process color optimization.', - value=True, - uid=[0], - ), - desc.IntParam( - name='colorOptimizationNbIterations', - label='Number of Iterations', - description='Number of iterations of the optimization.', - value=100, - range=(1, 500, 10), - uid=[0], - advanced=True, - enabled= lambda node: node.colorOptimization.colorOptimizationEnabled.value, - ), - ]), + desc.BoolParam( + name="colorOptimizationEnabled", + label="Enable", + description="Enable depth/similarity map post-process color optimization.", + value=True, + uid=[0], + ), + desc.IntParam( + name="colorOptimizationNbIterations", + label="Number Of Iterations", + description="Number of iterations for the optimization.", + value=100, + range=(1, 500, 10), + uid=[0], + advanced=True, + enabled= lambda node: node.colorOptimization.colorOptimizationEnabled.value, + ), + ] + ), desc.GroupAttribute( - name='customPatchPattern', - label='Custom Patch Pattern', - description='User custom patch pattern for similarity comparison.', + name="customPatchPattern", + label="Custom Patch Pattern", + description="User custom patch pattern for similarity comparison.", advanced=True, group=None, groupDesc=[ - desc.BoolParam( - name='sgmUseCustomPatchPattern', - label='Enable for SGM', - description='Enable custom patch pattern for similarity volume computation at the SGM step .', - value=False, - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='refineUseCustomPatchPattern', - label='Enable for Refine', - description='Enable custom patch pattern for similarity volume computation at the Refine step .', - value=False, - uid=[0], - advanced=True, - ), - desc.ListAttribute( - name="customPatchPatternSubparts", - label="Subparts", - description='User custom patch pattern subparts for similarity volume computation.', - advanced=True, - enabled= lambda node: (node.customPatchPattern.sgmUseCustomPatchPattern.value or node.customPatchPattern.refineUseCustomPatchPattern.value), - elementDesc=desc.GroupAttribute( - name='customPatchPatternSubpart', - label='Patch Pattern Subpart', - description='', - joinChar=":", - group=None, - groupDesc=[ - desc.ChoiceParam( - name='customPatchPatternSubpartType', - label='Type', - description='Patch pattern subpart type.', - value='full', - values=['full', 'circle'], - exclusive=True, - uid=[0], + desc.BoolParam( + name="sgmUseCustomPatchPattern", + label="Enable For SGM", + description="Enable custom patch pattern for similarity volume computation at the SGM step.", + value=False, + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="refineUseCustomPatchPattern", + label="Enable For Refine", + description="Enable custom patch pattern for similarity volume computation at the Refine step.", + value=False, + uid=[0], + advanced=True, + ), + desc.ListAttribute( + name="customPatchPatternSubparts", + label="Subparts", + description="User custom patch pattern subparts for similarity volume computation.", + advanced=True, + enabled= lambda node: (node.customPatchPattern.sgmUseCustomPatchPattern.value or node.customPatchPattern.refineUseCustomPatchPattern.value), + elementDesc=desc.GroupAttribute( + name="customPatchPatternSubpart", + label="Patch Pattern Subpart", + description="Custom patch pattern subpart configuration for similarity volume computation.", + joinChar=":", + group=None, + groupDesc=[ + desc.ChoiceParam( + name="customPatchPatternSubpartType", + label="Type", + description="Patch pattern subpart type.", + value="full", + values=["full", "circle"], + exclusive=True, + uid=[0], + ), + desc.FloatParam( + name="customPatchPatternSubpartRadius", + label="Radius / WSH", + description="Patch pattern subpart half-width or circle radius.", + value=2.5, + range=(0.5, 30.0, 0.1), + uid=[0], + ), + desc.IntParam( + name="customPatchPatternSubpartNbCoords", + label="Coordinates", + description="Patch pattern subpart number of coordinates (for circle or ignore).", + value=12, + range=(3, 24, 1), + uid=[0], + ), + desc.IntParam( + name="customPatchPatternSubpartLevel", + label="Level", + description="Patch pattern subpart image level.", + value=0, + range=(0, 2, 1), + uid=[0], + ), + desc.FloatParam( + name="customPatchPatternSubpartWeight", + label="Weight", + description="Patch pattern subpart weight.", + value=1.0, + range=(0.0, 1.0, 0.1), + uid=[0], + ), + ] ), - desc.FloatParam( - name='customPatchPatternSubpartRadius', - label='Radius / WSH', - description='Patch pattern subpart half-width or circle radius.', - value=2.5, - range=(0.5, 30.0, 0.1), - uid=[0], - ), - desc.IntParam( - name='customPatchPatternSubpartNbCoords', - label='Coordinates', - description='Patch pattern subpart number of coordinates (for circle or ignore).', - value=12, - range=(3, 24, 1), - uid=[0], - ), - desc.IntParam( - name='customPatchPatternSubpartLevel', - label='Level', - description='Patch pattern subpart image level.', - value=0, - range=(0, 2, 1), - uid=[0], - ), - desc.FloatParam( - name='customPatchPatternSubpartWeight', - label='Weight', - description='Patch pattern subpart weight.', - value=1.0, - range=(0.0, 1.0, 0.1), - uid=[0], - ), - ]), - ), - desc.BoolParam( - name='customPatchPatternGroupSubpartsPerLevel', - label='Group Subparts Per Level', - description='Group all subparts with the same image level.', - value=False, - uid=[0], - advanced=True, - enabled= lambda node: (node.customPatchPattern.sgmUseCustomPatchPattern.value or node.customPatchPattern.refineUseCustomPatchPattern.value), - ), - ]), + ), + desc.BoolParam( + name="customPatchPatternGroupSubpartsPerLevel", + label="Group Subparts Per Level", + description="Group all subparts with the same image level.", + value=False, + uid=[0], + advanced=True, + enabled= lambda node: (node.customPatchPattern.sgmUseCustomPatchPattern.value or node.customPatchPattern.refineUseCustomPatchPattern.value), + ), + ] + ), desc.GroupAttribute( - name='intermediateResults', - label='Intermediate Results', - description='Intermediate results parameters for debug purposes.\n' - 'Warning: Dramatically affect performances and use large amount of storage.', + name="intermediateResults", + label="Intermediate Results", + description="Intermediate results parameters for debug purposes.\n" + "Warning: Dramatically affect performances and use large amount of storage.", advanced=True, group=None, groupDesc=[ - desc.BoolParam( - name='exportIntermediateDepthSimMaps', - label='Export Depth Maps', - description='Export intermediate depth/similarity maps from the SGM and Refine steps.', - value=False, - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='exportIntermediateNormalMaps', - label='Export Normal Maps', - description='Export intermediate normal maps from the SGM and Refine steps.', - value=False, - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='exportIntermediateVolumes', - label='Export Volumes', - description='Export intermediate full similarity volumes from the SGM and Refine steps.', - value=False, - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='exportIntermediateCrossVolumes', - label='Export Cross Volumes', - description='Export intermediate similarity cross volumes from the SGM and Refine steps.', - value=False, - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='exportIntermediateTopographicCutVolumes', - label='Export Cut Volumes', - description='Export intermediate similarity topographic cut volumes from the SGM and Refine steps.', - value=False, - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='exportIntermediateVolume9pCsv', - label='Export 9 Points', - description='Export intermediate volumes 9 points from the SGM and Refine steps in CSV files.', - value=False, - uid=[0], - advanced=True, - ), - desc.BoolParam( - name='exportTilePattern', - label='Export Tile Pattern', - description='Export the bounding boxes of tiles volumes as meshes. This allows to visualize the depth map search areas.', - value=False, - uid=[0], - advanced=True, - ), - ]), + desc.BoolParam( + name="exportIntermediateDepthSimMaps", + label="Export Depth Maps", + description="Export intermediate depth/similarity maps from the SGM and Refine steps.", + value=False, + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="exportIntermediateNormalMaps", + label="Export Normal Maps", + description="Export intermediate normal maps from the SGM and Refine steps.", + value=False, + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="exportIntermediateVolumes", + label="Export Volumes", + description="Export intermediate full similarity volumes from the SGM and Refine steps.", + value=False, + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="exportIntermediateCrossVolumes", + label="Export Cross Volumes", + description="Export intermediate similarity cross volumes from the SGM and Refine steps.", + value=False, + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="exportIntermediateTopographicCutVolumes", + label="Export Cut Volumes", + description="Export intermediate similarity topographic cut volumes from the SGM and Refine steps.", + value=False, + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="exportIntermediateVolume9pCsv", + label="Export 9 Points", + description="Export intermediate volumes 9 points from the SGM and Refine steps in CSV files.", + value=False, + uid=[0], + advanced=True, + ), + desc.BoolParam( + name="exportTilePattern", + label="Export Tile Pattern", + description="Export the bounding boxes of tiles volumes as meshes. This allows to visualize the depth map search areas.", + value=False, + uid=[0], + advanced=True, + ), + ] + ), desc.IntParam( - name='nbGPUs', - label='Number of GPUs', - description='Number of GPUs to use (0 means use all available GPUs).', + name="nbGPUs", + label="Number Of GPUs", + description="Number of GPUs to use (0 means that all the available GPUs will be used).", value=0, range=(0, 5, 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=[], ), @@ -595,9 +603,9 @@ Use a downscale factor of one (full-resolution) only if the quality of the input outputs = [ desc.File( - name='output', - label='Folder', - description='Output folder for generated depth maps.', + name="output", + label="Folder", + description="Output folder for generated depth maps.", value=desc.Node.internalFolder, uid=[], ), @@ -605,60 +613,60 @@ Use a downscale factor of one (full-resolution) only if the quality of the input # 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='Generated depth maps.', - semantic='image', - value=desc.Node.internalFolder + '_depthMap.exr', + name="depth", + label="Depth Maps", + description="Generated depth maps.", + semantic="image", + value=desc.Node.internalFolder + "_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='Generated sim maps.', - semantic='image', - value=desc.Node.internalFolder + '_simMap.exr', + name="sim", + label="Sim Maps", + description="Generated sim maps.", + semantic="image", + value=desc.Node.internalFolder + "_simMap.exr", uid=[], - group='', # do not export on the command line + group="", # do not export on the command line ), desc.File( - name='tilePattern', - label='Tile Pattern', - description='Debug: Tile pattern', - value=desc.Node.internalFolder + '_tilePattern.obj', + name="tilePattern", + label="Tile Pattern", + description="Debug: Tile pattern.", + value=desc.Node.internalFolder + "_tilePattern.obj", uid=[], - group='', # do not export on the command line + group="", # do not export on the command line enabled=lambda node: node.intermediateResults.exportTilePattern.value, ), desc.File( - name='depthSgm', - label='Depth Maps SGM', - description='Debug: Depth maps SGM', - semantic='image', - value=desc.Node.internalFolder + '_depthMap_sgm.exr', + name="depthSgm", + label="Depth Maps SGM", + description="Debug: Depth maps SGM", + semantic="image", + value=desc.Node.internalFolder + "_depthMap_sgm.exr", uid=[], - group='', # do not export on the command line + group="", # do not export on the command line enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, ), desc.File( - name='depthSgmUpscaled', - label='Depth Maps SGM Upscaled', - description='Debug: Depth maps SGM upscaled', - semantic='image', - value=desc.Node.internalFolder + '_depthMap_sgmUpscaled.exr', + name="depthSgmUpscaled", + label="Depth Maps SGM Upscaled", + description="Debug: Depth maps SGM upscaled.", + semantic="image", + value=desc.Node.internalFolder + "_depthMap_sgmUpscaled.exr", uid=[], - group='', # do not export on the command line + group="", # do not export on the command line enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, ), desc.File( - name='depthRefined', - label='Depth Maps Refined', - description='Debug: Depth maps after refinement', - semantic='image', - value=desc.Node.internalFolder + '_depthMap_refinedFused.exr', + name="depthRefined", + label="Depth Maps Refined", + description="Debug: Depth maps after refinement", + semantic="image", + value=desc.Node.internalFolder + "_depthMap_refinedFused.exr", uid=[], - group='', # do not export on the command line + group="", # do not export on the command line enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, ), ] diff --git a/meshroom/nodes/aliceVision/DepthMapFilter.py b/meshroom/nodes/aliceVision/DepthMapFilter.py index 3acebbac..487a4074 100644 --- a/meshroom/nodes/aliceVision/DepthMapFilter.py +++ b/meshroom/nodes/aliceVision/DepthMapFilter.py @@ -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 + '_depthMap.exr', + name="depth", + label="Depth Maps", + description="Filtered depth maps.", + semantic="image", + value=desc.Node.internalFolder + "_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 + '_simMap.exr', + name="sim", + label="Sim Maps", + description="Filtered sim maps.", + semantic="image", + value=desc.Node.internalFolder + "_simMap.exr", uid=[], - group='', # do not export on the command line + group="", # do not export on the command line ), ] diff --git a/meshroom/nodes/aliceVision/DistortionCalibration.py b/meshroom/nodes/aliceVision/DistortionCalibration.py index 9bbfaa79..1ac9c84c 100644 --- a/meshroom/nodes/aliceVision/DistortionCalibration.py +++ b/meshroom/nodes/aliceVision/DistortionCalibration.py @@ -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=[], ) ] diff --git a/meshroom/nodes/aliceVision/ExportAnimatedCamera.py b/meshroom/nodes/aliceVision/ExportAnimatedCamera.py index 644519e0..7db62fec 100644 --- a/meshroom/nodes/aliceVision/ExportAnimatedCamera.py +++ b/meshroom/nodes/aliceVision/ExportAnimatedCamera.py @@ -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=[], ), ] diff --git a/meshroom/nodes/aliceVision/ExportColoredPointCloud.py b/meshroom/nodes/aliceVision/ExportColoredPointCloud.py index 2f18c94c..dee37d94 100644 --- a/meshroom/nodes/aliceVision/ExportColoredPointCloud.py +++ b/meshroom/nodes/aliceVision/ExportColoredPointCloud.py @@ -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=[], ), diff --git a/meshroom/nodes/aliceVision/ExportMatches.py b/meshroom/nodes/aliceVision/ExportMatches.py index b2cd04a3..ec189d16 100644 --- a/meshroom/nodes/aliceVision/ExportMatches.py +++ b/meshroom/nodes/aliceVision/ExportMatches.py @@ -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=[], ), diff --git a/meshroom/nodes/aliceVision/ExportMaya.py b/meshroom/nodes/aliceVision/ExportMaya.py index b297b81c..253144a2 100644 --- a/meshroom/nodes/aliceVision/ExportMaya.py +++ b/meshroom/nodes/aliceVision/ExportMaya.py @@ -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=[], ), diff --git a/meshroom/nodes/aliceVision/FeatureExtraction.py b/meshroom/nodes/aliceVision/FeatureExtraction.py index 7b744a5e..f3eff90c 100644 --- a/meshroom/nodes/aliceVision/FeatureExtraction.py +++ b/meshroom/nodes/aliceVision/FeatureExtraction.py @@ -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=[], ), diff --git a/meshroom/nodes/aliceVision/FeatureMatching.py b/meshroom/nodes/aliceVision/FeatureMatching.py index cdc5b69e..bbcab8bc 100644 --- a/meshroom/nodes/aliceVision/FeatureMatching.py +++ b/meshroom/nodes/aliceVision/FeatureMatching.py @@ -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=[], ), diff --git a/meshroom/nodes/aliceVision/FeatureRepeatability.py b/meshroom/nodes/aliceVision/FeatureRepeatability.py index 41d9967d..bfb20616 100644 --- a/meshroom/nodes/aliceVision/FeatureRepeatability.py +++ b/meshroom/nodes/aliceVision/FeatureRepeatability.py @@ -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=[], ), diff --git a/meshroom/nodes/aliceVision/GlobalSfM.py b/meshroom/nodes/aliceVision/GlobalSfM.py index b3e93aa0..de7e5cfe 100644 --- a/meshroom/nodes/aliceVision/GlobalSfM.py +++ b/meshroom/nodes/aliceVision/GlobalSfM.py @@ -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=[], ),