Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions meshroom/aliceVision/AddPoseNoise.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,22 @@


class AddPoseNoise(desc.AVCommandLineNode):
'''
Add synthetic noise to the camera poses in an SfMData scene.

This node perturbs each camera's position and orientation by a configurable amount of
Gaussian noise. It is primarily intended for testing and benchmarking purposes, allowing
users to evaluate the robustness of downstream algorithms (e.g., bundle adjustment, depth
map estimation) when the input poses are not perfect.
'''

commandLine = 'aliceVision_addPoseNoise {allParams}'
size = desc.DynamicNodeSize('input')

cpu = desc.Level.INTENSIVE
ram = desc.Level.INTENSIVE

category = 'Utils'
documentation = '''
This node adds noise to view positions and view orientations
'''

inputs = [
desc.File(
name="input",
Expand Down
11 changes: 9 additions & 2 deletions meshroom/aliceVision/ApplyCalibration.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,19 @@


class ApplyCalibration(desc.AVCommandLineNode):
"""
Overwrite the intrinsic parameters of cameras in an SfMData scene with a pre-calibrated intrinsic.

This node replaces the intrinsics of all (or selected) cameras in the input SfMData with
the intrinsics from a calibration file. The calibration file can be either an SfMData file
or a dedicated lens calibration file. This is useful when a precise factory or lab calibration
is available and should be enforced instead of the intrinsics estimated during reconstruction.
"""

commandLine = "aliceVision_applyCalibration {allParams}"
size = desc.DynamicNodeSize("input")

category = "Utils"
documentation = """ Overwrite intrinsics with a calibrated intrinsic. """

inputs = [
desc.File(
name="input",
Expand Down
12 changes: 6 additions & 6 deletions meshroom/aliceVision/CameraInit.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,12 +327,7 @@ def readSfMData(sfmFile):


class CameraInit(desc.AVCommandLineNode, desc.InitNode):
commandLine = "aliceVision_cameraInit {allParams} --allowSingleView 1" # don't throw an error if there is only one image

size = desc.DynamicNodeSize("viewpoints")

category = "Sparse Reconstruction"
documentation = """
"""
This node describes your dataset. It lists the Viewpoints candidates, the guess about the type of optic, the initial
focal length and which images are sharing the same internal camera parameters, as well as potential camera rigs.

Expand All @@ -349,6 +344,11 @@ class CameraInit(desc.AVCommandLineNode, desc.InitNode):
differentiated and their internal parameters are optimized separately (in the photogrammetry case).
"""

commandLine = "aliceVision_cameraInit {allParams} --allowSingleView 1" # don't throw an error if there is only one image

size = desc.DynamicNodeSize("viewpoints")

category = "Sparse Reconstruction"
inputs = [
desc.ListAttribute(
name="viewpoints",
Expand Down
8 changes: 4 additions & 4 deletions meshroom/aliceVision/CheckerboardCalibration.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@


class CheckerboardCalibration(desc.AVCommandLineNode):
"""
Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
"""

commandLine = "aliceVision_checkerboardCalibration {allParams}"
size = desc.DynamicNodeSize("input")

category = "Other"
documentation = """
Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
"""

inputs = [
desc.File(
name="input",
Expand Down
10 changes: 5 additions & 5 deletions meshroom/aliceVision/CheckerboardDetection.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@
from pyalicevision import parallelization as avpar

class CheckerboardDetection(desc.AVCommandLineNode):
"""
Detect checkerboard structures in a set of images.
The detection method also supports nested calibration grids.
"""

commandLine = "aliceVision_checkerboardDetection {allParams}"
size = avpar.DynamicViewsSize("input")

parallelization = desc.Parallelization(blockSize=5)
commandLineRange = "--rangeStart {rangeStart} --rangeSize {rangeBlockSize}"

category = "Other"
documentation = """
Detect checkerboard structures in a set of images.
The detection method also supports nested calibration grids.
"""

inputs = [
desc.File(
name="input",
Expand Down
12 changes: 6 additions & 6 deletions meshroom/aliceVision/ColorCheckerCorrection.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,7 @@ def outputImagesValueFunct(attr):
return "{nodeCacheFolder}/" + '*' + (outputExt or '.*')

class ColorCheckerCorrection(desc.AVCommandLineNode):
commandLine = "aliceVision_colorCheckerCorrection {allParams}"
size = desc.DynamicNodeSize("input")
# parallelization = desc.Parallelization(blockSize=40)
# commandLineRange = '--rangeStart {rangeStart} --rangeSize {rangeBlockSize}'

documentation = """
"""
(BETA) \\
Performs color calibration from Macbeth color checker chart.
Expand All @@ -45,6 +40,11 @@ class ColorCheckerCorrection(desc.AVCommandLineNode):
If multiple color charts are submitted, only the first one will be taken in account.
"""

commandLine = "aliceVision_colorCheckerCorrection {allParams}"
size = desc.DynamicNodeSize("input")
# parallelization = desc.Parallelization(blockSize=40)
# commandLineRange = '--rangeStart {rangeStart} --rangeSize {rangeBlockSize}'

inputs = [
desc.File(
name="inputData",
Expand Down
12 changes: 6 additions & 6 deletions meshroom/aliceVision/ColorCheckerDetection.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,7 @@


class ColorCheckerDetection(desc.AVCommandLineNode):
commandLine = "aliceVision_colorCheckerDetection {allParams}"
size = desc.DynamicNodeSize("input")
# parallelization = desc.Parallelization(blockSize=40)
# commandLineRange = '--rangeStart {rangeStart} --rangeSize {rangeBlockSize}'

documentation = """
"""
(BETA) \\
Performs Macbeth color checker chart detection.

Expand All @@ -25,6 +20,11 @@ class ColorCheckerDetection(desc.AVCommandLineNode):
- ColorCheckerViewer is unstable with multiple color chart within a same image
"""

commandLine = "aliceVision_colorCheckerDetection {allParams}"
size = desc.DynamicNodeSize("input")
# parallelization = desc.Parallelization(blockSize=40)
# commandLineRange = '--rangeStart {rangeStart} --rangeSize {rangeBlockSize}'

inputs = [
desc.File(
name="input",
Expand Down
11 changes: 9 additions & 2 deletions meshroom/aliceVision/ConvertDistortion.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,19 @@


class ConvertDistortion(desc.AVCommandLineNode):
"""
Convert the lens distortion model of cameras in an SfMData scene between different representations.

Some algorithms operate on distortion models (which map from distorted image coordinates to
undistorted coordinates), while others use undistortion models (the inverse mapping).
This node converts all camera intrinsics in the scene from one representation to the other,
fitting a new model that approximates the inverse of the original.
"""

commandLine = "aliceVision_convertDistortion {allParams}"
size = desc.DynamicNodeSize("input")

category = "Utils"
documentation = """Convert distortions between different models."""

inputs = [
desc.File(
name="input",
Expand Down
10 changes: 8 additions & 2 deletions meshroom/aliceVision/ConvertMesh.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,16 @@


class ConvertMesh(desc.AVCommandLineNode):
"""
Convert a 3D mesh from one file format to another.

Supported formats include OBJ, FBX, glTF, GLB, STL and PLY. The node can optionally flip
face normals (which may be required depending on the winding-order convention used by the
target application) and copy associated texture image files to the output folder.
"""

commandLine = "aliceVision_convertMesh {allParams}"
category = "Utils"
documentation = """Convert a mesh to another mesh format."""

inputs = [
desc.File(
name="inputMesh",
Expand Down
14 changes: 9 additions & 5 deletions meshroom/aliceVision/ConvertSfMFormat.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@


class ConvertSfMFormat(desc.AVCommandLineNode):
"""
Convert an SfM scene from one file format to another.

Supported output formats include Alembic (ABC), SfMData (SFM/JSON), and others.
The node can also be used to remove specific parts of the scene, such as filtering out
all 3D landmarks or removing 2D feature observations, which is useful for reducing file size
or preparing data for tools that only need camera poses and intrinsics.
"""

commandLine = "aliceVision_convertSfMFormat {allParams}"
size = desc.DynamicNodeSize("input")

category = "Utils"
documentation = """
Convert an SfM scene from one file format to another.
It can also be used to remove specific parts of from an SfM scene (like filter all 3D landmarks or filter 2D observations).
"""

inputs = [
desc.File(
name="input",
Expand Down
16 changes: 8 additions & 8 deletions meshroom/aliceVision/DepthMap.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,7 @@
from pyalicevision import parallelization as avpar

class DepthMap(desc.AVCommandLineNode):
commandLine = "aliceVision_depthMapEstimation {allParams}"
gpu = desc.Level.INTENSIVE
size = avpar.DynamicReconstructedViewsSize("input")
parallelization = desc.Parallelization(blockSize=12)
commandLineRange = "--rangeStart {rangeStart} --rangeSize {rangeBlockSize}"

category = "Dense Reconstruction"
documentation = """
"""
Estimate a depth map for each calibrated camera using Plane Sweeping, a multi-view stereo algorithm notable for its
efficiency on modern graphics hardware (GPU).

Expand All @@ -24,6 +17,13 @@ class DepthMap(desc.AVCommandLineNode):
[https://alicevision.org/#photogrammetry/depth_maps_estimation](https://alicevision.org/#photogrammetry/depth_maps_estimation)
"""

commandLine = "aliceVision_depthMapEstimation {allParams}"
gpu = desc.Level.INTENSIVE
size = avpar.DynamicReconstructedViewsSize("input")
parallelization = desc.Parallelization(blockSize=12)
commandLineRange = "--rangeStart {rangeStart} --rangeSize {rangeBlockSize}"

category = "Dense Reconstruction"
inputs = [
desc.File(
name="input",
Expand Down
10 changes: 5 additions & 5 deletions meshroom/aliceVision/DepthMapFilter.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@


class DepthMapFilter(desc.AVCommandLineNode):
"""
Filter depth map values that are not coherent in multiple depth maps.
This allows to filter unstable points before starting the fusion of all depth maps in the Meshing node.
"""

commandLine = "aliceVision_depthMapFiltering {allParams}"
gpu = desc.Level.NORMAL
size = desc.DynamicNodeSize("input")
parallelization = desc.Parallelization(blockSize=24)
commandLineRange = "--rangeStart {rangeStart} --rangeSize {rangeBlockSize}"

category = "Dense Reconstruction"
documentation = """
Filter depth map values that are not coherent in multiple depth maps.
This allows to filter unstable points before starting the fusion of all depth maps in the Meshing node.
"""

inputs = [
desc.File(
name="input",
Expand Down
11 changes: 9 additions & 2 deletions meshroom/aliceVision/DepthMapRendering.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,18 @@


class DepthMapRendering(desc.AVCommandLineNode):
"""
Render synthetic depth maps for each calibrated camera using a reference 3D mesh.
Given an SfMData file with known camera poses and intrinsics, and a 3D mesh, this node
rasterizes the mesh from each camera viewpoint to produce per-view depth maps. These
rendered depth maps can be used as ground-truth references for evaluating depth estimation
quality, or as initialization for depth map fusion.
"""

commandLine = "aliceVision_depthMapRendering {allParams}"

category = "Utils"
documentation = """Using camera parameters and mesh, render depthmaps for each view."""

inputs = [
desc.File(
name="input",
Expand Down
11 changes: 9 additions & 2 deletions meshroom/aliceVision/DepthMapTracksInjecting.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,18 @@


class DepthMapTracksInjecting(desc.AVCommandLineNode):
'''
Inject depth information from depth maps into feature tracks.

For each feature track, the corresponding depth value from the associated depth map is
looked up and stored alongside the 2D observation. This enriched track information can
improve the accuracy of downstream triangulation and bundle adjustment steps, as the
depth constraint provides an additional per-observation measurement.
'''

commandLine = 'aliceVision_depthmapTracksInjecting {allParams}'

category = 'Utils'
documentation = '''Inject depth from depthmaps into tracks.'''

inputs = [
desc.File(
name="input",
Expand Down
4 changes: 2 additions & 2 deletions meshroom/aliceVision/DistortionCalibration.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@


class DistortionCalibration(desc.AVCommandLineNode):
"""Calibration of a camera/lens couple distortion using a full screen checkerboard."""

commandLine = "aliceVision_distortionCalibration {allParams}"
size = desc.DynamicNodeSize("input")

category = "Other"
documentation = """Calibration of a camera/lens couple distortion using a full screen checkerboard."""

inputs = [
desc.File(
name="input",
Expand Down
10 changes: 5 additions & 5 deletions meshroom/aliceVision/ExportAlembic.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@


class ExportAlembic(desc.AVCommandLineNode):
commandLine = "aliceVision_exportAlembic {allParams}"
size = desc.DynamicNodeSize("input")

category = "Export"
documentation = """
"""
Convert cameras from an SfM scene into an animated cameras in Alembic file format.
Based on the input image filenames, it will recognize the input video sequence to create an animated camera.
"""

commandLine = "aliceVision_exportAlembic {allParams}"
size = desc.DynamicNodeSize("input")

category = "Export"
inputs = [
desc.File(
name="input",
Expand Down
10 changes: 5 additions & 5 deletions meshroom/aliceVision/ExportAnimatedCamera.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@


class ExportAnimatedCamera(desc.AVCommandLineNode):
commandLine = "aliceVision_exportAnimatedCamera {allParams}"
size = desc.DynamicNodeSize("input")

category = "Export"
documentation = """
"""
Convert cameras from an SfM scene into an animated cameras in Alembic file format.
Based on the input image filenames, it will recognize the input video sequence to create an animated camera.
"""

commandLine = "aliceVision_exportAnimatedCamera {allParams}"
size = desc.DynamicNodeSize("input")

category = "Export"
inputs = [
desc.File(
name="input",
Expand Down
Loading
Loading