import sys
import os

from ORSServiceClass.importing.deeplearningimportutils import get_deep_learning_enabled
if not get_deep_learning_enabled():  # This validate licence and load TF environment
    raise ValueError()

from ORSModel.ors import Channel
from ORSServiceClass.deepTrainer.deepmodelsmanager import DeepModelsManager

def run(model_id: str, input_folder: str, output_folder: str):

    if not os.path.exists(input_folder):
        print(f"Input folder {input_folder} not found")
        return

    # Create output folder in case it didn't exists
    os.makedirs(output_folder, exist_ok=True)

    # Load model
    dmm = DeepModelsManager()
    model = dmm.getDeepModel(model_id, True)
    if model is None:
        print(f"Model {model_id} not found")
        return

    # Apply model
    for filename in os.listdir(input_folder):
        if filename.endswith(".ORSObject"):
            channel = Channel.atomicLoad(os.path.join(input_folder, filename), True)
            if isinstance(channel, Channel):
                output = model.apply([channel])
                if output is not None:
                    model.labels_manager.applyLabelSettingsToMultiROI(output)
                    output.setTitle(f"{channel.getTitle()}_{model.getName()}")
                    output_path = os.path.join(output_folder, f"{output.getTitle()}.ORSObject")
                    print(f"Model output saved in  {output_path}.")
                    output.atomicSave(output_path, True)
                    output.deleteObject()
            channel.deleteObject()

    dmm.closeModelSession(model)


if __name__ == "__main__":
    input_folder = "/home/bprovencher/Documents/input_folder"
    output_folder = "/home/bprovencher/Documents/output_folder"
    model_id = "a2fe5546da6911eba837d45d645128fe"
    run(model_id, input_folder, output_folder)


  •  copy the function above in the python console
  •  call it with:
    input_folder = "/home/mypath/input_folder"
    output_folder = "/home/mapath/output_folder"
    model_id = "a2fe5546da6911eba837d45d645128fe"
    run(model_id, input_folder, output_folder) 


Where input_folder is the input folder containing the ORSObject channel, output_folder is the destination folder, and model_id is the id of the model (the uuid in the model folder name).

For example, "a2fe5546da6911eba837d45d645128fe" for model U-Net_TEST_a2fe5546da6911eba837d45d645128fe