Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move meshroom alicevision nodes to aliceVision repository #1805

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
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
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
Loading