From 3b55879d0ff0409eeaddbb4a61dcd1605b320542 Mon Sep 17 00:00:00 2001 From: jmelou Date: Fri, 25 Oct 2024 15:18:08 +0200 Subject: [PATCH 1/5] [node] Add SfMFilter node Select views using regex --- meshroom/nodes/aliceVision/SfMFilter.py | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 meshroom/nodes/aliceVision/SfMFilter.py diff --git a/meshroom/nodes/aliceVision/SfMFilter.py b/meshroom/nodes/aliceVision/SfMFilter.py new file mode 100644 index 0000000000..9ccd4c0655 --- /dev/null +++ b/meshroom/nodes/aliceVision/SfMFilter.py @@ -0,0 +1,54 @@ +__version__ = "1.0" + +from meshroom.core import desc +from meshroom.core.utils import VERBOSE_LEVEL + + +class SfMFilter(desc.CommandLineNode): + commandLine = 'aliceVision_sfmFilter {allParams}' + category = 'Utils' + documentation = ''' +This node allows select views from sfmData file using a regular expresion. +''' + + inputs = [ + desc.File( + name="inputFile", + label="inputFile", + description="SfMData file.", + value="", + uid=[], + ), + desc.StringParam( + name="fileMatchingPattern", + label="File Matching Pattern", + description="Matching regular expression.\n" + "You should capture specific parts of the filepath with parentheses to define matching elements.\n" + "Some examples of patterns:\n" + " - Match the filename without extension (default value): " + r'".*\/(.*?)\.\w{3}"' + "\n" + " - Match the filename suffix after \"_\": " + r'".*\/.*(_.*?\.\w{3})"' + "\n" + " - Match the filename prefix before \"_\": " + r'".*\/(.*?)_.*\.\w{3}"', + value=r'.*\/(.*?)\.\w{3}', + uid=[], + ), + ] + + outputs = [ + desc.File( + name="outputSfMData_selected", + label="SfMData_selected", + description="Output SfMData file containing selected views.", + value=desc.Node.internalFolder + "/selectedSfmData.sfm", + uid=[], + ), + desc.File( + name="outputSfMData_unselected", + label="SfMData_unselected", + description="Output SfMData file containing remaining views.", + value=desc.Node.internalFolder + "/unselectedSfmData.sfm", + uid=[], + ), + ] From 83631e36f169d801ec878ac843c1e3a24a3f3ecc Mon Sep 17 00:00:00 2001 From: jmelou Date: Fri, 25 Oct 2024 15:19:12 +0200 Subject: [PATCH 2/5] [pipeline] Simplify MV-PS pipeline Pose transfert in SfMTransfert --- meshroom/nodes/aliceVision/SfMTransfer.py | 11 +- .../pipelines/MultiView Photometric Stereo.mg | 1158 +++++++++++++++++ 2 files changed, 1164 insertions(+), 5 deletions(-) create mode 100644 meshroom/pipelines/MultiView Photometric Stereo.mg diff --git a/meshroom/nodes/aliceVision/SfMTransfer.py b/meshroom/nodes/aliceVision/SfMTransfer.py index 53f4bdb15e..3eef69f8d9 100644 --- a/meshroom/nodes/aliceVision/SfMTransfer.py +++ b/meshroom/nodes/aliceVision/SfMTransfer.py @@ -32,12 +32,13 @@ class SfMTransfer(desc.AVCommandLineNode): name="method", label="Matching Method", description="Matching Method:\n" - " - from_viewid: Align cameras with same view ID.\n" - " - from_filepath: Align cameras with a filepath matching, using 'fileMatchingPattern'.\n" - " - from_metadata: Align cameras with matching metadata, using 'metadataMatchingList'.\n" - " - from_intrinsicid: Copy intrinsics parameters.\n", + " - from_viewid: Match cameras based on viewId.\n" + " - from_filepath: Match cameras with a filepath matching, using 'fileMatchingPattern'.\n" + " - from_metadata: Match cameras with matching metadata, using 'metadataMatchingList'.\n" + " - from_poseid: Match cameras based on poseId.\n" + " - from_intrinsicid: Match cameras based on intrinsicId.\n", value="from_viewid", - values=["from_viewid", "from_filepath", "from_metadata", "from_intrinsicid"], + values=["from_viewid", "from_filepath", "from_metadata", "from_poseid", "from_intrinsicid"], ), desc.StringParam( name="fileMatchingPattern", diff --git a/meshroom/pipelines/MultiView Photometric Stereo.mg b/meshroom/pipelines/MultiView Photometric Stereo.mg new file mode 100644 index 0000000000..d90ccea878 --- /dev/null +++ b/meshroom/pipelines/MultiView Photometric Stereo.mg @@ -0,0 +1,1158 @@ +{ + "header": { + "pipelineVersion": "2.2", + "releaseVersion": "2024.1.0-develop", + "fileVersion": "1.1", + "template": false, + "nodesVersions": { + "CameraInit": "11.0", + "DepthMap": "5.0", + "DepthMapFilter": "4.0", + "FeatureExtraction": "1.3", + "FeatureMatching": "2.0", + "ImageMatching": "2.0", + "LightingCalibration": "1.0", + "MeshFiltering": "3.0", + "Meshing": "7.0", + "PhotometricStereo": "1.0", + "PrepareDenseScene": "3.1", + "SfMFilter": "1.0", + "SfMTransfer": "2.1", + "SphereDetection": "1.0", + "StructureFromMotion": "3.3", + "Texturing": "6.0" + } + }, + "graph": { + "CameraInit_1": { + "nodeType": "CameraInit", + "position": [ + -417, + 203 + ], + "parallelization": { + "blockSize": 0, + "size": 0, + "split": 1 + }, + "uids": { + "0": "961e54591174ec5a2457c66da8eadc0cb03d89ba" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "viewpoints": [], + "intrinsics": [], + "sensorDatabase": "${ALICEVISION_SENSOR_DB}", + "lensCorrectionProfileInfo": "${ALICEVISION_LENS_PROFILE_INFO}", + "lensCorrectionProfileSearchIgnoreCameraModel": true, + "defaultFieldOfView": 45.0, + "groupCameraFallback": "folder", + "rawColorInterpretation": "LibRawWhiteBalancing", + "colorProfileDatabase": "${ALICEVISION_COLOR_PROFILE_DB}", + "errorOnMissingColorProfile": true, + "viewIdMethod": "metadata", + "viewIdRegex": ".*?(\\d+)", + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/cameraInit.sfm" + } + }, + "DepthMapFilter_1": { + "nodeType": "DepthMapFilter", + "position": [ + 1179, + 0 + ], + "parallelization": { + "blockSize": 24, + "size": 1, + "split": 1 + }, + "uids": { + "0": "7fcbffdde40134e957f90861ad3e179b8b26dbf6" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{DepthMap_1.input}", + "depthMapsFolder": "{DepthMap_1.output}", + "minViewAngle": 2.0, + "maxViewAngle": 70.0, + "nNearestCams": 10, + "minNumOfConsistentCams": 3, + "minNumOfConsistentCamsWithLowSimilarity": 4, + "pixToleranceFactor": 2.0, + "pixSizeBall": 0, + "pixSizeBallWithLowSimilarity": 0, + "computeNormalMaps": false, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "depth": "{cache}/{nodeType}/{uid0}/_depthMap.exr", + "sim": "{cache}/{nodeType}/{uid0}/_simMap.exr", + "normal": "{cache}/{nodeType}/{uid0}/_normalMap.exr" + } + }, + "DepthMap_1": { + "nodeType": "DepthMap", + "position": [ + 979, + 0 + ], + "parallelization": { + "blockSize": 12, + "size": 1, + "split": 1 + }, + "uids": { + "0": "1384130f6ded87cf983ebf688188bdf8d6f003bd" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{PrepareDenseScene_1.input}", + "imagesFolder": "{PrepareDenseScene_1.output}", + "downscale": 2, + "minViewAngle": 2.0, + "maxViewAngle": 70.0, + "tiling": { + "tileBufferWidth": 1024, + "tileBufferHeight": 1024, + "tilePadding": 64, + "autoAdjustSmallImage": true + }, + "chooseTCamsPerTile": true, + "maxTCams": 10, + "sgm": { + "sgmScale": 2, + "sgmStepXY": 2, + "sgmStepZ": -1, + "sgmMaxTCamsPerTile": 4, + "sgmWSH": 4, + "sgmUseSfmSeeds": true, + "sgmSeedsRangeInflate": 0.2, + "sgmDepthThicknessInflate": 0.0, + "sgmMaxSimilarity": 1.0, + "sgmGammaC": 5.5, + "sgmGammaP": 8.0, + "sgmP1": 10.0, + "sgmP2Weighting": 100.0, + "sgmMaxDepths": 1500, + "sgmFilteringAxes": "YX", + "sgmDepthListPerTile": true, + "sgmUseConsistentScale": false + }, + "refine": { + "refineEnabled": true, + "refineScale": 1, + "refineStepXY": 1, + "refineMaxTCamsPerTile": 4, + "refineSubsampling": 10, + "refineHalfNbDepths": 15, + "refineWSH": 3, + "refineSigma": 15.0, + "refineGammaC": 15.5, + "refineGammaP": 8.0, + "refineInterpolateMiddleDepth": false, + "refineUseConsistentScale": false + }, + "colorOptimization": { + "colorOptimizationEnabled": true, + "colorOptimizationNbIterations": 100 + }, + "customPatchPattern": { + "sgmUseCustomPatchPattern": false, + "refineUseCustomPatchPattern": false, + "customPatchPatternSubparts": [], + "customPatchPatternGroupSubpartsPerLevel": false + }, + "intermediateResults": { + "exportIntermediateDepthSimMaps": false, + "exportIntermediateNormalMaps": false, + "exportIntermediateVolumes": false, + "exportIntermediateCrossVolumes": false, + "exportIntermediateTopographicCutVolumes": false, + "exportIntermediateVolume9pCsv": false, + "exportTilePattern": false + }, + "nbGPUs": 0, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "depth": "{cache}/{nodeType}/{uid0}/_depthMap.exr", + "sim": "{cache}/{nodeType}/{uid0}/_simMap.exr", + "tilePattern": "{cache}/{nodeType}/{uid0}/_tilePattern.obj", + "depthSgm": "{cache}/{nodeType}/{uid0}/_depthMap_sgm.exr", + "depthSgmUpscaled": "{cache}/{nodeType}/{uid0}/_depthMap_sgmUpscaled.exr", + "depthRefined": "{cache}/{nodeType}/{uid0}/_depthMap_refinedFused.exr" + } + }, + "FeatureExtraction_1": { + "nodeType": "FeatureExtraction", + "position": [ + -21, + 0 + ], + "parallelization": { + "blockSize": 40, + "size": 1, + "split": 1 + }, + "uids": { + "0": "bf5baa6a716fff20b794233c50bcf0511a891d3c" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{SfMFilter_1.outputSfMData_selected}", + "masksFolder": "", + "maskExtension": "png", + "maskInvert": false, + "describerTypes": [ + "dspsift" + ], + "describerPreset": "normal", + "maxNbFeatures": 0, + "describerQuality": "normal", + "contrastFiltering": "GridSort", + "relativePeakThreshold": 0.01, + "gridFiltering": true, + "workingColorSpace": "sRGB", + "forceCpuExtraction": true, + "maxThreads": 0, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/" + } + }, + "FeatureMatching_1": { + "nodeType": "FeatureMatching", + "position": [ + 379, + 0 + ], + "parallelization": { + "blockSize": 20, + "size": 1, + "split": 1 + }, + "uids": { + "0": "64714e89ac89c4e62e820b7018d029e2e44168be" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{ImageMatching_1.input}", + "featuresFolders": "{ImageMatching_1.featuresFolders}", + "imagePairsList": "{ImageMatching_1.output}", + "describerTypes": "{FeatureExtraction_1.describerTypes}", + "photometricMatchingMethod": "ANN_L2", + "geometricEstimator": "acransac", + "geometricFilterType": "fundamental_matrix", + "distanceRatio": 0.8, + "maxIteration": 2048, + "geometricError": 0.0, + "knownPosesGeometricErrorMax": 5.0, + "minRequired2DMotion": -1.0, + "maxMatches": 0, + "savePutativeMatches": false, + "crossMatching": false, + "guidedMatching": false, + "matchFromKnownCameraPoses": false, + "exportDebugFiles": false, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/" + } + }, + "ImageMatching_1": { + "nodeType": "ImageMatching", + "position": [ + 179, + 0 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "318dd583377e8b02891a5272cb77ab8c8a03dd0c" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{FeatureExtraction_1.input}", + "featuresFolders": [ + "{FeatureExtraction_1.output}" + ], + "method": "SequentialAndVocabularyTree", + "tree": "${ALICEVISION_VOCTREE}", + "weights": "", + "minNbImages": 200, + "maxDescriptors": 500, + "nbMatches": 40, + "nbNeighbors": 5, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/imageMatches.txt" + } + }, + "LightingCalibration_1": { + "nodeType": "LightingCalibration", + "position": [ + 1288, + 253 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "d6a02cd279f71d7cfa71b7dfb370eee2818e7ad9" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "inputPath": "{SphereDetection_1.input}", + "inputDetection": "{SphereDetection_1.output}", + "saveAsModel": false, + "ellipticEstimation": false, + "method": "brightestPoint", + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "outputFile": "{cache}/{nodeType}/{uid0}//lights.json" + } + }, + "MeshFiltering_1": { + "nodeType": "MeshFiltering", + "position": [ + 1579, + 0 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "66c8793afd4e065cd120db2b97d193fdd0c4d62b" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "inputMesh": "{Meshing_1.outputMesh}", + "outputMeshFileType": "obj", + "keepLargestMeshOnly": false, + "smoothingSubset": "all", + "smoothingBoundariesNeighbours": 0, + "smoothingIterations": 5, + "smoothingLambda": 1.0, + "filteringSubset": "all", + "filteringIterations": 1, + "filterLargeTrianglesFactor": 60.0, + "filterTrianglesRatio": 0.0, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "outputMesh": "{cache}/{nodeType}/{uid0}/mesh.{outputMeshFileTypeValue}" + } + }, + "Meshing_1": { + "nodeType": "Meshing", + "position": [ + 1379, + 0 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "15f7bc52058eb51a68bd22a427b18bf50bd8cec5" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{DepthMapFilter_1.input}", + "depthMapsFolder": "{DepthMapFilter_1.output}", + "outputMeshFileType": "obj", + "useBoundingBox": false, + "boundingBox": { + "bboxTranslation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "bboxRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "bboxScale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + } + }, + "estimateSpaceFromSfM": true, + "estimateSpaceMinObservations": 3, + "estimateSpaceMinObservationAngle": 10.0, + "maxInputPoints": 50000000, + "maxPoints": 5000000, + "maxPointsPerVoxel": 1000000, + "minStep": 2, + "partitioning": "singleBlock", + "repartition": "multiResolution", + "angleFactor": 15.0, + "simFactor": 15.0, + "minVis": 2, + "pixSizeMarginInitCoef": 2.0, + "pixSizeMarginFinalCoef": 4.0, + "voteMarginFactor": 4.0, + "contributeMarginFactor": 2.0, + "simGaussianSizeInit": 10.0, + "simGaussianSize": 10.0, + "minAngleThreshold": 1.0, + "refineFuse": true, + "helperPointsGridSize": 10, + "densify": false, + "densifyNbFront": 1, + "densifyNbBack": 1, + "densifyScale": 20.0, + "nPixelSizeBehind": 4.0, + "fullWeight": 1.0, + "voteFilteringForWeaklySupportedSurfaces": true, + "addLandmarksToTheDensePointCloud": false, + "invertTetrahedronBasedOnNeighborsNbIterations": 10, + "minSolidAngleRatio": 0.2, + "nbSolidAngleFilteringIterations": 2, + "colorizeOutput": false, + "addMaskHelperPoints": false, + "maskHelperPointsWeight": 1.0, + "maskBorderSize": 4, + "maxNbConnectedHelperPoints": 50, + "saveRawDensePointCloud": false, + "exportDebugTetrahedralization": false, + "seed": 0, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "outputMesh": "{cache}/{nodeType}/{uid0}/mesh.{outputMeshFileTypeValue}", + "output": "{cache}/{nodeType}/{uid0}/densePointCloud.abc" + } + }, + "PhotometricStereo_1": { + "nodeType": "PhotometricStereo", + "position": [ + 1491, + 250 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "02ade34b229d605d1289993b64378e52ab3b5b0e" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "inputPath": "{LightingCalibration_1.inputPath}", + "pathToJSONLightFile": "{LightingCalibration_1.outputFile}", + "maskPath": "", + "SHOrder": "0", + "removeAmbient": false, + "isRobust": false, + "downscale": 1, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "outputPath": "{cache}/{nodeType}/{uid0}/", + "outputSfmDataAlbedo": "{cache}/{nodeType}/{uid0}//albedoMaps.sfm", + "outputSfmDataNormal": "{cache}/{nodeType}/{uid0}//normalMaps.sfm", + "outputSfmDataNormalPNG": "{cache}/{nodeType}/{uid0}//normalMapsPNG.sfm", + "normals": "{cache}/{nodeType}/{uid0}/_normals.exr", + "normalsPNG": "{cache}/{nodeType}/{uid0}/_normals.png", + "normalsWorld": "{cache}/{nodeType}/{uid0}/_normals_w.exr", + "albedo": "{cache}/{nodeType}/{uid0}/_albedo.png" + } + }, + "PrepareDenseScene_1": { + "nodeType": "PrepareDenseScene", + "position": [ + 779, + 0 + ], + "parallelization": { + "blockSize": 40, + "size": 1, + "split": 1 + }, + "uids": { + "0": "3463d763b471ca150ef3807279b85089938a7ff3" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{StructureFromMotion_1.output}", + "imagesFolders": [], + "masksFolders": [], + "maskExtension": "png", + "outputFileType": "exr", + "saveMetadata": true, + "saveMatricesTxtFiles": false, + "evCorrection": false, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "undistorted": "{cache}/{nodeType}/{uid0}/.{outputFileTypeValue}" + } + }, + "PrepareDenseScene_2": { + "nodeType": "PrepareDenseScene", + "position": [ + 2147, + 282 + ], + "parallelization": { + "blockSize": 40, + "size": 1, + "split": 1 + }, + "uids": { + "0": "cb941f1053ccb7f6c2cb42eb238d06500ab5259f" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{PhotometricStereo_1.outputSfmDataAlbedo}", + "imagesFolders": [], + "masksFolders": [], + "maskExtension": "png", + "outputFileType": "exr", + "saveMetadata": true, + "saveMatricesTxtFiles": false, + "evCorrection": false, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "undistorted": "{cache}/{nodeType}/{uid0}/.{outputFileTypeValue}" + } + }, + "PrepareDenseScene_3": { + "nodeType": "PrepareDenseScene", + "position": [ + 2145, + 412 + ], + "parallelization": { + "blockSize": 40, + "size": 1, + "split": 1 + }, + "uids": { + "0": "bd837101d892068c3f97d192f3fee74d427bd0e4" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{PhotometricStereo_1.outputSfmDataNormal}", + "imagesFolders": [], + "masksFolders": [], + "maskExtension": "png", + "outputFileType": "exr", + "saveMetadata": true, + "saveMatricesTxtFiles": false, + "evCorrection": false, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "undistorted": "{cache}/{nodeType}/{uid0}/.{outputFileTypeValue}" + } + }, + "PrepareDenseScene_4": { + "nodeType": "PrepareDenseScene", + "position": [ + 2147, + 538 + ], + "parallelization": { + "blockSize": 40, + "size": 1, + "split": 1 + }, + "uids": { + "0": "4bc441f4e0b8ee779d1f2b5c14b1fec412e4acca" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{PhotometricStereo_1.outputSfmDataNormalPNG}", + "imagesFolders": [], + "masksFolders": [], + "maskExtension": "png", + "outputFileType": "exr", + "saveMetadata": true, + "saveMatricesTxtFiles": false, + "evCorrection": false, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "undistorted": "{cache}/{nodeType}/{uid0}/.{outputFileTypeValue}" + } + }, + "SfMFilter_1": { + "nodeType": "SfMFilter", + "position": [ + -227, + 204 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "9e0e6b69f2f386737ebee8a8e042b9d0dcdf67c1" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "inputFile": "{CameraInit_1.output}", + "fileMatchingPattern": ".*/.*ambiant.*" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "outputSfMData_selected": "{cache}/{nodeType}/{uid0}//selectedSfmData.sfm", + "outputSfMData_unselected": "{cache}/{nodeType}/{uid0}//unselectedSfmData.sfm" + } + }, + "SfMTransfer_1": { + "nodeType": "SfMTransfer", + "position": [ + 794, + 208 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "b56ad497dd172de96af8cb703b1ccfbc211826a1" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{SfMFilter_1.outputSfMData_unselected}", + "reference": "{StructureFromMotion_1.output}", + "method": "from_poseid", + "fileMatchingPattern": ".*\\/(.*?)\\.\\w{3}", + "metadataMatchingList": [], + "transferPoses": true, + "transferIntrinsics": true, + "transferLandmarks": true, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/unselectedSfmData.abc", + "outputViewsAndPoses": "{cache}/{nodeType}/{uid0}/cameras.sfm" + } + }, + "SphereDetection_1": { + "nodeType": "SphereDetection", + "position": [ + 1100, + 255 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "13f91bad9e2a3386df185b9cbc622608f991b844" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{SfMTransfer_1.output}", + "modelPath": "${ALICEVISION_SPHERE_DETECTION_MODEL}", + "autoDetect": false, + "minScore": 0.0, + "sphereCenter": { + "x": 0.0, + "y": 0.0 + }, + "sphereRadius": 500.0, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}//detection.json" + } + }, + "StructureFromMotion_1": { + "nodeType": "StructureFromMotion", + "position": [ + 579, + 0 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "543bcfc99c4c7d374db4ac0f42677bbc7e372a79" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{FeatureMatching_1.input}", + "featuresFolders": "{FeatureMatching_1.featuresFolders}", + "matchesFolders": [ + "{FeatureMatching_1.output}" + ], + "describerTypes": "{FeatureMatching_1.describerTypes}", + "localizerEstimator": "acransac", + "observationConstraint": "Scale", + "localizerEstimatorMaxIterations": 4096, + "localizerEstimatorError": 0.0, + "lockScenePreviouslyReconstructed": false, + "useLocalBA": true, + "localBAGraphDistance": 1, + "nbFirstUnstableCameras": 30, + "maxImagesPerGroup": 30, + "bundleAdjustmentMaxOutliers": 50, + "maxNumberOfMatches": 0, + "minNumberOfMatches": 0, + "minInputTrackLength": 2, + "minNumberOfObservationsForTriangulation": 2, + "minAngleForTriangulation": 3.0, + "minAngleForLandmark": 2.0, + "maxReprojectionError": 4.0, + "minAngleInitialPair": 5.0, + "maxAngleInitialPair": 40.0, + "useOnlyMatchesFromInputFolder": false, + "useRigConstraint": true, + "rigMinNbCamerasForCalibration": 20, + "lockAllIntrinsics": false, + "minNbCamerasToRefinePrincipalPoint": 3, + "filterTrackForks": false, + "computeStructureColor": true, + "useAutoTransform": true, + "initialPairA": "", + "initialPairB": "", + "interFileExtension": ".abc", + "logIntermediateSteps": false, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/sfm.abc", + "outputViewsAndPoses": "{cache}/{nodeType}/{uid0}/cameras.sfm", + "extraInfoFolder": "{cache}/{nodeType}/{uid0}/" + } + }, + "Texturing_1": { + "nodeType": "Texturing", + "position": [ + 1779, + 0 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "b74e59c14e9d0116f95e4c342d273193f18b74dc" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{Meshing_1.output}", + "imagesFolder": "{DepthMap_1.imagesFolder}", + "normalsFolder": "", + "inputMesh": "{MeshFiltering_1.outputMesh}", + "inputRefMesh": "", + "textureSide": 8192, + "downscale": 2, + "outputMeshFileType": "obj", + "colorMapping": { + "enable": true, + "colorMappingFileType": "exr" + }, + "bumpMapping": { + "enable": true, + "bumpType": "Normal", + "normalFileType": "exr", + "heightFileType": "exr" + }, + "displacementMapping": { + "enable": true, + "displacementMappingFileType": "exr" + }, + "unwrapMethod": "Basic", + "useUDIM": true, + "fillHoles": false, + "padding": 5, + "multiBandDownscale": 4, + "multiBandNbContrib": { + "high": 1, + "midHigh": 5, + "midLow": 10, + "low": 0 + }, + "useScore": true, + "bestScoreThreshold": 0.1, + "angleHardThreshold": 90.0, + "workingColorSpace": "sRGB", + "outputColorSpace": "AUTO", + "correctEV": true, + "forceVisibleByAllVertices": false, + "flipNormals": false, + "visibilityRemappingMethod": "PullPush", + "subdivisionTargetRatio": 0.8, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "outputMesh": "{cache}/{nodeType}/{uid0}/texturedMesh.{outputMeshFileTypeValue}", + "outputMaterial": "{cache}/{nodeType}/{uid0}/texturedMesh.mtl", + "outputTextures": "{cache}/{nodeType}/{uid0}/texture_*.exr" + } + }, + "Texturing_2": { + "nodeType": "Texturing", + "position": [ + 2448, + 240 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "2290fe547144a7ae68c7907ba6cb65dc496f2549" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{Meshing_1.output}", + "imagesFolder": "{PrepareDenseScene_2.output}", + "normalsFolder": "", + "inputMesh": "{MeshFiltering_1.outputMesh}", + "inputRefMesh": "", + "textureSide": 8192, + "downscale": 2, + "outputMeshFileType": "obj", + "colorMapping": { + "enable": true, + "colorMappingFileType": "exr" + }, + "bumpMapping": { + "enable": true, + "bumpType": "Normal", + "normalFileType": "exr", + "heightFileType": "exr" + }, + "displacementMapping": { + "enable": true, + "displacementMappingFileType": "exr" + }, + "unwrapMethod": "Basic", + "useUDIM": true, + "fillHoles": false, + "padding": 5, + "multiBandDownscale": 4, + "multiBandNbContrib": { + "high": 1, + "midHigh": 5, + "midLow": 10, + "low": 0 + }, + "useScore": true, + "bestScoreThreshold": 0.1, + "angleHardThreshold": 90.0, + "workingColorSpace": "sRGB", + "outputColorSpace": "AUTO", + "correctEV": true, + "forceVisibleByAllVertices": false, + "flipNormals": false, + "visibilityRemappingMethod": "PullPush", + "subdivisionTargetRatio": 0.8, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "outputMesh": "{cache}/{nodeType}/{uid0}/texturedMesh.{outputMeshFileTypeValue}", + "outputMaterial": "{cache}/{nodeType}/{uid0}/texturedMesh.mtl", + "outputTextures": "{cache}/{nodeType}/{uid0}/texture_*.exr" + } + }, + "Texturing_3": { + "nodeType": "Texturing", + "position": [ + 2445, + 432 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "b1f98e8db0a8bbae0509b7b42ef60d688b9af1f2" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{Meshing_1.output}", + "imagesFolder": "{PrepareDenseScene_3.output}", + "normalsFolder": "", + "inputMesh": "{MeshFiltering_1.outputMesh}", + "inputRefMesh": "", + "textureSide": 8192, + "downscale": 2, + "outputMeshFileType": "obj", + "colorMapping": { + "enable": true, + "colorMappingFileType": "exr" + }, + "bumpMapping": { + "enable": true, + "bumpType": "Normal", + "normalFileType": "exr", + "heightFileType": "exr" + }, + "displacementMapping": { + "enable": true, + "displacementMappingFileType": "exr" + }, + "unwrapMethod": "Basic", + "useUDIM": true, + "fillHoles": false, + "padding": 5, + "multiBandDownscale": 4, + "multiBandNbContrib": { + "high": 1, + "midHigh": 5, + "midLow": 10, + "low": 0 + }, + "useScore": true, + "bestScoreThreshold": 0.1, + "angleHardThreshold": 90.0, + "workingColorSpace": "sRGB", + "outputColorSpace": "AUTO", + "correctEV": true, + "forceVisibleByAllVertices": false, + "flipNormals": false, + "visibilityRemappingMethod": "PullPush", + "subdivisionTargetRatio": 0.8, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "outputMesh": "{cache}/{nodeType}/{uid0}/texturedMesh.{outputMeshFileTypeValue}", + "outputMaterial": "{cache}/{nodeType}/{uid0}/texturedMesh.mtl", + "outputTextures": "{cache}/{nodeType}/{uid0}/texture_*.exr" + } + }, + "Texturing_4": { + "nodeType": "Texturing", + "position": [ + 2449, + 630 + ], + "parallelization": { + "blockSize": 0, + "size": 1, + "split": 1 + }, + "uids": { + "0": "8116978adf911c883f0b3740eb0876e60d31386c" + }, + "internalFolder": "{cache}/{nodeType}/{uid0}/", + "inputs": { + "input": "{Meshing_1.output}", + "imagesFolder": "{PrepareDenseScene_4.output}", + "normalsFolder": "", + "inputMesh": "{MeshFiltering_1.outputMesh}", + "inputRefMesh": "", + "textureSide": 8192, + "downscale": 2, + "outputMeshFileType": "obj", + "colorMapping": { + "enable": true, + "colorMappingFileType": "exr" + }, + "bumpMapping": { + "enable": true, + "bumpType": "Normal", + "normalFileType": "exr", + "heightFileType": "exr" + }, + "displacementMapping": { + "enable": true, + "displacementMappingFileType": "exr" + }, + "unwrapMethod": "Basic", + "useUDIM": true, + "fillHoles": false, + "padding": 5, + "multiBandDownscale": 4, + "multiBandNbContrib": { + "high": 1, + "midHigh": 5, + "midLow": 10, + "low": 0 + }, + "useScore": true, + "bestScoreThreshold": 0.1, + "angleHardThreshold": 90.0, + "workingColorSpace": "sRGB", + "outputColorSpace": "AUTO", + "correctEV": true, + "forceVisibleByAllVertices": false, + "flipNormals": false, + "visibilityRemappingMethod": "PullPush", + "subdivisionTargetRatio": 0.8, + "verboseLevel": "info" + }, + "internalInputs": { + "invalidation": "", + "comment": "", + "label": "", + "color": "" + }, + "outputs": { + "output": "{cache}/{nodeType}/{uid0}/", + "outputMesh": "{cache}/{nodeType}/{uid0}/texturedMesh.{outputMeshFileTypeValue}", + "outputMaterial": "{cache}/{nodeType}/{uid0}/texturedMesh.mtl", + "outputTextures": "{cache}/{nodeType}/{uid0}/texture_*.exr" + } + } + } +} \ No newline at end of file From 41c5b3e5f4023ecbea9f6d5e34bd501e01fb477b Mon Sep 17 00:00:00 2001 From: Fabien Castan Date: Mon, 28 Oct 2024 16:20:49 +0100 Subject: [PATCH 3/5] [nodes] SfMFilter: Adapt to node api changes (no more uid) --- meshroom/nodes/aliceVision/SfMFilter.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/meshroom/nodes/aliceVision/SfMFilter.py b/meshroom/nodes/aliceVision/SfMFilter.py index 9ccd4c0655..2cbe1174c5 100644 --- a/meshroom/nodes/aliceVision/SfMFilter.py +++ b/meshroom/nodes/aliceVision/SfMFilter.py @@ -17,7 +17,6 @@ class SfMFilter(desc.CommandLineNode): label="inputFile", description="SfMData file.", value="", - uid=[], ), desc.StringParam( name="fileMatchingPattern", @@ -32,7 +31,6 @@ class SfMFilter(desc.CommandLineNode): " - Match the filename prefix before \"_\": " r'".*\/(.*?)_.*\.\w{3}"', value=r'.*\/(.*?)\.\w{3}', - uid=[], ), ] @@ -42,13 +40,11 @@ class SfMFilter(desc.CommandLineNode): label="SfMData_selected", description="Output SfMData file containing selected views.", value=desc.Node.internalFolder + "/selectedSfmData.sfm", - uid=[], ), desc.File( name="outputSfMData_unselected", label="SfMData_unselected", description="Output SfMData file containing remaining views.", value=desc.Node.internalFolder + "/unselectedSfmData.sfm", - uid=[], ), ] From ef7f5407f16a26d9ce35f7e38a8060383590fade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Candice=20Bent=C3=A9jac?= Date: Tue, 29 Oct 2024 14:40:28 +0100 Subject: [PATCH 4/5] [nodes] SfMFilter: Add verbose level attribute --- meshroom/nodes/aliceVision/SfMFilter.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meshroom/nodes/aliceVision/SfMFilter.py b/meshroom/nodes/aliceVision/SfMFilter.py index 2cbe1174c5..78978fd374 100644 --- a/meshroom/nodes/aliceVision/SfMFilter.py +++ b/meshroom/nodes/aliceVision/SfMFilter.py @@ -32,6 +32,13 @@ class SfMFilter(desc.CommandLineNode): r'".*\/(.*?)_.*\.\w{3}"', value=r'.*\/(.*?)\.\w{3}', ), + desc.ChoiceParam( + name="verboseLevel", + label="Verbose Level", + description="Verbosity level (fatal, error, warning, info, debug, trace).", + values=VERBOSE_LEVEL, + value="info", + ), ] outputs = [ From f94278c088da2e7f45151e115223f0436c3a2075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Candice=20Bent=C3=A9jac?= Date: Tue, 29 Oct 2024 14:54:38 +0100 Subject: [PATCH 5/5] [pipelines] Fix multi-view photometric stereo template The template has been renamed to fit the automatic name parsing of template files, it has been effectively converted to an actual template and all the nodes have been aligned coherently. --- .../pipelines/MultiView Photometric Stereo.mg | 1158 ----------------- .../pipelines/multi-viewPhotometricStereo.mg | 277 ++++ 2 files changed, 277 insertions(+), 1158 deletions(-) delete mode 100644 meshroom/pipelines/MultiView Photometric Stereo.mg create mode 100644 meshroom/pipelines/multi-viewPhotometricStereo.mg diff --git a/meshroom/pipelines/MultiView Photometric Stereo.mg b/meshroom/pipelines/MultiView Photometric Stereo.mg deleted file mode 100644 index d90ccea878..0000000000 --- a/meshroom/pipelines/MultiView Photometric Stereo.mg +++ /dev/null @@ -1,1158 +0,0 @@ -{ - "header": { - "pipelineVersion": "2.2", - "releaseVersion": "2024.1.0-develop", - "fileVersion": "1.1", - "template": false, - "nodesVersions": { - "CameraInit": "11.0", - "DepthMap": "5.0", - "DepthMapFilter": "4.0", - "FeatureExtraction": "1.3", - "FeatureMatching": "2.0", - "ImageMatching": "2.0", - "LightingCalibration": "1.0", - "MeshFiltering": "3.0", - "Meshing": "7.0", - "PhotometricStereo": "1.0", - "PrepareDenseScene": "3.1", - "SfMFilter": "1.0", - "SfMTransfer": "2.1", - "SphereDetection": "1.0", - "StructureFromMotion": "3.3", - "Texturing": "6.0" - } - }, - "graph": { - "CameraInit_1": { - "nodeType": "CameraInit", - "position": [ - -417, - 203 - ], - "parallelization": { - "blockSize": 0, - "size": 0, - "split": 1 - }, - "uids": { - "0": "961e54591174ec5a2457c66da8eadc0cb03d89ba" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "viewpoints": [], - "intrinsics": [], - "sensorDatabase": "${ALICEVISION_SENSOR_DB}", - "lensCorrectionProfileInfo": "${ALICEVISION_LENS_PROFILE_INFO}", - "lensCorrectionProfileSearchIgnoreCameraModel": true, - "defaultFieldOfView": 45.0, - "groupCameraFallback": "folder", - "rawColorInterpretation": "LibRawWhiteBalancing", - "colorProfileDatabase": "${ALICEVISION_COLOR_PROFILE_DB}", - "errorOnMissingColorProfile": true, - "viewIdMethod": "metadata", - "viewIdRegex": ".*?(\\d+)", - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/cameraInit.sfm" - } - }, - "DepthMapFilter_1": { - "nodeType": "DepthMapFilter", - "position": [ - 1179, - 0 - ], - "parallelization": { - "blockSize": 24, - "size": 1, - "split": 1 - }, - "uids": { - "0": "7fcbffdde40134e957f90861ad3e179b8b26dbf6" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{DepthMap_1.input}", - "depthMapsFolder": "{DepthMap_1.output}", - "minViewAngle": 2.0, - "maxViewAngle": 70.0, - "nNearestCams": 10, - "minNumOfConsistentCams": 3, - "minNumOfConsistentCamsWithLowSimilarity": 4, - "pixToleranceFactor": 2.0, - "pixSizeBall": 0, - "pixSizeBallWithLowSimilarity": 0, - "computeNormalMaps": false, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "depth": "{cache}/{nodeType}/{uid0}/_depthMap.exr", - "sim": "{cache}/{nodeType}/{uid0}/_simMap.exr", - "normal": "{cache}/{nodeType}/{uid0}/_normalMap.exr" - } - }, - "DepthMap_1": { - "nodeType": "DepthMap", - "position": [ - 979, - 0 - ], - "parallelization": { - "blockSize": 12, - "size": 1, - "split": 1 - }, - "uids": { - "0": "1384130f6ded87cf983ebf688188bdf8d6f003bd" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{PrepareDenseScene_1.input}", - "imagesFolder": "{PrepareDenseScene_1.output}", - "downscale": 2, - "minViewAngle": 2.0, - "maxViewAngle": 70.0, - "tiling": { - "tileBufferWidth": 1024, - "tileBufferHeight": 1024, - "tilePadding": 64, - "autoAdjustSmallImage": true - }, - "chooseTCamsPerTile": true, - "maxTCams": 10, - "sgm": { - "sgmScale": 2, - "sgmStepXY": 2, - "sgmStepZ": -1, - "sgmMaxTCamsPerTile": 4, - "sgmWSH": 4, - "sgmUseSfmSeeds": true, - "sgmSeedsRangeInflate": 0.2, - "sgmDepthThicknessInflate": 0.0, - "sgmMaxSimilarity": 1.0, - "sgmGammaC": 5.5, - "sgmGammaP": 8.0, - "sgmP1": 10.0, - "sgmP2Weighting": 100.0, - "sgmMaxDepths": 1500, - "sgmFilteringAxes": "YX", - "sgmDepthListPerTile": true, - "sgmUseConsistentScale": false - }, - "refine": { - "refineEnabled": true, - "refineScale": 1, - "refineStepXY": 1, - "refineMaxTCamsPerTile": 4, - "refineSubsampling": 10, - "refineHalfNbDepths": 15, - "refineWSH": 3, - "refineSigma": 15.0, - "refineGammaC": 15.5, - "refineGammaP": 8.0, - "refineInterpolateMiddleDepth": false, - "refineUseConsistentScale": false - }, - "colorOptimization": { - "colorOptimizationEnabled": true, - "colorOptimizationNbIterations": 100 - }, - "customPatchPattern": { - "sgmUseCustomPatchPattern": false, - "refineUseCustomPatchPattern": false, - "customPatchPatternSubparts": [], - "customPatchPatternGroupSubpartsPerLevel": false - }, - "intermediateResults": { - "exportIntermediateDepthSimMaps": false, - "exportIntermediateNormalMaps": false, - "exportIntermediateVolumes": false, - "exportIntermediateCrossVolumes": false, - "exportIntermediateTopographicCutVolumes": false, - "exportIntermediateVolume9pCsv": false, - "exportTilePattern": false - }, - "nbGPUs": 0, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "depth": "{cache}/{nodeType}/{uid0}/_depthMap.exr", - "sim": "{cache}/{nodeType}/{uid0}/_simMap.exr", - "tilePattern": "{cache}/{nodeType}/{uid0}/_tilePattern.obj", - "depthSgm": "{cache}/{nodeType}/{uid0}/_depthMap_sgm.exr", - "depthSgmUpscaled": "{cache}/{nodeType}/{uid0}/_depthMap_sgmUpscaled.exr", - "depthRefined": "{cache}/{nodeType}/{uid0}/_depthMap_refinedFused.exr" - } - }, - "FeatureExtraction_1": { - "nodeType": "FeatureExtraction", - "position": [ - -21, - 0 - ], - "parallelization": { - "blockSize": 40, - "size": 1, - "split": 1 - }, - "uids": { - "0": "bf5baa6a716fff20b794233c50bcf0511a891d3c" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{SfMFilter_1.outputSfMData_selected}", - "masksFolder": "", - "maskExtension": "png", - "maskInvert": false, - "describerTypes": [ - "dspsift" - ], - "describerPreset": "normal", - "maxNbFeatures": 0, - "describerQuality": "normal", - "contrastFiltering": "GridSort", - "relativePeakThreshold": 0.01, - "gridFiltering": true, - "workingColorSpace": "sRGB", - "forceCpuExtraction": true, - "maxThreads": 0, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/" - } - }, - "FeatureMatching_1": { - "nodeType": "FeatureMatching", - "position": [ - 379, - 0 - ], - "parallelization": { - "blockSize": 20, - "size": 1, - "split": 1 - }, - "uids": { - "0": "64714e89ac89c4e62e820b7018d029e2e44168be" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{ImageMatching_1.input}", - "featuresFolders": "{ImageMatching_1.featuresFolders}", - "imagePairsList": "{ImageMatching_1.output}", - "describerTypes": "{FeatureExtraction_1.describerTypes}", - "photometricMatchingMethod": "ANN_L2", - "geometricEstimator": "acransac", - "geometricFilterType": "fundamental_matrix", - "distanceRatio": 0.8, - "maxIteration": 2048, - "geometricError": 0.0, - "knownPosesGeometricErrorMax": 5.0, - "minRequired2DMotion": -1.0, - "maxMatches": 0, - "savePutativeMatches": false, - "crossMatching": false, - "guidedMatching": false, - "matchFromKnownCameraPoses": false, - "exportDebugFiles": false, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/" - } - }, - "ImageMatching_1": { - "nodeType": "ImageMatching", - "position": [ - 179, - 0 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "318dd583377e8b02891a5272cb77ab8c8a03dd0c" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{FeatureExtraction_1.input}", - "featuresFolders": [ - "{FeatureExtraction_1.output}" - ], - "method": "SequentialAndVocabularyTree", - "tree": "${ALICEVISION_VOCTREE}", - "weights": "", - "minNbImages": 200, - "maxDescriptors": 500, - "nbMatches": 40, - "nbNeighbors": 5, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/imageMatches.txt" - } - }, - "LightingCalibration_1": { - "nodeType": "LightingCalibration", - "position": [ - 1288, - 253 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "d6a02cd279f71d7cfa71b7dfb370eee2818e7ad9" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "inputPath": "{SphereDetection_1.input}", - "inputDetection": "{SphereDetection_1.output}", - "saveAsModel": false, - "ellipticEstimation": false, - "method": "brightestPoint", - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "outputFile": "{cache}/{nodeType}/{uid0}//lights.json" - } - }, - "MeshFiltering_1": { - "nodeType": "MeshFiltering", - "position": [ - 1579, - 0 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "66c8793afd4e065cd120db2b97d193fdd0c4d62b" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "inputMesh": "{Meshing_1.outputMesh}", - "outputMeshFileType": "obj", - "keepLargestMeshOnly": false, - "smoothingSubset": "all", - "smoothingBoundariesNeighbours": 0, - "smoothingIterations": 5, - "smoothingLambda": 1.0, - "filteringSubset": "all", - "filteringIterations": 1, - "filterLargeTrianglesFactor": 60.0, - "filterTrianglesRatio": 0.0, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "outputMesh": "{cache}/{nodeType}/{uid0}/mesh.{outputMeshFileTypeValue}" - } - }, - "Meshing_1": { - "nodeType": "Meshing", - "position": [ - 1379, - 0 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "15f7bc52058eb51a68bd22a427b18bf50bd8cec5" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{DepthMapFilter_1.input}", - "depthMapsFolder": "{DepthMapFilter_1.output}", - "outputMeshFileType": "obj", - "useBoundingBox": false, - "boundingBox": { - "bboxTranslation": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "bboxRotation": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "bboxScale": { - "x": 1.0, - "y": 1.0, - "z": 1.0 - } - }, - "estimateSpaceFromSfM": true, - "estimateSpaceMinObservations": 3, - "estimateSpaceMinObservationAngle": 10.0, - "maxInputPoints": 50000000, - "maxPoints": 5000000, - "maxPointsPerVoxel": 1000000, - "minStep": 2, - "partitioning": "singleBlock", - "repartition": "multiResolution", - "angleFactor": 15.0, - "simFactor": 15.0, - "minVis": 2, - "pixSizeMarginInitCoef": 2.0, - "pixSizeMarginFinalCoef": 4.0, - "voteMarginFactor": 4.0, - "contributeMarginFactor": 2.0, - "simGaussianSizeInit": 10.0, - "simGaussianSize": 10.0, - "minAngleThreshold": 1.0, - "refineFuse": true, - "helperPointsGridSize": 10, - "densify": false, - "densifyNbFront": 1, - "densifyNbBack": 1, - "densifyScale": 20.0, - "nPixelSizeBehind": 4.0, - "fullWeight": 1.0, - "voteFilteringForWeaklySupportedSurfaces": true, - "addLandmarksToTheDensePointCloud": false, - "invertTetrahedronBasedOnNeighborsNbIterations": 10, - "minSolidAngleRatio": 0.2, - "nbSolidAngleFilteringIterations": 2, - "colorizeOutput": false, - "addMaskHelperPoints": false, - "maskHelperPointsWeight": 1.0, - "maskBorderSize": 4, - "maxNbConnectedHelperPoints": 50, - "saveRawDensePointCloud": false, - "exportDebugTetrahedralization": false, - "seed": 0, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "outputMesh": "{cache}/{nodeType}/{uid0}/mesh.{outputMeshFileTypeValue}", - "output": "{cache}/{nodeType}/{uid0}/densePointCloud.abc" - } - }, - "PhotometricStereo_1": { - "nodeType": "PhotometricStereo", - "position": [ - 1491, - 250 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "02ade34b229d605d1289993b64378e52ab3b5b0e" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "inputPath": "{LightingCalibration_1.inputPath}", - "pathToJSONLightFile": "{LightingCalibration_1.outputFile}", - "maskPath": "", - "SHOrder": "0", - "removeAmbient": false, - "isRobust": false, - "downscale": 1, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "outputPath": "{cache}/{nodeType}/{uid0}/", - "outputSfmDataAlbedo": "{cache}/{nodeType}/{uid0}//albedoMaps.sfm", - "outputSfmDataNormal": "{cache}/{nodeType}/{uid0}//normalMaps.sfm", - "outputSfmDataNormalPNG": "{cache}/{nodeType}/{uid0}//normalMapsPNG.sfm", - "normals": "{cache}/{nodeType}/{uid0}/_normals.exr", - "normalsPNG": "{cache}/{nodeType}/{uid0}/_normals.png", - "normalsWorld": "{cache}/{nodeType}/{uid0}/_normals_w.exr", - "albedo": "{cache}/{nodeType}/{uid0}/_albedo.png" - } - }, - "PrepareDenseScene_1": { - "nodeType": "PrepareDenseScene", - "position": [ - 779, - 0 - ], - "parallelization": { - "blockSize": 40, - "size": 1, - "split": 1 - }, - "uids": { - "0": "3463d763b471ca150ef3807279b85089938a7ff3" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{StructureFromMotion_1.output}", - "imagesFolders": [], - "masksFolders": [], - "maskExtension": "png", - "outputFileType": "exr", - "saveMetadata": true, - "saveMatricesTxtFiles": false, - "evCorrection": false, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "undistorted": "{cache}/{nodeType}/{uid0}/.{outputFileTypeValue}" - } - }, - "PrepareDenseScene_2": { - "nodeType": "PrepareDenseScene", - "position": [ - 2147, - 282 - ], - "parallelization": { - "blockSize": 40, - "size": 1, - "split": 1 - }, - "uids": { - "0": "cb941f1053ccb7f6c2cb42eb238d06500ab5259f" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{PhotometricStereo_1.outputSfmDataAlbedo}", - "imagesFolders": [], - "masksFolders": [], - "maskExtension": "png", - "outputFileType": "exr", - "saveMetadata": true, - "saveMatricesTxtFiles": false, - "evCorrection": false, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "undistorted": "{cache}/{nodeType}/{uid0}/.{outputFileTypeValue}" - } - }, - "PrepareDenseScene_3": { - "nodeType": "PrepareDenseScene", - "position": [ - 2145, - 412 - ], - "parallelization": { - "blockSize": 40, - "size": 1, - "split": 1 - }, - "uids": { - "0": "bd837101d892068c3f97d192f3fee74d427bd0e4" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{PhotometricStereo_1.outputSfmDataNormal}", - "imagesFolders": [], - "masksFolders": [], - "maskExtension": "png", - "outputFileType": "exr", - "saveMetadata": true, - "saveMatricesTxtFiles": false, - "evCorrection": false, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "undistorted": "{cache}/{nodeType}/{uid0}/.{outputFileTypeValue}" - } - }, - "PrepareDenseScene_4": { - "nodeType": "PrepareDenseScene", - "position": [ - 2147, - 538 - ], - "parallelization": { - "blockSize": 40, - "size": 1, - "split": 1 - }, - "uids": { - "0": "4bc441f4e0b8ee779d1f2b5c14b1fec412e4acca" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{PhotometricStereo_1.outputSfmDataNormalPNG}", - "imagesFolders": [], - "masksFolders": [], - "maskExtension": "png", - "outputFileType": "exr", - "saveMetadata": true, - "saveMatricesTxtFiles": false, - "evCorrection": false, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "undistorted": "{cache}/{nodeType}/{uid0}/.{outputFileTypeValue}" - } - }, - "SfMFilter_1": { - "nodeType": "SfMFilter", - "position": [ - -227, - 204 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "9e0e6b69f2f386737ebee8a8e042b9d0dcdf67c1" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "inputFile": "{CameraInit_1.output}", - "fileMatchingPattern": ".*/.*ambiant.*" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "outputSfMData_selected": "{cache}/{nodeType}/{uid0}//selectedSfmData.sfm", - "outputSfMData_unselected": "{cache}/{nodeType}/{uid0}//unselectedSfmData.sfm" - } - }, - "SfMTransfer_1": { - "nodeType": "SfMTransfer", - "position": [ - 794, - 208 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "b56ad497dd172de96af8cb703b1ccfbc211826a1" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{SfMFilter_1.outputSfMData_unselected}", - "reference": "{StructureFromMotion_1.output}", - "method": "from_poseid", - "fileMatchingPattern": ".*\\/(.*?)\\.\\w{3}", - "metadataMatchingList": [], - "transferPoses": true, - "transferIntrinsics": true, - "transferLandmarks": true, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/unselectedSfmData.abc", - "outputViewsAndPoses": "{cache}/{nodeType}/{uid0}/cameras.sfm" - } - }, - "SphereDetection_1": { - "nodeType": "SphereDetection", - "position": [ - 1100, - 255 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "13f91bad9e2a3386df185b9cbc622608f991b844" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{SfMTransfer_1.output}", - "modelPath": "${ALICEVISION_SPHERE_DETECTION_MODEL}", - "autoDetect": false, - "minScore": 0.0, - "sphereCenter": { - "x": 0.0, - "y": 0.0 - }, - "sphereRadius": 500.0, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}//detection.json" - } - }, - "StructureFromMotion_1": { - "nodeType": "StructureFromMotion", - "position": [ - 579, - 0 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "543bcfc99c4c7d374db4ac0f42677bbc7e372a79" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{FeatureMatching_1.input}", - "featuresFolders": "{FeatureMatching_1.featuresFolders}", - "matchesFolders": [ - "{FeatureMatching_1.output}" - ], - "describerTypes": "{FeatureMatching_1.describerTypes}", - "localizerEstimator": "acransac", - "observationConstraint": "Scale", - "localizerEstimatorMaxIterations": 4096, - "localizerEstimatorError": 0.0, - "lockScenePreviouslyReconstructed": false, - "useLocalBA": true, - "localBAGraphDistance": 1, - "nbFirstUnstableCameras": 30, - "maxImagesPerGroup": 30, - "bundleAdjustmentMaxOutliers": 50, - "maxNumberOfMatches": 0, - "minNumberOfMatches": 0, - "minInputTrackLength": 2, - "minNumberOfObservationsForTriangulation": 2, - "minAngleForTriangulation": 3.0, - "minAngleForLandmark": 2.0, - "maxReprojectionError": 4.0, - "minAngleInitialPair": 5.0, - "maxAngleInitialPair": 40.0, - "useOnlyMatchesFromInputFolder": false, - "useRigConstraint": true, - "rigMinNbCamerasForCalibration": 20, - "lockAllIntrinsics": false, - "minNbCamerasToRefinePrincipalPoint": 3, - "filterTrackForks": false, - "computeStructureColor": true, - "useAutoTransform": true, - "initialPairA": "", - "initialPairB": "", - "interFileExtension": ".abc", - "logIntermediateSteps": false, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/sfm.abc", - "outputViewsAndPoses": "{cache}/{nodeType}/{uid0}/cameras.sfm", - "extraInfoFolder": "{cache}/{nodeType}/{uid0}/" - } - }, - "Texturing_1": { - "nodeType": "Texturing", - "position": [ - 1779, - 0 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "b74e59c14e9d0116f95e4c342d273193f18b74dc" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{Meshing_1.output}", - "imagesFolder": "{DepthMap_1.imagesFolder}", - "normalsFolder": "", - "inputMesh": "{MeshFiltering_1.outputMesh}", - "inputRefMesh": "", - "textureSide": 8192, - "downscale": 2, - "outputMeshFileType": "obj", - "colorMapping": { - "enable": true, - "colorMappingFileType": "exr" - }, - "bumpMapping": { - "enable": true, - "bumpType": "Normal", - "normalFileType": "exr", - "heightFileType": "exr" - }, - "displacementMapping": { - "enable": true, - "displacementMappingFileType": "exr" - }, - "unwrapMethod": "Basic", - "useUDIM": true, - "fillHoles": false, - "padding": 5, - "multiBandDownscale": 4, - "multiBandNbContrib": { - "high": 1, - "midHigh": 5, - "midLow": 10, - "low": 0 - }, - "useScore": true, - "bestScoreThreshold": 0.1, - "angleHardThreshold": 90.0, - "workingColorSpace": "sRGB", - "outputColorSpace": "AUTO", - "correctEV": true, - "forceVisibleByAllVertices": false, - "flipNormals": false, - "visibilityRemappingMethod": "PullPush", - "subdivisionTargetRatio": 0.8, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "outputMesh": "{cache}/{nodeType}/{uid0}/texturedMesh.{outputMeshFileTypeValue}", - "outputMaterial": "{cache}/{nodeType}/{uid0}/texturedMesh.mtl", - "outputTextures": "{cache}/{nodeType}/{uid0}/texture_*.exr" - } - }, - "Texturing_2": { - "nodeType": "Texturing", - "position": [ - 2448, - 240 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "2290fe547144a7ae68c7907ba6cb65dc496f2549" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{Meshing_1.output}", - "imagesFolder": "{PrepareDenseScene_2.output}", - "normalsFolder": "", - "inputMesh": "{MeshFiltering_1.outputMesh}", - "inputRefMesh": "", - "textureSide": 8192, - "downscale": 2, - "outputMeshFileType": "obj", - "colorMapping": { - "enable": true, - "colorMappingFileType": "exr" - }, - "bumpMapping": { - "enable": true, - "bumpType": "Normal", - "normalFileType": "exr", - "heightFileType": "exr" - }, - "displacementMapping": { - "enable": true, - "displacementMappingFileType": "exr" - }, - "unwrapMethod": "Basic", - "useUDIM": true, - "fillHoles": false, - "padding": 5, - "multiBandDownscale": 4, - "multiBandNbContrib": { - "high": 1, - "midHigh": 5, - "midLow": 10, - "low": 0 - }, - "useScore": true, - "bestScoreThreshold": 0.1, - "angleHardThreshold": 90.0, - "workingColorSpace": "sRGB", - "outputColorSpace": "AUTO", - "correctEV": true, - "forceVisibleByAllVertices": false, - "flipNormals": false, - "visibilityRemappingMethod": "PullPush", - "subdivisionTargetRatio": 0.8, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "outputMesh": "{cache}/{nodeType}/{uid0}/texturedMesh.{outputMeshFileTypeValue}", - "outputMaterial": "{cache}/{nodeType}/{uid0}/texturedMesh.mtl", - "outputTextures": "{cache}/{nodeType}/{uid0}/texture_*.exr" - } - }, - "Texturing_3": { - "nodeType": "Texturing", - "position": [ - 2445, - 432 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "b1f98e8db0a8bbae0509b7b42ef60d688b9af1f2" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{Meshing_1.output}", - "imagesFolder": "{PrepareDenseScene_3.output}", - "normalsFolder": "", - "inputMesh": "{MeshFiltering_1.outputMesh}", - "inputRefMesh": "", - "textureSide": 8192, - "downscale": 2, - "outputMeshFileType": "obj", - "colorMapping": { - "enable": true, - "colorMappingFileType": "exr" - }, - "bumpMapping": { - "enable": true, - "bumpType": "Normal", - "normalFileType": "exr", - "heightFileType": "exr" - }, - "displacementMapping": { - "enable": true, - "displacementMappingFileType": "exr" - }, - "unwrapMethod": "Basic", - "useUDIM": true, - "fillHoles": false, - "padding": 5, - "multiBandDownscale": 4, - "multiBandNbContrib": { - "high": 1, - "midHigh": 5, - "midLow": 10, - "low": 0 - }, - "useScore": true, - "bestScoreThreshold": 0.1, - "angleHardThreshold": 90.0, - "workingColorSpace": "sRGB", - "outputColorSpace": "AUTO", - "correctEV": true, - "forceVisibleByAllVertices": false, - "flipNormals": false, - "visibilityRemappingMethod": "PullPush", - "subdivisionTargetRatio": 0.8, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "outputMesh": "{cache}/{nodeType}/{uid0}/texturedMesh.{outputMeshFileTypeValue}", - "outputMaterial": "{cache}/{nodeType}/{uid0}/texturedMesh.mtl", - "outputTextures": "{cache}/{nodeType}/{uid0}/texture_*.exr" - } - }, - "Texturing_4": { - "nodeType": "Texturing", - "position": [ - 2449, - 630 - ], - "parallelization": { - "blockSize": 0, - "size": 1, - "split": 1 - }, - "uids": { - "0": "8116978adf911c883f0b3740eb0876e60d31386c" - }, - "internalFolder": "{cache}/{nodeType}/{uid0}/", - "inputs": { - "input": "{Meshing_1.output}", - "imagesFolder": "{PrepareDenseScene_4.output}", - "normalsFolder": "", - "inputMesh": "{MeshFiltering_1.outputMesh}", - "inputRefMesh": "", - "textureSide": 8192, - "downscale": 2, - "outputMeshFileType": "obj", - "colorMapping": { - "enable": true, - "colorMappingFileType": "exr" - }, - "bumpMapping": { - "enable": true, - "bumpType": "Normal", - "normalFileType": "exr", - "heightFileType": "exr" - }, - "displacementMapping": { - "enable": true, - "displacementMappingFileType": "exr" - }, - "unwrapMethod": "Basic", - "useUDIM": true, - "fillHoles": false, - "padding": 5, - "multiBandDownscale": 4, - "multiBandNbContrib": { - "high": 1, - "midHigh": 5, - "midLow": 10, - "low": 0 - }, - "useScore": true, - "bestScoreThreshold": 0.1, - "angleHardThreshold": 90.0, - "workingColorSpace": "sRGB", - "outputColorSpace": "AUTO", - "correctEV": true, - "forceVisibleByAllVertices": false, - "flipNormals": false, - "visibilityRemappingMethod": "PullPush", - "subdivisionTargetRatio": 0.8, - "verboseLevel": "info" - }, - "internalInputs": { - "invalidation": "", - "comment": "", - "label": "", - "color": "" - }, - "outputs": { - "output": "{cache}/{nodeType}/{uid0}/", - "outputMesh": "{cache}/{nodeType}/{uid0}/texturedMesh.{outputMeshFileTypeValue}", - "outputMaterial": "{cache}/{nodeType}/{uid0}/texturedMesh.mtl", - "outputTextures": "{cache}/{nodeType}/{uid0}/texture_*.exr" - } - } - } -} \ No newline at end of file diff --git a/meshroom/pipelines/multi-viewPhotometricStereo.mg b/meshroom/pipelines/multi-viewPhotometricStereo.mg new file mode 100644 index 0000000000..5553994bbd --- /dev/null +++ b/meshroom/pipelines/multi-viewPhotometricStereo.mg @@ -0,0 +1,277 @@ +{ + "header": { + "pipelineVersion": "2.2", + "releaseVersion": "2024.1.0-develop", + "fileVersion": "2.0", + "template": true, + "nodesVersions": { + "CameraInit": "11.0", + "DepthMap": "5.0", + "DepthMapFilter": "4.0", + "FeatureExtraction": "1.3", + "FeatureMatching": "2.0", + "ImageMatching": "2.0", + "LightingCalibration": "1.0", + "MeshFiltering": "3.0", + "Meshing": "7.0", + "PhotometricStereo": "1.0", + "PrepareDenseScene": "3.1", + "SfMFilter": "1.0", + "SfMTransfer": "2.1", + "SphereDetection": "1.0", + "StructureFromMotion": "3.3", + "Texturing": "6.0" + } + }, + "graph": { + "CameraInit_1": { + "nodeType": "CameraInit", + "position": [ + -400, + 200 + ], + "inputs": { + "rawColorInterpretation": "LibRawWhiteBalancing" + } + }, + "DepthMapFilter_1": { + "nodeType": "DepthMapFilter", + "position": [ + 1200, + 0 + ], + "inputs": { + "input": "{DepthMap_1.input}", + "depthMapsFolder": "{DepthMap_1.output}" + } + }, + "DepthMap_1": { + "nodeType": "DepthMap", + "position": [ + 1000, + 0 + ], + "inputs": { + "input": "{PrepareDenseScene_1.input}", + "imagesFolder": "{PrepareDenseScene_1.output}" + } + }, + "FeatureExtraction_1": { + "nodeType": "FeatureExtraction", + "position": [ + 0, + 0 + ], + "inputs": { + "input": "{SfMFilter_1.outputSfMData_selected}" + } + }, + "FeatureMatching_1": { + "nodeType": "FeatureMatching", + "position": [ + 400, + 0 + ], + "inputs": { + "input": "{ImageMatching_1.input}", + "featuresFolders": "{ImageMatching_1.featuresFolders}", + "imagePairsList": "{ImageMatching_1.output}", + "describerTypes": "{FeatureExtraction_1.describerTypes}", + "maxIteration": 2048 + } + }, + "ImageMatching_1": { + "nodeType": "ImageMatching", + "position": [ + 200, + 0 + ], + "inputs": { + "input": "{FeatureExtraction_1.input}", + "featuresFolders": [ + "{FeatureExtraction_1.output}" + ] + } + }, + "LightingCalibration_1": { + "nodeType": "LightingCalibration", + "position": [ + 1200, + 200 + ], + "inputs": { + "inputPath": "{SphereDetection_1.input}", + "inputDetection": "{SphereDetection_1.output}" + } + }, + "MeshFiltering_1": { + "nodeType": "MeshFiltering", + "position": [ + 1600, + 0 + ], + "inputs": { + "inputMesh": "{Meshing_1.outputMesh}" + } + }, + "Meshing_1": { + "nodeType": "Meshing", + "position": [ + 1400, + 0 + ], + "inputs": { + "input": "{DepthMapFilter_1.input}", + "depthMapsFolder": "{DepthMapFilter_1.output}" + } + }, + "PhotometricStereo_1": { + "nodeType": "PhotometricStereo", + "position": [ + 1400, + 200 + ], + "inputs": { + "inputPath": "{LightingCalibration_1.inputPath}", + "pathToJSONLightFile": "{LightingCalibration_1.outputFile}" + } + }, + "PrepareDenseScene_1": { + "nodeType": "PrepareDenseScene", + "position": [ + 800, + 0 + ], + "inputs": { + "input": "{StructureFromMotion_1.output}" + } + }, + "PrepareDenseScene_2": { + "nodeType": "PrepareDenseScene", + "position": [ + 2200, + 200 + ], + "inputs": { + "input": "{PhotometricStereo_1.outputSfmDataAlbedo}" + } + }, + "PrepareDenseScene_3": { + "nodeType": "PrepareDenseScene", + "position": [ + 2200, + 400 + ], + "inputs": { + "input": "{PhotometricStereo_1.outputSfmDataNormal}" + } + }, + "PrepareDenseScene_4": { + "nodeType": "PrepareDenseScene", + "position": [ + 2200, + 600 + ], + "inputs": { + "input": "{PhotometricStereo_1.outputSfmDataNormalPNG}" + } + }, + "SfMFilter_1": { + "nodeType": "SfMFilter", + "position": [ + -200, + 200 + ], + "inputs": { + "inputFile": "{CameraInit_1.output}", + "fileMatchingPattern": ".*/.*ambiant.*" + } + }, + "SfMTransfer_1": { + "nodeType": "SfMTransfer", + "position": [ + 800, + 200 + ], + "inputs": { + "input": "{SfMFilter_1.outputSfMData_unselected}", + "reference": "{StructureFromMotion_1.output}", + "method": "from_poseid" + } + }, + "SphereDetection_1": { + "nodeType": "SphereDetection", + "position": [ + 1000, + 200 + ], + "inputs": { + "input": "{SfMTransfer_1.output}" + } + }, + "StructureFromMotion_1": { + "nodeType": "StructureFromMotion", + "position": [ + 600, + 0 + ], + "inputs": { + "input": "{FeatureMatching_1.input}", + "featuresFolders": "{FeatureMatching_1.featuresFolders}", + "matchesFolders": [ + "{FeatureMatching_1.output}" + ], + "describerTypes": "{FeatureMatching_1.describerTypes}", + "localizerEstimatorMaxIterations": 4096 + } + }, + "Texturing_1": { + "nodeType": "Texturing", + "position": [ + 1800, + 0 + ], + "inputs": { + "input": "{Meshing_1.output}", + "imagesFolder": "{DepthMap_1.imagesFolder}", + "inputMesh": "{MeshFiltering_1.outputMesh}" + } + }, + "Texturing_2": { + "nodeType": "Texturing", + "position": [ + 2400, + 200 + ], + "inputs": { + "input": "{Meshing_1.output}", + "imagesFolder": "{PrepareDenseScene_2.output}", + "inputMesh": "{MeshFiltering_1.outputMesh}" + } + }, + "Texturing_3": { + "nodeType": "Texturing", + "position": [ + 2400, + 400 + ], + "inputs": { + "input": "{Meshing_1.output}", + "imagesFolder": "{PrepareDenseScene_3.output}", + "inputMesh": "{MeshFiltering_1.outputMesh}" + } + }, + "Texturing_4": { + "nodeType": "Texturing", + "position": [ + 2400, + 600 + ], + "inputs": { + "input": "{Meshing_1.output}", + "imagesFolder": "{PrepareDenseScene_4.output}", + "inputMesh": "{MeshFiltering_1.outputMesh}" + } + } + } +} \ No newline at end of file