mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-04-28 17:57:16 +02:00
103 lines
3.1 KiB
Python
103 lines
3.1 KiB
Python
__version__ = "1.2"
|
|
|
|
from meshroom.core import desc
|
|
|
|
|
|
class ImageSegmentation(desc.AVCommandLineNode):
|
|
commandLine = 'aliceVision_imageSegmentation {allParams}'
|
|
size = desc.DynamicNodeSize('input')
|
|
gpu = desc.Level.INTENSIVE
|
|
parallelization = desc.Parallelization(blockSize=50)
|
|
commandLineRange = '--rangeStart {rangeStart} --rangeSize {rangeBlockSize}'
|
|
|
|
category = 'Utils'
|
|
documentation = '''
|
|
Generate a mask with segmented labels for each pixel.
|
|
'''
|
|
|
|
inputs = [
|
|
desc.File(
|
|
name="input",
|
|
label="Input",
|
|
description="SfMData file input.",
|
|
value="",
|
|
uid=[0],
|
|
),
|
|
desc.File(
|
|
name="modelPath",
|
|
label="Segmentation Model",
|
|
description="Weights file for the internal model.",
|
|
value="${ALICEVISION_SEMANTIC_SEGMENTATION_MODEL}",
|
|
uid=[0]
|
|
),
|
|
desc.ChoiceParam(
|
|
name="validClasses",
|
|
label="Classes",
|
|
description="Classes names which are to be considered.",
|
|
value=["person"],
|
|
values=[
|
|
"__background__",
|
|
"aeroplane",
|
|
"bicycle", "bird", "boat", "bottle", "bus",
|
|
"car", "cat", "chair", "cow",
|
|
"diningtable", "dog",
|
|
"horse",
|
|
"motorbike",
|
|
"person", "pottedplant",
|
|
"sheep", "sofa",
|
|
"train", "tvmonitor"
|
|
],
|
|
exclusive=False,
|
|
uid=[0],
|
|
),
|
|
desc.BoolParam(
|
|
name="maskInvert",
|
|
label="Invert Masks",
|
|
description="Invert mask values. If selected, the pixels corresponding to the mask will be set to 0 instead of 255.",
|
|
value=False,
|
|
uid=[0],
|
|
),
|
|
desc.BoolParam(
|
|
name="useGpu",
|
|
label="Use GPU",
|
|
description="Use GPU for computation if available",
|
|
value=True,
|
|
uid=[],
|
|
),
|
|
desc.BoolParam(
|
|
name="keepFilename",
|
|
label="Keep Filename",
|
|
description="Keep Input Filename",
|
|
value=False,
|
|
uid=[0],
|
|
),
|
|
desc.ChoiceParam(
|
|
name="verboseLevel",
|
|
label="Verbose Level",
|
|
description="Verbosity level (fatal, error, warning, info, debug, trace).",
|
|
value="info",
|
|
values=["fatal", "error", "warning", "info", "debug", "trace"],
|
|
exclusive=True,
|
|
uid=[],
|
|
)
|
|
]
|
|
|
|
outputs = [
|
|
desc.File(
|
|
name="output",
|
|
label="Masks Folder",
|
|
description="Output path for the masks.",
|
|
value=desc.Node.internalFolder,
|
|
uid=[],
|
|
),
|
|
desc.File(
|
|
name="masks",
|
|
label="Masks",
|
|
description="Generated segmentation masks.",
|
|
semantic="image",
|
|
value=lambda attr: desc.Node.internalFolder + "<VIEW_ID>.exr" if not attr.node.keepFilename.value else desc.Node.internalFolder + "<FILENAME>.exr",
|
|
group="",
|
|
uid=[],
|
|
),
|
|
]
|
|
|