From 5ba252eb4ab59225e63e7947bcd02b565148e83d Mon Sep 17 00:00:00 2001
From: Yoann Schneider <yschneider@teklia.com>
Date: Tue, 8 Nov 2022 22:59:00 +0100
Subject: [PATCH] remove obsolete code

---
 .pre-commit-config.yaml                       |    3 -
 .../extract_from_arkindex.py                  |  113 --
 .../extraction_utils/arkindex_utils.py        |   67 --
 .../extraction_utils/utils.py                 |   49 -
 .../generic_dataset_formatter.py              |   89 --
 .../dataset_formatters/simara_formatter.py    |  104 --
 Datasets/dataset_formatters/utils_dataset.py  |    7 -
 OCR/document_OCR/dan/main_dan.py              |  207 ----
 OCR/document_OCR/dan/trainer_dan.py           |  165 ---
 OCR/line_OCR/ctc/main_line_ctc.py             |  173 ---
 OCR/line_OCR/ctc/main_syn_line.py             |  148 ---
 OCR/line_OCR/ctc/models_line_ctc.py           |   19 -
 OCR/line_OCR/ctc/trainer_line_ctc.py          |   96 --
 OCR/ocr_dataset_manager.py                    | 1036 -----------------
 OCR/ocr_manager.py                            |   67 --
 README.md                                     |    4 +-
 basic/generic_dataset_manager.py              |  390 -------
 basic/generic_training_manager.py             |  706 -----------
 basic/metric_manager.py                       |  538 ---------
 basic/scheduler.py                            |   51 -
 basic/transforms.py                           |  438 -------
 basic/utils.py                                |  179 ---
 prediction-requirements.txt                   |   12 +-
 requirements.txt                              |   85 +-
 setup.py                                      |   12 +-
 visual.png                                    |  Bin 134135 -> 0 bytes
 visual_slanted_lines.png                      |  Bin 213318 -> 0 bytes
 27 files changed, 23 insertions(+), 4735 deletions(-)
 delete mode 100644 Datasets/dataset_formatters/extract_from_arkindex.py
 delete mode 100644 Datasets/dataset_formatters/extraction_utils/arkindex_utils.py
 delete mode 100644 Datasets/dataset_formatters/extraction_utils/utils.py
 delete mode 100644 Datasets/dataset_formatters/generic_dataset_formatter.py
 delete mode 100644 Datasets/dataset_formatters/simara_formatter.py
 delete mode 100644 Datasets/dataset_formatters/utils_dataset.py
 delete mode 100644 OCR/document_OCR/dan/main_dan.py
 delete mode 100644 OCR/document_OCR/dan/trainer_dan.py
 delete mode 100644 OCR/line_OCR/ctc/main_line_ctc.py
 delete mode 100644 OCR/line_OCR/ctc/main_syn_line.py
 delete mode 100644 OCR/line_OCR/ctc/models_line_ctc.py
 delete mode 100644 OCR/line_OCR/ctc/trainer_line_ctc.py
 delete mode 100644 OCR/ocr_dataset_manager.py
 delete mode 100644 OCR/ocr_manager.py
 delete mode 100644 basic/generic_dataset_manager.py
 delete mode 100644 basic/generic_training_manager.py
 delete mode 100644 basic/metric_manager.py
 delete mode 100644 basic/scheduler.py
 delete mode 100644 basic/transforms.py
 delete mode 100644 basic/utils.py
 delete mode 100644 visual.png
 delete mode 100644 visual_slanted_lines.png

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 09a6111c..3703391f 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,6 +1,3 @@
-# Only run on our the DAN python module
-files: '^dan'
-
 repos:
   - repo: https://github.com/PyCQA/isort
     rev: 5.10.1
