mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-06-02 02:42:05 +02:00
[nodes] new IncrementalSfM augmentation
This commit is contained in:
parent
09904f1a33
commit
4d5636ab47
3 changed files with 115 additions and 13 deletions
|
@ -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],
|
||||||
),
|
),
|
||||||
|
|
106
meshroom/nodes/aliceVision/ImageMatchingMultiSfM.py
Normal file
106
meshroom/nodes/aliceVision/ImageMatchingMultiSfM.py
Normal 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=[],
|
||||||
|
),
|
||||||
|
]
|
|
@ -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',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue