[nodes] new IncrementalSfM augmentation

This commit is contained in:
Gregoire De Lillo 2018-01-05 18:55:14 +01:00
parent 09904f1a33
commit 4d5636ab47
3 changed files with 115 additions and 13 deletions

View file

@ -12,7 +12,7 @@ class ImageMatching(desc.CommandLineNode):
desc.File( desc.File(
name='input', name='input',
label='Input', label='Input',
description='''SfMData file or filepath to a simple text file with one image filepath per line, or path to the descriptors folder.''', description='''SfMData file .''',
value='', value='',
uid=[0], uid=[0],
), ),

View file

@ -0,0 +1,106 @@
import sys
import os
from meshroom.core import desc
class ImageMatchingMultiSfM(desc.CommandLineNode):
internalFolder = '{cache}/{nodeType}/{uid0}/'
commandLine = 'aliceVision_imageMatching {allParams}'
size = desc.DynamicNodeSize('input')
inputs = [
desc.File(
name='input',
label='Input A',
description='''SfMData file .''',
value='',
uid=[0],
),
desc.File(
name='inputB',
label='Input B',
description='''SfMData file .''',
value='',
uid=[0],
),
desc.ChoiceParam(
name='modeMultiSfM',
label='Multiple SfM mode',
description='''Image matching multiple SfM mode. "a_ab" for images in input SfMData A plus between A and B. "a_b" for images between input SfMData A and B''',
value='a_ab',
values=['a_ab', 'a_b'],
exclusive=True,
uid=[0],
),
desc.File(
name='featuresFolder',
label='Features Folder',
description='''Folder containing the extracted features and descriptors. By default, it is the folder containing the SfMData.''',
value='',
uid=[0],
),
desc.File(
name='tree',
label='Tree',
description='''Input name for the vocabulary tree file.''',
value=os.environ.get('ALICEVISION_VOCTREE', ''),
uid=[0],
),
desc.IntParam(
name='minNbImages',
label='Minimal Number of Images',
description='''Minimal number of images to use the vocabulary tree. If we have less features than this threshold, we will compute all matching combinations.''',
value=200,
range=(0, 500, 1),
uid=[0],
),
desc.IntParam(
name='maxDescriptors',
label='Max Descriptors',
description='''Limit the number of descriptors you load per image. Zero means no limit.''',
value=500,
range=(0, 100000, 1),
uid=[0],
),
desc.IntParam(
name='nbMatches',
label='Nb Matches',
description='''The number of matches to retrieve for each image (If 0 it will retrieve all the matches).''',
value=50,
range=(0, 1000, 1),
uid=[0],
),
desc.File(
name='weights',
label='Weights',
description='''Input name for the weight file, if not provided the weights will be computed on the database built with the provided set.''',
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='Output',
description='''Filepath to the output file with the list of selected image pairs.''',
value='{cache}/{nodeType}/{uid0}/imageMatches.txt',
uid=[],
),
desc.File(
name='outputCombinedSfM',
label='Output Combined SfM',
description='''Path for the combined SfMData file''',
value='{cache}/{nodeType}/{uid0}/combineSfM.sfm',
uid=[],
),
]

View file

@ -4,7 +4,7 @@ from meshroom.core import desc
class StructureFromMotion(desc.CommandLineNode): class StructureFromMotion(desc.CommandLineNode):
internalFolder = '{cache}/{nodeType}/{uid0}/' internalFolder = '{cache}/{nodeType}/{uid0}/'
commandLine = 'aliceVision_incrementalSfM {allParams} --allowUserInteraction 0' commandLine = 'aliceVision_incrementalSfM {allParams}'
size = desc.DynamicNodeSize('input') size = desc.DynamicNodeSize('input')
inputs = [ inputs = [
@ -84,17 +84,6 @@ class StructureFromMotion(desc.CommandLineNode):
range=(0, 50000, 1), range=(0, 50000, 1),
uid=[0], uid=[0],
), ),
desc.ChoiceParam(
name='cameraModel',
label='Camera Model',
description="1: Pinhole \n"
"2: Pinhole 2\n"
"3: Pinhole 3",
value=3,
values=[1, 2, 3],
exclusive=True,
uid=[0],
),
desc.File( desc.File(
name='initialPairA', name='initialPairA',
label='Initial Pair A', label='Initial Pair A',
@ -128,6 +117,13 @@ class StructureFromMotion(desc.CommandLineNode):
value='{cache}/{nodeType}/{uid0}/sfm.abc', value='{cache}/{nodeType}/{uid0}/sfm.abc',
uid=[], uid=[],
), ),
desc.File(
name='outputViewsAndPoses',
label='Output SfM Views and Poses',
description='''Path to the output SfMData file (with only views and poses).''',
value='{cache}/{nodeType}/{uid0}/viewsAndPoses.sfm',
uid=[],
),
desc.File( desc.File(
name='extraInfoFolder', name='extraInfoFolder',
label='Output', label='Output',