diff --git a/Datasets/dataset_formatters/extract_from_arkindex.py b/Datasets/dataset_formatters/extract_from_arkindex.py
deleted file mode 100644
index 4bad3639..00000000
--- a/Datasets/dataset_formatters/extract_from_arkindex.py
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-# Example of minimal usage:
-# python extract_from_arkindex.py
-#   --corpus "AN-Simara annotations E (2022-06-20)"
-#   --parents-types folder
-#   --parents-names FRAN_IR_032031_4538.pdf
-#   --output-dir ../
-
-"""
-    The extraction module
-    ======================
-"""
-
-import logging
-import os
-
-import cv2
-import imageio.v2 as iio
-from arkindex import ArkindexClient, options_from_env
-from tqdm import tqdm
-
-from extraction_utils import arkindex_utils as ark
-from extraction_utils import utils
-
-logging.basicConfig(
-    level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
-)
-
-
-IMAGES_DIR = "./images/"  # Path to the images directory.
-LABELS_DIR = "./labels/"  # Path to the labels directory.
-
-# Layout string to token
-SEM_MATCHING_TOKENS_STR = {
-    "INTITULE": "ⓘ",
-    "DATE": "â““",
-    "COTE_SERIE": "â“¢",
-    "ANALYSE_COMPL.": "â“’",
-    "PRECISIONS_SUR_COTE": "â“Ÿ",
-    "COTE_ARTICLE": "ⓐ"
-}
-
-# Layout begin-token to end-token
-SEM_MATCHING_TOKENS = {
-    "ⓘ": "Ⓘ",
-    "â““": "â’¹",
-    "ⓢ": "Ⓢ",
-    "â“’": "â’¸",
-    "â“Ÿ": "â“…",
-    "ⓐ": "Ⓐ"
-}
-
-
-if __name__ == '__main__':
-    args = utils.get_cli_args()
-
-    # Get and initialize the parameters.
-    os.makedirs(IMAGES_DIR, exist_ok=True)
-    os.makedirs(LABELS_DIR, exist_ok=True)
-
-    # Login to arkindex.
-    client = ArkindexClient(**options_from_env())
-
-    corpus = ark.retrieve_corpus(client, args.corpus)
-    subsets = ark.retrieve_subsets(
-        client, corpus, args.parents_types, args.parents_names
-    )
-
-    # Iterate over the subsets to find the page images and labels.
-    for subset in subsets:
-
-        os.makedirs(os.path.join(args.output_dir, IMAGES_DIR, subset["name"]), exist_ok=True)
-        os.makedirs(os.path.join(args.output_dir, LABELS_DIR, subset["name"]), exist_ok=True)
-
-        for page in tqdm(
-            client.paginate(
-                "ListElementChildren", id=subset["id"], type="page", recursive=True
-            ),
-            desc="Set " + subset["name"],
-        ):
-
-            image = iio.imread(page["zone"]["url"])
-            cv2.imwrite(
-                os.path.join(args.output_dir, IMAGES_DIR, subset['name'], f"{page['id']}.jpg"),
-                cv2.cvtColor(image, cv2.COLOR_BGR2RGB),
-            )
-
-            tr = client.request('ListTranscriptions', id=page['id'], worker_version=None)['results']
-            tr = [one for one in tr if one['worker_version_id'] is None]
-            assert len(tr) == 1, page['id']
-
-            for one_tr in tr:
-                ent = client.request('ListTranscriptionEntities', id=one_tr['id'])['results']
-                ent = [one for one in ent if one['worker_version_id'] is None]
-                if len(ent) == 0:
-                    continue
-                else:
-                    text = one_tr['text']
-
-            new_text = text
-            count = 0
-            for e in ent:
-                start_token = SEM_MATCHING_TOKENS_STR[e['entity']['metas']['subtype']]
-                end_token = SEM_MATCHING_TOKENS[start_token]
-                new_text = new_text[:count+e['offset']] + start_token + new_text[count+e['offset']:]
-                count += 1
-                new_text = new_text[:count+e['offset']+e['length']] + end_token + new_text[count+e['offset']+e['length']:]
-                count += 1
-
-            with open(os.path.join(args.output_dir, LABELS_DIR, subset['name'], f"{page['id']}.txt"), 'w') as f:
-                f.write(new_text)
diff --git a/Datasets/dataset_formatters/extraction_utils/arkindex_utils.py b/Datasets/dataset_formatters/extraction_utils/arkindex_utils.py
deleted file mode 100644
index 5216a7e0..00000000
--- a/Datasets/dataset_formatters/extraction_utils/arkindex_utils.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-"""
-    The arkindex_utils module
-    ======================
-"""
-
-import errno
-import logging
-import sys
-
-from apistar.exceptions import ErrorResponse
-
-
-def retrieve_corpus(client, corpus_name: str) -> str:
-    """
-    Retrieve the corpus id from the corpus name.
-    :param client: The arkindex client.
-    :param corpus_name: The name of the corpus to retrieve.
-    :return target_corpus: The id of the retrieved corpus.
-    """
-    for corpus in client.request("ListCorpus"):
-        if corpus["name"] == corpus_name:
-            target_corpus = corpus["id"]
-    try:
-        logging.info(f"Corpus id retrieved: {target_corpus}")
-    except NameError:
-        logging.error(f"Corpus {corpus_name} not found")
-        sys.exit(errno.EINVAL)
-
-    return target_corpus
-
-
-def retrieve_subsets(
-    client, corpus: str, parents_types: list, parents_names: list
-) -> list:
-    """
-    Retrieve the requested subsets.
-    :param client: The arkindex client.
-    :param corpus: The id of the retrieved corpus.
-    :param parents_types: The types of parents of the elements to retrieve.
-    :param parents_names: The names of parents of the elements to retrieve.
-    :return subsets: The retrieved subsets.
-    """
-    subsets = []
-    for parent_type in parents_types:
-        try:
-            subsets.extend(
-                client.request("ListElements", corpus=corpus, type=parent_type)[
-                    "results"
-                ]
-            )
-        except ErrorResponse as e:
-            logging.error(f"{e.content}: {parent_type}")
-            sys.exit(errno.EINVAL)
-    # Retrieve subsets with name in parents-names. If no parents-names given, keep all subsets.
-    if parents_names is not None:
-        logging.info(f"Retrieving {parents_names} subset(s)")
-        subsets = [subset for subset in subsets if subset["name"] in parents_names]
-    else:
-        logging.info("Retrieving all subsets")
-
-    if len(subsets) == 0:
-        logging.info("No subset found")
-
-    return subsets
diff --git a/Datasets/dataset_formatters/extraction_utils/utils.py b/Datasets/dataset_formatters/extraction_utils/utils.py
deleted file mode 100644
index fad5cdec..00000000
--- a/Datasets/dataset_formatters/extraction_utils/utils.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-"""
-    The utils module
-    ======================
-"""
-
-import argparse
-
-def get_cli_args():
-    """
-    Get the command-line arguments.
-    :return: The command-line arguments.
-    """
-    parser = argparse.ArgumentParser(
-        description="Arkindex DAN Training Label Generation"
-    )
-
-    # Required arguments.
-    parser.add_argument(
-        "--corpus",
-        type=str,
-        help="Name of the corpus from which the data will be retrieved.",
-        required=True,
-    )
-    parser.add_argument(
-        "--parents-types",
-        nargs="+",
-        type=str,
-        help="Type of parents of the elements.",
-        required=True,
-    )
-    parser.add_argument(
-        "--output-dir",
-        type=str,
-        help="Path to the output directory.",
-        required=True,
-    )
-
-    # Optional arguments.
-    parser.add_argument(
-        "--parents-names",
-        nargs="+",
-        type=str,
-        help="Names of parents of the elements.",
-        default=None,
-    )
-    return parser.parse_args()
diff --git a/Datasets/dataset_formatters/generic_dataset_formatter.py b/Datasets/dataset_formatters/generic_dataset_formatter.py
deleted file mode 100644
index ae55af02..00000000
--- a/Datasets/dataset_formatters/generic_dataset_formatter.py
+++ /dev/null
@@ -1,89 +0,0 @@
-import os
-import shutil
-import tarfile
-import pickle
-import re
-from PIL import Image
-import numpy as np
-
-
-class DatasetFormatter:
-    """
-    Global pipeline/functions for dataset formatting
-    """
-
-    def __init__(self, dataset_name, level, extra_name="", set_names=["train", "valid", "test"]):
-        self.dataset_name = dataset_name
-        self.level = level
-        self.set_names = set_names
-        self.target_fold_path = os.path.join(
-            "Datasets", "formatted", "{}_{}{}".format(dataset_name, level, extra_name))
-        self.map_datasets_files = dict()
-        self.extract_with_dirname = False
-
-    def format(self):
-        self.init_format()
-        self.map_datasets_files[self.dataset_name][self.level]["format_function"]()
-        self.end_format()
-
-    def init_format(self):
-        """
-        Load and extracts needed files
-        """
-        os.makedirs(self.target_fold_path, exist_ok=True)
-
-        for set_name in self.set_names:
-            os.makedirs(os.path.join(self.target_fold_path, set_name), exist_ok=True)
-
-
-class OCRDatasetFormatter(DatasetFormatter):
-    """
-    Specific pipeline/functions for OCR/HTR dataset formatting
-    """
-
-    def __init__(self, source_dataset, level, extra_name="", set_names=["train", "valid", "test"]):
-        super(OCRDatasetFormatter, self).__init__(source_dataset, level, extra_name, set_names)
-        self.charset = set()
-        self.gt = dict()
-        for set_name in set_names:
-            self.gt[set_name] = dict()
-
-    def format_text_label(self, label):
-        """
-        Remove extra space or line break characters
-        """
-        temp = re.sub("(\n)+", '\n', label)
-        return re.sub("( )+", ' ', temp).strip(" \n")
-
-    def load_resize_save(self, source_path, target_path):
-        """
-        Load image, apply resolution modification and save it
-        """
-        shutil.copyfile(source_path, target_path)
-
-    def resize(self, img, source_dpi, target_dpi):
-        """
-        Apply resolution modification to image
-        """
-        if source_dpi == target_dpi:
-            return img
-        if isinstance(img, np.ndarray):
-            h, w = img.shape[:2]
-            img = Image.fromarray(img)
-        else:
-            w, h = img.size
-        ratio = target_dpi / source_dpi
-        img = img.resize((int(w*ratio), int(h*ratio)), Image.BILINEAR)
-        return np.array(img)
-
-    def end_format(self):
-        """
-        Save label and charset files
-        """
-        with open(os.path.join(self.target_fold_path, "labels.pkl"), "wb") as f:
-            pickle.dump({
-                "ground_truth": self.gt,
-                "charset": sorted(list(self.charset)),
-            }, f)
-        with open(os.path.join(self.target_fold_path, "charset.pkl"), "wb") as f:
-            pickle.dump(sorted(list(self.charset)), f)
diff --git a/Datasets/dataset_formatters/simara_formatter.py b/Datasets/dataset_formatters/simara_formatter.py
deleted file mode 100644
index c60eb30f..00000000
--- a/Datasets/dataset_formatters/simara_formatter.py
+++ /dev/null
@@ -1,104 +0,0 @@
-from Datasets.dataset_formatters.generic_dataset_formatter import OCRDatasetFormatter
-import os
-import numpy as np
-from Datasets.dataset_formatters.utils_dataset import natural_sort
-from PIL import Image
-import xml.etree.ElementTree as ET
-import re
-from tqdm import tqdm
-
-# Layout string to token
-SEM_MATCHING_TOKENS_STR = {
-    "INTITULE": "ⓘ",
-    "DATE": "â““",
-    "COTE_SERIE": "â“¢",
-    "ANALYSE_COMPL": "â“’",
-    "PRECISIONS_SUR_COTE": "â“Ÿ",
-    "COTE_ARTICLE": "ⓐ"
-}
-
-# Layout begin-token to end-token
-SEM_MATCHING_TOKENS = {
-    "ⓘ": "Ⓘ",
-    "â““": "â’¹",
-    "ⓢ": "Ⓢ",
-    "â“’": "â’¸",
-    "â“Ÿ": "â“…",
-    "ⓐ": "Ⓐ"
-}
-
-class SimaraDatasetFormatter(OCRDatasetFormatter):
-    def __init__(self, level, set_names=["train", "valid", "test"], dpi=150, sem_token=True):
-        super(SimaraDatasetFormatter, self).__init__("simara", level, "_sem" if sem_token else "", set_names)
-
-        self.dpi = dpi
-        self.sem_token = sem_token
-        self.map_datasets_files.update({
-            "simara": {
-                # (1,050 for train, 100 for validation and 100 for test)
-                "page": {
-                    "format_function": self.format_simara_page,
-                },
-            }
-        })
-        self.matching_tokens_str = SEM_MATCHING_TOKENS_STR
-        self.matching_tokens = SEM_MATCHING_TOKENS
-
-    def preformat_simara_page(self):
-        """
-        Extract all information from dataset and correct some annotations
-        """
-        dataset = {
-            "train": list(),
-            "valid": list(),
-            "test": list()
-        }
-        img_folder_path = os.path.join("Datasets", "raw", "simara", "images")
-        labels_folder_path = os.path.join("Datasets", "raw", "simara", "labels")
-        sem_labels_folder_path = os.path.join("Datasets", "raw", "simara", "labels_sem")
-        train_files = [
-            os.path.join(labels_folder_path, 'train', name)
-            for name in os.listdir(os.path.join(sem_labels_folder_path, 'train'))]
-        valid_files = [
-            os.path.join(labels_folder_path, 'valid', name)
-            for name in os.listdir(os.path.join(sem_labels_folder_path, 'valid'))]
-        test_files = [
-            os.path.join(labels_folder_path, 'test', name)
-            for name in os.listdir(os.path.join(sem_labels_folder_path, 'test'))]
-        for set_name, files in zip(self.set_names, [train_files, valid_files, test_files]):
-            for i, label_file in enumerate(tqdm(files, desc='Pre-formatting '+set_name)):
-                with open(label_file, 'r') as f:
-                    text = f.read()
-                with open(label_file.replace('labels', 'labels_sem'), 'r') as f:
-                    sem_text = f.read()
-                dataset[set_name].append({
-                    "img_path": os.path.join(
-                        img_folder_path, set_name, label_file.split('/')[-1].replace('txt', 'jpg')),
-                    "label": text,
-                    "sem_label": sem_text,
-                })
-        print(dataset['test'], len(dataset['test']))
-        return dataset
-
-    def format_simara_page(self):
-        """
-        Format simara page dataset
-        """
-        dataset = self.preformat_simara_page()
-        for set_name in self.set_names:
-            fold = os.path.join(self.target_fold_path, set_name)
-            for sample in tqdm(dataset[set_name], desc='Formatting '+set_name):
-                new_name = sample['img_path'].split('/')[-1]
-                new_img_path = os.path.join(fold, new_name)
-                self.load_resize_save(sample["img_path"], new_img_path)#, 300, self.dpi)
-                page = {
-                    "text": sample["label"] if not self.sem_token else sample["sem_label"],
-                }
-                self.charset = self.charset.union(set(page["text"]))
-                self.gt[set_name][new_name] = page
-
-
-if __name__ == "__main__":
-
-    SimaraDatasetFormatter("page", sem_token=True).format()
-    #SimaraDatasetFormatter("page", sem_token=False).format()
diff --git a/Datasets/dataset_formatters/utils_dataset.py b/Datasets/dataset_formatters/utils_dataset.py
deleted file mode 100644
index 962274da..00000000
--- a/Datasets/dataset_formatters/utils_dataset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import re
-
-
-def natural_sort(l):
-    convert = lambda text: int(text) if text.isdigit() else text.lower()
-    alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key)]
-    return sorted(l, key=alphanum_key)
\ No newline at end of file
diff --git a/OCR/document_OCR/dan/main_dan.py b/OCR/document_OCR/dan/main_dan.py
deleted file mode 100644
index 2a15f0aa..00000000
--- a/OCR/document_OCR/dan/main_dan.py
+++ /dev/null
@@ -1,207 +0,0 @@
-import os
-import sys
-DOSSIER_COURRANT = os.path.dirname(os.path.abspath(__file__))
-DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
-sys.path.append(os.path.dirname(DOSSIER_PARENT))
-sys.path.append(os.path.dirname(os.path.dirname(DOSSIER_PARENT)))
-sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(DOSSIER_PARENT))))
-from torch.optim import Adam
-from basic.transforms import aug_config
-from OCR.ocr_dataset_manager import OCRDataset, OCRDatasetManager
-from OCR.document_OCR.dan.trainer_dan import Manager
-from dan.decoder import GlobalHTADecoder
-from dan.models import FCN_Encoder
-from basic.scheduler import exponential_dropout_scheduler, linear_scheduler
-import torch
-import numpy as np
-import random
-import torch.multiprocessing as mp
-
-
-def train_and_test(rank, params):
-    torch.manual_seed(0)
-    torch.cuda.manual_seed(0)
-    np.random.seed(0)
-    random.seed(0)
-    torch.backends.cudnn.benchmark = False
-    torch.backends.cudnn.deterministic = True
-
-    params["training_params"]["ddp_rank"] = rank
-    model = Manager(params)
-    model.load_model()
-
-    model.train()
-
-    # load weights giving best CER on valid set
-    model.params["training_params"]["load_epoch"] = "best"
-    model.load_model()
-
-    metrics = ["cer", "wer", "time", "map_cer",  "loer"]
-    for dataset_name in params["dataset_params"]["datasets"].keys():
-        for set_name in ["test", "valid", "train"]:
-            model.predict("{}-{}".format(dataset_name, set_name), [(dataset_name, set_name), ], metrics, output=True)
-
-
-if __name__ == "__main__":
-
-    dataset_name = "simara"  # ["RIMES", "READ_2016"]
-    dataset_level = "page"  # ["page", "double_page"]
-    dataset_variant = "_sem"
-
-    # max number of lines for synthetic documents
-    max_nb_lines = {
-        "RIMES": 40,
-        "READ_2016": 30,
-    }
-
-    params = {
-        "dataset_params": {
-            "dataset_manager": OCRDatasetManager,
-            "dataset_class": OCRDataset,
-            "datasets": {
-                dataset_name: "../../../Datasets/formatted/{}_{}{}".format(dataset_name, dataset_level, dataset_variant),
-            },
-            "train": {
-                "name": "{}-train".format(dataset_name),
-                "datasets": [(dataset_name, "train"), ],
-            },
-            "valid": {
-                "{}-valid".format(dataset_name): [(dataset_name, "valid"), ],
-            },
-            "config": {
-                "load_in_memory": True,  # Load all images in CPU memory
-                "worker_per_gpu": 4,  # Num of parallel processes per gpu for data loading
-                "width_divisor": 8,  # Image width will be divided by 8
-                "height_divisor": 32,  # Image height will be divided by 32
-                "padding_value": 0,  # Image padding value
-                "padding_token": None,  # Label padding value
-                "charset_mode": "seq2seq",  # add end-of-transcription ans start-of-transcription tokens to charset
-                "constraints": ["add_eot", "add_sot"],  # add end-of-transcription ans start-of-transcription tokens in labels
-                "normalize": True,  # Normalize with mean and variance of training dataset
-                "preprocessings": [
-                    {
-                        "type": "to_RGB",
-                        # if grayscaled image, produce RGB one (3 channels with same value) otherwise do nothing
-                    },
-                ],
-                "augmentation": aug_config(0.9, 0.1),
-                "synthetic_data": None,
-                #"synthetic_data": {
-                #    "init_proba": 0.9,  # begin proba to generate synthetic document
-                #    "end_proba": 0.2,  # end proba to generate synthetic document
-                #    "num_steps_proba": 200000,  # linearly decrease the percent of synthetic document from 90% to 20% through 200000 samples
-                #    "proba_scheduler_function": linear_scheduler,  # decrease proba rate linearly
-                #    "start_scheduler_at_max_line": True,  # start decreasing proba only after curriculum reach max number of lines
-                #    "dataset_level": dataset_level,
-                #    "curriculum": True,  # use curriculum learning (slowly increase number of lines per synthetic samples)
-                #    "crop_curriculum": True,  # during curriculum learning, crop images under the last text line
-                #    "curr_start": 0,  # start curriculum at iteration
-                #    "curr_step": 10000,  # interval to increase the number of lines for curriculum learning
-                #    "min_nb_lines": 1,  # initial number of lines for curriculum learning
-                #    "max_nb_lines": max_nb_lines[dataset_name],  # maximum number of lines for curriculum learning
-                #    "padding_value": 255,
-                #    # config for synthetic line generation
-                #    "config": {
-                #        "background_color_default": (255, 255, 255),
-                #        "background_color_eps": 15,
-                #        "text_color_default": (0, 0, 0),
-                #        "text_color_eps": 15,
-                #        "font_size_min": 35,
-                #        "font_size_max": 45,
-                #        "color_mode": "RGB",
-                #        "padding_left_ratio_min": 0.00,
-                #        "padding_left_ratio_max": 0.05,
-                #        "padding_right_ratio_min": 0.02,
-                #        "padding_right_ratio_max": 0.2,
-                #        "padding_top_ratio_min": 0.02,
-                #        "padding_top_ratio_max": 0.1,
-                #        "padding_bottom_ratio_min": 0.02,
-                #        "padding_bottom_ratio_max": 0.1,
-                #    },
-                #}
-            }
-        },
-
-        "model_params": {
-            "models": {
-                "encoder": FCN_Encoder,
-                "decoder": GlobalHTADecoder,
-            },
-            #"transfer_learning": None,
-            "transfer_learning": {
-               # model_name: [state_dict_name, checkpoint_path, learnable, strict]
-                "encoder": ["encoder", "dan_rimes_page.pt", True, True],
-                "decoder": ["decoder", "dan_rimes_page.pt", True, False],
-            },
-            "transfered_charset": True,  # Transfer learning of the decision layer based on charset of the line HTR model
-            "additional_tokens": 1,  # for decision layer = [<eot>, ], only for transfered charset
-
-            "input_channels": 3,  # number of channels of input image
-            "dropout": 0.5,  # dropout rate for encoder
-            "enc_dim": 256,  # dimension of extracted features
-            "nb_layers": 5,  # encoder
-            "h_max": 500,  # maximum height for encoder output (for 2D positional embedding)
-            "w_max": 1000,  # maximum width for encoder output (for 2D positional embedding)
-            "l_max": 15000,  # max predicted sequence (for 1D positional embedding)
-            "dec_num_layers": 8,  # number of transformer decoder layers
-            "dec_num_heads": 4,  # number of heads in transformer decoder layers
-            "dec_res_dropout": 0.1,  # dropout in transformer decoder layers
-            "dec_pred_dropout": 0.1,  # dropout rate before decision layer
-            "dec_att_dropout": 0.1,  # dropout rate in multi head attention
-            "dec_dim_feedforward": 256,  # number of dimension for feedforward layer in transformer decoder layers
-            "use_2d_pe": True,  # use 2D positional embedding
-            "use_1d_pe": True,  # use 1D positional embedding
-            "use_lstm": False,
-            "attention_win": 100,  # length of attention window
-            # Curriculum dropout
-            "dropout_scheduler": {
-                "function": exponential_dropout_scheduler,
-                "T": 5e4,
-            }
-
-        },
-
-        "training_params": {
-            "output_folder": "dan_simara_page",  # folder name for checkpoint and results
-            "max_nb_epochs": 50000,  # maximum number of epochs before to stop
-            "max_training_time": 3600 * 24 * 1.9,  # maximum time before to stop (in seconds)
-            "load_epoch": "last",  # ["best", "last"]: last to continue training, best to evaluate
-            "interval_save_weights": None,  # None: keep best and last only
-            "batch_size": 2,  # mini-batch size for training
-            "valid_batch_size": 4,  # mini-batch size for valdiation
-            "use_ddp": False,  # Use DistributedDataParallel
-            "ddp_port": "20027",
-            "use_amp": True,  # Enable automatic mix-precision
-            "nb_gpu": torch.cuda.device_count(),
-            "optimizers": {
-                "all": {
-                    "class": Adam,
-                    "args": {
-                        "lr": 0.0001,
-                        "amsgrad": False,
-                    }
-                },
-            },
-            "lr_schedulers": None,  # Learning rate schedulers
-            "eval_on_valid": True,  # Whether to eval and logs metrics on validation set during training or not
-            "eval_on_valid_interval": 5,  # Interval (in epochs) to evaluate during training
-            "focus_metric": "cer",  # Metrics to focus on to determine best epoch
-            "expected_metric_value": "low",  # ["high", "low"] What is best for the focus metric value
-            "set_name_focus_metric": "{}-valid".format(dataset_name),  # Which dataset to focus on to select best weights
-            "train_metrics": ["loss_ce", "cer", "wer", "syn_max_lines"],  # Metrics name for training
-            "eval_metrics": ["cer", "wer", "map_cer"],  # Metrics name for evaluation on validation set during training
-            "force_cpu": False,  # True for debug purposes
-            "max_char_prediction": 1000,  # max number of token prediction
-            # Keep teacher forcing rate to 20% during whole training
-            "teacher_forcing_scheduler": {
-                "min_error_rate": 0.2,
-                "max_error_rate": 0.2,
-                "total_num_steps": 5e4
-            },
-        },
-    }
-
-    if params["training_params"]["use_ddp"] and not params["training_params"]["force_cpu"]:
-        mp.spawn(train_and_test, args=(params,), nprocs=params["training_params"]["nb_gpu"])
-    else:
-        train_and_test(0, params)
diff --git a/OCR/document_OCR/dan/trainer_dan.py b/OCR/document_OCR/dan/trainer_dan.py
deleted file mode 100644
index d8fd8432..00000000
--- a/OCR/document_OCR/dan/trainer_dan.py
+++ /dev/null
@@ -1,165 +0,0 @@
-from OCR.ocr_manager import OCRManager
-from torch.nn import CrossEntropyLoss
-import torch
-from dan.ocr_utils import LM_ind_to_str
-import numpy as np
-from torch.cuda.amp import autocast
-import time
-
-
-class Manager(OCRManager):
-
-    def __init__(self, params):
-        super(Manager, self).__init__(params)
-
-    def load_save_info(self, info_dict):
-        if "curriculum_config" in info_dict.keys():
-            if self.dataset.train_dataset is not None:
-                self.dataset.train_dataset.curriculum_config = info_dict["curriculum_config"]
-
-    def add_save_info(self, info_dict):
-        info_dict["curriculum_config"] = self.dataset.train_dataset.curriculum_config
-        return info_dict
-
-    def get_init_hidden(self, batch_size):
-        num_layers = 1
-        hidden_size = self.params["model_params"]["enc_dim"]
-        return torch.zeros(num_layers, batch_size, hidden_size), torch.zeros(num_layers, batch_size, hidden_size)
-
-    def apply_teacher_forcing(self, y, y_len, error_rate):
-        y_error = y.clone()
-        for b in range(len(y_len)):
-            for i in range(1, y_len[b]):
-                if np.random.rand() < error_rate and y[b][i] != self.dataset.tokens["pad"]:
-                    y_error[b][i] = np.random.randint(0, len(self.dataset.charset)+2)
-        return y_error, y_len
-
-    def train_batch(self, batch_data, metric_names):
-        loss_func = CrossEntropyLoss(ignore_index=self.dataset.tokens["pad"])
-
-        sum_loss = 0
-        x = batch_data["imgs"].to(self.device)
-        y = batch_data["labels"].to(self.device)
-        reduced_size = [s[:2] for s in batch_data["imgs_reduced_shape"]]
-        y_len = batch_data["labels_len"]
-
-        # add errors in teacher forcing
-        if "teacher_forcing_error_rate" in self.params["training_params"] and self.params["training_params"]["teacher_forcing_error_rate"] is not None:
-            error_rate = self.params["training_params"]["teacher_forcing_error_rate"]
-            simulated_y_pred, y_len = self.apply_teacher_forcing(y, y_len, error_rate)
-        elif "teacher_forcing_scheduler" in self.params["training_params"]:
-            error_rate = self.params["training_params"]["teacher_forcing_scheduler"]["min_error_rate"] + min(self.latest_step, self.params["training_params"]["teacher_forcing_scheduler"]["total_num_steps"]) * (self.params["training_params"]["teacher_forcing_scheduler"]["max_error_rate"]-self.params["training_params"]["teacher_forcing_scheduler"]["min_error_rate"]) / self.params["training_params"]["teacher_forcing_scheduler"]["total_num_steps"]
-            simulated_y_pred, y_len = self.apply_teacher_forcing(y, y_len, error_rate)
-        else:
-            simulated_y_pred = y
-
-        with autocast(enabled=self.params["training_params"]["use_amp"]):
-            hidden_predict = None
-            cache = None
-
-            raw_features = self.models["encoder"](x)
-            features_size = raw_features.size()
-            b, c, h, w = features_size
-
-            pos_features = self.models["decoder"].features_updater.get_pos_features(raw_features)
-            features = torch.flatten(pos_features, start_dim=2, end_dim=3).permute(2, 0, 1)
-            enhanced_features = pos_features
-            enhanced_features = torch.flatten(enhanced_features, start_dim=2, end_dim=3).permute(2, 0, 1)
-            output, pred, hidden_predict, cache, weights = self.models["decoder"](features, enhanced_features,
-                                                                               simulated_y_pred[:, :-1],
-                                                                               reduced_size,
-                                                                               [max(y_len) for _ in range(b)],
-                                                                               features_size,
-                                                                               start=0,
-                                                                               hidden_predict=hidden_predict,
-                                                                               cache=cache,
-                                                                               keep_all_weights=True)
-
-            loss_ce = loss_func(pred, y[:, 1:])
-            sum_loss += loss_ce
-            with autocast(enabled=False):
-                self.backward_loss(sum_loss)
-                self.step_optimizers()
-                self.zero_optimizers()
-            predicted_tokens = torch.argmax(pred, dim=1).detach().cpu().numpy()
-            predicted_tokens = [predicted_tokens[i, :y_len[i]] for i in range(b)]
-            str_x = [LM_ind_to_str(self.dataset.charset, t, oov_symbol="") for t in predicted_tokens]
-
-        values = {
-            "nb_samples": b,
-            "str_y": batch_data["raw_labels"],
-            "str_x": str_x,
-            "loss": sum_loss.item(),
-            "loss_ce": loss_ce.item(),
-            "syn_max_lines": self.dataset.train_dataset.get_syn_max_lines() if self.params["dataset_params"]["config"]["synthetic_data"] else 0,
-        }
-
-        return values
-
-    def evaluate_batch(self, batch_data, metric_names):
-        x = batch_data["imgs"].to(self.device)
-        reduced_size = [s[:2] for s in batch_data["imgs_reduced_shape"]]
-
-        max_chars = self.params["training_params"]["max_char_prediction"]
-
-        start_time = time.time()
-        with autocast(enabled=self.params["training_params"]["use_amp"]):
-            b = x.size(0)
-            reached_end = torch.zeros((b, ), dtype=torch.bool, device=self.device)
-            prediction_len = torch.zeros((b, ), dtype=torch.int, device=self.device)
-            predicted_tokens = torch.ones((b, 1), dtype=torch.long, device=self.device) * self.dataset.tokens["start"]
-            predicted_tokens_len = torch.ones((b, ), dtype=torch.int, device=self.device)
-
-            whole_output = list()
-            confidence_scores = list()
-            cache = None
-            hidden_predict = None
-            if b > 1:
-                features_list = list()
-                for i in range(b):
-                    pos = batch_data["imgs_position"]
-                    features_list.append(self.models["encoder"](x[i:i+1, :, pos[i][0][0]:pos[i][0][1], pos[i][1][0]:pos[i][1][1]]))
-                max_height = max([f.size(2) for f in features_list])
-                max_width = max([f.size(3) for f in features_list])
-                features = torch.zeros((b, features_list[0].size(1), max_height, max_width), device=self.device, dtype=features_list[0].dtype)
-                for i in range(b):
-                    features[i, :, :features_list[i].size(2), :features_list[i].size(3)] = features_list[i]
-            else:
-                features = self.models["encoder"](x)
-            features_size = features.size()
-            coverage_vector = torch.zeros((features.size(0), 1, features.size(2), features.size(3)), device=self.device)
-            pos_features = self.models["decoder"].features_updater.get_pos_features(features)
-            features = torch.flatten(pos_features, start_dim=2, end_dim=3).permute(2, 0, 1)
-            enhanced_features = pos_features
-            enhanced_features = torch.flatten(enhanced_features, start_dim=2, end_dim=3).permute(2, 0, 1)
-
-            for i in range(0, max_chars):
-                output, pred, hidden_predict, cache, weights = self.models["decoder"](features, enhanced_features, predicted_tokens, reduced_size, predicted_tokens_len, features_size, start=0, hidden_predict=hidden_predict, cache=cache, num_pred=1)
-                whole_output.append(output)
-                confidence_scores.append(torch.max(torch.softmax(pred[:, :], dim=1), dim=1).values)
-                coverage_vector = torch.clamp(coverage_vector + weights, 0, 1)
-                predicted_tokens = torch.cat([predicted_tokens, torch.argmax(pred[:, :, -1], dim=1, keepdim=True)], dim=1)
-                reached_end = torch.logical_or(reached_end, torch.eq(predicted_tokens[:, -1], self.dataset.tokens["end"]))
-                predicted_tokens_len += 1
-
-                prediction_len[reached_end == False] = i + 1
-                if torch.all(reached_end):
-                    break
-
-            confidence_scores = torch.cat(confidence_scores, dim=1).cpu().detach().numpy()
-            predicted_tokens = predicted_tokens[:, 1:]
-            prediction_len[torch.eq(reached_end, False)] = max_chars - 1
-            predicted_tokens = [predicted_tokens[i, :prediction_len[i]] for i in range(b)]
-            confidence_scores = [confidence_scores[i, :prediction_len[i]].tolist() for i in range(b)]
-            str_x = [LM_ind_to_str(self.dataset.charset, t, oov_symbol="") for t in predicted_tokens]
-
-        process_time = time.time() - start_time
-
-        values = {
-            "nb_samples": b,
-            "str_y": batch_data["raw_labels"],
-            "str_x": str_x,
-            "confidence_score": confidence_scores,
-            "time": process_time,
-        }
-        return values
diff --git a/OCR/line_OCR/ctc/main_line_ctc.py b/OCR/line_OCR/ctc/main_line_ctc.py
deleted file mode 100644
index bb8fa1d6..00000000
--- a/OCR/line_OCR/ctc/main_line_ctc.py
+++ /dev/null
@@ -1,173 +0,0 @@
-
-import os
-import sys
-from os.path import dirname
-DOSSIER_COURRANT = dirname(os.path.abspath(__file__))
-ROOT_FOLDER = dirname(dirname(dirname(DOSSIER_COURRANT)))
-sys.path.append(ROOT_FOLDER)
-from OCR.line_OCR.ctc.trainer_line_ctc import TrainerLineCTC
-from OCR.line_OCR.ctc.models_line_ctc import Decoder
-from dan.models import FCN_Encoder
-from torch.optim import Adam
-from basic.transforms import line_aug_config
-from basic.scheduler import exponential_dropout_scheduler, exponential_scheduler
-from OCR.ocr_dataset_manager import OCRDataset, OCRDatasetManager
-import torch.multiprocessing as mp
-import torch
-import numpy as np
-import random
-
-
-def train_and_test(rank, params):
-    torch.manual_seed(0)
-    torch.cuda.manual_seed(0)
-    np.random.seed(0)
-    random.seed(0)
-    torch.backends.cudnn.benchmark = False
-    torch.backends.cudnn.deterministic = True
-
-    params["training_params"]["ddp_rank"] = rank
-    model = TrainerLineCTC(params)
-    model.load_model()
-
-    # Model trains until max_time_training or max_nb_epochs is reached
-    model.train()
-
-    # load weights giving best CER on valid set
-    model.params["training_params"]["load_epoch"] = "best"
-    model.load_model()
-
-    # compute metrics on train, valid and test sets (in eval conditions)
-    metrics = ["cer", "wer", "time", ]
-    for dataset_name in params["dataset_params"]["datasets"].keys():
-        for set_name in ["test", "valid", "train", ]:
-            model.predict("{}-{}".format(dataset_name, set_name), [(dataset_name, set_name), ], metrics, output=True)
-
-
-def main():
-    dataset_name = "READ_2016"  # ["RIMES", "READ_2016"]
-    dataset_level = "syn_line"
-    params = {
-        "dataset_params": {
-            "dataset_manager": OCRDatasetManager,
-            "dataset_class": OCRDataset,
-            "datasets": {
-                dataset_name: "../../../Datasets/formatted/{}_{}".format(dataset_name, dataset_level),
-            },
-            "train": {
-                "name": "{}-train".format(dataset_name),
-                "datasets": [(dataset_name, "train"), ],
-            },
-            "valid": {
-                "{}-valid".format(dataset_name): [(dataset_name, "valid"), ],
-            },
-            "config": {
-                "load_in_memory": True,  # Load all images in CPU memory
-                "worker_per_gpu": 8,  # Num of parallel processes per gpu for data loading
-                "width_divisor": 8,  # Image width will be divided by 8
-                "height_divisor": 32,  # Image height will be divided by 32
-                "padding_value": 0,  # Image padding value
-                "padding_token": 1000,  # Label padding value (None: default value is chosen)
-                "padding_mode": "br",  # Padding at bottom and right
-                "charset_mode": "CTC",  # add blank token
-                "constraints": ["CTC_line", ],  # Padding for CTC requirements if necessary
-                "normalize": True,  # Normalize with mean and variance of training dataset
-                "padding": {
-                    "min_height": "max",  # Pad to reach max height of training samples
-                    "min_width": "max",  # Pad to reach max width of training samples
-                    "min_pad": None,
-                    "max_pad": None,
-                    "mode": "br",  # Padding at bottom and right
-                    "train_only": False,  # Add padding at training time and evaluation time
-                },
-                "preprocessings": [
-                    {
-                        "type": "to_RGB",
-                        # if grayscale image, produce RGB one (3 channels with same value) otherwise do nothing
-                    },
-                ],
-                # Augmentation techniques to use at training time
-                "augmentation": line_aug_config(0.9, 0.1),
-                #
-                "synthetic_data": {
-                    "mode": "line_hw_to_printed",
-                    "init_proba": 1,
-                    "end_proba": 1,
-                    "num_steps_proba": 1e5,
-                    "proba_scheduler_function": exponential_scheduler,
-                    "config": {
-                        "background_color_default": (255, 255, 255),
-                        "background_color_eps": 15,
-                        "text_color_default": (0, 0, 0),
-                        "text_color_eps": 15,
-                        "font_size_min": 30,
-                        "font_size_max": 50,
-                        "color_mode": "RGB",
-                        "padding_left_ratio_min": 0.02,
-                        "padding_left_ratio_max": 0.1,
-                        "padding_right_ratio_min": 0.02,
-                        "padding_right_ratio_max": 0.1,
-                        "padding_top_ratio_min": 0.02,
-                        "padding_top_ratio_max": 0.2,
-                        "padding_bottom_ratio_min": 0.02,
-                        "padding_bottom_ratio_max": 0.2,
-                    },
-                },
-            }
-        },
-
-        "model_params": {
-            # Model classes to use for each module
-            "models": {
-                "encoder": FCN_Encoder,
-                "decoder": Decoder,
-            },
-            "transfer_learning": None,
-            "input_channels": 3,  # 1 for grayscale images, 3 for RGB ones (or grayscale as RGB)
-            "enc_size": 256,
-            "dropout_scheduler": {
-                "function": exponential_dropout_scheduler,
-                "T": 5e4,
-            },
-            "dropout": 0.5,
-        },
-
-        "training_params": {
-            "output_folder": "FCN_read_2016_line_syn",  # folder names for logs and weigths
-            "max_nb_epochs": 10000,  # max number of epochs for the training
-            "max_training_time": 3600 * 24 * 1.9,  # max training time limit (in seconds)
-            "load_epoch": "last",  # ["best", "last"], to load weights from best epoch or last trained epoch
-            "interval_save_weights": None,  # None: keep best and last only
-            "use_ddp": False,  # Use DistributedDataParallel
-            "use_amp": True,  # Enable automatic mix-precision
-            "nb_gpu": torch.cuda.device_count(),
-            "batch_size": 16,  # mini-batch size per GPU
-            "optimizers": {
-                "all": {
-                    "class": Adam,
-                    "args": {
-                        "lr": 0.0001,
-                        "amsgrad": False,
-                    }
-                }
-            },
-            "lr_schedulers": None,  # Learning rate schedulers
-            "eval_on_valid": True,  # Whether to eval and logs metrics on validation set during training or not
-            "eval_on_valid_interval": 2,  # Interval (in epochs) to evaluate during training
-            "focus_metric": "cer",  # Metrics to focus on to determine best epoch
-            "expected_metric_value": "low",  # ["high", "low"] What is best for the focus metric value
-            "set_name_focus_metric": "{}-valid".format(dataset_name),  # Which dataset to focus on to select best weights
-            "train_metrics": ["loss_ctc", "cer", "wer"],  # Metrics name for training
-            "eval_metrics": ["loss_ctc", "cer", "wer"],  # Metrics name for evaluation on validation set during training
-            "force_cpu": False,  # True for debug purposes to run on cpu only
-        },
-    }
-
-    if params["training_params"]["use_ddp"] and not params["training_params"]["force_cpu"]:
-        mp.spawn(train_and_test, args=(params,), nprocs=params["training_params"]["nb_gpu"])
-    else:
-        train_and_test(0, params)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/OCR/line_OCR/ctc/main_syn_line.py b/OCR/line_OCR/ctc/main_syn_line.py
deleted file mode 100644
index c16f9de5..00000000
--- a/OCR/line_OCR/ctc/main_syn_line.py
+++ /dev/null
@@ -1,148 +0,0 @@
-
-import os
-import sys
-from os.path import dirname
-DOSSIER_COURRANT = dirname(os.path.abspath(__file__))
-ROOT_FOLDER = dirname(dirname(dirname(DOSSIER_COURRANT)))
-sys.path.append(ROOT_FOLDER)
-from OCR.line_OCR.ctc.trainer_line_ctc import TrainerLineCTC
-from OCR.line_OCR.ctc.models_line_ctc import Decoder
-from dan.models import FCN_Encoder
-from torch.optim import Adam
-from basic.transforms import line_aug_config
-from basic.scheduler import exponential_dropout_scheduler, exponential_scheduler
-from OCR.ocr_dataset_manager import OCRDataset, OCRDatasetManager
-import torch.multiprocessing as mp
-import torch
-import numpy as np
-import random
-
-
-def train_and_test(rank, params):
-    torch.manual_seed(0)
-    torch.cuda.manual_seed(0)
-    np.random.seed(0)
-    random.seed(0)
-    torch.backends.cudnn.benchmark = False
-    torch.backends.cudnn.deterministic = True
-
-    params["training_params"]["ddp_rank"] = rank
-    model = TrainerLineCTC(params)
-
-    model.generate_syn_line_dataset("READ_2016_syn_line")  # ["RIMES_syn_line", "READ_2016_syn_line"]
-
-
-def main():
-    dataset_name = "READ_2016"  # ["RIMES", "READ_2016"]
-    dataset_level = "page"
-    params = {
-        "dataset_params": {
-            "dataset_manager": OCRDatasetManager,
-            "dataset_class": OCRDataset,
-            "datasets": {
-                dataset_name: "../../../Datasets/formatted/{}_{}".format(dataset_name, dataset_level),
-            },
-            "train": {
-                "name": "{}-train".format(dataset_name),
-                "datasets": [(dataset_name, "train"), ],
-            },
-            "valid": {
-                "{}-valid".format(dataset_name): [(dataset_name, "valid"), ],
-            },
-            "config": {
-                "load_in_memory": False,  # Load all images in CPU memory
-                "worker_per_gpu": 4,
-                "width_divisor": 8,  # Image width will be divided by 8
-                "height_divisor": 32,  # Image height will be divided by 32
-                "padding_value": 0,  # Image padding value
-                "padding_token": 1000,  # Label padding value (None: default value is chosen)
-                "padding_mode": "br",  # Padding at bottom and right
-                "charset_mode": "CTC",  # add blank token
-                "constraints": [],  # Padding for CTC requirements if necessary
-                "normalize": True,  # Normalize with mean and variance of training dataset
-                "preprocessings": [],
-                # Augmentation techniques to use at training time
-                "augmentation": line_aug_config(0.9, 0.1),
-                #
-                "synthetic_data": {
-                    "mode": "line_hw_to_printed",
-                    "init_proba": 1,
-                    "end_proba": 1,
-                    "num_steps_proba": 1e5,
-                    "proba_scheduler_function": exponential_scheduler,
-                    "config": {
-                        "background_color_default": (255, 255, 255),
-                        "background_color_eps": 15,
-                        "text_color_default": (0, 0, 0),
-                        "text_color_eps": 15,
-                        "font_size_min": 30,
-                        "font_size_max": 50,
-                        "color_mode": "RGB",
-                        "padding_left_ratio_min": 0.02,
-                        "padding_left_ratio_max": 0.1,
-                        "padding_right_ratio_min": 0.02,
-                        "padding_right_ratio_max": 0.1,
-                        "padding_top_ratio_min": 0.02,
-                        "padding_top_ratio_max": 0.2,
-                        "padding_bottom_ratio_min": 0.02,
-                        "padding_bottom_ratio_max": 0.2,
-                    },
-                },
-            }
-        },
-
-        "model_params": {
-            # Model classes to use for each module
-            "models": {
-                "encoder": FCN_Encoder,
-                "decoder": Decoder,
-            },
-            "transfer_learning": None,
-            "input_channels": 3,  # 1 for grayscale images, 3 for RGB ones (or grayscale as RGB)
-            "enc_size": 256,
-            "dropout_scheduler": {
-                "function": exponential_dropout_scheduler,
-                "T": 5e4,
-            },
-            "dropout": 0.5,
-        },
-
-        "training_params": {
-            "output_folder": "FCN_Encoder_read_syn_line_all_pad_max_cursive",  # folder names for logs and weigths
-            "max_nb_epochs": 10000,  # max number of epochs for the training
-            "max_training_time": 3600 * 24 * 1.9,  # max training time limit (in seconds)
-            "load_epoch": "last",  # ["best", "last"], to load weights from best epoch or last trained epoch
-            "interval_save_weights": None,  # None: keep best and last only
-            "use_ddp": False,  # Use DistributedDataParallel
-            "use_amp": True,  # Enable automatic mix-precision
-            "nb_gpu": torch.cuda.device_count(),
-            "batch_size": 1,  # mini-batch size per GPU
-            "optimizers": {
-                "all": {
-                    "class": Adam,
-                    "args": {
-                        "lr": 0.0001,
-                        "amsgrad": False,
-                    }
-                }
-            },
-            "lr_schedulers": None,
-            "eval_on_valid": True,  # Whether to eval and logs metrics on validation set during training or not
-            "eval_on_valid_interval": 2,  # Interval (in epochs) to evaluate during training
-            "focus_metric": "cer",  # Metrics to focus on to determine best epoch
-            "expected_metric_value": "low",  # ["high", "low"] What is best for the focus metric value
-            "set_name_focus_metric": "{}-valid".format(dataset_name),
-            "train_metrics": ["loss_ctc", "cer", "wer"],  # Metrics name for training
-            "eval_metrics": ["loss_ctc", "cer", "wer"],  # Metrics name for evaluation on validation set during training
-            "force_cpu": False,  # True for debug purposes to run on cpu only
-        },
-    }
-
-    if params["training_params"]["use_ddp"] and not params["training_params"]["force_cpu"]:
-        mp.spawn(train_and_test, args=(params,), nprocs=params["training_params"]["nb_gpu"])
-    else:
-        train_and_test(0, params)
-
-
-if __name__ == "__main__":
-    main()
\ No newline at end of file
diff --git a/OCR/line_OCR/ctc/models_line_ctc.py b/OCR/line_OCR/ctc/models_line_ctc.py
deleted file mode 100644
index c13c072e..00000000
--- a/OCR/line_OCR/ctc/models_line_ctc.py
+++ /dev/null
@@ -1,19 +0,0 @@
-
-from torch.nn.functional import log_softmax
-from torch.nn import AdaptiveMaxPool2d, Conv1d
-from torch.nn import Module
-
-
-class Decoder(Module):
-    def __init__(self, params):
-        super(Decoder, self).__init__()
-
-        self.vocab_size = params["vocab_size"]
-
-        self.ada_pool = AdaptiveMaxPool2d((1, None))
-        self.end_conv = Conv1d(in_channels=params["enc_size"], out_channels=self.vocab_size+1, kernel_size=1)
-
-    def forward(self, x):
-        x = self.ada_pool(x).squeeze(2)
-        x = self.end_conv(x)
-        return log_softmax(x, dim=1)
diff --git a/OCR/line_OCR/ctc/trainer_line_ctc.py b/OCR/line_OCR/ctc/trainer_line_ctc.py
deleted file mode 100644
index eba12d81..00000000
--- a/OCR/line_OCR/ctc/trainer_line_ctc.py
+++ /dev/null
@@ -1,96 +0,0 @@
-
-from basic.metric_manager import MetricManager
-from OCR.ocr_manager import OCRManager
-from dan.ocr_utils import LM_ind_to_str
-import torch
-from torch.cuda.amp import autocast
-from torch.nn import CTCLoss
-import re
-import time
-
-
-class TrainerLineCTC(OCRManager):
-
-    def __init__(self, params):
-        super(TrainerLineCTC, self).__init__(params)
-
-    def train_batch(self, batch_data, metric_names):
-        """
-        Forward and backward pass for training
-        """
-        x = batch_data["imgs"].to(self.device)
-        y = batch_data["labels"].to(self.device)
-        x_reduced_len = [s[1] for s in batch_data["imgs_reduced_shape"]]
-        y_len = batch_data["labels_len"]
-
-        loss_ctc = CTCLoss(blank=self.dataset.tokens["blank"])
-        self.zero_optimizers()
-
-        with autocast(enabled=self.params["training_params"]["use_amp"]):
-            x = self.models["encoder"](x)
-            global_pred = self.models["decoder"](x)
-
-        loss = loss_ctc(global_pred.permute(2, 0, 1), y, x_reduced_len, y_len)
-
-        self.backward_loss(loss)
-
-        self.step_optimizers()
-        pred = torch.argmax(global_pred, dim=1).cpu().numpy()
-
-        values = {
-            "nb_samples": len(batch_data["raw_labels"]),
-            "loss_ctc": loss.item(),
-            "str_x": self.pred_to_str(pred, x_reduced_len),
-            "str_y": batch_data["raw_labels"]
-        }
-
-        return values
-
-    def evaluate_batch(self, batch_data, metric_names):
-        """
-        Forward pass only for validation and test
-        """
-        x = batch_data["imgs"].to(self.device)
-        y = batch_data["labels"].to(self.device)
-        x_reduced_len = [s[1] for s in batch_data["imgs_reduced_shape"]]
-        y_len = batch_data["labels_len"]
-
-        loss_ctc = CTCLoss(blank=self.dataset.tokens["blank"])
-
-        start_time = time.time()
-        with autocast(enabled=self.params["training_params"]["use_amp"]):
-            x = self.models["encoder"](x)
-            global_pred = self.models["decoder"](x)
-
-        loss = loss_ctc(global_pred.permute(2, 0, 1), y, x_reduced_len, y_len)
-        pred = torch.argmax(global_pred, dim=1).cpu().numpy()
-        str_x = self.pred_to_str(pred, x_reduced_len)
-
-        process_time =time.time() - start_time
-
-        values = {
-            "nb_samples": len(batch_data["raw_labels"]),
-            "loss_ctc": loss.item(),
-            "str_x": str_x,
-            "str_y": batch_data["raw_labels"],
-            "time": process_time
-        }
-        return values
-
-    def ctc_remove_successives_identical_ind(self, ind):
-        res = []
-        for i in ind:
-            if res and res[-1] == i:
-                continue
-            res.append(i)
-        return res
-
-    def pred_to_str(self, pred, pred_len):
-        """
-        convert prediction tokens to string
-        """
-        ind_x = [pred[i][:pred_len[i]] for i in range(pred.shape[0])]
-        ind_x = [self.ctc_remove_successives_identical_ind(t) for t in ind_x]
-        str_x = [LM_ind_to_str(self.dataset.charset, t, oov_symbol="") for t in ind_x]
-        str_x = [re.sub("( )+", ' ', t).strip(" ") for t in str_x]
-        return str_x
diff --git a/OCR/ocr_dataset_manager.py b/OCR/ocr_dataset_manager.py
deleted file mode 100644
index ed7c087c..00000000
--- a/OCR/ocr_dataset_manager.py
+++ /dev/null
@@ -1,1036 +0,0 @@
-#  Copyright Université de Rouen Normandie (1), INSA Rouen (2),
-#  tutelles du laboratoire LITIS (1 et 2)
-#  contributors :
-#  - Denis Coquenet
-#
-#
-#  This software is a computer program written in Python  whose purpose is to
-#  provide public implementation of deep learning works, in pytorch.
-#
-#  This software is governed by the CeCILL-C license under French law and
-#  abiding by the rules of distribution of free software.  You can  use,
-#  modify and/ or redistribute the software under the terms of the CeCILL-C
-#  license as circulated by CEA, CNRS and INRIA at the following URL
-#  "http://www.cecill.info".
-#
-#  As a counterpart to the access to the source code and  rights to copy,
-#  modify and redistribute granted by the license, users are provided only
-#  with a limited warranty  and the software's author,  the holder of the
-#  economic rights,  and the successive licensors  have only  limited
-#  liability.
-#
-#  In this respect, the user's attention is drawn to the risks associated
-#  with loading,  using,  modifying and/or developing or reproducing the
-#  software by the user in light of its specific status of free software,
-#  that may mean  that it is complicated to manipulate,  and  that  also
-#  therefore means  that it is reserved for developers  and  experienced
-#  professionals having in-depth computer knowledge. Users are therefore
-#  encouraged to load and test the software's suitability as regards their
-#  requirements in conditions enabling the security of their systems and/or
-#  data to be ensured and,  more generally, to use and operate it in the
-#  same conditions as regards security.
-#
-#  The fact that you are presently reading this means that you have had
-#  knowledge of the CeCILL-C license and that you accept its terms.
-import numpy.random
-
-from basic.generic_dataset_manager import DatasetManager, GenericDataset
-from basic.utils import pad_images, pad_image_width_right, resize_max, pad_image_width_random, pad_sequences_1D, pad_image_height_random, pad_image_width_left, pad_image
-from basic.utils import randint, rand, rand_uniform
-from basic.generic_dataset_manager import apply_preprocessing
-from Datasets.dataset_formatters.read2016_formatter import SEM_MATCHING_TOKENS as READ_MATCHING_TOKENS
-from Datasets.dataset_formatters.rimes_formatter import order_text_regions as order_text_regions_rimes
-from Datasets.dataset_formatters.rimes_formatter import SEM_MATCHING_TOKENS as RIMES_MATCHING_TOKENS
-from Datasets.dataset_formatters.rimes_formatter import SEM_MATCHING_TOKENS_STR as RIMES_MATCHING_TOKENS_STR
-from dan.ocr_utils import LM_str_to_ind
-import random
-import cv2
-import os
-import copy
-import pickle
-import numpy as np
-import torch
-import matplotlib
-from PIL import Image, ImageDraw, ImageFont
-from basic.transforms import RandomRotation, apply_transform, Tightening
-from fontTools.ttLib import TTFont
-from fontTools.unicode import Unicode
-
-
-class OCRDatasetManager(DatasetManager):
-    """
-    Specific class to handle OCR/HTR tasks
-    """
-
-    def __init__(self, params):
-        super(OCRDatasetManager, self).__init__(params)
-
-        self.charset = params["charset"] if "charset" in params else self.get_merged_charsets()
-
-        if "synthetic_data" in self.params["config"] and self.params["config"]["synthetic_data"] and "config" in self.params["config"]["synthetic_data"]:
-            self.char_only_set = self.charset.copy()
-            for token_dict in [RIMES_MATCHING_TOKENS, READ_MATCHING_TOKENS]:
-                for key in token_dict:
-                    if key in self.char_only_set:
-                        self.char_only_set.remove(key)
-                    if token_dict[key] in self.char_only_set:
-                        self.char_only_set.remove(token_dict[key])
-            for token in ["\n", ]:
-                if token in self.char_only_set:
-                    self.char_only_set.remove(token)
-            self.params["config"]["synthetic_data"]["config"]["valid_fonts"] = get_valid_fonts(self.char_only_set)
-
-        if "new_tokens" in params:
-            self.charset = sorted(list(set(self.charset).union(set(params["new_tokens"]))))
-
-        self.tokens = {
-            "pad": params["config"]["padding_token"],
-        }
-        if self.params["config"]["charset_mode"].lower() == "ctc":
-            self.tokens["blank"] = len(self.charset)
-            self.tokens["pad"] = self.tokens["pad"] if self.tokens["pad"] else len(self.charset) + 1
-            self.params["config"]["padding_token"] = self.tokens["pad"]
-        elif self.params["config"]["charset_mode"] == "seq2seq":
-            self.tokens["end"] = len(self.charset)
-            self.tokens["start"] = len(self.charset) + 1
-            self.tokens["pad"] = self.tokens["pad"] if self.tokens["pad"] else len(self.charset) + 2
-            self.params["config"]["padding_token"] = self.tokens["pad"]
-
-    def get_merged_charsets(self):
-        """
-        Merge the charset of the different datasets used
-        """
-        datasets = self.params["datasets"]
-        charset = set()
-        for key in datasets.keys():
-            with open(os.path.join(datasets[key], "labels.pkl"), "rb") as f:
-                info = pickle.load(f)
-                charset = charset.union(set(info["charset"]))
-        if "\n" in charset and "remove_linebreaks" in self.params["config"]["constraints"]:
-            charset.remove("\n")
-        if "" in charset:
-            charset.remove("")
-        return sorted(list(charset))
-
-    def apply_specific_treatment_after_dataset_loading(self, dataset):
-        dataset.charset = self.charset
-        dataset.tokens = self.tokens
-        dataset.convert_labels()
-        if "READ_2016" in dataset.name and "augmentation" in dataset.params["config"] and dataset.params["config"]["augmentation"]:
-            dataset.params["config"]["augmentation"]["fill_value"] = tuple([int(i) for i in dataset.mean])
-        if "padding" in dataset.params["config"] and dataset.params["config"]["padding"]["min_height"] == "max":
-            dataset.params["config"]["padding"]["min_height"] = max([s["img"].shape[0] for s in self.train_dataset.samples])
-        if "padding" in dataset.params["config"] and dataset.params["config"]["padding"]["min_width"] == "max":
-            dataset.params["config"]["padding"]["min_width"] = max([s["img"].shape[1] for s in self.train_dataset.samples])
-
-
-class OCRDataset(GenericDataset):
-    """
-    Specific class to handle OCR/HTR datasets
-    """
-
-    def __init__(self, params, set_name, custom_name, paths_and_sets):
-        super(OCRDataset, self).__init__(params, set_name, custom_name, paths_and_sets)
-        self.charset = None
-        self.tokens = None
-        self.reduce_dims_factor = np.array([params["config"]["height_divisor"], params["config"]["width_divisor"], 1])
-        self.collate_function = OCRCollateFunction
-        self.synthetic_id = 0
-
-    def __getitem__(self, idx):
-        sample = copy.deepcopy(self.samples[idx])
-
-        if not self.load_in_memory:
-            sample["img"] = self.get_sample_img(idx)
-            sample = apply_preprocessing(sample, self.params["config"]["preprocessings"])
-
-        if "synthetic_data" in self.params["config"] and self.params["config"]["synthetic_data"] and self.set_name == "train":
-            sample = self.generate_synthetic_data(sample)
-
-        # Data augmentation
-        sample["img"], sample["applied_da"] = self.apply_data_augmentation(sample["img"])
-
-        if "max_size" in self.params["config"] and self.params["config"]["max_size"]:
-            max_ratio = max(sample["img"].shape[0] / self.params["config"]["max_size"]["max_height"], sample["img"].shape[1] / self.params["config"]["max_size"]["max_width"])
-            if max_ratio > 1:
-                new_h, new_w = int(np.ceil(sample["img"].shape[0] / max_ratio)), int(np.ceil(sample["img"].shape[1] / max_ratio))
-                sample["img"] = cv2.resize(sample["img"], (new_w, new_h))
-
-        # Normalization if requested
-        if "normalize" in self.params["config"] and self.params["config"]["normalize"]:
-            sample["img"] = (sample["img"] - self.mean) / self.std
-
-        sample["img_shape"] = sample["img"].shape
-        sample["img_reduced_shape"] = np.ceil(sample["img_shape"] / self.reduce_dims_factor).astype(int)
-
-        # Padding to handle CTC requirements
-        if self.set_name == "train":
-            max_label_len = 0
-            height = 1
-            ctc_padding = False
-            if "CTC_line" in self.params["config"]["constraints"]:
-                max_label_len = sample["label_len"]
-                ctc_padding = True
-            if "CTC_va" in self.params["config"]["constraints"]:
-                max_label_len = max(sample["line_label_len"])
-                ctc_padding = True
-            if "CTC_pg" in self.params["config"]["constraints"]:
-                max_label_len = sample["label_len"]
-                height = max(sample["img_reduced_shape"][0], 1)
-                ctc_padding = True
-            if ctc_padding and 2 * max_label_len + 1 > sample["img_reduced_shape"][1]*height:
-                sample["img"] = pad_image_width_right(sample["img"], int(np.ceil((2 * max_label_len + 1) / height) * self.reduce_dims_factor[1]), self.padding_value)
-                sample["img_shape"] = sample["img"].shape
-                sample["img_reduced_shape"] = np.ceil(sample["img_shape"] / self.reduce_dims_factor).astype(int)
-            sample["img_reduced_shape"] = [max(1, t) for t in sample["img_reduced_shape"]]
-
-        sample["img_position"] = [[0, sample["img_shape"][0]], [0, sample["img_shape"][1]]]
-        # Padding constraints to handle model needs
-        if "padding" in self.params["config"] and self.params["config"]["padding"]:
-            if self.set_name == "train" or not self.params["config"]["padding"]["train_only"]:
-                min_pad = self.params["config"]["padding"]["min_pad"]
-                max_pad = self.params["config"]["padding"]["max_pad"]
-                pad_width = randint(min_pad, max_pad) if min_pad is not None and max_pad is not None else None
-                pad_height = randint(min_pad, max_pad) if min_pad is not None and max_pad is not None else None
-
-                sample["img"], sample["img_position"] = pad_image(sample["img"], padding_value=self.padding_value,
-                                          new_width=self.params["config"]["padding"]["min_width"],
-                                          new_height=self.params["config"]["padding"]["min_height"],
-                                          pad_width=pad_width,
-                                          pad_height=pad_height,
-                                          padding_mode=self.params["config"]["padding"]["mode"],
-                                          return_position=True)
-        sample["img_reduced_position"] = [np.ceil(p / factor).astype(int) for p, factor in zip(sample["img_position"], self.reduce_dims_factor[:2])]
-        return sample
-
-
-    def get_charset(self):
-        charset = set()
-        for i in range(len(self.samples)):
-            charset = charset.union(set(self.samples[i]["label"]))
-        return charset
-
-    def convert_labels(self):
-        """
-        Label str to token at character level
-        """
-        for i in range(len(self.samples)):
-            self.samples[i] = self.convert_sample_labels(self.samples[i])
-
-    def convert_sample_labels(self, sample):
-        label = sample["label"]
-        line_labels = label.split("\n")
-        if "remove_linebreaks" in self.params["config"]["constraints"]:
-            full_label = label.replace("\n", " ").replace("  ", " ")
-            word_labels = full_label.split(" ")
-        else:
-            full_label = label
-            word_labels = label.replace("\n", " ").replace("  ", " ").split(" ")
-
-        sample["label"] = full_label
-        sample["token_label"] = LM_str_to_ind(self.charset, full_label)
-        if "add_eot" in self.params["config"]["constraints"]:
-            sample["token_label"].append(self.tokens["end"])
-        sample["label_len"] = len(sample["token_label"])
-        if "add_sot" in self.params["config"]["constraints"]:
-            sample["token_label"].insert(0, self.tokens["start"])
-
-        sample["line_label"] = line_labels
-        sample["token_line_label"] = [LM_str_to_ind(self.charset, l) for l in line_labels]
-        sample["line_label_len"] = [len(l) for l in line_labels]
-        sample["nb_lines"] = len(line_labels)
-
-        sample["word_label"] = word_labels
-        sample["token_word_label"] = [LM_str_to_ind(self.charset, l) for l in word_labels]
-        sample["word_label_len"] = [len(l) for l in word_labels]
-        sample["nb_words"] = len(word_labels)
-        return sample
-
-    def generate_synthetic_data(self, sample):
-        config = self.params["config"]["synthetic_data"]
-
-        if not (config["init_proba"] == config["end_proba"] == 1):
-            nb_samples = self.training_info["step"] * self.params["batch_size"]
-            if config["start_scheduler_at_max_line"]:
-                max_step = config["num_steps_proba"]
-                current_step = max(0, min(nb_samples-config["curr_step"]*(config["max_nb_lines"]-config["min_nb_lines"]), max_step))
-                proba = config["init_proba"] if self.get_syn_max_lines() < config["max_nb_lines"] else \
-                    config["proba_scheduler_function"](config["init_proba"], config["end_proba"], current_step, max_step)
-            else:
-                proba = config["proba_scheduler_function"](config["init_proba"], config["end_proba"],
-                                                       min(nb_samples, config["num_steps_proba"]),
-                                                       config["num_steps_proba"])
-            if rand() > proba:
-                return sample
-
-        if "mode" in config and config["mode"] == "line_hw_to_printed":
-            sample["img"] = self.generate_typed_text_line_image(sample["label"])
-            return sample
-
-        return self.generate_synthetic_page_sample()
-
-    def get_syn_max_lines(self):
-        config = self.params["config"]["synthetic_data"]
-        if config["curriculum"]:
-            nb_samples = self.training_info["step"]*self.params["batch_size"]
-            max_nb_lines = min(config["max_nb_lines"], (nb_samples-config["curr_start"]) // config["curr_step"]+1)
-            return max(config["min_nb_lines"], max_nb_lines)
-        return config["max_nb_lines"]
-
-    def generate_synthetic_page_sample(self):
-        config = self.params["config"]["synthetic_data"]
-        max_nb_lines_per_page = self.get_syn_max_lines()
-        crop = config["crop_curriculum"] and max_nb_lines_per_page < config["max_nb_lines"]
-        sample = {
-            "name": "synthetic_data_{}".format(self.synthetic_id),
-            "path": None
-        }
-        self.synthetic_id += 1
-        nb_pages = 2 if "double" in config["dataset_level"] else 1
-        background_sample = copy.deepcopy(self.samples[randint(0, len(self))])
-        pages = list()
-        backgrounds = list()
-
-        h, w, c = background_sample["img"].shape
-        page_width = w // 2 if nb_pages == 2 else w
-        for i in range(nb_pages):
-            nb_lines_per_page = randint(config["min_nb_lines"], max_nb_lines_per_page+1)
-            background = np.ones((h, page_width, c), dtype=background_sample["img"].dtype) * 255
-            if i == 0 and nb_pages == 2:
-                background[:, -2:, :] = 0
-            backgrounds.append(background)
-            if "READ_2016" in self.params["datasets"].keys():
-                side = background_sample["pages_label"][i]["side"]
-                coords = {
-                    "left": int(0.15 * page_width) if side == "left" else int(0.05 * page_width),
-                    "right": int(0.95 * page_width) if side == "left" else int(0.85 * page_width),
-                    "top": int(0.05 * h),
-                    "bottom": int(0.85 * h),
-                }
-                pages.append(self.generate_synthetic_read2016_page(background, coords, side=side, crop=crop,
-                                                               nb_lines=nb_lines_per_page))
-            elif "RIMES" in self.params["datasets"].keys():
-                pages.append(self.generate_synthetic_rimes_page(background, nb_lines=nb_lines_per_page, crop=crop))
-            else:
-                raise NotImplementedError
-
-        if nb_pages == 1:
-            sample["img"] = pages[0][0]
-            sample["label_raw"] = pages[0][1]["raw"]
-            sample["label_begin"] = pages[0][1]["begin"]
-            sample["label_sem"] = pages[0][1]["sem"]
-            sample["label"] = pages[0][1]
-            sample["nb_cols"] = pages[0][2]
-        else:
-            if pages[0][0].shape[0] != pages[1][0].shape[0]:
-                max_height = max(pages[0][0].shape[0], pages[1][0].shape[0])
-                backgrounds[0] = backgrounds[0][:max_height]
-                backgrounds[0][:pages[0][0].shape[0]] = pages[0][0]
-                backgrounds[1] = backgrounds[1][:max_height]
-                backgrounds[1][:pages[1][0].shape[0]] = pages[1][0]
-                pages[0][0] = backgrounds[0]
-                pages[1][0] = backgrounds[1]
-            sample["label_raw"] = pages[0][1]["raw"] + "\n" + pages[1][1]["raw"]
-            sample["label_begin"] = pages[0][1]["begin"] + pages[1][1]["begin"]
-            sample["label_sem"] = pages[0][1]["sem"] + pages[1][1]["sem"]
-            sample["img"] = np.concatenate([pages[0][0], pages[1][0]], axis=1)
-            sample["nb_cols"] = pages[0][2] + pages[1][2]
-        sample["label"] = sample["label_raw"]
-        if "â“‘" in self.charset:
-            sample["label"] = sample["label_begin"]
-        if "â’·" in self.charset:
-            sample["label"] = sample["label_sem"]
-        sample["unchanged_label"] = sample["label"]
-        sample = self.convert_sample_labels(sample)
-        return sample
-
-    def generate_synthetic_rimes_page(self, background, nb_lines=20, crop=False):
-        max_nb_lines = self.get_syn_max_lines()
-        def larger_lines(label):
-            lines = label.split("\n")
-            new_lines = list()
-            while len(lines) > 0:
-                if len(lines) == 1:
-                    new_lines.append(lines[0])
-                    del lines[0]
-                elif len(lines[0]) + len(lines[1]) < max_len:
-                    new_lines.append("{} {}".format(lines[0], lines[1]))
-                    del lines[1]
-                    del lines[0]
-                else:
-                    new_lines.append(lines[0])
-                    del lines[0]
-            return "\n".join(new_lines)
-        config = self.params["config"]["synthetic_data"]
-        max_len = 100
-        matching_tokens = RIMES_MATCHING_TOKENS
-        matching_tokens_str = RIMES_MATCHING_TOKENS_STR
-        h, w, c = background.shape
-        num_lines = list()
-        for s in self.samples:
-            l = sum([len(p["label"].split("\n")) for p in s["paragraphs_label"]])
-            num_lines.append(l)
-        stats = self.stat_sem_rimes()
-        ordered_modes = ['Corps de texte', 'PS/PJ', 'Ouverture', 'Date, Lieu', 'Coordonnées Expéditeur', 'Coordonnées Destinataire', ]
-        object_ref = ['Objet', 'Reference']
-        random.shuffle(object_ref)
-        ordered_modes = ordered_modes[:3] + object_ref + ordered_modes[3:]
-        kept_modes = list()
-        for mode in ordered_modes:
-            if rand_uniform(0, 1) < stats[mode]:
-                kept_modes.append(mode)
-
-        paragraphs = dict()
-        for mode in kept_modes:
-            paragraphs[mode] = self.get_paragraph_rimes(mode=mode, mix=True)
-            # proba to merge multiple body textual contents
-            if mode == "Corps de texte" and rand_uniform(0, 1) < 0.2:
-                nb_lines = min(nb_lines+10, max_nb_lines) if max_nb_lines < 30 else nb_lines+10
-                concat_line = randint(0, 2) == 0
-                if concat_line:
-                    paragraphs[mode]["label"] = larger_lines(paragraphs[mode]["label"])
-                while (len(paragraphs[mode]["label"].split("\n")) <= 30):
-                    body2 = self.get_paragraph_rimes(mode=mode, mix=True)
-                    paragraphs[mode]["label"] += "\n" + larger_lines(body2["label"]) if concat_line else body2["label"]
-                    paragraphs[mode]["label"] = "\n".join(paragraphs[mode]["label"].split("\n")[:40])
-        # proba to set whole text region to uppercase
-        if rand_uniform(0, 1) < 0.1 and "Corps de texte" in paragraphs:
-            paragraphs["Corps de texte"]["label"] = paragraphs["Corps de texte"]["label"].upper().replace("È", "E").replace("Ë", "E").replace("Û", "U").replace("Ù", "U").replace("Î", "I").replace("Ï", "I").replace("Â", "A").replace("Œ", "OE")
-        # proba to duplicate a line and place it randomly elsewhere, in a body region
-        if rand_uniform(0, 1) < 0.1 and "Corps de texte" in paragraphs:
-            labels = paragraphs["Corps de texte"]["label"].split("\n")
-            duplicated_label = labels[randint(0, len(labels))]
-            labels.insert(randint(0, len(labels)), duplicated_label)
-            paragraphs["Corps de texte"]["label"] = "\n".join(labels)
-        # proba to merge successive lines to have longer text lines in body
-        if rand_uniform(0, 1) < 0.1 and "Corps de texte" in paragraphs:
-            paragraphs["Corps de texte"]["label"] = larger_lines(paragraphs["Corps de texte"]["label"])
-        for mode in paragraphs.keys():
-            line_labels = paragraphs[mode]["label"].split("\n")
-            if len(line_labels) == 0:
-                print("ERROR")
-            paragraphs[mode]["lines"] = list()
-            for line_label in line_labels:
-                if len(line_label) > 100:
-                    for chunk in [line_label[i:i + max_len] for i in range(0, len(line_label), max_len)]:
-                        paragraphs[mode]["lines"].append(chunk)
-                else:
-                    paragraphs[mode]["lines"].append(line_label)
-        page_labels = {
-            "raw": "",
-            "begin": "",
-            "sem": ""
-        }
-        top_limit = 0
-        bottom_limit = h
-        max_bottom_crop = 0
-        min_top_crop = h
-        has_opening = has_object = has_reference = False
-        top_opening = top_object = top_reference = 0
-        right_opening = right_object = right_reference = 0
-        has_reference = False
-        date_on_top = False
-        date_alone = False
-        for mode in kept_modes:
-            pg = paragraphs[mode]
-            if len(pg["lines"]) > nb_lines:
-                pg["lines"] = pg["lines"][:nb_lines]
-            nb_lines -= len(pg["lines"])
-            pg_image = self.generate_typed_text_paragraph_image(pg["lines"], padding_value=255, max_pad_left_ratio=1, same_font_size=True)
-            # proba to remove some interline spacing
-            if rand_uniform(0, 1) < 0.1:
-                pg_image = apply_transform(pg_image, Tightening(color=255, remove_proba=0.75))
-            # proba to rotate text region
-            if rand_uniform(0, 1) < 0.1:
-                pg_image = apply_transform(pg_image, RandomRotation(degrees=10, expand=True, fill=255))
-            pg["added"] = True
-            if mode == 'Corps de texte':
-                pg_image = resize_max(pg_image, max_height=int(0.5*h), max_width=w)
-                img_h, img_w = pg_image.shape[:2]
-                min_top = int(0.4*h)
-                max_top = int(0.9*h - img_h)
-                top = randint(min_top, max_top + 1)
-                left = randint(0, int(w - img_w) + 1)
-                bottom_body = top + img_h
-                top_body = top
-                bottom_limit = min(top, bottom_limit)
-            elif mode == "PS/PJ":
-                pg_image = resize_max(pg_image, max_height=int(0.03*h), max_width=int(0.9*w))
-                img_h, img_w = pg_image.shape[:2]
-                min_top = bottom_body
-                max_top = int(min(h - img_h, bottom_body + 0.15*h))
-                top = randint(min_top, max_top + 1)
-                left = randint(0, int(w - img_w) + 1)
-                bottom_limit = min(top, bottom_limit)
-            elif mode == "Ouverture":
-                pg_image = resize_max(pg_image, max_height=int(0.03 * h), max_width=int(0.9 * w))
-                img_h, img_w = pg_image.shape[:2]
-                min_top = int(top_body - 0.05 * h)
-                max_top = top_body - img_h
-                top = randint(min_top, max_top + 1)
-                left = randint(0, min(int(0.15*w), int(w - img_w)) + 1)
-                has_opening = True
-                top_opening = top
-                right_opening = left + img_w
-                bottom_limit = min(top, bottom_limit)
-            elif mode == "Objet":
-                pg_image = resize_max(pg_image, max_height=int(0.03 * h), max_width=int(0.9 * w))
-                img_h, img_w = pg_image.shape[:2]
-                max_top = top_reference - img_h if has_reference else top_opening - img_h if has_opening else top_body - img_h
-                min_top = int(max_top - 0.05 * h)
-                top = randint(min_top, max_top + 1)
-                left = randint(0, min(int(0.15*w), int(w - img_w)) + 1)
-                has_object = True
-                top_object = top
-                right_object = left + img_w
-                bottom_limit = min(top, bottom_limit)
-            elif mode == "Reference":
-                pg_image = resize_max(pg_image, max_height=int(0.03 * h), max_width=int(0.9 * w))
-                img_h, img_w = pg_image.shape[:2]
-                max_top = top_object - img_h if has_object else top_opening - img_h if has_opening else top_body - img_h
-                min_top = int(max_top - 0.05 * h)
-                top = randint(min_top, max_top + 1)
-                left = randint(0, min(int(0.15*w), int(w - img_w)) + 1)
-                has_reference = True
-                top_reference = top
-                right_reference = left + img_w
-                bottom_limit = min(top, bottom_limit)
-            elif mode == 'Date, Lieu':
-                pg_image = resize_max(pg_image, max_height=int(0.03 * h), max_width=int(0.45 * w))
-                img_h, img_w = pg_image.shape[:2]
-                if h - max_bottom_crop - 10 > img_h and randint(0, 10) == 0:
-                    top = randint(max_bottom_crop, h)
-                    left = randint(0, w-img_w)
-                else:
-                    min_top = top_body - img_h
-                    max_top = top_body - img_h
-                    min_left = 0
-                    # Check if there is anough place to put the date at the right side of opening, reference or object
-                    if object_ref == ['Objet', 'Reference']:
-                        have = [has_opening, has_object, has_reference]
-                        rights = [right_opening, right_object, right_reference]
-                        tops = [top_opening, top_object, top_reference]
-                    else:
-                        have = [has_opening, has_reference, has_object]
-                        rights = [right_opening, right_reference, right_object]
-                        tops = [top_opening, top_reference, top_object]
-                    for right_r, top_r, has_r in zip(rights, tops, have):
-                        if has_r:
-                            if right_r + img_w >= 0.95*w:
-                                max_top = min(top_r - img_h, max_top)
-                                min_left = 0
-                            else:
-                                min_left = max(min_left, right_r+0.05*w)
-                                min_top = top_r - img_h if min_top == top_body - img_h else min_top
-                    if min_left != 0 and randint(0, 5) == 0:
-                        min_left = 0
-                        for right_r, top_r, has_r in zip(rights, tops, have):
-                            if has_r:
-                                max_top = min(max_top, top_r-img_h)
-
-                    max_left = max(min_left, w - img_w)
-
-                    # No placement found at right-side of opening, reference or object
-                    if min_left == 0:
-                        # place on the top
-                        if randint(0, 2) == 0:
-                            min_top = 0
-                            max_top = int(min(0.05*h, max_top))
-                            date_on_top = True
-                        # place just before object/reference/opening
-                        else:
-                            min_top = int(max(0, max_top - 0.05*h))
-                            date_alone = True
-                            max_left = min(max_left, int(0.1*w))
-
-                    min_top = min(min_top, max_top)
-                    top = randint(min_top, max_top + 1)
-                    left = randint(int(min_left), max_left + 1)
-                    if date_on_top:
-                        top_limit = max(top_limit, top + img_h)
-                    else:
-                        bottom_limit = min(top, bottom_limit)
-                    date_right = left + img_w
-                    date_bottom = top + img_h
-            elif mode == "Coordonnées Expéditeur":
-                max_height = min(0.25*h, bottom_limit-top_limit)
-                if max_height <= 0:
-                    pg["added"] = False
-                    print("ko", bottom_limit, top_limit)
-                    break
-                pg_image = resize_max(pg_image, max_height=int(max_height), max_width=int(0.45 * w))
-                img_h, img_w = pg_image.shape[:2]
-                top = randint(top_limit, bottom_limit-img_h+1)
-                left = randint(0, int(0.5*w-img_w)+1)
-            elif mode == "Coordonnées Destinataire":
-                if h - max_bottom_crop - 10 > 0.2*h and randint(0, 10) == 0:
-                    pg_image = resize_max(pg_image, max_height=int(0.2*h), max_width=int(0.45 * w))
-                    img_h, img_w = pg_image.shape[:2]
-                    top = randint(max_bottom_crop, h)
-                    left = randint(0, w-img_w)
-                else:
-                    max_height = min(0.25*h, bottom_limit-top_limit)
-                    if max_height <= 0:
-                        pg["added"] = False
-                        print("ko", bottom_limit, top_limit)
-                        break
-                    pg_image = resize_max(pg_image, max_height=int(max_height), max_width=int(0.45 * w))
-                    img_h, img_w = pg_image.shape[:2]
-                    if date_alone and w - date_right - img_w > 11:
-                        top = randint(0, date_bottom-img_h+1)
-                        left = randint(max(int(0.5*w), date_right+10), w-img_w)
-                    else:
-                        top = randint(top_limit, bottom_limit-img_h+1)
-                        left = randint(int(0.5*w), int(w - img_w)+1)
-
-            bottom = top+img_h
-            right = left+img_w
-            min_top_crop = min(top, min_top_crop)
-            max_bottom_crop = max(bottom, max_bottom_crop)
-            try:
-                background[top:bottom, left:right, ...] = pg_image
-            except:
-                pg["added"] = False
-                nb_lines = 0
-            pg["coords"] = {
-                "top": top,
-                "bottom": bottom,
-                "right": right,
-                "left": left
-            }
-
-            if nb_lines <= 0:
-                break
-        sorted_pg = order_text_regions_rimes(paragraphs.values())
-        for pg in sorted_pg:
-            if "added" in pg.keys() and pg["added"]:
-                pg_label = "\n".join(pg["lines"])
-                mode = pg["type"]
-                begin_token = matching_tokens_str[mode]
-                end_token = matching_tokens[begin_token]
-                page_labels["raw"] += pg_label
-                page_labels["begin"] += begin_token + pg_label
-                page_labels["sem"] += begin_token + pg_label + end_token
-        if crop:
-            if min_top_crop > max_bottom_crop:
-                print("KO - min > MAX")
-            elif min_top_crop > h:
-                print("KO - min > h")
-            else:
-                background = background[min_top_crop:max_bottom_crop]
-        return [background, page_labels, 1]
-
-    def stat_sem_rimes(self):
-        try:
-            return self.rimes_sem_stats
-        except:
-            stats = dict()
-            for sample in self.samples:
-                for pg in sample["paragraphs_label"]:
-                    mode = pg["type"]
-                    if mode == 'Coordonnées Expéditeur':
-                        if len(pg["label"]) < 50 and "\n" not in pg["label"]:
-                            mode = "Reference"
-                    if mode not in stats.keys():
-                        stats[mode] = 0
-                    else:
-                        stats[mode] += 1
-            for key in stats:
-                stats[key] = max(0.10, stats[key]/len(self.samples))
-            self.rimes_sem_stats = stats
-            return stats
-
-    def get_paragraph_rimes(self, mode="Corps de texte", mix=False):
-        while True:
-            sample = self.samples[randint(0, len(self))]
-            random.shuffle(sample["paragraphs_label"])
-            for pg in sample["paragraphs_label"]:
-                pg_mode = pg["type"]
-                if pg_mode == 'Coordonnées Expéditeur':
-                    if len(pg["label"]) < 50 and "\n" not in pg["label"]:
-                        pg_mode = "Reference"
-                if mode == pg_mode:
-                    if mode == "Corps de texte" and mix:
-                        return self.get_mix_paragraph_rimes(mode, min(5, len(pg["label"].split("\n"))))
-                    else:
-                        return pg
-
-    def get_mix_paragraph_rimes(self, mode="Corps de texte", num_lines=10):
-        res = list()
-        while len(res) != num_lines:
-            sample = self.samples[randint(0, len(self))]
-            random.shuffle(sample["paragraphs_label"])
-            for pg in sample["paragraphs_label"]:
-                pg_mode = pg["type"]
-                if pg_mode == 'Coordonnées Expéditeur':
-                    if len(pg["label"]) < 50 and "\n" not in pg["label"]:
-                        pg_mode = "Reference"
-                if mode == pg_mode:
-                    lines = pg["label"].split("\n")
-                    res.append(lines[randint(0, len(lines))])
-                    break
-        return {
-            "label": "\n".join(res),
-            "type": mode,
-        }
-
-    def generate_synthetic_read2016_page(self, background, coords, side="left", nb_lines=20, crop=False):
-        config = self.params["config"]["synthetic_data"]
-        two_column = False
-        matching_token = READ_MATCHING_TOKENS
-        page_labels = {
-            "raw": "",
-            "begin": "â“Ÿ",
-            "sem": "â“Ÿ",
-        }
-        area_top = coords["top"]
-        area_left = coords["left"]
-        area_right = coords["right"]
-        area_bottom = coords["bottom"]
-        num_page_text_label = str(randint(0, 1000))
-        num_page_img = self.generate_typed_text_line_image(num_page_text_label)
-
-        if side == "left":
-            background[area_top:area_top+num_page_img.shape[0], area_left:area_left+num_page_img.shape[1]] = num_page_img
-        else:
-            background[area_top:area_top + num_page_img.shape[0], area_right-num_page_img.shape[1]:area_right] = num_page_img
-        for key in ["sem", "begin"]:
-            page_labels[key] += "ⓝ"
-        for key in page_labels.keys():
-            page_labels[key] += num_page_text_label
-        page_labels["sem"] += matching_token["ⓝ"]
-        nb_lines -= 1
-        area_top = area_top + num_page_img.shape[0] + randint(1, 20)
-        ratio_ann = rand_uniform(0.6, 0.7)
-        while nb_lines > 0:
-            nb_body_lines = randint(1, nb_lines+1)
-            max_ann_lines = min(nb_body_lines, nb_lines-nb_body_lines)
-            body_labels = list()
-            body_imgs = list()
-            while nb_body_lines > 0:
-                current_nb_lines = 1
-                label, img = self.get_printed_line_read_2016("body")
-
-                nb_body_lines -= current_nb_lines
-                body_labels.append(label)
-                body_imgs.append(img)
-            nb_ann_lines = randint(0, min(6, max_ann_lines+1))
-            ann_labels = list()
-            ann_imgs = list()
-            while nb_ann_lines > 0:
-                current_nb_lines = 1
-                label, img = self.get_printed_line_read_2016("annotation")
-                nb_ann_lines -= current_nb_lines
-                ann_labels.append(label)
-                ann_imgs.append(img)
-            max_width_body = int(np.floor(ratio_ann*(area_right-area_left)))
-            max_width_ann = area_right-area_left-max_width_body
-            for img_list, max_width in zip([body_imgs, ann_imgs], [max_width_body, max_width_ann]):
-                for i in range(len(img_list)):
-                    if img_list[i].shape[1] > max_width:
-                        ratio = max_width/img_list[i].shape[1]
-                        new_h = int(np.floor(ratio*img_list[i].shape[0]))
-                        new_w = int(np.floor(ratio*img_list[i].shape[1]))
-                        img_list[i] = cv2.resize(img_list[i], (new_w, new_h), interpolation=cv2.INTER_LINEAR)
-            body_top = area_top
-            body_height = 0
-            i_body = 0
-            for (label, img) in zip(body_labels, body_imgs):
-                remaining_height = area_bottom - body_top
-                if img.shape[0] > remaining_height:
-                    nb_lines = 0
-                    break
-                background[body_top:body_top+img.shape[0], area_left+max_width_ann:area_left+max_width_ann+img.shape[1]] = img
-                body_height += img.shape[0]
-                body_top += img.shape[0]
-                nb_lines -= 1
-                i_body += 1
-
-            ann_height = int(np.sum([img.shape[0] for img in ann_imgs]))
-            ann_top = area_top + randint(0, body_height-ann_height+1) if ann_height < body_height else area_top
-            largest_ann = max([a.shape[1] for a in ann_imgs]) if len(ann_imgs) > 0 else max_width_ann
-            pad_ann = randint(0, max_width_ann-largest_ann+1) if max_width_ann > largest_ann else 0
-
-            ann_label_blocks = [list(), ]
-            i_ann = 0
-            ann_height = 0
-            for (label, img) in zip(ann_labels, ann_imgs):
-                remaining_height = body_top - ann_top
-                if img.shape[0] > remaining_height:
-                    break
-                background[ann_top:ann_top+img.shape[0], area_left+pad_ann:area_left+pad_ann+img.shape[1]] = img
-                ann_height += img.shape[0]
-                ann_top += img.shape[0]
-                nb_lines -= 1
-                two_column = True
-                ann_label_blocks[-1].append(ann_labels[i_ann])
-                i_ann += 1
-                if randint(0, 10) == 0:
-                    ann_label_blocks.append(list())
-                    ann_top += randint(0, max(15, body_top-ann_top-20))
-
-            area_top = area_top + max(ann_height, body_height) + randint(25, 100)
-
-            ann_full_labels = {
-                "raw": "",
-                "begin": "",
-                "sem": "",
-            }
-            for ann_label_block in ann_label_blocks:
-                if len(ann_label_block) > 0:
-                    for key in ["sem", "begin"]:
-                        ann_full_labels[key] += "ⓐ"
-                    ann_full_labels["raw"] += "\n"
-                    for key in ann_full_labels.keys():
-                        ann_full_labels[key] += "\n".join(ann_label_block)
-                    ann_full_labels["sem"] += matching_token["ⓐ"]
-
-            body_full_labels = {
-                "raw": "",
-                "begin": "",
-                "sem": "",
-            }
-            if i_body > 0:
-                for key in ["sem", "begin"]:
-                    body_full_labels[key] += "â“‘"
-                body_full_labels["raw"] += "\n"
-                for key in body_full_labels.keys():
-                    body_full_labels[key] += "\n".join(body_labels[:i_body])
-                body_full_labels["sem"] += matching_token["â“‘"]
-
-            section_labels = dict()
-            for key in ann_full_labels.keys():
-                section_labels[key] = ann_full_labels[key] + body_full_labels[key]
-            for key in section_labels.keys():
-                if section_labels[key] != "":
-                    if key in ["sem", "begin"]:
-                        section_labels[key] = "â“¢" + section_labels[key]
-                    if key == "sem":
-                        section_labels[key] = section_labels[key] + matching_token["â“¢"]
-            for key in page_labels.keys():
-                page_labels[key] += section_labels[key]
-
-        if crop:
-            background = background[:area_top]
-
-        page_labels["sem"] += matching_token["â“Ÿ"]
-
-        for key in page_labels.keys():
-            page_labels[key] = page_labels[key].strip()
-
-        return [background, page_labels, 2 if two_column else 1]
-
-    def get_n_consecutive_lines_read_2016(self, n=1, mode="body"):
-        while True:
-            sample = self.samples[randint(0, len(self))]
-            paragraphs = list()
-            for page in sample["pages_label"]:
-                paragraphs.extend(page["paragraphs"])
-                random.shuffle(paragraphs)
-                for pg in paragraphs:
-                    if ((mode == "body" and pg["mode"] == "body") or
-                        (mode == "ann" and pg["mode"] == "annotation")) and len(pg["lines"]) >= n:
-                        line_idx = randint(0, len(pg["lines"])-n+1)
-                        lines = pg["lines"][line_idx:line_idx+n]
-                        label = "\n".join([l["text"] for l in lines])
-                        top = min([l["top"] for l in lines])
-                        bottom = max([l["bottom"] for l in lines])
-                        left = min([l["left"] for l in lines])
-                        right = max([l["right"] for l in lines])
-                        img = sample["img"][top:bottom, left:right]
-                        return label, img
-
-    def get_printed_line_read_2016(self, mode="body"):
-        while True:
-            sample = self.samples[randint(0, len(self))]
-            for page in sample["pages_label"]:
-                paragraphs = list()
-                paragraphs.extend(page["paragraphs"])
-                random.shuffle(paragraphs)
-                for pg in paragraphs:
-                    random.shuffle(pg["lines"])
-                    for line in pg["lines"]:
-                        if (mode == "body" and len(line["text"]) > 5) or (mode == "annotation" and len(line["text"]) < 15 and not line["text"].isdigit()):
-                            label = line["text"]
-                            img = self.generate_typed_text_line_image(label)
-                            return label, img
-
-    def generate_typed_text_line_image(self, text):
-        return generate_typed_text_line_image(text, self.params["config"]["synthetic_data"]["config"])
-
-    def generate_typed_text_paragraph_image(self, texts, padding_value=255, max_pad_left_ratio=0.1, same_font_size=False):
-        config = self.params["config"]["synthetic_data"]["config"]
-        if same_font_size:
-            images = list()
-            txt_color = config["text_color_default"]
-            bg_color = config["background_color_default"]
-            font_size = randint(config["font_size_min"], config["font_size_max"] + 1)
-            for text in texts:
-                font_path = config["valid_fonts"][randint(0, len(config["valid_fonts"]))]
-                fnt = ImageFont.truetype(font_path, font_size)
-                text_width, text_height = fnt.getsize(text)
-                padding_top = int(rand_uniform(config["padding_top_ratio_min"], config["padding_top_ratio_max"]) * text_height)
-                padding_bottom = int(rand_uniform(config["padding_bottom_ratio_min"], config["padding_bottom_ratio_max"]) * text_height)
-                padding_left = int(rand_uniform(config["padding_left_ratio_min"], config["padding_left_ratio_max"]) * text_width)
-                padding_right = int(rand_uniform(config["padding_right_ratio_min"], config["padding_right_ratio_max"]) * text_width)
-                padding = [padding_top, padding_bottom, padding_left, padding_right]
-                images.append(generate_typed_text_line_image_from_params(text, fnt, bg_color, txt_color, config["color_mode"], padding))
-        else:
-            images = [self.generate_typed_text_line_image(t) for t in texts]
-
-        max_width = max([img.shape[1] for img in images])
-
-        padded_images = [pad_image_width_random(img, max_width, padding_value=padding_value, max_pad_left_ratio=max_pad_left_ratio) for img in images]
-        return np.concatenate(padded_images, axis=0)
-
-
-
-class OCRCollateFunction:
-    """
-    Merge samples data to mini-batch data for OCR task
-    """
-
-    def __init__(self, config):
-        self.img_padding_value = float(config["padding_value"])
-        self.label_padding_value = config["padding_token"]
-        self.config = config
-
-    def __call__(self, batch_data):
-        names = [batch_data[i]["name"] for i in range(len(batch_data))]
-        ids = [batch_data[i]["name"].split("/")[-1].split(".")[0] for i in range(len(batch_data))]
-        applied_da = [batch_data[i]["applied_da"] for i in range(len(batch_data))]
-
-        labels = [batch_data[i]["token_label"] for i in range(len(batch_data))]
-        labels = pad_sequences_1D(labels, padding_value=self.label_padding_value)
-        labels = torch.tensor(labels).long()
-        reverse_labels = [[batch_data[i]["token_label"][0], ] + batch_data[i]["token_label"][-2:0:-1] + [batch_data[i]["token_label"][-1], ] for i in range(len(batch_data))]
-        reverse_labels = pad_sequences_1D(reverse_labels, padding_value=self.label_padding_value)
-        reverse_labels = torch.tensor(reverse_labels).long()
-        labels_len = [batch_data[i]["label_len"] for i in range(len(batch_data))]
-
-        raw_labels = [batch_data[i]["label"] for i in range(len(batch_data))]
-        unchanged_labels = [batch_data[i]["unchanged_label"] for i in range(len(batch_data))]
-
-        nb_cols = [batch_data[i]["nb_cols"] for i in range(len(batch_data))]
-        nb_lines = [batch_data[i]["nb_lines"] for i in range(len(batch_data))]
-        line_raw = [batch_data[i]["line_label"] for i in range(len(batch_data))]
-        line_token = [batch_data[i]["token_line_label"] for i in range(len(batch_data))]
-        pad_line_token = list()
-        line_len = [batch_data[i]["line_label_len"] for i in range(len(batch_data))]
-        for i in range(max(nb_lines)):
-            current_lines = [line_token[j][i] if i < nb_lines[j] else [self.label_padding_value] for j in range(len(batch_data))]
-            pad_line_token.append(torch.tensor(pad_sequences_1D(current_lines, padding_value=self.label_padding_value)).long())
-            for j in range(len(batch_data)):
-                if i >= nb_lines[j]:
-                    line_len[j].append(0)
-        line_len = [i for i in zip(*line_len)]
-
-        nb_words = [batch_data[i]["nb_words"] for i in range(len(batch_data))]
-        word_raw = [batch_data[i]["word_label"] for i in range(len(batch_data))]
-        word_token = [batch_data[i]["token_word_label"] for i in range(len(batch_data))]
-        pad_word_token = list()
-        word_len = [batch_data[i]["word_label_len"] for i in range(len(batch_data))]
-        for i in range(max(nb_words)):
-            current_words = [word_token[j][i] if i < nb_words[j] else [self.label_padding_value] for j in range(len(batch_data))]
-            pad_word_token.append(torch.tensor(pad_sequences_1D(current_words, padding_value=self.label_padding_value)).long())
-            for j in range(len(batch_data)):
-                if i >= nb_words[j]:
-                    word_len[j].append(0)
-        word_len = [i for i in zip(*word_len)]
-
-        padding_mode = self.config["padding_mode"] if "padding_mode" in self.config else "br"
-        imgs = [batch_data[i]["img"] for i in range(len(batch_data))]
-        imgs_shape = [batch_data[i]["img_shape"] for i in range(len(batch_data))]
-        imgs_reduced_shape = [batch_data[i]["img_reduced_shape"] for i in range(len(batch_data))]
-        imgs_position = [batch_data[i]["img_position"] for i in range(len(batch_data))]
-        imgs_reduced_position= [batch_data[i]["img_reduced_position"] for i in range(len(batch_data))]
-        imgs = pad_images(imgs, padding_value=self.img_padding_value, padding_mode=padding_mode)
-        imgs = torch.tensor(imgs).float().permute(0, 3, 1, 2)
-        formatted_batch_data = {
-            "names": names,
-            "ids": ids,
-            "nb_lines": nb_lines,
-            "nb_cols": nb_cols,
-            "labels": labels,
-            "reverse_labels": reverse_labels,
-            "raw_labels": raw_labels,
-            "unchanged_labels": unchanged_labels,
-            "labels_len": labels_len,
-            "imgs": imgs,
-            "imgs_shape": imgs_shape,
-            "imgs_reduced_shape": imgs_reduced_shape,
-            "imgs_position": imgs_position,
-            "imgs_reduced_position": imgs_reduced_position,
-            "line_raw": line_raw,
-            "line_labels": pad_line_token,
-            "line_labels_len": line_len,
-            "nb_words": nb_words,
-            "word_raw": word_raw,
-            "word_labels": pad_word_token,
-            "word_labels_len": word_len,
-            "applied_da": applied_da
-        }
-
-        return formatted_batch_data
-
-
-def generate_typed_text_line_image(text, config, bg_color=(255, 255, 255), txt_color=(0, 0, 0)):
-    if text == "":
-        text = " "
-    if "text_color_default" in config:
-        txt_color = config["text_color_default"]
-    if "background_color_default" in config:
-        bg_color = config["background_color_default"]
-
-    font_path = config["valid_fonts"][randint(0, len(config["valid_fonts"]))]
-    font_size = randint(config["font_size_min"], config["font_size_max"]+1)
-    fnt = ImageFont.truetype(font_path, font_size)
-
-    text_width, text_height = fnt.getsize(text)
-    padding_top = int(rand_uniform(config["padding_top_ratio_min"], config["padding_top_ratio_max"])*text_height)
-    padding_bottom = int(rand_uniform(config["padding_bottom_ratio_min"], config["padding_bottom_ratio_max"])*text_height)
-    padding_left = int(rand_uniform(config["padding_left_ratio_min"], config["padding_left_ratio_max"])*text_width)
-    padding_right = int(rand_uniform(config["padding_right_ratio_min"], config["padding_right_ratio_max"])*text_width)
-    padding = [padding_top, padding_bottom, padding_left, padding_right]
-    return generate_typed_text_line_image_from_params(text, fnt, bg_color, txt_color, config["color_mode"], padding)
-
-
-def generate_typed_text_line_image_from_params(text, font, bg_color, txt_color, color_mode, padding):
-    padding_top, padding_bottom, padding_left, padding_right = padding
-    text_width, text_height = font.getsize(text)
-    img_height = padding_top + padding_bottom + text_height
-    img_width = padding_left + padding_right + text_width
-    img = Image.new(color_mode, (img_width, img_height), color=bg_color)
-    d = ImageDraw.Draw(img)
-    d.text((padding_left, padding_bottom), text, font=font, fill=txt_color, spacing=0)
-    return np.array(img)
-
-
-def get_valid_fonts(alphabet=None):
-    valid_fonts = list()
-    for fold_detail in os.walk("../../../Fonts"):
-        if fold_detail[2]:
-            for font_name in fold_detail[2]:
-                if ".ttf" not in font_name:
-                    continue
-                font_path = os.path.join(fold_detail[0], font_name)
-                to_add = True
-                if alphabet is not None:
-                    for char in alphabet:
-                        if not char_in_font(char, font_path):
-                            to_add = False
-                            break
-                    if to_add:
-                        valid_fonts.append(font_path)
-                else:
-                    valid_fonts.append(font_path)
-    return valid_fonts
-
-
-def char_in_font(unicode_char, font_path):
-    with TTFont(font_path) as font:
-        for cmap in font['cmap'].tables:
-            if cmap.isUnicode():
-                if ord(unicode_char) in cmap.cmap:
-                    return True
-    return False
diff --git a/OCR/ocr_manager.py b/OCR/ocr_manager.py
deleted file mode 100644
index e34b36c0..00000000
--- a/OCR/ocr_manager.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from basic.generic_training_manager import GenericTrainingManager
-import os
-from PIL import Image
-import pickle
-
-
-class OCRManager(GenericTrainingManager):
-    def __init__(self, params):
-        super(OCRManager, self).__init__(params)
-        self.params["model_params"]["vocab_size"] = len(self.dataset.charset)
-
-    def generate_syn_line_dataset(self, name):
-        """
-        Generate synthetic line dataset from currently loaded dataset
-        """
-        dataset_name = list(self.params['dataset_params']["datasets"].keys())[0]
-        path = os.path.join(os.path.dirname(self.params['dataset_params']["datasets"][dataset_name]), name)
-        os.makedirs(path, exist_ok=True)
-        charset = set()
-        dataset = None
-        gt = {
-            "train": dict(),
-            "valid": dict(),
-            "test": dict()
-        }
-        for set_name in ["train", "valid", "test"]:
-            set_path = os.path.join(path, set_name)
-            os.makedirs(set_path, exist_ok=True)
-            if set_name == "train":
-                dataset = self.dataset.train_dataset
-            elif set_name == "valid":
-                dataset = self.dataset.valid_datasets["{}-valid".format(dataset_name)]
-            elif set_name == "test":
-                self.dataset.generate_test_loader("{}-test".format(dataset_name), [(dataset_name, "test"), ])
-                dataset = self.dataset.test_datasets["{}-test".format(dataset_name)]
-
-            samples = list()
-            for sample in dataset.samples:
-                for line_label in sample["label"].split("\n"):
-                    for chunk in [line_label[i:i+100] for i in range(0, len(line_label), 100)]:
-                        charset = charset.union(set(chunk))
-                        if len(chunk) > 0:
-                            samples.append({
-                                "path": sample["path"],
-                                "label": chunk,
-                                "nb_cols": 1,
-                            })
-
-            for i, sample in enumerate(samples):
-                ext = sample['path'].split(".")[-1]
-                img_name = "{}_{}.{}".format(set_name, i, ext)
-                img_path = os.path.join(set_path, img_name)
-
-                img = dataset.generate_typed_text_line_image(sample["label"])
-                Image.fromarray(img).save(img_path)
-                gt[set_name][img_name] = {
-                    "text": sample["label"],
-                    "nb_cols": sample["nb_cols"] if "nb_cols" in sample else 1
-                }
-                if "line_label" in sample:
-                    gt[set_name][img_name]["lines"] = sample["line_label"]
-
-        with open(os.path.join(path, "labels.pkl"), "wb") as f:
-            pickle.dump({
-                "ground_truth": gt,
-                "charset": sorted(list(charset)),
-            }, f)
\ No newline at end of file
diff --git a/README.md b/README.md
index 28d0dc92..9b29f204 100644
--- a/README.md
+++ b/README.md
@@ -2,10 +2,10 @@
 
 This repository is a public implementation of the paper: "DAN: a Segmentation-free Document Attention Network for Handwritten Document Recognition".
 
-![Prediction visualization](visual.png)
+![Prediction visualization](images/visual.png)
 
 The model uses a character-level attention to handle slanted lines:
-![Prediction visualization on slanted lines](visual_slanted_lines.png)
+![Prediction visualization on slanted lines](images/visual_slanted_lines.png)
 
 The paper is available at https://arxiv.org/abs/2203.12273.
 
diff --git a/basic/generic_dataset_manager.py b/basic/generic_dataset_manager.py
deleted file mode 100644
index dd272d15..00000000
--- a/basic/generic_dataset_manager.py
+++ /dev/null
@@ -1,390 +0,0 @@
-import torch
-import random
-from torch.utils.data import Dataset, DataLoader
-from torch.utils.data.distributed import DistributedSampler
-from basic.transforms import apply_data_augmentation
-from Datasets.dataset_formatters.utils_dataset import natural_sort
-import os
-import numpy as np
-import pickle
-from PIL import Image
-import cv2
-
-
-class DatasetManager:
-
-    def __init__(self, params):
-        self.params = params
-        self.dataset_class = params["dataset_class"]
-        self.img_padding_value = params["config"]["padding_value"]
-
-        self.my_collate_function = None
-
-        self.train_dataset = None
-        self.valid_datasets = dict()
-        self.test_datasets = dict()
-
-        self.train_loader = None
-        self.valid_loaders = dict()
-        self.test_loaders = dict()
-
-        self.train_sampler = None
-        self.valid_samplers = dict()
-        self.test_samplers = dict()
-
-        self.generator = torch.Generator()
-        self.generator.manual_seed(0)
-
-        self.batch_size = {
-            "train": self.params["batch_size"],
-            "valid": self.params["valid_batch_size"] if "valid_batch_size" in self.params else self.params["batch_size"],
-            "test": self.params["test_batch_size"] if "test_batch_size" in self.params else 1,
-        }
-
-    def apply_specific_treatment_after_dataset_loading(self, dataset):
-        raise NotImplementedError
-
-    def load_datasets(self):
-        """
-        Load training and validation datasets
-        """
-        self.train_dataset = self.dataset_class(self.params, "train", self.params["train"]["name"], self.get_paths_and_sets(self.params["train"]["datasets"]))
-        self.params["config"]["mean"], self.params["config"]["std"] = self.train_dataset.compute_std_mean()
-
-        self.my_collate_function = self.train_dataset.collate_function(self.params["config"])
-        self.apply_specific_treatment_after_dataset_loading(self.train_dataset)
-
-        for custom_name in self.params["valid"].keys():
-            self.valid_datasets[custom_name] = self.dataset_class(self.params, "valid", custom_name, self.get_paths_and_sets(self.params["valid"][custom_name]))
-            self.apply_specific_treatment_after_dataset_loading(self.valid_datasets[custom_name])
-
-    def load_ddp_samplers(self):
-        """
-        Load training and validation data samplers
-        """
-        if self.params["use_ddp"]:
-            self.train_sampler = DistributedSampler(self.train_dataset, num_replicas=self.params["num_gpu"], rank=self.params["ddp_rank"], shuffle=True)
-            for custom_name in self.valid_datasets.keys():
-                self.valid_samplers[custom_name] = DistributedSampler(self.valid_datasets[custom_name], num_replicas=self.params["num_gpu"], rank=self.params["ddp_rank"], shuffle=False)
-        else:
-            for custom_name in self.valid_datasets.keys():
-                self.valid_samplers[custom_name] = None
-
-    def load_dataloaders(self):
-        """
-        Load training and validation data loaders
-        """
-        self.train_loader = DataLoader(self.train_dataset,
-                                       batch_size=self.batch_size["train"],
-                                       shuffle=True if self.train_sampler is None else False,
-                                       drop_last=False,
-                                       batch_sampler=self.train_sampler,
-                                       sampler=self.train_sampler,
-                                       num_workers=self.params["num_gpu"]*self.params["worker_per_gpu"],
-                                       pin_memory=True,
-                                       collate_fn=self.my_collate_function,
-                                       worker_init_fn=self.seed_worker,
-                                       generator=self.generator)
-
-        for key in self.valid_datasets.keys():
-            self.valid_loaders[key] = DataLoader(self.valid_datasets[key],
-                                                 batch_size=self.batch_size["valid"],
-                                                 sampler=self.valid_samplers[key],
-                                                 batch_sampler=self.valid_samplers[key],
-                                                 shuffle=False,
-                                                 num_workers=self.params["num_gpu"]*self.params["worker_per_gpu"],
-                                                 pin_memory=True,
-                                                 drop_last=False,
-                                                 collate_fn=self.my_collate_function,
-                                                 worker_init_fn=self.seed_worker,
-                                                 generator=self.generator)
-
-    @staticmethod
-    def seed_worker(worker_id):
-        worker_seed = torch.initial_seed() % 2 ** 32
-        np.random.seed(worker_seed)
-        random.seed(worker_seed)
-
-    def generate_test_loader(self, custom_name, sets_list):
-        """
-        Load test dataset, data sampler and data loader
-        """
-        if custom_name in self.test_loaders.keys():
-            return
-        paths_and_sets = list()
-        for set_info in sets_list:
-            paths_and_sets.append({
-                "path": self.params["datasets"][set_info[0]],
-                "set_name": set_info[1]
-            })
-        self.test_datasets[custom_name] = self.dataset_class(self.params, "test", custom_name, paths_and_sets)
-        self.apply_specific_treatment_after_dataset_loading(self.test_datasets[custom_name])
-        if self.params["use_ddp"]:
-            self.test_samplers[custom_name] = DistributedSampler(self.test_datasets[custom_name], num_replicas=self.params["num_gpu"], rank=self.params["ddp_rank"], shuffle=False)
-        else:
-            self.test_samplers[custom_name] = None
-        self.test_loaders[custom_name] = DataLoader(self.test_datasets[custom_name],
-                                                    batch_size=self.batch_size["test"],
-                                                    sampler=self.test_samplers[custom_name],
-                                                    shuffle=False,
-                                                    num_workers=self.params["num_gpu"]*self.params["worker_per_gpu"],
-                                                    pin_memory=True,
-                                                    drop_last=False,
-                                                    collate_fn=self.my_collate_function,
-                                                    worker_init_fn=self.seed_worker,
-                                                    generator=self.generator)
-
-    def remove_test_dataset(self, custom_name):
-        del self.test_datasets[custom_name]
-        del self.test_samplers[custom_name]
-        del self.test_loaders[custom_name]
-
-    def remove_valid_dataset(self, custom_name):
-        del self.valid_datasets[custom_name]
-        del self.valid_samplers[custom_name]
-        del self.valid_loaders[custom_name]
-
-    def remove_train_dataset(self):
-        self.train_dataset = None
-        self.train_sampler = None
-        self.train_loader = None
-
-    def remove_all_datasets(self):
-        self.remove_train_dataset()
-        for name in list(self.valid_datasets.keys()):
-            self.remove_valid_dataset(name)
-        for name in list(self.test_datasets.keys()):
-            self.remove_test_dataset(name)
-
-    def get_paths_and_sets(self, dataset_names_folds):
-        paths_and_sets = list()
-        for dataset_name, fold in dataset_names_folds:
-            path = self.params["datasets"][dataset_name]
-            paths_and_sets.append({
-                "path": path,
-                "set_name": fold
-            })
-        return paths_and_sets
-
-
-class GenericDataset(Dataset):
-    """
-    Main class to handle dataset loading
-    """
-
-    def __init__(self, params, set_name, custom_name, paths_and_sets):
-        self.params = params
-        self.name = custom_name
-        self.set_name = set_name
-        self.mean = np.array(params["config"]["mean"]) if "mean" in params["config"].keys() else None
-        self.std = np.array(params["config"]["std"]) if "std" in params["config"].keys() else None
-
-        self.load_in_memory = self.params["config"]["load_in_memory"] if "load_in_memory" in self.params["config"] else True
-
-        self.samples = self.load_samples(paths_and_sets, load_in_memory=self.load_in_memory)
-
-        if self.load_in_memory:
-            self.apply_preprocessing(params["config"]["preprocessings"])
-
-        self.padding_value = params["config"]["padding_value"]
-        if self.padding_value == "mean":
-            if self.mean is None:
-                _, _ = self.compute_std_mean()
-            self.padding_value = self.mean
-            self.params["config"]["padding_value"] = self.padding_value
-
-        self.curriculum_config = None
-        self.training_info = None
-
-    def __len__(self):
-        return len(self.samples)
-
-    @staticmethod
-    def load_image(path):
-        with Image.open(path) as pil_img:
-            img = np.array(pil_img)
-            ## grayscale images
-            if len(img.shape) == 2:
-                img = np.expand_dims(img, axis=2)
-        return img
-
-    @staticmethod
-    def load_samples(paths_and_sets, load_in_memory=True):
-        """
-        Load images and labels
-        """
-        samples = list()
-        for path_and_set in paths_and_sets:
-            path = path_and_set["path"]
-            set_name = path_and_set["set_name"]
-            with open(os.path.join(path, "labels.pkl"), "rb") as f:
-                info = pickle.load(f)
-                gt = info["ground_truth"][set_name]
-                for filename in natural_sort(gt.keys()):
-                    name = os.path.join(os.path.basename(path), set_name, filename)
-                    full_path = os.path.join(path, set_name, filename)
-                    if isinstance(gt[filename], dict) and "text" in gt[filename]:
-                        label = gt[filename]["text"]
-                    else:
-                        label = gt[filename]
-                    samples.append({
-                        "name": name,
-                        "label": label,
-                        "unchanged_label": label,
-                        "path": full_path,
-                        "nb_cols": 1 if "nb_cols" not in gt[filename] else gt[filename]["nb_cols"]
-                    })
-                    if load_in_memory:
-                        samples[-1]["img"] = GenericDataset.load_image(full_path)
-                    if type(gt[filename]) is dict:
-                        if "lines" in gt[filename].keys():
-                            samples[-1]["raw_line_seg_label"] = gt[filename]["lines"]
-                        if "paragraphs" in gt[filename].keys():
-                            samples[-1]["paragraphs_label"] = gt[filename]["paragraphs"]
-                        if "pages" in gt[filename].keys():
-                            samples[-1]["pages_label"] = gt[filename]["pages"]
-        return samples
-
-    def apply_preprocessing(self, preprocessings):
-        for i in range(len(self.samples)):
-            self.samples[i] = apply_preprocessing(self.samples[i], preprocessings)
-
-    def compute_std_mean(self):
-        """
-        Compute cumulated variance and mean of whole dataset
-        """
-        if self.mean is not None and self.std is not None:
-            return self.mean, self.std
-        if not self.load_in_memory:
-            sample = self.samples[0].copy()
-            sample["img"] = self.get_sample_img(0)
-            img = apply_preprocessing(sample, self.params["config"]["preprocessings"])["img"]
-        else:
-            img = self.get_sample_img(0)
-        _, _, c = img.shape
-        sum = np.zeros((c,))
-        nb_pixels = 0
-
-        for i in range(len(self.samples)):
-            if not self.load_in_memory:
-                sample = self.samples[i].copy()
-                sample["img"] = self.get_sample_img(i)
-                img = apply_preprocessing(sample, self.params["config"]["preprocessings"])["img"]
-            else:
-                img = self.get_sample_img(i)
-            sum += np.sum(img, axis=(0, 1))
-            nb_pixels += np.prod(img.shape[:2])
-        mean = sum / nb_pixels
-        diff = np.zeros((c,))
-        for i in range(len(self.samples)):
-            if not self.load_in_memory:
-                sample = self.samples[i].copy()
-                sample["img"] = self.get_sample_img(i)
-                img = apply_preprocessing(sample, self.params["config"]["preprocessings"])["img"]
-            else:
-                img = self.get_sample_img(i)
-            diff += [np.sum((img[:, :, k] - mean[k]) ** 2) for k in range(c)]
-        std = np.sqrt(diff / nb_pixels)
-
-        self.mean = mean
-        self.std = std
-        return mean, std
-
-    def apply_data_augmentation(self, img):
-        """
-        Apply data augmentation strategy on the input image
-        """
-        augs = [self.params["config"][key] if key in self.params["config"].keys() else None for key in ["augmentation", "valid_augmentation", "test_augmentation"]]
-        for aug, set_name in zip(augs, ["train", "valid", "test"]):
-            if aug and self.set_name == set_name:
-                return apply_data_augmentation(img, aug)
-        return img, list()
-
-    def get_sample_img(self, i):
-        """
-        Get image by index
-        """
-        if self.load_in_memory:
-            return self.samples[i]["img"]
-        else:
-            return GenericDataset.load_image(self.samples[i]["path"])
-
-    def denormalize(self, img):
-        """
-        Get original image, before normalization
-        """
-        return img * self.std + self.mean
-
-
-def apply_preprocessing(sample, preprocessings):
-    """
-    Apply preprocessings on each sample
-    """
-    resize_ratio = [1, 1]
-    img = sample["img"]
-    for preprocessing in preprocessings:
-
-        if preprocessing["type"] == "dpi":
-            ratio = preprocessing["target"] / preprocessing["source"]
-            temp_img = img
-            h, w, c = temp_img.shape
-            temp_img = cv2.resize(temp_img, (int(np.ceil(w * ratio)), int(np.ceil(h * ratio))))
-            if len(temp_img.shape) == 2:
-                temp_img = np.expand_dims(temp_img, axis=2)
-            img = temp_img
-
-            resize_ratio = [ratio, ratio]
-
-        if preprocessing["type"] == "to_grayscaled":
-            temp_img = img
-            h, w, c = temp_img.shape
-            if c == 3:
-                img = np.expand_dims(
-                    0.2125 * temp_img[:, :, 0] + 0.7154 * temp_img[:, :, 1] + 0.0721 * temp_img[:, :, 2],
-                    axis=2).astype(np.uint8)
-
-        if preprocessing["type"] == "to_RGB":
-            temp_img = img
-            h, w, c = temp_img.shape
-            if c == 1:
-                img = np.concatenate([temp_img, temp_img, temp_img], axis=2)
-
-        if preprocessing["type"] == "resize":
-            keep_ratio = preprocessing["keep_ratio"]
-            max_h, max_w = preprocessing["max_height"], preprocessing["max_width"]
-            temp_img = img
-            h, w, c = temp_img.shape
-
-            ratio_h = max_h / h if max_h else 1
-            ratio_w = max_w / w if max_w else 1
-            if keep_ratio:
-                ratio_h = ratio_w = min(ratio_w, ratio_h)
-            new_h = min(max_h, int(h * ratio_h))
-            new_w = min(max_w, int(w * ratio_w))
-            temp_img = cv2.resize(temp_img, (new_w, new_h))
-            if len(temp_img.shape) == 2:
-                temp_img = np.expand_dims(temp_img, axis=2)
-
-            img = temp_img
-            resize_ratio = [ratio_h, ratio_w]
-
-        if preprocessing["type"] == "fixed_height":
-            new_h = preprocessing["height"]
-            temp_img = img
-            h, w, c = temp_img.shape
-            ratio = new_h / h
-            temp_img = cv2.resize(temp_img, (int(w*ratio), new_h))
-            if len(temp_img.shape) == 2:
-                temp_img = np.expand_dims(temp_img, axis=2)
-            img = temp_img
-            resize_ratio = [ratio, ratio]
-    if resize_ratio != [1, 1] and "raw_line_seg_label" in sample:
-        for li in range(len(sample["raw_line_seg_label"])):
-            for side, ratio in zip((["bottom", "top"], ["right", "left"]), resize_ratio):
-                for s in side:
-                    sample["raw_line_seg_label"][li][s] = sample["raw_line_seg_label"][li][s] * ratio
-
-    sample["img"] = img
-    sample["resize_ratio"] = resize_ratio
-    return sample
-
diff --git a/basic/generic_training_manager.py b/basic/generic_training_manager.py
deleted file mode 100644
index a8f41b28..00000000
--- a/basic/generic_training_manager.py
+++ /dev/null
@@ -1,706 +0,0 @@
-import torch
-import os
-import sys
-import copy
-import json
-import torch.distributed as dist
-import torch.multiprocessing as mp
-import random
-import numpy as np
-from torch.utils.tensorboard import SummaryWriter
-from torch.nn.init import kaiming_uniform_
-from tqdm import tqdm
-from time import time
-from torch.nn.parallel import DistributedDataParallel as DDP
-from torch.cuda.amp import GradScaler
-from basic.metric_manager import MetricManager
-from basic.scheduler import DropoutScheduler
-from datetime import date
-
-
-class GenericTrainingManager:
-
-    def __init__(self, params):
-        self.type = None
-        self.is_master = False
-        self.params = params
-        self.dropout_scheduler = None
-        self.models = {}
-        self.begin_time = None
-        self.dataset = None
-        self.dataset_name = list(self.params["dataset_params"]["datasets"].values())[0]
-        self.paths = None
-        self.latest_step = 0
-        self.latest_epoch = -1
-        self.latest_batch = 0
-        self.total_batch = 0
-        self.grad_acc_step = 0
-        self.latest_train_metrics = dict()
-        self.latest_valid_metrics = dict()
-        self.curriculum_info = dict()
-        self.curriculum_info["latest_valid_metrics"] = dict()
-        self.phase = None
-        self.max_mem_usage_by_epoch = list()
-        self.losses = list()
-        self.lr_values = list()
-
-        self.scaler = None
-
-        self.optimizers = dict()
-        self.optimizers_named_params_by_group = dict()
-        self.lr_schedulers = dict()
-        self.best = None
-        self.writer = None
-        self.metric_manager = dict()
-
-        self.init_hardware_config()
-        self.init_paths()
-        self.load_dataset()
-        self.params["model_params"]["use_amp"] = self.params["training_params"]["use_amp"]
-
-    def init_paths(self):
-        """
-        Create output folders for results and checkpoints
-        """
-        output_path = os.path.join("outputs", self.params["training_params"]["output_folder"])
-        os.makedirs(output_path, exist_ok=True)
-        checkpoints_path = os.path.join(output_path, "checkpoints")
-        os.makedirs(checkpoints_path, exist_ok=True)
-        results_path = os.path.join(output_path, "results")
-        os.makedirs(results_path, exist_ok=True)
-
-        self.paths = {
-            "results": results_path,
-            "checkpoints": checkpoints_path,
-            "output_folder": output_path
-        }
-
-    def load_dataset(self):
-        """
-        Load datasets, data samplers and data loaders
-        """
-        self.params["dataset_params"]["use_ddp"] = self.params["training_params"]["use_ddp"]
-        self.params["dataset_params"]["batch_size"] = self.params["training_params"]["batch_size"]
-        if "valid_batch_size" in self.params["training_params"]:
-            self.params["dataset_params"]["valid_batch_size"] = self.params["training_params"]["valid_batch_size"]
-        if "test_batch_size" in self.params["training_params"]:
-            self.params["dataset_params"]["test_batch_size"] = self.params["training_params"]["test_batch_size"]
-        self.params["dataset_params"]["num_gpu"] = self.params["training_params"]["nb_gpu"]
-        self.params["dataset_params"]["worker_per_gpu"] = 4 if "worker_per_gpu" not in self.params["dataset_params"] else self.params["dataset_params"]["worker_per_gpu"]
-        self.dataset = self.params["dataset_params"]["dataset_manager"](self.params["dataset_params"])
-        self.dataset.load_datasets()
-        self.dataset.load_ddp_samplers()
-        self.dataset.load_dataloaders()
-
-    def init_hardware_config(self):
-        # Debug mode
-        if self.params["training_params"]["force_cpu"]:
-            self.params["training_params"]["use_ddp"] = False
-            self.params["training_params"]["use_amp"] = False
-        # Manage Distributed Data Parallel & GPU usage
-        self.manual_seed = 1111 if "manual_seed" not in self.params["training_params"].keys() else \
-        self.params["training_params"]["manual_seed"]
-        self.ddp_config = {
-            "master": self.params["training_params"]["use_ddp"] and self.params["training_params"]["ddp_rank"] == 0,
-            "address": "localhost" if "ddp_addr" not in self.params["training_params"].keys() else self.params["training_params"]["ddp_addr"],
-            "port": "11111" if "ddp_port" not in self.params["training_params"].keys() else self.params["training_params"]["ddp_port"],
-            "backend": "nccl" if "ddp_backend" not in self.params["training_params"].keys() else self.params["training_params"]["ddp_backend"],
-            "rank": self.params["training_params"]["ddp_rank"],
-        }
-        self.is_master = self.ddp_config["master"] or not self.params["training_params"]["use_ddp"]
-        if self.params["training_params"]["force_cpu"]:
-            self.device = "cpu"
-        else:
-            if self.params["training_params"]["use_ddp"]:
-                self.device = torch.device(self.ddp_config["rank"])
-                self.params["dataset_params"]["ddp_rank"] = self.ddp_config["rank"]
-                self.launch_ddp()
-            else:
-                self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
-        self.params["model_params"]["device"] = self.device.type
-        # Print GPU info
-        # global
-        if (self.params["training_params"]["use_ddp"] and self.ddp_config["master"]) or not self.params["training_params"]["use_ddp"]:
-            print("##################")
-            print("Available GPUS: {}".format(self.params["training_params"]["nb_gpu"]))
-            for i in range(self.params["training_params"]["nb_gpu"]):
-                print("Rank {}: {} {}".format(i, torch.cuda.get_device_name(i), torch.cuda.get_device_properties(i)))
-            print("##################")
-        # local
-        print("Local GPU:")
-        if self.device != "cpu":
-            print("Rank {}: {} {}".format(self.params["training_params"]["ddp_rank"], torch.cuda.get_device_name(), torch.cuda.get_device_properties(self.device)))
-        else:
-            print("WORKING ON CPU !\n")
-        print("##################")
-
-    def load_model(self, reset_optimizer=False, strict=True):
-        """
-        Load model weights from scratch or from checkpoints
-        """
-        # Instantiate Model
-        for model_name in self.params["model_params"]["models"].keys():
-            self.models[model_name] = self.params["model_params"]["models"][model_name](self.params["model_params"])
-            self.models[model_name].to(self.device)  # To GPU or CPU
-            # make the model compatible with Distributed Data Parallel if used
-            if self.params["training_params"]["use_ddp"]:
-                self.models[model_name] = DDP(self.models[model_name], [self.ddp_config["rank"]])
-
-        # Handle curriculum dropout
-        if "dropout_scheduler" in self.params["model_params"]:
-            func = self.params["model_params"]["dropout_scheduler"]["function"]
-            T = self.params["model_params"]["dropout_scheduler"]["T"]
-            self.dropout_scheduler = DropoutScheduler(self.models, func, T)
-
-        self.scaler = GradScaler(enabled=self.params["training_params"]["use_amp"])
-
-        # Check if checkpoint exists
-        checkpoint = self.get_checkpoint()
-        if checkpoint is not None:
-            self.load_existing_model(checkpoint, strict=strict)
-        else:
-            self.init_new_model()
-
-        self.load_optimizers(checkpoint, reset_optimizer=reset_optimizer)
-
-        if self.is_master:
-            print("LOADED EPOCH: {}\n".format(self.latest_epoch), flush=True)
-
-    def get_checkpoint(self):
-        """
-        Seek if checkpoint exist, return None otherwise
-        """
-        if self.params["training_params"]["load_epoch"] in ("best", "last"):
-            for filename in os.listdir(self.paths["checkpoints"]):
-                if self.params["training_params"]["load_epoch"] in filename:
-                    return torch.load(os.path.join(self.paths["checkpoints"], filename))
-        return None
-
-    def load_existing_model(self, checkpoint, strict=True):
-        """
-        Load information and weights from previous training
-        """
-        self.load_save_info(checkpoint)
-        self.latest_epoch = checkpoint["epoch"]
-        if "step" in checkpoint:
-            self.latest_step = checkpoint["step"]
-        self.best = checkpoint["best"]
-        if "scaler_state_dict" in checkpoint:
-            self.scaler.load_state_dict(checkpoint["scaler_state_dict"])
-        # Load model weights from past training
-        for model_name in self.models.keys():
-            self.models[model_name].load_state_dict(checkpoint["{}_state_dict".format(model_name)], strict=strict)
-
-    def init_new_model(self):
-        """
-        Initialize model
-        """
-        # Specific weights initialization if exists
-        for model_name in self.models.keys():
-            try:
-                self.models[model_name].init_weights()
-            except:
-                pass
-
-        # Handle transfer learning instructions
-        if self.params["model_params"]["transfer_learning"]:
-            # Iterates over models
-            for model_name in self.params["model_params"]["transfer_learning"].keys():
-                state_dict_name, path, learnable, strict = self.params["model_params"]["transfer_learning"][model_name]
-                # Loading pretrained weights file
-                checkpoint = torch.load(path)
-                try:
-                    # Load pretrained weights for model
-                    self.models[model_name].load_state_dict(checkpoint["{}_state_dict".format(state_dict_name)], strict=strict)
-                    print("transfered weights for {}".format(state_dict_name), flush=True)
-                except RuntimeError as e:
-                    print(e, flush=True)
-                    # if error, try to load each parts of the model (useful if only few layers are different)
-                    for key in checkpoint["{}_state_dict".format(state_dict_name)].keys():
-                        try:
-                            # for pre-training of decision layer
-                            if "end_conv" in key and "transfered_charset" in self.params["model_params"]:
-                                self.adapt_decision_layer_to_old_charset(model_name, key, checkpoint, state_dict_name)
-                            else:
-                                self.models[model_name].load_state_dict(
-                                    {key: checkpoint["{}_state_dict".format(state_dict_name)][key]}, strict=False)
-                        except RuntimeError as e:
-                            ## exception when adding linebreak token from pretraining
-                                print(e, flush=True)
-                # Set parameters no trainable
-                if not learnable:
-                    self.set_model_learnable(self.models[model_name], False)
-
-    def adapt_decision_layer_to_old_charset(self, model_name, key, checkpoint, state_dict_name):
-        """
-        Transfer learning of the decision learning in case of close charsets between pre-training and training
-        """
-        pretrained_chars = list()
-        weights = checkpoint["{}_state_dict".format(state_dict_name)][key]
-        new_size = list(weights.size())
-        new_size[0] = len(self.dataset.charset) + self.params["model_params"]["additional_tokens"]
-        new_weights = torch.zeros(new_size, device=weights.device, dtype=weights.dtype)
-        old_charset = checkpoint["charset"] if "charset" in checkpoint else self.params["model_params"]["old_charset"]
-        if not "bias" in key:
-            kaiming_uniform_(new_weights, nonlinearity="relu")
-        for i, c in enumerate(self.dataset.charset):
-            if c in old_charset:
-                new_weights[i] = weights[old_charset.index(c)]
-                pretrained_chars.append(c)
-        if "transfered_charset_last_is_ctc_blank" in self.params["model_params"] and self.params["model_params"]["transfered_charset_last_is_ctc_blank"]:
-            new_weights[-1] = weights[-1]
-            pretrained_chars.append("<blank>")
-        checkpoint["{}_state_dict".format(state_dict_name)][key] = new_weights
-        self.models[model_name].load_state_dict({key: checkpoint["{}_state_dict".format(state_dict_name)][key]}, strict=False)
-        print("Pretrained chars for {} ({}): {}".format(key, len(pretrained_chars), pretrained_chars))
-
-    def load_optimizers(self, checkpoint, reset_optimizer=False):
-        """
-        Load the optimizer of each model
-        """
-        for model_name in self.models.keys():
-            new_params = dict()
-            if checkpoint and "optimizer_named_params_{}".format(model_name) in checkpoint:
-                self.optimizers_named_params_by_group[model_name] = checkpoint["optimizer_named_params_{}".format(model_name)]
-                # for progressively growing models
-                for name, param in self.models[model_name].named_parameters():
-                    existing = False
-                    for gr in self.optimizers_named_params_by_group[model_name]:
-                        if name in gr:
-                            gr[name] = param
-                            existing = True
-                            break
-                    if not existing:
-                        new_params.update({name: param})
-            else:
-                self.optimizers_named_params_by_group[model_name] = [dict(), ]
-                self.optimizers_named_params_by_group[model_name][0].update(self.models[model_name].named_parameters())
-
-            # Instantiate optimizer
-            self.reset_optimizer(model_name)
-
-            # Handle learning rate schedulers
-            if "lr_schedulers" in self.params["training_params"] and self.params["training_params"]["lr_schedulers"]:
-                key = "all" if "all" in self.params["training_params"]["lr_schedulers"] else model_name
-                if key in self.params["training_params"]["lr_schedulers"]:
-                    self.lr_schedulers[model_name] = self.params["training_params"]["lr_schedulers"][key]["class"]\
-                        (self.optimizers[model_name], **self.params["training_params"]["lr_schedulers"][key]["args"])
-
-            # Load optimizer state from past training
-            if checkpoint and not reset_optimizer:
-                self.optimizers[model_name].load_state_dict(checkpoint["optimizer_{}_state_dict".format(model_name)])
-                # Load optimizer scheduler config from past training if used
-                if "lr_schedulers" in self.params["training_params"] and self.params["training_params"]["lr_schedulers"] \
-                        and "lr_scheduler_{}_state_dict".format(model_name) in checkpoint.keys():
-                    self.lr_schedulers[model_name].load_state_dict(checkpoint["lr_scheduler_{}_state_dict".format(model_name)])
-
-            # for progressively growing models, keeping learning rate
-            if checkpoint and new_params:
-                self.optimizers_named_params_by_group[model_name].append(new_params)
-                self.optimizers[model_name].add_param_group({"params": list(new_params.values())})
-
-    @staticmethod
-    def set_model_learnable(model, learnable=True):
-        for p in list(model.parameters()):
-            p.requires_grad = learnable
-
-    def save_model(self, epoch, name, keep_weights=False):
-        """
-        Save model weights and training info for curriculum learning or learning rate for instance
-        """
-        if not self.is_master:
-            return
-        to_del = []
-        for filename in os.listdir(self.paths["checkpoints"]):
-            if name in filename:
-                to_del.append(os.path.join(self.paths["checkpoints"], filename))
-        path = os.path.join(self.paths["checkpoints"], "{}_{}.pt".format(name, epoch))
-        content = {
-            'optimizers_named_params': self.optimizers_named_params_by_group,
-            'epoch': epoch,
-            'step': self.latest_step,
-            "scaler_state_dict": self.scaler.state_dict(),
-            'best': self.best,
-            "charset": self.dataset.charset
-        }
-        for model_name in self.optimizers:
-            content['optimizer_{}_state_dict'.format(model_name)] = self.optimizers[model_name].state_dict()
-        for model_name in self.lr_schedulers:
-            content["lr_scheduler_{}_state_dict".format(model_name)] = self.lr_schedulers[model_name].state_dict()
-        content = self.add_save_info(content)
-        for model_name in self.models.keys():
-            content["{}_state_dict".format(model_name)] = self.models[model_name].state_dict()
-        torch.save(content, path)
-        if not keep_weights:
-            for path_to_del in to_del:
-                if path_to_del != path:
-                    os.remove(path_to_del)
-
-    def reset_optimizers(self):
-        """
-        Reset learning rate of all optimizers
-        """
-        for model_name in self.models.keys():
-            self.reset_optimizer(model_name)
-
-    def reset_optimizer(self, model_name):
-        """
-        Reset optimizer learning rate for given model
-        """
-        params = list(self.optimizers_named_params_by_group[model_name][0].values())
-        key = "all" if "all" in self.params["training_params"]["optimizers"] else model_name
-        self.optimizers[model_name] = self.params["training_params"]["optimizers"][key]["class"](params, **self.params["training_params"]["optimizers"][key]["args"])
-        for i in range(1, len(self.optimizers_named_params_by_group[model_name])):
-            self.optimizers[model_name].add_param_group({"params": list(self.optimizers_named_params_by_group[model_name][i].values())})
-
-    def save_params(self):
-        """
-        Output text file containing a summary of all hyperparameters chosen for the training
-        """
-        def compute_nb_params(module):
-            return sum([np.prod(p.size()) for p in list(module.parameters())])
-
-        def class_to_str_dict(my_dict):
-            for key in my_dict.keys():
-                if callable(my_dict[key]):
-                    my_dict[key] = my_dict[key].__name__
-                elif isinstance(my_dict[key], np.ndarray):
-                    my_dict[key] = my_dict[key].tolist()
-                elif isinstance(my_dict[key], dict):
-                    my_dict[key] = class_to_str_dict(my_dict[key])
-            return my_dict
-
-        path = os.path.join(self.paths["results"], "params")
-        if os.path.isfile(path):
-            return
-        params = copy.deepcopy(self.params)
-        params = class_to_str_dict(params)
-        params["date"] = date.today().strftime("%d/%m/%Y")
-        total_params = 0
-        for model_name in self.models.keys():
-            current_params = compute_nb_params(self.models[model_name])
-            params["model_params"]["models"][model_name] = [params["model_params"]["models"][model_name], "{:,}".format(current_params)]
-            total_params += current_params
-        params["model_params"]["total_params"] = "{:,}".format(total_params)
-
-        params["hardware"] = dict()
-        if self.device != "cpu":
-            for i in range(self.params["training_params"]["nb_gpu"]):
-                params["hardware"][str(i)] = "{} {}".format(torch.cuda.get_device_name(i), torch.cuda.get_device_properties(i))
-        else:
-            params["hardware"]["0"] = "CPU"
-        params["software"] = {
-            "python_version": sys.version,
-            "pytorch_version": torch.__version__,
-            "cuda_version": torch.version.cuda,
-            "cudnn_version": torch.backends.cudnn.version(),
-        }
-        with open(path, 'w') as f:
-            json.dump(params, f, indent=4)
-
-    def backward_loss(self, loss, retain_graph=False):
-        self.scaler.scale(loss).backward(retain_graph=retain_graph)
-
-    def step_optimizers(self, increment_step=True, names=None):
-        for model_name in self.optimizers:
-            if names and model_name not in names:
-                continue
-            if "gradient_clipping" in self.params["training_params"] and model_name in self.params["training_params"]["gradient_clipping"]["models"]:
-                self.scaler.unscale_(self.optimizers[model_name])
-                torch.nn.utils.clip_grad_norm_(self.models[model_name].parameters(), self.params["training_params"]["gradient_clipping"]["max"])
-            self.scaler.step(self.optimizers[model_name])
-        self.scaler.update()
-        self.latest_step += 1
-
-    def zero_optimizers(self, set_to_none=True):
-        for model_name in self.optimizers:
-            self.zero_optimizer(model_name, set_to_none)
-
-    def zero_optimizer(self, model_name, set_to_none=True):
-        self.optimizers[model_name].zero_grad(set_to_none=set_to_none)
-
-    def train(self):
-        """
-        Main training loop
-        """
-        # init tensorboard file and output param summary file
-        if self.is_master:
-            self.writer = SummaryWriter(self.paths["results"])
-            self.save_params()
-        # init variables
-        self.begin_time = time()
-        focus_metric_name = self.params["training_params"]["focus_metric"]
-        nb_epochs = self.params["training_params"]["max_nb_epochs"]
-        interval_save_weights = self.params["training_params"]["interval_save_weights"]
-        metric_names = self.params["training_params"]["train_metrics"]
-
-        display_values = None
-        # init curriculum learning
-        if "curriculum_learning" in self.params["training_params"].keys() and self.params["training_params"]["curriculum_learning"]:
-            self.init_curriculum()
-        # perform epochs
-        for num_epoch in range(self.latest_epoch+1, nb_epochs):
-            self.dataset.train_dataset.training_info = {
-                "epoch": self.latest_epoch,
-                "step": self.latest_step
-            }
-            self.phase = "train"
-            # Check maximum training time stop condition
-            if self.params["training_params"]["max_training_time"] and time() - self.begin_time > self.params["training_params"]["max_training_time"]:
-                break
-            # set models trainable
-            for model_name in self.models.keys():
-                self.models[model_name].train()
-            self.latest_epoch = num_epoch
-            if self.dataset.train_dataset.curriculum_config:
-                self.dataset.train_dataset.curriculum_config["epoch"] = self.latest_epoch
-            # init epoch metrics values
-            self.metric_manager["train"] = MetricManager(metric_names=metric_names, dataset_name=self.dataset_name)
-
-            with tqdm(total=len(self.dataset.train_loader.dataset)) as pbar:
-                pbar.set_description("EPOCH {}/{}".format(num_epoch, nb_epochs))
-                # iterates over mini-batch data
-                for ind_batch, batch_data in enumerate(self.dataset.train_loader):
-                    self.latest_batch = ind_batch + 1
-                    self.total_batch += 1
-                    # train on batch data and compute metrics
-                    batch_values = self.train_batch(batch_data, metric_names)
-                    batch_metrics = self.metric_manager["train"].compute_metrics(batch_values, metric_names)
-                    batch_metrics["names"] = batch_data["names"]
-                    batch_metrics["ids"] = batch_data["ids"]
-                    # Merge metrics if Distributed Data Parallel is used
-                    if self.params["training_params"]["use_ddp"]:
-                        batch_metrics = self.merge_ddp_metrics(batch_metrics)
-                    # Update learning rate via scheduler if one is used
-                    if self.params["training_params"]["lr_schedulers"]:
-                        for model_name in self.models:
-                            key = "all" if "all" in self.params["training_params"]["lr_schedulers"] else model_name
-                            if model_name in self.lr_schedulers and ind_batch % self.params["training_params"]["lr_schedulers"][key]["step_interval"] == 0:
-                                self.lr_schedulers[model_name].step(len(batch_metrics["names"]))
-                                if "lr" in metric_names:
-                                    self.writer.add_scalar("lr_{}".format(model_name), self.lr_schedulers[model_name].lr, self.lr_schedulers[model_name].step_num)
-                    # Update dropout scheduler if used
-                    if self.dropout_scheduler:
-                        self.dropout_scheduler.step(len(batch_metrics["names"]))
-                        self.dropout_scheduler.update_dropout_rate()
-
-                    # Add batch metrics values to epoch metrics values
-                    self.metric_manager["train"].update_metrics(batch_metrics)
-                    display_values = self.metric_manager["train"].get_display_values()
-                    pbar.set_postfix(values=str(display_values))
-                    pbar.update(len(batch_data["names"]))
-
-            # log metrics in tensorboard file
-            if self.is_master:
-                for key in display_values.keys():
-                    self.writer.add_scalar('{}_{}'.format(self.params["dataset_params"]["train"]["name"], key), display_values[key], num_epoch)
-            self.latest_train_metrics = display_values
-
-            # evaluate and compute metrics for valid sets
-            if self.params["training_params"]["eval_on_valid"] and num_epoch % self.params["training_params"]["eval_on_valid_interval"] == 0:
-                for valid_set_name in self.dataset.valid_loaders.keys():
-                    # evaluate set and compute metrics
-                    eval_values = self.evaluate(valid_set_name)
-                    self.latest_valid_metrics = eval_values
-                    # log valid metrics in tensorboard file
-                    if self.is_master:
-                        for key in eval_values.keys():
-                            self.writer.add_scalar('{}_{}'.format(valid_set_name, key), eval_values[key], num_epoch)
-                        if valid_set_name == self.params["training_params"]["set_name_focus_metric"] and (self.best is None or \
-                                (eval_values[focus_metric_name] <= self.best and self.params["training_params"]["expected_metric_value"] == "low") or\
-                                (eval_values[focus_metric_name] >= self.best and self.params["training_params"]["expected_metric_value"] == "high")):
-                            self.save_model(epoch=num_epoch, name="best")
-                            self.best = eval_values[focus_metric_name]
-
-            # Handle curriculum learning update
-            if self.dataset.train_dataset.curriculum_config:
-                self.check_and_update_curriculum()
-
-            if "curriculum_model" in self.params["model_params"] and self.params["model_params"]["curriculum_model"]:
-                self.update_curriculum_model()
-
-            # save model weights
-            if self.is_master:
-                self.save_model(epoch=num_epoch, name="last")
-                if interval_save_weights and num_epoch % interval_save_weights == 0:
-                    self.save_model(epoch=num_epoch, name="weigths", keep_weights=True)
-                self.writer.flush()
-
-    def evaluate(self, set_name, **kwargs):
-        """
-        Main loop for validation
-        """
-        self.phase = "eval"
-        loader = self.dataset.valid_loaders[set_name]
-        # Set models in eval mode
-        for model_name in self.models.keys():
-            self.models[model_name].eval()
-        metric_names = self.params["training_params"]["eval_metrics"]
-        display_values = None
-
-        # initialize epoch metrics
-        self.metric_manager[set_name] = MetricManager(metric_names, dataset_name=self.dataset_name)
-        with tqdm(total=len(loader.dataset)) as pbar:
-            pbar.set_description("Evaluation E{}".format(self.latest_epoch))
-            with torch.no_grad():
-                # iterate over batch data
-                for ind_batch, batch_data in enumerate(loader):
-                    self.latest_batch = ind_batch + 1
-                    # eval batch data and compute metrics
-                    batch_values = self.evaluate_batch(batch_data, metric_names)
-                    batch_metrics = self.metric_manager[set_name].compute_metrics(batch_values, metric_names)
-                    batch_metrics["names"] = batch_data["names"]
-                    batch_metrics["ids"] = batch_data["ids"]
-                    # merge metrics values if Distributed Data Parallel is used
-                    if self.params["training_params"]["use_ddp"]:
-                        batch_metrics = self.merge_ddp_metrics(batch_metrics)
-
-                    # add batch metrics to epoch metrics
-                    self.metric_manager[set_name].update_metrics(batch_metrics)
-                    display_values = self.metric_manager[set_name].get_display_values()
-
-                    pbar.set_postfix(values=str(display_values))
-                    pbar.update(len(batch_data["names"]))
-        if "cer_by_nb_cols" in metric_names:
-            self.log_cer_by_nb_cols(set_name)
-        return display_values
-
-    def predict(self, custom_name, sets_list, metric_names, output=False):
-        """
-        Main loop for evaluation
-        """
-        self.phase = "predict"
-        metric_names = metric_names.copy()
-        self.dataset.generate_test_loader(custom_name, sets_list)
-        loader = self.dataset.test_loaders[custom_name]
-        # Set models in eval mode
-        for model_name in self.models.keys():
-            self.models[model_name].eval()
-
-        # initialize epoch metrics
-        self.metric_manager[custom_name] = MetricManager(metric_names, self.dataset_name)
-
-        with tqdm(total=len(loader.dataset)) as pbar:
-            pbar.set_description("Prediction")
-            with torch.no_grad():
-                for ind_batch, batch_data in enumerate(loader):
-                    # iterates over batch data
-                    self.latest_batch = ind_batch + 1
-                    # eval batch data and compute metrics
-                    batch_values = self.evaluate_batch(batch_data, metric_names)
-                    batch_metrics = self.metric_manager[custom_name].compute_metrics(batch_values, metric_names)
-                    batch_metrics["names"] = batch_data["names"]
-                    batch_metrics["ids"] = batch_data["ids"]
-                    # merge batch metrics if Distributed Data Parallel is used
-                    if self.params["training_params"]["use_ddp"]:
-                        batch_metrics = self.merge_ddp_metrics(batch_metrics)
-
-                    # add batch metrics to epoch metrics
-                    self.metric_manager[custom_name].update_metrics(batch_metrics)
-                    display_values = self.metric_manager[custom_name].get_display_values()
-
-                    pbar.set_postfix(values=str(display_values))
-                    pbar.update(len(batch_data["names"]))
-
-        self.dataset.remove_test_dataset(custom_name)
-        # output metrics values if requested
-        if output:
-            if "pred" in metric_names:
-                self.output_pred(custom_name)
-            metrics = self.metric_manager[custom_name].get_display_values(output=True)
-            path = os.path.join(self.paths["results"], "predict_{}_{}.txt".format(custom_name, self.latest_epoch))
-            with open(path, "w") as f:
-                for metric_name in metrics.keys():
-                    f.write("{}: {}\n".format(metric_name, metrics[metric_name]))
-
-    def output_pred(self, name):
-        path = os.path.join(self.paths["results"], "pred_{}_{}.txt".format(name, self.latest_epoch))
-        pred = "\n".join(self.metric_manager[name].get("pred"))
-        with open(path, "w") as f:
-            f.write(pred)
-
-    def launch_ddp(self):
-        """
-        Initialize Distributed Data Parallel system
-        """
-        mp.set_start_method('fork', force=True)
-        os.environ['MASTER_ADDR'] = self.ddp_config["address"]
-        os.environ['MASTER_PORT'] = str(self.ddp_config["port"])
-        dist.init_process_group(self.ddp_config["backend"], rank=self.ddp_config["rank"], world_size=self.params["training_params"]["nb_gpu"])
-        torch.cuda.set_device(self.ddp_config["rank"])
-        random.seed(self.manual_seed)
-        np.random.seed(self.manual_seed)
-        torch.manual_seed(self.manual_seed)
-        torch.cuda.manual_seed(self.manual_seed)
-
-    def merge_ddp_metrics(self, metrics):
-        """
-        Merge metrics when Distributed Data Parallel is used
-        """
-        for metric_name in metrics.keys():
-            if metric_name in ["edit_words", "nb_words", "edit_chars", "nb_chars", "edit_chars_force_len",
-                               "edit_chars_curr", "nb_chars_curr", "ids"]:
-                metrics[metric_name] = self.cat_ddp_metric(metrics[metric_name])
-            elif metric_name in ["nb_samples", "loss", "loss_ce", "loss_ctc", "loss_ce_end"]:
-                metrics[metric_name] = self.sum_ddp_metric(metrics[metric_name], average=False)
-        return metrics
-
-    def sum_ddp_metric(self, metric, average=False):
-        """
-        Sum metrics for Distributed Data Parallel
-        """
-        sum = torch.tensor(metric[0]).to(self.device)
-        dist.all_reduce(sum, op=dist.ReduceOp.SUM)
-        if average:
-            sum.true_divide(dist.get_world_size())
-        return [sum.item(), ]
-
-    def cat_ddp_metric(self, metric):
-        """
-        Concatenate metrics for Distributed Data Parallel
-        """
-        tensor = torch.tensor(metric).unsqueeze(0).to(self.device)
-        res = [torch.zeros(tensor.size()).long().to(self.device) for _ in range(dist.get_world_size())]
-        dist.all_gather(res, tensor)
-        return list(torch.cat(res, dim=0).flatten().cpu().numpy())
-
-    @staticmethod
-    def cleanup():
-        dist.destroy_process_group()
-
-    def train_batch(self, batch_data, metric_names):
-        raise NotImplementedError
-
-    def evaluate_batch(self, batch_data, metric_names):
-        raise NotImplementedError
-
-    def init_curriculum(self):
-        raise NotImplementedError
-
-    def update_curriculum(self):
-        raise NotImplementedError
-
-    def add_checkpoint_info(self, load_mode="last", **kwargs):
-        for filename in os.listdir(self.paths["checkpoints"]):
-            if load_mode in filename:
-                checkpoint_path = os.path.join(self.paths["checkpoints"], filename)
-                checkpoint = torch.load(checkpoint_path)
-                for key in kwargs.keys():
-                    checkpoint[key] = kwargs[key]
-                torch.save(checkpoint, checkpoint_path)
-            return
-        self.save_model(self.latest_epoch, "last")
-
-    def load_save_info(self, info_dict):
-        """
-        Load curriculum info from saved model info
-        """
-        if "curriculum_config" in info_dict.keys():
-            self.dataset.train_dataset.curriculum_config = info_dict["curriculum_config"]
-
-    def add_save_info(self, info_dict):
-        """
-        Add curriculum info to model info to be saved
-        """
-        info_dict["curriculum_config"] = self.dataset.train_dataset.curriculum_config
-        return info_dict
\ No newline at end of file
diff --git a/basic/metric_manager.py b/basic/metric_manager.py
deleted file mode 100644
index 6c857686..00000000
--- a/basic/metric_manager.py
+++ /dev/null
@@ -1,538 +0,0 @@
-
-from Datasets.dataset_formatters.rimes_formatter import SEM_MATCHING_TOKENS as RIMES_MATCHING_TOKENS
-from Datasets.dataset_formatters.read2016_formatter import SEM_MATCHING_TOKENS as READ_MATCHING_TOKENS
-from Datasets.dataset_formatters.simara_formatter import SEM_MATCHING_TOKENS as SIMARA_MATCHING_TOKENS
-import re
-import networkx as nx
-import editdistance
-import numpy as np
-from dan.post_processing import PostProcessingModuleREAD, PostProcessingModuleRIMES, PostProcessingModuleSIMARA
-
-
-class MetricManager:
-
-    def __init__(self, metric_names, dataset_name):
-        self.dataset_name = dataset_name
-        if "READ" in dataset_name and "page" in dataset_name:
-            self.post_processing_module = PostProcessingModuleREAD
-            self.matching_tokens = READ_MATCHING_TOKENS
-            self.edit_and_num_edge_nodes = edit_and_num_items_for_ged_from_str_read
-        elif "RIMES" in dataset_name and "page" in dataset_name:
-            self.post_processing_module = PostProcessingModuleRIMES
-            self.matching_tokens = RIMES_MATCHING_TOKENS
-            self.edit_and_num_edge_nodes = edit_and_num_items_for_ged_from_str_rimes
-        elif "simara" in dataset_name and "page" in dataset_name:
-            self.post_processing_module = PostProcessingModuleSIMARA
-            self.matching_tokens = SIMARA_MATCHING_TOKENS
-            self.edit_and_num_edge_nodes = edit_and_num_items_for_ged_from_str_simara
-        else:
-            self.matching_tokens = dict()
-
-        self.layout_tokens = "".join(list(self.matching_tokens.keys()) + list(self.matching_tokens.values()))
-        if len(self.layout_tokens) == 0:
-            self.layout_tokens = None
-        self.metric_names = metric_names
-        self.epoch_metrics = None
-
-        self.linked_metrics = {
-            "cer": ["edit_chars", "nb_chars"],
-            "wer": ["edit_words", "nb_words"],
-            "loer": ["edit_graph", "nb_nodes_and_edges", "nb_pp_op_layout", "nb_gt_layout_token"],
-            "precision": ["precision", "weights"],
-            "map_cer_per_class": ["map_cer", ],
-            "layout_precision_per_class_per_threshold": ["map_cer", ],
-        }
-
-        self.init_metrics()
-
-    def init_metrics(self):
-        """
-        Initialization of the metrics specified in metrics_name
-        """
-        self.epoch_metrics = {
-            "nb_samples": list(),
-            "names": list(),
-            "ids": list(),
-        }
-
-        for metric_name in self.metric_names:
-            if metric_name in self.linked_metrics:
-                for linked_metric_name in self.linked_metrics[metric_name]:
-                    if linked_metric_name not in self.epoch_metrics.keys():
-                        self.epoch_metrics[linked_metric_name] = list()
-            else:
-                self.epoch_metrics[metric_name] = list()
-
-    def update_metrics(self, batch_metrics):
-        """
-        Add batch metrics to the metrics
-        """
-        for key in batch_metrics.keys():
-            if key in self.epoch_metrics:
-                self.epoch_metrics[key] += batch_metrics[key]
-
-    def get_display_values(self, output=False):
-        """
-        format metrics values for shell display purposes
-        """
-        metric_names = self.metric_names.copy()
-        if output:
-            metric_names.extend(["nb_samples"])
-        display_values = dict()
-        for metric_name in metric_names:
-            value = None
-            if output:
-                if metric_name in ["nb_samples", "weights"]:
-                    value = np.sum(self.epoch_metrics[metric_name])
-                elif metric_name in ["time", ]:
-                    total_time = np.sum(self.epoch_metrics[metric_name])
-                    sample_time = total_time / np.sum(self.epoch_metrics["nb_samples"])
-                    display_values["sample_time"] = round(sample_time, 4)
-                    value = total_time
-                elif metric_name == "loer":
-                    display_values["pper"] = round(np.sum(self.epoch_metrics["nb_pp_op_layout"]) / np.sum(self.epoch_metrics["nb_gt_layout_token"]), 4)
-                elif metric_name == "map_cer_per_class":
-                    value = compute_global_mAP_per_class(self.epoch_metrics["map_cer"])
-                    for key in value.keys():
-                        display_values["map_cer_" + key] = round(value[key], 4)
-                    continue
-                elif metric_name == "layout_precision_per_class_per_threshold":
-                    value = compute_global_precision_per_class_per_threshold(self.epoch_metrics["map_cer"])
-                    for key_class in value.keys():
-                        for threshold in value[key_class].keys():
-                            display_values["map_cer_{}_{}".format(key_class, threshold)] = round(
-                                value[key_class][threshold], 4)
-                    continue
-            if metric_name == "cer":
-                value = np.sum(self.epoch_metrics["edit_chars"]) / np.sum(self.epoch_metrics["nb_chars"])
-                if output:
-                    display_values["nb_chars"] = np.sum(self.epoch_metrics["nb_chars"])
-            elif metric_name == "wer":
-                value = np.sum(self.epoch_metrics["edit_words"]) / np.sum(self.epoch_metrics["nb_words"])
-                if output:
-                    display_values["nb_words"] = np.sum(self.epoch_metrics["nb_words"])
-            elif metric_name in ["loss", "loss_ctc", "loss_ce", "syn_max_lines"]:
-                value = np.average(self.epoch_metrics[metric_name], weights=np.array(self.epoch_metrics["nb_samples"]))
-            elif metric_name == "map_cer":
-                value = compute_global_mAP(self.epoch_metrics[metric_name])
-            elif metric_name == "loer":
-                value = np.sum(self.epoch_metrics["edit_graph"]) / np.sum(self.epoch_metrics["nb_nodes_and_edges"])
-            elif value is None:
-                continue
-
-            display_values[metric_name] = round(value, 4)
-        return display_values
-
-    def compute_metrics(self, values, metric_names):
-        metrics = {
-            "nb_samples": [values["nb_samples"], ],
-        }
-        for v in ["weights", "time"]:
-            if v in values:
-                metrics[v] = [values[v]]
-        for metric_name in metric_names:
-            if metric_name == "cer":
-                metrics["edit_chars"] = [edit_cer_from_string(u, v, self.layout_tokens) for u, v in zip(values["str_y"], values["str_x"])]
-                metrics["nb_chars"] = [nb_chars_cer_from_string(gt, self.layout_tokens) for gt in values["str_y"]]
-            elif metric_name == "wer":
-                split_gt = [format_string_for_wer(gt, self.layout_tokens) for gt in values["str_y"]]
-                split_pred = [format_string_for_wer(pred, self.layout_tokens) for pred in values["str_x"]]
-                metrics["edit_words"] = [edit_wer_from_formatted_split_text(gt, pred) for (gt, pred) in zip(split_gt, split_pred)]
-                metrics["nb_words"] = [len(gt) for gt in split_gt]
-            elif metric_name in ["loss_ctc", "loss_ce", "loss", "syn_max_lines", ]:
-                metrics[metric_name] = [values[metric_name], ]
-            elif metric_name == "map_cer":
-                pp_pred = list()
-                pp_score = list()
-                for pred, score in zip(values["str_x"], values["confidence_score"]):
-                    pred_score = self.post_processing_module().post_process(pred, score)
-                    pp_pred.append(pred_score[0])
-                    pp_score.append(pred_score[1])
-                metrics[metric_name] = [compute_layout_mAP_per_class(y, x, conf, self.matching_tokens) for x, conf, y in zip(pp_pred, pp_score, values["str_y"])]
-            elif metric_name == "loer":
-                pp_pred = list()
-                metrics["nb_pp_op_layout"] = list()
-                for pred in values["str_x"]:
-                    pp_module = self.post_processing_module()
-                    pp_pred.append(pp_module.post_process(pred))
-                    metrics["nb_pp_op_layout"].append(pp_module.num_op)
-                metrics["nb_gt_layout_token"] = [len(keep_only_tokens(str_x, self.layout_tokens)) for str_x in values["str_x"]]
-                edit_and_num_items = [self.edit_and_num_edge_nodes(y, x) for x, y in zip(pp_pred, values["str_y"])]
-                metrics["edit_graph"], metrics["nb_nodes_and_edges"] = [ei[0] for ei in edit_and_num_items], [ei[1] for ei in edit_and_num_items]
-        return metrics
-
-    def get(self, name):
-        return self.epoch_metrics[name]
-
-
-def keep_only_tokens(str, tokens):
-    """
-    Remove all but layout tokens from string
-    """
-    return re.sub('([^' + tokens + '])', '', str)
-
-
-def keep_all_but_tokens(str, tokens):
-    """
-    Remove all layout tokens from string
-    """
-    return re.sub('([' + tokens + '])', '', str)
-
-
-def edit_cer_from_string(gt, pred, layout_tokens=None):
-    """
-    Format and compute edit distance between two strings at character level
-    """
-    gt = format_string_for_cer(gt, layout_tokens)
-    pred = format_string_for_cer(pred, layout_tokens)
-    return editdistance.eval(gt, pred)
-
-
-def nb_chars_cer_from_string(gt, layout_tokens=None):
-    """
-    Compute length after formatting of ground truth string
-    """
-    return len(format_string_for_cer(gt, layout_tokens))
-
-
-def edit_wer_from_string(gt, pred, layout_tokens=None):
-    """
-    Format and compute edit distance between two strings at word level
-    """
-    split_gt = format_string_for_wer(gt, layout_tokens)
-    split_pred = format_string_for_wer(pred, layout_tokens)
-    return edit_wer_from_formatted_split_text(split_gt, split_pred)
-
-
-def format_string_for_wer(str, layout_tokens):
-    """
-    Format string for WER computation: remove layout tokens, treat punctuation as word, replace line break by space
-    """
-    str = re.sub('([\[\]{}/\\()\"\'&+*=<>?.;:,!\-—_€#%°])', r' \1 ', str)  # punctuation processed as word
-    if layout_tokens is not None:
-        str = keep_all_but_tokens(str, layout_tokens)  # remove layout tokens from metric
-    str = re.sub('([ \n])+', " ", str).strip()  # keep only one space character
-    return str.split(" ")
-
-
-def format_string_for_cer(str, layout_tokens):
-    """
-    Format string for CER computation: remove layout tokens and extra spaces
-    """
-    if layout_tokens is not None:
-        str = keep_all_but_tokens(str, layout_tokens)  # remove layout tokens from metric
-    str = re.sub('([\n])+', "\n", str)  # remove consecutive line breaks
-    str = re.sub('([ ])+', " ", str).strip()  # remove consecutive spaces
-    return str
-
-
-def edit_wer_from_formatted_split_text(gt, pred):
-    """
-    Compute edit distance at word level from formatted string as list
-    """
-    return editdistance.eval(gt, pred)
-
-
-def extract_by_tokens(input_str, begin_token, end_token, associated_score=None, order_by_score=False):
-    """
-    Extract list of text regions by begin and end tokens
-    Order the list by confidence score
-    """
-    if order_by_score:
-        assert associated_score is not None
-    res = list()
-    for match in re.finditer("{}[^{}]*{}".format(begin_token, end_token, end_token), input_str):
-        begin, end = match.regs[0]
-        if order_by_score:
-            res.append({
-                "confidence": np.mean([associated_score[begin], associated_score[end-1]]),
-                "content": input_str[begin+1:end-1]
-            })
-        else:
-            res.append(input_str[begin+1:end-1])
-    if order_by_score:
-        res = sorted(res, key=lambda x: x["confidence"], reverse=True)
-        res = [r["content"] for r in res]
-    return res
-
-
-def compute_layout_precision_per_threshold(gt, pred, score, begin_token, end_token, layout_tokens, return_weight=True):
-    """
-    Compute average precision of a given class for CER threshold from 5% to 50% with a step of 5%
-    """
-    pred_list = extract_by_tokens(pred, begin_token, end_token, associated_score=score, order_by_score=True)
-    gt_list = extract_by_tokens(gt, begin_token, end_token)
-    pred_list = [keep_all_but_tokens(p, layout_tokens) for p in pred_list]
-    gt_list = [keep_all_but_tokens(gt, layout_tokens) for gt in gt_list]
-    precision_per_threshold = [compute_layout_AP_for_given_threshold(gt_list, pred_list, threshold/100) for threshold in range(5, 51, 5)]
-    if return_weight:
-        return precision_per_threshold, len(gt_list)
-    return precision_per_threshold
-
-
-def compute_layout_AP_for_given_threshold(gt_list, pred_list, threshold):
-    """
-    Compute average precision of a given class for a given CER threshold
-    """
-    remaining_gt_list = gt_list.copy()
-    num_true = len(gt_list)
-    correct = np.zeros((len(pred_list)), dtype=np.bool)
-    for i, pred in enumerate(pred_list):
-        if len(remaining_gt_list) == 0:
-            break
-        cer_with_gt = [edit_cer_from_string(gt, pred)/nb_chars_cer_from_string(gt) for gt in remaining_gt_list]
-        cer, ind = np.min(cer_with_gt), np.argmin(cer_with_gt)
-        if cer <= threshold:
-            correct[i] = True
-            del remaining_gt_list[ind]
-    precision = np.cumsum(correct, dtype=np.int) / np.arange(1, len(pred_list)+1)
-    recall = np.cumsum(correct, dtype=np.int) / num_true
-    max_precision_from_recall = np.maximum.accumulate(precision[::-1])[::-1]
-    recall_diff = (recall - np.concatenate([np.array([0, ]), recall[:-1]]))
-    P = np.sum(recall_diff * max_precision_from_recall)
-    return P
-
-
-def compute_layout_mAP_per_class(gt, pred, score, tokens):
-    """
-    Compute the mAP_cer for each class for a given sample
-    """
-    layout_tokens = "".join(list(tokens.keys()))
-    AP_per_class = dict()
-    for token in tokens.keys():
-        if token in gt:
-            AP_per_class[token] = compute_layout_precision_per_threshold(gt, pred, score, token, tokens[token], layout_tokens=layout_tokens)
-    return AP_per_class
-
-
-def compute_global_mAP(list_AP_per_class):
-    """
-    Compute the global mAP_cer for several samples
-    """
-    weights_per_doc = list()
-    mAP_per_doc = list()
-    for doc_AP_per_class in list_AP_per_class:
-        APs = np.array([np.mean(doc_AP_per_class[key][0]) for key in doc_AP_per_class.keys()])
-        weights = np.array([doc_AP_per_class[key][1] for key in doc_AP_per_class.keys()])
-        if np.sum(weights) == 0:
-            mAP_per_doc.append(0)
-        else:
-            mAP_per_doc.append(np.average(APs, weights=weights))
-        weights_per_doc.append(np.sum(weights))
-    if np.sum(weights_per_doc) == 0:
-        return 0
-    return np.average(mAP_per_doc, weights=weights_per_doc)
-
-
-def compute_global_mAP_per_class(list_AP_per_class):
-    """
-    Compute the mAP_cer per class for several samples
-    """
-    mAP_per_class = dict()
-    for doc_AP_per_class in list_AP_per_class:
-        for key in doc_AP_per_class.keys():
-            if key not in mAP_per_class:
-                mAP_per_class[key] = {
-                    "AP": list(),
-                    "weights": list()
-                }
-            mAP_per_class[key]["AP"].append(np.mean(doc_AP_per_class[key][0]))
-            mAP_per_class[key]["weights"].append(doc_AP_per_class[key][1])
-    for key in mAP_per_class.keys():
-        mAP_per_class[key] = np.average(mAP_per_class[key]["AP"], weights=mAP_per_class[key]["weights"])
-    return mAP_per_class
-
-
-def compute_global_precision_per_class_per_threshold(list_AP_per_class):
-    """
-    Compute the mAP_cer per class and per threshold for several samples
-    """
-    mAP_per_class = dict()
-    for doc_AP_per_class in list_AP_per_class:
-        for key in doc_AP_per_class.keys():
-            if key not in mAP_per_class:
-                mAP_per_class[key] = dict()
-                for threshold in range(5, 51, 5):
-                    mAP_per_class[key][threshold] = {
-                        "precision": list(),
-                        "weights": list()
-                    }
-            for i, threshold in enumerate(range(5, 51, 5)):
-                mAP_per_class[key][threshold]["precision"].append(np.mean(doc_AP_per_class[key][0][i]))
-                mAP_per_class[key][threshold]["weights"].append(doc_AP_per_class[key][1])
-    for key_class in mAP_per_class.keys():
-        for threshold in mAP_per_class[key_class]:
-            mAP_per_class[key_class][threshold] = np.average(mAP_per_class[key_class][threshold]["precision"], weights=mAP_per_class[key_class][threshold]["weights"])
-    return mAP_per_class
-
-
-def str_to_graph_read(str):
-    """
-    Compute graph from string of layout tokens for the READ 2016 dataset at single-page and double-page levels
-    """
-    begin_layout_tokens = "".join(list(READ_MATCHING_TOKENS.keys()))
-    layout_token_sequence = keep_only_tokens(str, begin_layout_tokens)
-    g = nx.DiGraph()
-    g.add_node("D", type="document", level=4, page=0)
-    num = {
-        "â“Ÿ": 0,
-        "ⓐ": 0,
-        "â“‘": 0,
-        "ⓝ": 0,
-        "â“¢": 0
-    }
-    previous_top_level_node = None
-    previous_middle_level_node = None
-    previous_low_level_node = None
-    for ind, c in enumerate(layout_token_sequence):
-        num[c] += 1
-        if c == "â“Ÿ":
-            node_name = "P_{}".format(num[c])
-            g.add_node(node_name, type="page", level=3, page=num["â“Ÿ"])
-            g.add_edge("D", node_name)
-            if previous_top_level_node:
-                g.add_edge(previous_top_level_node, node_name)
-            previous_top_level_node = node_name
-            previous_middle_level_node = None
-            previous_low_level_node = None
-        if c in "ⓝⓢ":
-            node_name = "{}_{}".format("N" if c == "ⓝ" else "S", num[c])
-            g.add_node(node_name, type="number" if c == "ⓝ" else "section", level=2, page=num["ⓟ"])
-            g.add_edge(previous_top_level_node, node_name)
-            if previous_middle_level_node:
-                g.add_edge(previous_middle_level_node, node_name)
-            previous_middle_level_node = node_name
-            previous_low_level_node = None
-        if c in "ⓐⓑ":
-            node_name = "{}_{}".format("A" if c == "ⓐ" else "B", num[c])
-            g.add_node(node_name, type="annotation" if c == "ⓐ" else "body", level=1, page=num["ⓟ"])
-            g.add_edge(previous_middle_level_node, node_name)
-            if previous_low_level_node:
-                g.add_edge(previous_low_level_node, node_name)
-            previous_low_level_node = node_name
-    return g
-
-
-def str_to_graph_rimes(str):
-    """
-    Compute graph from string of layout tokens for the RIMES dataset at page level
-    """
-    begin_layout_tokens = "".join(list(RIMES_MATCHING_TOKENS.keys()))
-    layout_token_sequence = keep_only_tokens(str, begin_layout_tokens)
-    g = nx.DiGraph()
-    g.add_node("D", type="document", level=2, page=0)
-    token_name_dict = {
-        "â“‘": "B",
-        "â“ž": "O",
-        "â“¡": "R",
-        "â“¢": "S",
-        "ⓦ": "W",
-        "ⓨ": "Y",
-        "â“Ÿ": "P"
-    }
-    num = dict()
-    previous_node = None
-    for token in begin_layout_tokens:
-        num[token] = 0
-    for ind, c in enumerate(layout_token_sequence):
-        num[c] += 1
-        node_name = "{}_{}".format(token_name_dict[c], num[c])
-        g.add_node(node_name, type=token_name_dict[c], level=1, page=0)
-        g.add_edge("D", node_name)
-        if previous_node:
-            g.add_edge(previous_node, node_name)
-        previous_node = node_name
-    return g
-
-
-def str_to_graph_simara(str):
-    """
-    Compute graph from string of layout tokens for the SIMARA dataset at page level
-    """
-    begin_layout_tokens = "".join(list(SIMARA_MATCHING_TOKENS.keys()))
-    layout_token_sequence = keep_only_tokens(str, begin_layout_tokens)
-    g = nx.DiGraph()
-    g.add_node("D", type="document", level=2, page=0)
-    token_name_dict = {
-        "ⓘ": "I",
-        "â““": "D",
-        "â“¢": "S",
-        "â“’": "C",
-        "â“Ÿ": "P",
-        "ⓐ": "A"
-    }
-    num = dict()
-    previous_node = None
-    for token in begin_layout_tokens:
-        num[token] = 0
-    for ind, c in enumerate(layout_token_sequence):
-        num[c] += 1
-        node_name = "{}_{}".format(token_name_dict[c], num[c])
-        g.add_node(node_name, type=token_name_dict[c], level=1, page=0)
-        g.add_edge("D", node_name)
-        if previous_node:
-            g.add_edge(previous_node, node_name)
-        previous_node = node_name
-    return g
-
-
-def graph_edit_distance_by_page_read(g1, g2):
-    """
-    Compute graph edit distance page by page for the READ 2016 dataset
-    """
-    num_pages_g1 = len([n for n in g1.nodes().items() if n[1]["level"] == 3])
-    num_pages_g2 = len([n for n in g2.nodes().items() if n[1]["level"] == 3])
-    page_graphs_1 = [g1.subgraph([n[0] for n in g1.nodes().items() if n[1]["page"] == num_page]) for num_page in range(1, num_pages_g1+1)]
-    page_graphs_2 = [g2.subgraph([n[0] for n in g2.nodes().items() if n[1]["page"] == num_page]) for num_page in range(1, num_pages_g2+1)]
-    edit = 0
-    for i in range(max(len(page_graphs_1), len(page_graphs_2))):
-        page_1 = page_graphs_1[i] if i < len(page_graphs_1) else nx.DiGraph()
-        page_2 = page_graphs_2[i] if i < len(page_graphs_2) else nx.DiGraph()
-        edit += graph_edit_distance(page_1, page_2)
-    return edit
-
-
-def graph_edit_distance(g1, g2):
-    """
-    Compute graph edit distance between two graphs
-    """
-    for v in nx.optimize_graph_edit_distance(g1, g2,
-                                             node_ins_cost=lambda node: 1,
-                                             node_del_cost=lambda node: 1,
-                                             node_subst_cost=lambda node1, node2: 0 if node1["type"] == node2["type"] else 1,
-                                             edge_ins_cost=lambda edge: 1,
-                                             edge_del_cost=lambda edge: 1,
-                                             edge_subst_cost=lambda edge1, edge2: 0 if edge1 == edge2 else 1
-                                             ):
-        new_edit = v
-    return new_edit
-
-
-def edit_and_num_items_for_ged_from_str_read(str_gt, str_pred):
-    """
-    Compute graph edit distance and num nodes/edges for normalized graph edit distance
-    For the READ 2016 dataset
-    """
-    g_gt = str_to_graph_read(str_gt)
-    g_pred = str_to_graph_read(str_pred)
-    return graph_edit_distance_by_page_read(g_gt, g_pred), g_gt.number_of_nodes() + g_gt.number_of_edges()
-
-
-def edit_and_num_items_for_ged_from_str_rimes(str_gt, str_pred):
-    """
-    Compute graph edit distance and num nodes/edges for normalized graph edit distance
-    For the RIMES dataset
-    """
-    g_gt = str_to_graph_rimes(str_gt)
-    g_pred = str_to_graph_rimes(str_pred)
-    return graph_edit_distance(g_gt, g_pred), g_gt.number_of_nodes() + g_gt.number_of_edges()
-
-
-def edit_and_num_items_for_ged_from_str_simara(str_gt, str_pred):
-    """
-    Compute graph edit distance and num nodes/edges for normalized graph edit distance
-    For the SIMARA dataset
-    """
-    g_gt = str_to_graph_simara(str_gt)
-    g_pred = str_to_graph_simara(str_pred)
-    return graph_edit_distance(g_gt, g_pred), g_gt.number_of_nodes() + g_gt.number_of_edges()
diff --git a/basic/scheduler.py b/basic/scheduler.py
deleted file mode 100644
index 6c875c1d..00000000
--- a/basic/scheduler.py
+++ /dev/null
@@ -1,51 +0,0 @@
-
-from torch.nn import Dropout, Dropout2d
-import numpy as np
-
-
-class DropoutScheduler:
-
-    def __init__(self, models, function, T=1e5):
-        """
-        T: number of gradient updates to converge
-        """
-
-        self.teta_list = list()
-        self.init_teta_list(models)
-        self.function = function
-        self.T = T
-        self.step_num = 0
-
-    def step(self):
-        self.step(1)
-
-    def step(self, num):
-        self.step_num += num
-
-    def init_teta_list(self, models):
-        for model_name in models.keys():
-            self.init_teta_list_module(models[model_name])
-
-    def init_teta_list_module(self, module):
-        for child in module.children():
-            if isinstance(child, Dropout) or isinstance(child, Dropout2d):
-                self.teta_list.append([child, child.p])
-            else:
-                self.init_teta_list_module(child)
-
-    def update_dropout_rate(self):
-        for (module, p) in self.teta_list:
-            module.p = self.function(p, self.step_num, self.T)
-
-
-def exponential_dropout_scheduler(dropout_rate, step, max_step):
-    return dropout_rate * (1 - np.exp(-10 * step / max_step))
-
-
-def exponential_scheduler(init_value, end_value, step, max_step):
-    step = min(step, max_step-1)
-    return init_value - (init_value - end_value) * (1 - np.exp(-10*step/max_step))
-
-
-def linear_scheduler(init_value, end_value, step, max_step):
-    return init_value + step * (end_value - init_value) / max_step
\ No newline at end of file
diff --git a/basic/transforms.py b/basic/transforms.py
deleted file mode 100644
index 18c8084d..00000000
--- a/basic/transforms.py
+++ /dev/null
@@ -1,438 +0,0 @@
-
-import numpy as np
-from numpy import random
-from PIL import Image, ImageOps
-from cv2 import erode, dilate, normalize
-import cv2
-import math
-from basic.utils import randint, rand_uniform, rand
-from torchvision.transforms import RandomPerspective, RandomCrop, ColorJitter, GaussianBlur, RandomRotation
-from torchvision.transforms.functional import InterpolationMode
-
-"""
-Each transform class defined here takes as input a PIL Image and returns the modified PIL Image
-"""
-
-
-class SignFlipping:
-    """
-    Color inversion
-    """
-
-    def __init__(self):
-        pass
-
-    def __call__(self, x):
-        return ImageOps.invert(x)
-
-
-class DPIAdjusting:
-    """
-    Resolution modification
-    """
-
-    def __init__(self, factor, preserve_ratio):
-        self.factor = factor
-
-    def __call__(self, x):
-        w, h = x.size
-        return x.resize((int(np.ceil(w * self.factor)), int(np.ceil(h * self.factor))), Image.BILINEAR)
-
-
-class Dilation:
-    """
-    OCR: stroke width increasing
-    """
-
-    def __init__(self, kernel, iterations):
-        self.kernel = np.ones(kernel, np.uint8)
-        self.iterations = iterations
-
-    def __call__(self, x):
-        return Image.fromarray(dilate(np.array(x), self.kernel, iterations=self.iterations))
-
-
-class Erosion:
-    """
-    OCR: stroke width decreasing
-    """
-
-    def __init__(self, kernel, iterations):
-        self.kernel = np.ones(kernel, np.uint8)
-        self.iterations = iterations
-
-    def __call__(self, x):
-        return Image.fromarray(erode(np.array(x), self.kernel, iterations=self.iterations))
-
-
-class GaussianNoise:
-    """
-    Add Gaussian Noise
-    """
-
-    def __init__(self, std):
-        self.std = std
-
-    def __call__(self, x):
-        x_np = np.array(x)
-        mean, std = np.mean(x_np), np.std(x_np)
-        std = math.copysign(max(abs(std), 0.000001), std)
-        min_, max_ = np.min(x_np,), np.max(x_np)
-        normal_noise = np.random.randn(*x_np.shape)
-        if len(x_np.shape) == 3 and x_np.shape[2] == 3 and np.all(x_np[:, :, 0] == x_np[:, :, 1]) and np.all(x_np[:, :, 0] == x_np[:, :, 2]):
-            normal_noise[:, :, 1] = normal_noise[:, :, 2] = normal_noise[:, :, 0]
-        x_np = ((x_np-mean)/std + normal_noise*self.std) * std + mean
-        x_np = normalize(x_np, x_np, max_, min_, cv2.NORM_MINMAX)
-
-        return Image.fromarray(x_np.astype(np.uint8))
-
-
-class Sharpen:
-    """
-    Add Gaussian Noise
-    """
-
-    def __init__(self, alpha, strength):
-        self.alpha = alpha
-        self.strength = strength
-
-    def __call__(self, x):
-        x_np = np.array(x)
-        id_matrix = np.array([[0, 0, 0],
-                              [0, 1, 0],
-                              [0, 0, 0]]
-                             )
-        effect_matrix = np.array([[1, 1, 1],
-                                  [1, -(8+self.strength), 1],
-                                  [1, 1, 1]]
-                                 )
-        kernel = (1 - self.alpha) * id_matrix - self.alpha * effect_matrix
-        kernel = np.expand_dims(kernel, axis=2)
-        kernel = np.concatenate([kernel, kernel, kernel], axis=2)
-        sharpened = cv2.filter2D(x_np, -1, kernel=kernel[:, :, 0])
-        return Image.fromarray(sharpened.astype(np.uint8))
-
-
-class ZoomRatio:
-    """
-        Crop by ratio
-        Preserve dimensions if keep_dim = True (= zoom)
-    """
-
-    def __init__(self, ratio_h, ratio_w, keep_dim=True):
-        self.ratio_w = ratio_w
-        self.ratio_h = ratio_h
-        self.keep_dim = keep_dim
-
-    def __call__(self, x):
-        w, h = x.size
-        x = RandomCrop((int(h * self.ratio_h), int(w * self.ratio_w)))(x)
-        if self.keep_dim:
-            x = x.resize((w, h), Image.BILINEAR)
-        return x
-
-
-class ElasticDistortion:
-
-    def __init__(self, kernel_size=(7, 7), sigma=5, alpha=1):
-
-        self.kernel_size = kernel_size
-        self.sigma = sigma
-        self.alpha = alpha
-
-    def __call__(self, x):
-        x_np = np.array(x)
-
-        h, w = x_np.shape[:2]
-
-        dx = np.random.uniform(-1, 1, (h, w))
-        dy = np.random.uniform(-1, 1, (h, w))
-
-        x_gauss = cv2.GaussianBlur(dx, self.kernel_size, self.sigma)
-        y_gauss = cv2.GaussianBlur(dy, self.kernel_size, self.sigma)
-
-        n = np.sqrt(x_gauss**2 + y_gauss**2)
-
-        nd_x = self.alpha * x_gauss / n
-        nd_y = self.alpha * y_gauss / n
-
-        ind_y, ind_x = np.indices((h, w), dtype=np.float32)
-
-        map_x = nd_x + ind_x
-        map_x = map_x.reshape(h, w).astype(np.float32)
-        map_y = nd_y + ind_y
-        map_y = map_y.reshape(h, w).astype(np.float32)
-
-        dst = cv2.remap(x_np, map_x, map_y, cv2.INTER_LINEAR)
-        return Image.fromarray(dst.astype(np.uint8))
-
-
-class Tightening:
-    """
-    Reduce interline spacing
-    """
-
-    def __init__(self, color=255, remove_proba=0.75):
-        self.color = color
-        self.remove_proba = remove_proba
-
-    def __call__(self, x):
-        x_np = np.array(x)
-        interline_indices = [np.all(line == 255) for line in x_np]
-        indices_to_removed = np.logical_and(np.random.choice([True, False], size=len(x_np), replace=True, p=[self.remove_proba, 1-self.remove_proba]), interline_indices)
-        new_x = x_np[np.logical_not(indices_to_removed)]
-        return Image.fromarray(new_x.astype(np.uint8))
-
-
-def get_list_augmenters(img, aug_configs, fill_value):
-    """
-    Randomly select a list of data augmentation techniques to used based on aug_configs
-    """
-    augmenters = list()
-    for aug_config in aug_configs:
-        if rand() > aug_config["proba"]:
-            continue
-        if aug_config["type"] == "dpi":
-            valid_factor = False
-            while not valid_factor:
-                factor = rand_uniform(aug_config["min_factor"], aug_config["max_factor"])
-                valid_factor = not (("max_width" in aug_config and factor*img.size[0] > aug_config["max_width"]) or \
-                               ("max_height" in aug_config and factor * img.size[1] > aug_config["max_height"]) or \
-                               ("min_width" in aug_config and factor*img.size[0] < aug_config["min_width"]) or \
-                               ("min_height" in aug_config and factor * img.size[1] < aug_config["min_height"]))
-            augmenters.append(DPIAdjusting(factor, preserve_ratio=aug_config["preserve_ratio"]))
-
-        elif aug_config["type"] == "zoom_ratio":
-            ratio_h = rand_uniform(aug_config["min_ratio_h"], aug_config["max_ratio_h"])
-            ratio_w = rand_uniform(aug_config["min_ratio_w"], aug_config["max_ratio_w"])
-            augmenters.append(ZoomRatio(ratio_h=ratio_h, ratio_w=ratio_w, keep_dim=aug_config["keep_dim"]))
-
-        elif aug_config["type"] == "perspective":
-            scale = rand_uniform(aug_config["min_factor"], aug_config["max_factor"])
-            augmenters.append(RandomPerspective(distortion_scale=scale, p=1, interpolation=InterpolationMode.BILINEAR, fill=fill_value))
-
-        elif aug_config["type"] == "elastic_distortion":
-            kernel_size = randint(aug_config["min_kernel_size"], aug_config["max_kernel_size"]) // 2 * 2 + 1
-            sigma = rand_uniform(aug_config["min_sigma"], aug_config["max_sigma"])
-            alpha= rand_uniform(aug_config["min_alpha"], aug_config["max_alpha"])
-            augmenters.append(ElasticDistortion(kernel_size=(kernel_size, kernel_size), sigma=sigma, alpha=alpha))
-
-        elif aug_config["type"] == "dilation_erosion":
-            kernel_h = randint(aug_config["min_kernel"], aug_config["max_kernel"] + 1)
-            kernel_w = randint(aug_config["min_kernel"], aug_config["max_kernel"] + 1)
-            if randint(0, 2) == 0:
-                augmenters.append(Erosion((kernel_w, kernel_h), aug_config["iterations"]))
-            else:
-                augmenters.append(Dilation((kernel_w, kernel_h), aug_config["iterations"]))
-
-        elif aug_config["type"] == "color_jittering":
-            augmenters.append(ColorJitter(contrast=aug_config["factor_contrast"],
-                              brightness=aug_config["factor_brightness"],
-                              saturation=aug_config["factor_saturation"],
-                              hue=aug_config["factor_hue"],
-                              ))
-
-        elif aug_config["type"] == "gaussian_blur":
-            max_kernel_h = min(aug_config["max_kernel"], img.size[1])
-            max_kernel_w = min(aug_config["max_kernel"], img.size[0])
-            kernel_h = randint(aug_config["min_kernel"], max_kernel_h + 1) // 2 * 2 + 1
-            kernel_w = randint(aug_config["min_kernel"], max_kernel_w + 1) // 2 * 2 + 1
-            sigma = rand_uniform(aug_config["min_sigma"], aug_config["max_sigma"])
-            augmenters.append(GaussianBlur(kernel_size=(kernel_w, kernel_h), sigma=sigma))
-
-        elif aug_config["type"] == "gaussian_noise":
-            augmenters.append(GaussianNoise(std=aug_config["std"]))
-
-        elif aug_config["type"] == "sharpen":
-            alpha = rand_uniform(aug_config["min_alpha"], aug_config["max_alpha"])
-            strength = rand_uniform(aug_config["min_strength"], aug_config["max_strength"])
-            augmenters.append(Sharpen(alpha=alpha, strength=strength))
-
-        else:
-            print("Error - unknown augmentor: {}".format(aug_config["type"]))
-            exit(-1)
-
-    return augmenters
-
-
-def apply_data_augmentation(img, da_config):
-    """
-    Apply data augmentation strategy on input image
-    """
-    applied_da = list()
-    if da_config["proba"] != 1 and rand() > da_config["proba"]:
-        return img, applied_da
-
-    # Convert to PIL Image
-    img = img[:, :, 0] if img.shape[2] == 1 else img
-    img = Image.fromarray(img)
-
-    fill_value = da_config["fill_value"] if "fill_value" in da_config else 255
-    augmenters = get_list_augmenters(img, da_config["augmentations"], fill_value=fill_value)
-    if da_config["order"] == "random":
-        random.shuffle(augmenters)
-
-    for augmenter in augmenters:
-        img = augmenter(img)
-        applied_da.append(type(augmenter).__name__)
-
-    # convert to numpy array
-    img = np.array(img)
-    img = np.expand_dims(img, axis=2) if len(img.shape) == 2 else img
-    return img, applied_da
-
-
-def apply_transform(img, transform):
-    """
-    Apply data augmentation technique on input image
-    """
-    img = img[:, :, 0] if img.shape[2] == 1 else img
-    img = Image.fromarray(img)
-    img = transform(img)
-    img = np.array(img)
-    return np.expand_dims(img, axis=2) if len(img.shape) == 2 else img
-
-
-def line_aug_config(proba_use_da, p):
-    return {
-        "order": "random",
-        "proba": proba_use_da,
-        "augmentations": [
-            {
-                "type": "dpi",
-                "proba": p,
-                "min_factor": 0.5,
-                "max_factor": 1.5,
-                "preserve_ratio": True,
-            },
-            {
-                "type": "perspective",
-                "proba": p,
-                "min_factor": 0,
-                "max_factor": 0.4,
-            },
-            {
-                "type": "elastic_distortion",
-                "proba": p,
-                "min_alpha": 0.5,
-                "max_alpha": 1,
-                "min_sigma": 1,
-                "max_sigma": 10,
-                "min_kernel_size": 3,
-                "max_kernel_size": 9,
-            },
-            {
-                "type": "dilation_erosion",
-                "proba": p,
-                "min_kernel": 1,
-                "max_kernel": 3,
-                "iterations": 1,
-            },
-            {
-                "type": "color_jittering",
-                "proba": p,
-                "factor_hue": 0.2,
-                "factor_brightness": 0.4,
-                "factor_contrast": 0.4,
-                "factor_saturation": 0.4,
-            },
-            {
-                "type": "gaussian_blur",
-                "proba": p,
-                "min_kernel": 3,
-                "max_kernel": 5,
-                "min_sigma": 3,
-                "max_sigma": 5,
-            },
-            {
-                "type": "gaussian_noise",
-                "proba": p,
-                "std": 0.5,
-            },
-            {
-                "type": "sharpen",
-                "proba": p,
-                "min_alpha": 0,
-                "max_alpha": 1,
-                "min_strength": 0,
-                "max_strength": 1,
-            },
-            {
-                "type": "zoom_ratio",
-                "proba": p,
-                "min_ratio_h": 0.8,
-                "max_ratio_h": 1,
-                "min_ratio_w": 0.99,
-                "max_ratio_w": 1,
-                "keep_dim": True
-            },
-        ]
-    }
-
-
-def aug_config(proba_use_da, p):
-    return {
-        "order": "random",
-        "proba": proba_use_da,
-        "augmentations": [
-            {
-                "type": "dpi",
-                "proba": p,
-                "min_factor": 0.75,
-                "max_factor": 1,
-                "preserve_ratio": True,
-            },
-            {
-                "type": "perspective",
-                "proba": p,
-                "min_factor": 0,
-                "max_factor": 0.4,
-            },
-            {
-                "type": "elastic_distortion",
-                "proba": p,
-                "min_alpha": 0.5,
-                "max_alpha": 1,
-                "min_sigma": 1,
-                "max_sigma": 10,
-                "min_kernel_size": 3,
-                "max_kernel_size": 9,
-            },
-            {
-                "type": "dilation_erosion",
-                "proba": p,
-                "min_kernel": 1,
-                "max_kernel": 3,
-                "iterations": 1,
-            },
-            {
-                "type": "color_jittering",
-                "proba": p,
-                "factor_hue": 0.2,
-                "factor_brightness": 0.4,
-                "factor_contrast": 0.4,
-                "factor_saturation": 0.4,
-            },
-            {
-                "type": "gaussian_blur",
-                "proba": p,
-                "min_kernel": 3,
-                "max_kernel": 5,
-                "min_sigma": 3,
-                "max_sigma": 5,
-            },
-            {
-                "type": "gaussian_noise",
-                "proba": p,
-                "std": 0.5,
-            },
-            {
-                "type": "sharpen",
-                "proba": p,
-                "min_alpha": 0,
-                "max_alpha": 1,
-                "min_strength": 0,
-                "max_strength": 1,
-            },
-        ]
-    }
diff --git a/basic/utils.py b/basic/utils.py
deleted file mode 100644
index ac50e57a..00000000
--- a/basic/utils.py
+++ /dev/null
@@ -1,179 +0,0 @@
-
-
-import numpy as np
-import torch
-from torch.distributions.uniform import Uniform
-import cv2
-
-
-def randint(low, high):
-    """
-    call torch.randint to preserve random among dataloader workers
-    """
-    return int(torch.randint(low, high, (1, )))
-
-
-def rand():
-    """
-    call torch.rand to preserve random among dataloader workers
-    """
-    return float(torch.rand((1, )))
-
-
-def rand_uniform(low, high):
-    """
-    call torch uniform to preserve random among dataloader workers
-    """
-    return float(Uniform(low, high).sample())
-
-
-def pad_sequences_1D(data, padding_value):
-    """
-    Pad data with padding_value to get same length
-    """
-    x_lengths = [len(x) for x in data]
-    longest_x = max(x_lengths)
-    padded_data = np.ones((len(data), longest_x)).astype(np.int32) * padding_value
-    for i, x_len in enumerate(x_lengths):
-        padded_data[i, :x_len] = data[i][:x_len]
-    return padded_data
-
-
-def resize_max(img, max_width=None, max_height=None):
-    if max_width is not None and img.shape[1] > max_width:
-        ratio = max_width / img.shape[1]
-        new_h = int(np.floor(ratio * img.shape[0]))
-        new_w = int(np.floor(ratio * img.shape[1]))
-        img = cv2.resize(img, (new_w, new_h), interpolation=cv2.INTER_LINEAR)
-    if max_height is not None and img.shape[0] > max_height:
-        ratio = max_height / img.shape[0]
-        new_h = int(np.floor(ratio * img.shape[0]))
-        new_w = int(np.floor(ratio * img.shape[1]))
-        img = cv2.resize(img, (new_w, new_h), interpolation=cv2.INTER_LINEAR)
-    return img
-
-
-def pad_images(data, padding_value, padding_mode="br"):
-    """
-    data: list of numpy array
-    mode: "br"/"tl"/"random" (bottom-right, top-left, random)
-    """
-    x_lengths = [x.shape[0] for x in data]
-    y_lengths = [x.shape[1] for x in data]
-    longest_x = max(x_lengths)
-    longest_y = max(y_lengths)
-    padded_data = np.ones((len(data), longest_x, longest_y, data[0].shape[2])) * padding_value
-    for i, xy_len in enumerate(zip(x_lengths, y_lengths)):
-        x_len, y_len = xy_len
-        if padding_mode == "br":
-            padded_data[i, :x_len, :y_len, ...] = data[i]
-        elif padding_mode == "tl":
-            padded_data[i, -x_len:, -y_len:, ...] = data[i]
-        elif padding_mode == "random":
-            xmax = longest_x - x_len
-            ymax = longest_y - y_len
-            xi = randint(0, xmax) if xmax >= 1 else 0
-            yi = randint(0, ymax) if ymax >= 1 else 0
-            padded_data[i, xi:xi+x_len, yi:yi+y_len, ...] = data[i]
-        else:
-            raise NotImplementedError("Undefined padding mode: {}".format(padding_mode))
-    return padded_data
-
-
-def pad_image(image, padding_value, new_height=None, new_width=None, pad_width=None, pad_height=None, padding_mode="br", return_position=False):
-    """
-    data: list of numpy array
-    mode: "br"/"tl"/"random" (bottom-right, top-left, random)
-    """
-    if pad_width is not None and new_width is not None:
-        raise NotImplementedError("pad_with and new_width are not compatible")
-    if pad_height is not None and new_height is not None:
-        raise NotImplementedError("pad_height and new_height are not compatible")
-
-    h, w, c = image.shape
-    pad_width = pad_width if pad_width is not None else max(0, new_width - w) if new_width is not None else 0
-    pad_height = pad_height if pad_height is not None else max(0, new_height - h) if new_height is not None else 0
-
-    if not (pad_width == 0 and pad_height == 0):
-        padded_image = np.ones((h+pad_height, w+pad_width, c)) * padding_value
-        if padding_mode == "br":
-            hi, wi = 0, 0
-        elif padding_mode == "tl":
-            hi, wi = pad_height, pad_width
-        elif padding_mode == "random":
-            hi = randint(0, pad_height) if pad_height >= 1 else 0
-            wi = randint(0, pad_width) if pad_width >= 1 else 0
-        else:
-            raise NotImplementedError("Undefined padding mode: {}".format(padding_mode))
-        padded_image[hi:hi + h, wi:wi + w, ...] = image
-        output = padded_image
-    else:
-        hi, wi = 0, 0
-        output = image
-
-    if return_position:
-        return output, [[hi, hi+h], [wi, wi+w]]
-    return output
-
-
-def pad_image_width_right(img, new_width, padding_value):
-    """
-    Pad img to right side with padding value to reach new_width as width
-    """
-    h, w, c = img.shape
-    pad_width = max((new_width - w), 0)
-    pad_right = np.ones((h, pad_width, c), dtype=img.dtype) * padding_value
-    img = np.concatenate([img, pad_right], axis=1)
-    return img
-
-
-def pad_image_width_left(img, new_width, padding_value):
-    """
-    Pad img to left side with padding value to reach new_width as width
-    """
-    h, w, c = img.shape
-    pad_width = max((new_width - w), 0)
-    pad_left = np.ones((h, pad_width, c), dtype=img.dtype) * padding_value
-    img = np.concatenate([pad_left, img], axis=1)
-    return img
-
-
-def pad_image_width_random(img, new_width, padding_value, max_pad_left_ratio=1):
-    """
-    Randomly pad img to left and right sides with padding value to reach new_width as width
-    """
-    h, w, c = img.shape
-    pad_width = max((new_width - w), 0)
-    max_pad_left = int(max_pad_left_ratio*pad_width)
-    pad_left = randint(0, min(pad_width, max_pad_left)) if pad_width != 0 and max_pad_left > 0 else 0
-    pad_right = pad_width - pad_left
-    pad_left = np.ones((h, pad_left, c), dtype=img.dtype) * padding_value
-    pad_right = np.ones((h, pad_right, c), dtype=img.dtype) * padding_value
-    img = np.concatenate([pad_left, img, pad_right], axis=1)
-    return img
-
-
-def pad_image_height_random(img, new_height, padding_value, max_pad_top_ratio=1):
-    """
-    Randomly pad img top and bottom sides with padding value to reach new_width as width
-    """
-    h, w, c = img.shape
-    pad_height = max((new_height - h), 0)
-    max_pad_top = int(max_pad_top_ratio*pad_height)
-    pad_top = randint(0, min(pad_height, max_pad_top)) if pad_height != 0 and max_pad_top > 0 else 0
-    pad_bottom = pad_height - pad_top
-    pad_top = np.ones((pad_top, w, c), dtype=img.dtype) * padding_value
-    pad_bottom = np.ones((pad_bottom, w, c), dtype=img.dtype) * padding_value
-    img = np.concatenate([pad_top, img, pad_bottom], axis=0)
-    return img
-
-
-def pad_image_height_bottom(img, new_height, padding_value):
-    """
-    Pad img to bottom side with padding value to reach new_height as height
-    """
-    h, w, c = img.shape
-    pad_height = max((new_height - h), 0)
-    pad_bottom = np.ones((pad_height, w, c)) * padding_value
-    img = np.concatenate([img, pad_bottom], axis=0)
-    return img
diff --git a/prediction-requirements.txt b/prediction-requirements.txt
index 1fe32d37..86bfaeb8 100644
--- a/prediction-requirements.txt
+++ b/prediction-requirements.txt
@@ -1,4 +1,8 @@
-numpy==1.22.3
-opencv-python==4.5.5.64
-PyYAML==6.0
-torch==1.11.0
+arkindex-client==1.0.11
+editdistance==0.6.0
+fontTools==4.29.1
+imageio==2.16.0
+networkx==2.6.3
+tensorboard==0.2.1
+torchvision==0.12.0
+tqdm==4.62.3
diff --git a/requirements.txt b/requirements.txt
index 06c48356..1fe32d37 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,81 +1,4 @@
-absl-py==1.0.0
-backports.cached-property==1.0.1
-cachetools==5.0.0
-certifi==2021.10.8
-charset-normalizer==2.0.12
-click==8.0.4
-click-default-group==1.2.2
-cloup==0.7.1
-colorama==0.4.4
-colour==0.1.5
-commonmark==0.9.1
-cycler==0.11.0
-decorator==5.1.1
-EasyProcess==1.1
-editdistance==0.6.0
-entrypoint2==1.0
-fonttools==4.29.1
-glcontext==2.3.4
-google-auth==2.6.0
-google-auth-oauthlib==0.4.6
-grpcio==1.44.0
-idna==3.3
-imageio==2.16.0
-importlib-metadata==4.11.1
-isosurfaces==0.1.0
-joblib==1.1.0
-kiwisolver==1.3.2
-manim==0.15.0
-manimlib==0.2.0
-ManimPango==0.4.0.post2
-mapbox-earcut==0.12.11
-Markdown==3.3.6
-masked-norm==0.0.0
-matplotlib==3.5.1
-moderngl==5.6.4
-moderngl-window==2.4.1
-multipledispatch==0.6.0
-networkx==2.6.3
-numpy==1.22.2
-oauthlib==3.2.0
-opencv-python==4.5.5.62
-packaging==21.3
-Pillow==9.0.1
-pkg_resources==0.0.0
-progressbar==2.5
-protobuf==3.19.4
-pyasn1==0.4.8
-pyasn1-modules==0.2.8
-pycairo==1.20.1
-pydub==0.25.1
-pyglet==1.5.21
-Pygments==2.11.2
-pyparsing==3.0.7
-pyrr==0.10.3
-python-dateutil==2.8.2
-pyunpack==0.2.2
-PyWavelets==1.2.0
-requests==2.27.1
-requests-oauthlib==1.3.1
-rich==11.2.0
-rsa==4.8
-scikit-image==0.19.2
-scikit-learn==1.0.2
-scipy==1.8.0
-screeninfo==0.8
-six==1.16.0
-skia-pathops==0.7.2
-srt==3.5.1
-tensorboard==2.8.0
-tensorboard-data-server==0.6.1
-tensorboard-plugin-wit==1.8.1
-threadpoolctl==3.1.0
-tifffile==2022.2.9
-torch==1.8.1
-torchvision==0.9.1
-tqdm==4.62.3
-typing_extensions==4.1.1
-urllib3==1.26.8
-watchdog==2.1.6
-Werkzeug==2.0.3
-zipp==3.7.0
+numpy==1.22.3
+opencv-python==4.5.5.64
+PyYAML==6.0
+torch==1.11.0
diff --git a/setup.py b/setup.py
index bb764858..a0002964 100755
--- a/setup.py
+++ b/setup.py
@@ -6,8 +6,8 @@ from pathlib import Path
 from setuptools import find_packages, setup
 
 
-def parse_requirements():
-    path = Path(__file__).parent.resolve() / "prediction-requirements.txt"
+def parse_requirements(filename):
+    path = Path(__file__).parent.resolve() / filename
     assert path.exists(), f"Missing requirements: {path}"
     return list(map(str.strip, path.read_text().splitlines()))
 
@@ -21,6 +21,12 @@ setup(
     author="Teklia",
     author_email="contact@teklia.com",
     url="https://gitlab.com/teklia/dan",
-    install_requires=parse_requirements(),
+    install_requires=parse_requirements("requirements.txt"),
     packages=find_packages(),
+    entry_points={
+        "console_scripts": [
+            "teklia-dan=dan.cli:main",
+        ]
+    },
+    extras_require={"predict": parse_requirements("prediction-requirements.txt")},
 )
diff --git a/visual.png b/visual.png
deleted file mode 100644
index e228e7924cb2760dc61636651b525ef5359408c5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 134135
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
a_T^Qa=cNaU{##!p#G$IFr2u+w74|=%6YoF(

diff --git a/visual_slanted_lines.png b/visual_slanted_lines.png
deleted file mode 100644
index 478af3ac1eb40316bbb1f0e7400f592b0d31ec70..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 213318
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%0AokjbT0)@mm8(9SVfd5aCWuCzw#6gK%or
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%0Dfr9r<)k8JJc;8Dk_m5>&EaN{oOab
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

-- 
GitLab