Skip to content

Commit

Permalink
Add meshroom nodes to repository
Browse files Browse the repository at this point in the history
  • Loading branch information
servantftechnicolor committed Jan 20, 2025
1 parent ce3c1e1 commit 1a7baf5
Show file tree
Hide file tree
Showing 101 changed files with 14,848 additions and 0 deletions.
14 changes: 14 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ option(ALICEVISION_BUILD_TESTS "Build AliceVision tests" OFF)
option(AV_USE_CUDA "Enable CUDA" ON)
option(AV_USE_OPENMP "Enable OpenMP" $<$<CXX_COMPILER_ID:"AppleClang">,OFF,ON>) # disable by default for AppleClang
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(ALICEVISION_COPY_MESHROOM_DATA "Copy meshroom files" ON)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type for AliceVision" FORCE)
Expand Down Expand Up @@ -83,6 +84,19 @@ install(
DESTINATION ${CMAKE_INSTALL_DATADIR}/aliceVision
)

if (ALICEVISION_COPY_MESHROOM_DATA)
install(
DIRECTORY
meshroom/nodes
DESTINATION ${CMAKE_INSTALL_DATADIR}/aliceVision/meshroom/
)
install(
DIRECTORY
meshroom/pipelines
DESTINATION ${CMAKE_INSTALL_DATADIR}/aliceVision/meshroom/
)
endif()

endif()

# Bundle target (see src/cmake/MakeBundle.cmake)
Expand Down
49 changes: 49 additions & 0 deletions meshroom/nodes/aliceVision/ApplyCalibration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
__version__ = "1.0"

from meshroom.core import desc
from meshroom.core.utils import VERBOSE_LEVEL


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

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

inputs = [
desc.File(
name="input",
label="SfMData",
description="Input SfMData file.",
value="",
),
desc.File(
name="calibration",
label="Calibration",
description="Calibration file (SfmData or Lens calibration file).",
value="",
),
desc.BoolParam(
name="useJson",
label="Use Lens Calibration File",
description="Calibration is a Lens calibration file generated using 3Dequalizer instead of an sfmData.",
value=False,
),
desc.ChoiceParam(
name="verboseLevel",
label="Verbose Level",
description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL,
value="info",
),
]

outputs = [
desc.File(
name="output",
label="SMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm",
),
]
129 changes: 129 additions & 0 deletions meshroom/nodes/aliceVision/CameraCalibration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
__version__ = "1.0"

from meshroom.core import desc
from meshroom.core.utils import VERBOSE_LEVEL


class CameraCalibration(desc.AVCommandLineNode):
commandLine = 'aliceVision_cameraCalibration {allParams}'

category = 'Utils'
documentation = '''
'''

inputs = [
desc.File(
name="input",
label="Input",
description="Input images in one of the following form:\n"
" - folder containing images.\n"
" - image sequence like \"/path/to/seq.@.jpg\".\n"
" - video file.",
value="",
),
desc.ChoiceParam(
name="pattern",
label="Pattern",
description="Type of pattern (CHESSBOARD, CIRCLES, ASYMMETRIC_CIRCLES, ASYMMETRIC_CCTAG).",
value="CHESSBOARD",
values=["CHESSBOARD", "CIRCLES", "ASYMMETRIC_CIRCLES", "ASYMMETRIC_CCTAG"],
),
desc.GroupAttribute(
name="size",
label="Size",
description="Number of inner corners per one of board dimension like W H.",
groupDesc=[
desc.IntParam(
name="width",
label="Width",
description="",
value=7,
range=(0, 10000, 1),
),
desc.IntParam(
name="height",
label="Height",
description="",
value=5,
range=(0, 10000, 1),
),
],
),
desc.FloatParam(
name="squareSize",
label="Square Size",
description="Size of the grid's square cells (mm).",
value=1.0,
range=(0.0, 100.0, 1.0),
),
desc.IntParam(
name="nbDistortionCoef",
label="Nb Distortion Coef",
description="Number of distortion coefficients.",
value=3,
range=(0, 5, 1),
),
desc.IntParam(
name="maxFrames",
label="Max Frames",
description="Maximum number of frames to extract from the video file.",
value=0,
range=(0, 5, 1),
),
desc.IntParam(
name="maxCalibFrames",
label="Max Calib Frames",
description="Maximum number of frames to use to calibrate from the selected frames.",
value=100,
range=(0, 1000, 1),
),
desc.IntParam(
name="calibGridSize",
label="Calib Grid Size",
description="Define the number of cells per edge.",
value=10,
range=(0, 50, 1),
),
desc.IntParam(
name="minInputFrames",
label="Min Input Frames",
description="Minimum number of frames to limit the refinement loop.",
value=10,
range=(0, 100, 1),
),
desc.FloatParam(
name="maxTotalAvgErr",
label="Max Total Avg Err",
description="Maximum total average error.",
value=0.10000000000000001,
range=(0.0, 1.0, 0.01),
),
desc.File(
name="debugRejectedImgFolder",
label="Debug Rejected Img Folder",
description="Folder to export images that were deleted during the refinement loop.",
value="",
),
desc.File(
name="debugSelectedImgFolder",
label="Debug Selected Img Folder",
description="Folder to export debug images.",
value="",
),
desc.ChoiceParam(
name="verboseLevel",
label="Verbose Level",
description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL,
value="info",
),
]

outputs = [
desc.File(
name="output",
label="Output",
description="Output filename for intrinsic [and extrinsic] parameters.",
value=desc.Node.internalFolder + "/cameraCalibration.cal",
),
]
Loading

0 comments on commit 1a7baf5

Please sign in to comment.