{
  "version": "0.9.0",
  "git_url": "https://github.com/qurator-spk/eynollah",
  "dockerhub": "ocrd/eynollah",
  "tools": {
    "ocrd-eynollah-segment": {
      "executable": "ocrd-eynollah-segment",
      "categories": ["Layout analysis"],
      "description": "Segment page into regions and lines and detect reading order with Eynollah",
      "input_file_grp_cardinality": 1,
      "output_file_grp_cardinality": 1,
      "steps": ["layout/segmentation/region", "layout/segmentation/line"],
      "parameters": {
        "device": {
          "type": "string",
          "default": "",
          "description": "Allocate models to computation device; can be a single device name for all models, or a comma-delimited, colon-tagged mapping from model category to device name (where model categories are binarization, col_classifier, page, textline, region_1_2, region_fl_np, table, reading_order, but can be abbreviated by glob expressions), e.g. col*:CPU,page:GPU0,*:GPU1. If empty, selects the first available GPU for all models."
        },
        "models": {
          "type": "string",
          "format": "uri",
          "content-type": "text/directory",
          "cacheable": true,
          "description": "Directory containing models to be used (See https://huggingface.co/collections/SBB/eynollah-models)",
          "required": true
        },
        "model_overrides": {
          "type": "object",
          "properties": {
            "binarization": {
              "type": "object"
            },
            "enhancement": {
              "type": "object"
            },
            "col_classifier": {
              "type": "object"
            },
            "page": {
              "type": "object"
            },
            "textline": {
              "type": "object"
            },
            "region_1_2": {
              "type": "object"
            },
            "region_fl_np": {
              "type": "object"
            },
            "table": {
              "type": "object"
            },
            "reading_order": {
              "type": "object"
            }
          },
          "description": "Map model categories to mappings from model variant to model path, e.g. {'ocr': {'tr': 'path/to/my/trocr-model'}}."
        },
        "dpi": {
          "type": "number",
          "format": "float",
          "description": "ignored (only for backwards-compatibility)",
          "default": 0
        },
        "full_layout": {
          "type": "boolean",
          "default": true,
          "description": "Try to detect all region subtypes, including drop-capital and heading"
        },
        "light_version": {
          "type": "boolean",
          "default": true,
          "enum": [true],
          "description": "ignored (only for backwards-compatibility)"
        },
        "textline_light": {
          "type": "boolean",
          "default": true,
          "enum": [true],
          "description": "ignored (only for backwards-compatibility)"
        },
        "tables": {
          "type": "boolean",
          "default": false,
          "description": "Try to detect table regions"
        },
        "curved_line": {
          "type": "boolean",
          "default": false,
          "description": "retrieve textline polygons independent of each other (needs more processing time)"
        },
        "ignore_page_extraction": {
          "type": "boolean",
          "default": false,
          "description": "if true, do not attempt page frame detection (cropping)"
        },
        "skip_layout_and_reading_order": {
          "type": "boolean",
          "default": false,
          "description": "skip regions, only run textlines, stuffing them in a single text region for the entire page"
        },
        "binarize": {
          "type": "boolean",
          "default": false,
          "description": "run adaptive thresholding on input image with dedicated model before analysis (may be useful for degraded input)."
        },
        "allow_scaling": {
          "type": "boolean",
          "default": false,
          "description": "ignored (only for backwards-compatibility)"
        },
        "allow_enhancement": {
          "type": "boolean",
          "default": false,
          "description": "if this parameter set to true, this tool would check that input image need resizing and enhancement or not."
        },
        "right_to_left": {
          "type": "boolean",
          "default": false,
          "description": "if true, return reading order in right-to-left reading direction."
        },
        "num_col_upper": {
          "type": "number",
          "format": "integer",
          "minimum": 0,
          "default": 0,
          "description": "Constrain detection of number of columns by this upper boundary (ignored when zero)."
        },
        "num_col_lower": {
          "type": "number",
          "format": "integer",
          "minimum": 0,
          "default": 0,
          "description": "Constrain detection of number of columns by this lower boundary (ignored when zero)."
        },
        "headers_off": {
          "type": "boolean",
          "default": false,
          "description": "ignore the special role of headings during reading order detection"
        },
        "reading_order_machine_based": {
          "type": "boolean",
          "default": false,
          "description": "use data-driven (rather than rule-based) reading order detection"
        }
      },
      "resources": [
        {
          "url": "https://zenodo.org/records/21381102/files/models_inference_layout_v0_9_1.zip",
          "name": "models_inference_layout_v0_9_1",
          "type": "archive",
	  "size": 1847700967,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization and image enhancement",
          "version_range": ">= v0.9.0"
        },
        {
          "url": "https://zenodo.org/records/21362927/files/models_inference_layout_v0_9_0.zip",
          "name": "models_inference_layout_v0_9_0",
          "type": "archive",
	  "size": 1572255489,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization and image enhancement",
          "version_range": ">= v0.9.0"
        },
        {
          "url": "https://zenodo.org/records/17727267/files/models_all_v0_8_0.zip",
          "name": "models_all_v0_8_0",
          "type": "archive",
          "size": 5636009377,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization and image enhancement",
          "version_range": ">= v0.8.0"
        },
        {
          "url": "https://zenodo.org/records/17580627/files/models_all_v0_7_0.zip?download=1",
          "name": "models_layout_v0_7_0",
          "type": "archive",
          "size": 6119874002,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization, image enhancement and OCR",
          "version_range": ">= v0.7.0"
        },
        {
          "url": "https://zenodo.org/records/17295988/files/models_layout_v0_6_0.tar.gz?download=1",
          "name": "models_layout_v0_6_0",
          "type": "archive",
          "path_in_archive": "models_layout_v0_6_0",
          "size": 3525684179,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization, image enhancement and OCR",
          "version_range": ">= v0.5.0"
        },
        {
          "description": "models for eynollah (TensorFlow SavedModel format)",
          "url": "https://github.com/qurator-spk/eynollah/releases/download/v0.3.1/models_eynollah.tar.gz",
          "name": "default",
          "size": 1894627041,
          "type": "archive",
          "path_in_archive": "models_eynollah",
          "version_range": ">= v0.3.0, < v0.5.0"
        }
      ]
    },
    "ocrd-sbb-binarize": {
      "executable": "ocrd-sbb-binarize",
      "description": "Pixelwise binarization with selectional auto-encoders in Keras",
      "categories": ["Image preprocessing"],
      "steps": ["preprocessing/optimization/binarization"],
      "input_file_grp_cardinality": 1,
      "output_file_grp_cardinality": 1,
      "parameters": {
        "operation_level": {
          "type": "string",
          "enum": ["page", "region"],
          "default": "page",
          "description": "PAGE XML hierarchy level to operate on"
        },
        "model": {
          "description": "Directory containing HDF5 or SavedModel/ProtoBuf models. Can be an absolute path or a path relative to the OCR-D resource location, the current working directory or the $SBB_BINARIZE_DATA environment variable (if set)",
          "type": "string",
          "format": "uri",
          "content-type": "text/directory",
          "required": true
        }
      },
      "resources": [
        {
          "url": "https://zenodo.org/records/21381102/files/models_inference_layout_v0_9_1.zip",
          "name": "models_inference_layout_v0_9_1",
          "type": "archive",
	  "size": 1847700967,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization and image enhancement",
          "version_range": ">= v0.9.0"
        },
        {
          "url": "https://zenodo.org/records/21381102/files/models_inference_all_v0_9_1.zip",
          "name": "models_inference_all_v0_9_1",
          "type": "archive",
          "size": 3761011909,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization and image enhancement",
          "version_range": ">= v0.9.0"
        },
        {
          "url": "https://zenodo.org/records/17727267/files/models_all_v0_8_0.zip",
          "name": "models_all_v0_8_0",
          "type": "archive",
          "size": 5636009377,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization and image enhancement",
          "version_range": ">= v0.8.0"
        },
        {
          "url": "https://zenodo.org/records/17580627/files/models_all_v0_7_0.zip?download=1",
          "name": "models_layout_v0_7_0",
          "type": "archive",
          "size": 6119874002,
          "description": "Models for layout detection, reading order detection, textline detection, page extraction, column classification, table detection, binarization, image enhancement and OCR",
          "version_range": ">= v0.7.0"
        },
        {
          "url": "https://github.com/qurator-spk/sbb_binarization/releases/download/v0.0.11/saved_model_2020_01_16.zip",
          "name": "default",
          "type": "archive",
          "path_in_archive": "saved_model_2020_01_16",
          "size": 563147331,
          "description": "default models provided by github.com/qurator-spk (SavedModel format)",
          "version_range": "< v0.7.0"
        },
        {
          "url": "https://github.com/qurator-spk/sbb_binarization/releases/download/v0.0.11/saved_model_2021_03_09.zip",
          "name": "default-2021-03-09",
          "type": "archive",
          "path_in_archive": ".",
          "size": 133230419,
          "description": "updated default models provided by github.com/qurator-spk (SavedModel format)",
          "version_range": "< v0.7.0"
        }
      ]
    }
  }
}
