Детекторы
Модели детекции текста.
- class manuscript.detectors.EAST(weights=None, device=None, force_download=False, *, target_size=1280, expand_ratio_w=1.4, expand_ratio_h=1.5, expand_power=0.6, score_thresh=0.6, iou_threshold=0.05, iou_threshold_standard=0.05, score_geo_scale=0.25, quantization=2, axis_aligned_output=True, remove_area_anomalies=False, anomaly_sigma_threshold=5.0, anomaly_min_box_count=30, use_tta=False, tta_iou_thresh=0.1, **kwargs)[исходный код]
Базовые классы:
BaseDetectorИнициализация текстового детектора EAST с использованием ONNX Runtime.
- Параметры:
weights (str or Path, optional) – Путь или идентификатор для весов модели ONNX. Поддерживает: локальный путь, HTTP/HTTPS URL, GitHub release, Google Drive, имя пресета (
"east_50_g1"),None— автозагрузка пресета по умолчанию (east_50_g1)device (str, optional) – Устройство вычислений:
"cuda","coreml"или"cpu". Если None, автоматически выбирается CPU. Для ускорения GPU/CoreML: - CUDA (NVIDIA):pip install onnxruntime-gpu- CoreML (Apple Silicon M1/M2/M3):pip install onnxruntime-siliconПо умолчаниюNone(CPU).target_size (int, optional) – Размер входного изображения для инференса. Изображения приводятся к
(target_size, target_size). Значение по умолчанию — 1280.expand_ratio_w (float, optional) – Коэффициент горизонтального расширения, применяемый к боксам после NMS. По умолчанию 0.7.
expand_ratio_h (float, optional) – Коэффициент вертикального расширения, применяемый к боксам после NMS. По умолчанию 0.7.
expand_power (float, optional) – Степень нелинейного расширения боксов. Определяет, как масштабируется расширение в зависимости от размера бокса. - 1.0 = линейно (малые и большие боксы расширяются одинаково) - <1.0 = малые боксы расширяются сильнее (например, 0.5, рекомендуется для детекции символов) - >1.0 = большие боксы расширяются сильнее Значение по умолчанию — 0.5.
score_thresh (float, optional) – Порог уверенности для отбора кандидатов перед NMS. Значение по умолчанию — 0.7.
iou_threshold (float, optional) – Порог IoU для фазы объединения locality-aware NMS. По умолчанию 0.2.
iou_threshold_standard (float, optional) – Порог IoU для стандартного NMS после locality-aware объединения. Если None, используется значение iou_threshold. По умолчанию None.
score_geo_scale (float, optional) – Коэффициент масштабирования при декодировании карт геометрии/оценок. По умолчанию 0.25.
quantization (int, optional) – Разрешение квантования координат точек при декодировании. По умолчанию 2.
axis_aligned_output (bool, optional) – Если True, возвращаются осево-ориентированные прямоугольники вместо исходных четырёхугольников. По умолчанию True.
remove_area_anomalies (bool, optional) – Если True, удаляет четырёхугольники с аномально большой площадью относительно распределения. По умолчанию False.
anomaly_sigma_threshold (float, optional) – Порог сигмы для фильтрации аномальных площадей. По умолчанию 5.0.
anomaly_min_box_count (int, optional) – Минимальное количество боксов перед применением фильтрации аномалий. По умолчанию 30.
use_tta (bool, optional) – Включает аугментацию во время инференса (TTA). Когда она активна, инференс выполняется как на исходном, так и на горизонтально отражённом изображении, после чего результаты объединяются. Это может улучшить детекцию частично видимого текста или текста у краёв изображения. По умолчанию False.
tta_iou_thresh (float, optional) – Порог IoU для объединения боксов с исходного и отражённого изображения при TTA. Боксы с IoU > threshold считаются совпавшими и объединяются. По умолчанию 0.1.
force_download (bool)
Заметки
Класс предоставляет два основных публичных метода:
predict— выполняет инференс на одном изображении и возвращает детекции.train— высокоуровневая точка входа для обучения модели EAST на пользовательских датасетах.
Детектор использует ONNX Runtime для быстрого инференса на CPU и GPU. Для ускорения на GPU установите:
pip install onnxruntime-gpuМетоды
__call__(*args, **kwargs)Вызов объекта как функции.
export(weights_path, output_path[, ...])Экспорт модели EAST из PyTorch в формат ONNX.
predict(img_or_path)Запустить инференс EAST и вернуть обнаруженную структуру страницы.
runtime_providers()Получение провайдеров выполнения ONNX Runtime в зависимости от устройства.
train(train_images, train_anns, val_images, ...)Обучение модели EAST на пользовательских датасетах.
- __init__(weights=None, device=None, force_download=False, *, target_size=1280, expand_ratio_w=1.4, expand_ratio_h=1.5, expand_power=0.6, score_thresh=0.6, iou_threshold=0.05, iou_threshold_standard=0.05, score_geo_scale=0.25, quantization=2, axis_aligned_output=True, remove_area_anomalies=False, anomaly_sigma_threshold=5.0, anomaly_min_box_count=30, use_tta=False, tta_iou_thresh=0.1, **kwargs)[исходный код]
- Параметры:
weights (str | Path | None)
device (str | None)
force_download (bool)
target_size (int)
expand_ratio_w (float)
expand_ratio_h (float)
expand_power (float)
score_thresh (float)
iou_threshold (float)
iou_threshold_standard (float | None)
score_geo_scale (float)
quantization (int)
axis_aligned_output (bool)
remove_area_anomalies (bool)
anomaly_sigma_threshold (float)
anomaly_min_box_count (int)
use_tta (bool)
tta_iou_thresh (float)
-
default_weights_name:
Optional[str] = 'east_50_g1'
- static export(weights_path, output_path, backbone_name=None, input_size=1280, opset_version=14, simplify=True)[исходный код]
Экспорт модели EAST из PyTorch в формат ONNX.
Этот метод конвертирует обученную модель EAST из PyTorch в формат ONNX, который может использоваться для более быстрого инференса с ONNX Runtime. Экспортированную модель можно загрузить с помощью
EAST(weights_path="model.onnx", use_onnx=True).- Параметры:
weights_path (str or Path) – Путь к файлу весов модели PyTorch (.pth).
output_path (str or Path) – Путь, по которому будет сохранена модель ONNX (.onnx).
backbone_name ({"resnet50", "resnet101"}, optional) – Архитектура backbone модели. Если None, будет автоматически определена из чекпоинта. Должна совпадать с архитектурой, использованной при обучении. По умолчанию None (автоопределение).
input_size (int, optional) – Размер входного изображения (высота и ширина). Модель принимает изображения формы
(batch, 3, input_size, input_size). По умолчанию 1280.opset_version (int, optional) – Версия opset ONNX для экспорта. По умолчанию 14.
simplify (bool, optional) – Если True, применяется упрощение графа ONNX с помощью onnx-simplifier для оптимизации модели. Требуется пакет
onnx-simplifier. По умолчанию True.
- Результат:
Модель ONNX сохраняется в
output_path.- Тип результата:
None
- Исключение:
ImportError – Если необходимые пакеты (torch, onnx) не установлены.
FileNotFoundError – Если
weights_pathне существует.ValueError – Если backbone_name не соответствует архитектуре чекпоинта.
Заметки
Экспортированная модель ONNX имеет два выхода:
score_map: карта уверенности текста формы(batch, 1, H, W)geo_map: карта геометрии формы(batch, 8, H, W)
Модель поддерживает динамический размер батча и размеры изображения через настройку динамических осей.
Автоматическое определение backbone:
Метод автоматически определяет архитектуру backbone из чекпоинта, анализируя количество параметров в layer4. Это предотвращает несоответствия между чекпоинтом и архитектурой, которые могли бы привести к некорректному экспорту.
Примеры
Экспорт с автоматическим определением backbone:
>>> from manuscript.detectors import EAST >>> EAST.export( ... weights_path="east_resnet50.pth", ... output_path="east_model.onnx" ... ) Auto-detected backbone: resnet50 Exporting to ONNX (opset 14)... [OK] ONNX model saved to: east_model.onnx
Экспорт с явным указанием backbone:
>>> EAST.export( ... weights_path="custom_weights.pth", ... output_path="custom_model.onnx", ... backbone_name="resnet101", ... input_size=1024, ... simplify=False ... )
Использование экспортированной модели для инференса:
>>> detector = EAST( ... weights_path="east_model.onnx", ... use_onnx=True, ... device="cuda" ... ) >>> result = detector.predict("image.jpg")
См. также
EAST.__init__Инициализация детектора EAST с поддержкой ONNX с использованием
use_onnx=True.
- predict(img_or_path)[исходный код]
Запустить инференс EAST и вернуть обнаруженную структуру страницы.
- Параметры:
img_or_path (str or pathlib.Path or numpy.ndarray) – Путь к файлу изображения или RGB-изображение в виде массива NumPy формата
uint8с формой(H, W, 3).- Результат:
Разобранный результат детекции в виде объекта Page, содержащего один Block с одной Line из объектов TextSpan. Каждый TextSpan содержит координаты полигона, оценку уверенности и последовательный индекс
order.- Тип результата:
Заметки
Метод выполняет: (1) загрузку изображения, (2) изменение размера и нормализацию, (3) инференс модели, (4) декодирование четырёхугольников, (5) NMS, (6) расширение боксов, (7) масштабирование координат обратно к исходному размеру.
Аугментация во время инференса (TTA):
Если при инициализации задано
use_tta=True, метод выполняет инференс как на исходном, так и на горизонтально отражённом изображении, а затем объединяет результаты. Боксы из обоих представлений сопоставляются по IoU и объединяются через объединение координат с усреднением оценок. Это может улучшить детекцию текста у краёв изображения или частично видимого текста.Для визуализации используйте внешнюю утилиту
visualize_page:>>> from manuscript.utils import visualize_page >>> page = model.predict(img_path) >>> vis_img = visualize_page(img, page)
Примеры
Выполнить инференс и получить структурированный результат:
>>> from manuscript.detectors import EAST >>> model = EAST() >>> img_path = r"example/ocr_example_image.jpg" >>> page = model.predict(img_path) >>> # Access first line's first text span >>> first_text_span = page.blocks[0].lines[0].text_spans[0] >>> print(f"Confidence: {first_text_span.detection_confidence}")
Визуализировать результаты отдельно:
>>> from manuscript.utils import visualize_page, read_image >>> page = model.predict(img_path) >>> img = read_image(img_path) >>> vis_img = visualize_page(img, page) >>> vis_img.show()
-
pretrained_registry:
Dict[str,str] = {'east_50_g1': 'github://konstantinkozhin/manuscript-ocr/v0.1.0/east_50_g1.onnx'}
- static train(train_images, train_anns, val_images, val_anns, *, experiment_root='./experiments', model_name='resnet_quad', backbone_name='resnet50', pretrained_backbone=True, freeze_first=False, target_size=1024, score_geo_scale=None, score_map_shrink_ratio=0.3, epochs=500, batch_size=3, accumulation_steps=1, lr=0.0001, lr_scheduler='cosine_restart', lr_scheduler_params=None, augmentation_config=None, grad_clip=5.0, early_stop=100, use_sam=False, sam_type='asam', use_lookahead=False, use_ema=False, use_multiscale=True, use_ohem=False, ohem_ratio=0.5, use_focal_geo=True, focal_gamma=2.0, resume_from=None, val_interval=1, num_workers=0, log_collage=True, device=None)[исходный код]
Обучение модели EAST на пользовательских датасетах.
- Параметры:
train_images (str, Path or sequence of paths) – Путь(и) к каталогам с обучающими изображениями.
train_anns (str, Path or sequence of paths) – Путь(и) к JSON-файлам аннотаций в формате COCO, соответствующим
train_images.val_images (str, Path or sequence of paths) – Путь(и) к каталогам с валидационными изображениями.
val_anns (str, Path or sequence of paths) – Путь(и) к JSON-файлам аннотаций в формате COCO, соответствующим
val_images.experiment_root (str, optional) – Базовый каталог, в котором будут создаваться папки экспериментов. По умолчанию
"./experiments".model_name (str, optional) – Имя папки внутри
experiment_rootдля логов и чекпоинтов. По умолчанию"resnet_quad".backbone_name ({"resnet50", "resnet101"}, optional) – Используемая архитектура backbone. Варианты: -
"resnet50"— ResNet-50 (быстрее, меньше параметров) -"resnet101"— ResNet-101 (медленнее, больше ёмкость) По умолчанию"resnet50".pretrained_backbone (bool, optional) – Использовать веса backbone, предобученные на ImageNet. По умолчанию
True.freeze_first (bool, optional) – Заморозить нижние слои backbone. По умолчанию
True.target_size (int, optional) – Изменять размер короткой стороны изображений до этого значения. По умолчанию
1024.score_geo_scale (float, optional) – Множитель для восстановления исходных координат из карт оценок/геометрии. Если None, автоматически берётся из модели. По умолчанию
None.score_map_shrink_ratio (float, optional) – Коэффициент сжатия для карты оценок. По умолчанию
0.3.epochs (int, optional) – Количество эпох обучения. По умолчанию
500.batch_size (int, optional) – Размер батча на GPU. По умолчанию
3.accumulation_steps (int, optional) – Количество шагов накопления градиента. Эффективный размер батча будет
batch_size * accumulation_steps. Используйте это для обучения с большими эффективными батчами при ограниченной памяти GPU. Например: -batch_size=2, accumulation_steps=4→ эффективный размер батча = 8 -batch_size=1, accumulation_steps=8→ эффективный размер батча = 8 По умолчанию1(без накопления).lr (float, optional) – Скорость обучения. По умолчанию
1e-3.lr_scheduler ({"cosine_restart", "cosine", "linear", "step", "exponential", "plateau", "none"}, optional) – Тип планировщика скорости обучения. По умолчанию
"cosine_restart".lr_scheduler_params (dict, optional) – Дополнительные параметры планировщика (зависят от его типа). Часто используемые ключи: -
cosine_restart:t0,t_mult,eta_min-cosine:t_max,eta_min-linear:final_factor-step:step_size,gamma-exponential:gamma-plateau:factor,patience,min_lraugmentation_config (dict, optional) – Полная конфигурация аугментаций, передаваемая в
EASTDataset. Это предпочтительное место для всех настроек аугментации. Любые ключи здесь переопределяют соответствующие значения по умолчанию. Поддерживаются, в частности: -quad_sourceдля преобразования COCO-полигона в quad:"auto"сохраняет 4-точечные полигоны и для более длинных полигонов переходит к"min_area_rect","as_is"принимает только 4-точечные полигоны, а"min_area_rect"всегда строит прямоугольник минимальной площади -flip_prob,color_jitter-small_rotate_prob,small_rotate_deg-perspective_prob,perspective_scale-blur_prob,blur_ksize_range-noise_prob,noise_std,salt_pepper_prob-jpeg_prob,jpeg_quality_range-shading_prob,shading_strength-gamma_prob,gamma_range-downscale_prob,downscale_range-negative_probgrad_clip (float, optional) – Значение отсечения градиента (L2-норма). По умолчанию
5.0.early_stop (int, optional) – Терпение (число эпох без улучшений) для ранней остановки. По умолчанию
100.use_sam (bool, optional) – Включить оптимизатор SAM. По умолчанию
True.sam_type ({"sam", "asam"}, optional) – Используемый вариант SAM. По умолчанию
"asam".use_lookahead (bool, optional) – Обернуть оптимизатор в Lookahead. По умолчанию
True.use_ema (bool, optional) – Поддерживать EMA-версию весов модели. По умолчанию
False.use_multiscale (bool, optional) – Случайное мульти-масштабное обучение. По умолчанию
True.use_ohem (bool, optional) – Онлайн-отбор сложных примеров (OHEM). По умолчанию
True.ohem_ratio (float, optional) – Доля сложных негативных примеров для OHEM. По умолчанию
0.5.use_focal_geo (bool, optional) – Применять focal loss к геометрическим каналам. По умолчанию
True.focal_gamma (float, optional) – Параметр gamma для focal loss геометрии. По умолчанию
2.0.resume_from (str or Path, optional) – Возобновить обучение из предыдущего эксперимента или инициализировать его из локальных весов: a) каталог эксперимента, b) …/checkpoints/, c) прямой путь к чекпоинту с полным состоянием (last_state.pt). Если передан файл только с весами (например, best.pth), веса модели будут загружены, но обучение начнётся в текущем каталоге
experiment_root/model_name. По умолчаниюNone.val_interval (int, optional) – Запускать валидацию каждые N эпох. По умолчанию
1.num_workers (int, optional) – Количество рабочих процессов для загрузки данных. Установите 0 для однопроцессной загрузки (безопаснее на Windows). По умолчанию
0.log_collage (bool, optional) – Нужно ли генерировать и логировать коллажи валидационных изображений в TensorBoard. Отключите, чтобы сэкономить память на GPU с ограниченным объёмом VRAM. По умолчанию
True.device (torch.device, optional) – Устройство CUDA или CPU. Автоматически выбирается, если None.
- Результат:
Лучшие веса модели (EMA, если включено, иначе базовая модель).
- Тип результата:
torch.nn.Module
Примеры
Обучение на двух датасетах с валидацией:
>>> from manuscript.detectors import EAST >>> >>> train_images = [ ... "/data/archive/train_images", ... "/data/ddi/train_images" ... ] >>> train_anns = [ ... "/data/archive/train.json", ... "/data/ddi/train.json" ... ] >>> val_images = [ ... "/data/archive/test_images", ... "/data/ddi/test_images" ... ] >>> val_anns = [ ... "/data/archive/test.json", ... "/data/ddi/test.json" ... ] >>> >>> best_model = EAST.train( ... train_images=train_images, ... train_anns=train_anns, ... val_images=val_images, ... val_anns=val_anns, ... backbone_name="resnet50", ... target_size=256, ... epochs=20, ... batch_size=4, ... use_sam=False, ... freeze_first=False, ... val_interval=3, ... ) >>> print("Best checkpoint loaded:", best_model)
Настройка аугментаций через
augmentation_config:>>> aug_cfg = { ... "quad_source": "auto", ... "flip_prob": 0.02, ... "color_jitter": (0.1, 0.1, 0.1, 0.05), ... "small_rotate_prob": 0.15, ... "small_rotate_deg": 1.5, ... "perspective_prob": 0.08, ... "perspective_scale": 0.015, ... "blur_prob": 0.1, ... "blur_ksize_range": (3, 5), ... "noise_prob": 0.1, ... "noise_std": 0.008, ... "salt_pepper_prob": 0.0005, ... "jpeg_prob": 0.1, ... "jpeg_quality_range": (75, 95), ... "shading_prob": 0.1, ... "shading_strength": 0.1, ... "gamma_prob": 0.2, ... "gamma_range": (0.95, 1.05), ... "downscale_prob": 0.1, ... "downscale_range": (0.7, 0.95), ... "negative_prob": 0.05, ... } >>> best_model = EAST.train( ... train_images=train_images, ... train_anns=train_anns, ... val_images=val_images, ... val_anns=val_anns, ... augmentation_config=aug_cfg, ... )
- class manuscript.detectors.YOLO(weights=None, config=None, device=None, force_download=False, *, score_thresh=0.1, class_ids=None, target_size=None, axis_aligned_output=True, containment_threshold=0.9, **kwargs)[исходный код]
Базовые классы:
BaseDetectorИнициализация текстового детектора YOLO с использованием ONNX Runtime.
- Параметры:
weights (str or Path, optional) – Путь или идентификатор для весов модели ONNX. Поддерживает: локальный путь, HTTP/HTTPS URL, GitHub release, Google Drive, имя пресета (
"yolo26s_obb_text_g1"или"yolo26x_obb_text_g1"),None— автозагрузка пресета по умолчанию (yolo26x_obb_text_g1). ONNX-модель может возвращать либо обычные детекции в форматеxyxy, score, class_idс формой[N, 6]/[1, N, 6], либо ориентированные детекции в форматеcx, cy, w, h, score, class_id, angleс формой[N, 7]/[1, N, 7].config (str or Path, optional) – Путь или идентификатор YAML-конфигурации модели. Поддерживаются те же URL-схемы, что и для
weights. ЕслиNone, предпринимается попытка найти YAML-файл рядом с весами или использовать конфиг пресета изconfig_registry.device (str, optional) – Устройство вычислений:
"cuda","coreml"или"cpu". Если None, автоматически выбирается CPU. Для ускорения GPU/CoreML: - CUDA (NVIDIA):pip install onnxruntime-gpu- CoreML (Apple Silicon M1/M2/M3):pip install onnxruntime-siliconПо умолчаниюNone(CPU).score_thresh (float, optional) – Порог уверенности, применяемый к выходам модели после ONNX-инференса и до дополнительного этапа очистки по вложенности. По умолчанию
0.1.class_ids (sequence of int or None, optional) – Необязательный белый список class ID, которые нужно сохранить. Если
None, сохраняются все классы. По умолчаниюNone.target_size (int or None, optional) – Квадратный размер инференса, используемый при letterbox-предобработке. Перед ONNX-инференсом изображения приводятся к размеру
(target_size, target_size). ЕслиNone, детектор пытается прочитатьimgszиз YAML-конфига рядом с весами или из конфигурации пресета. Для неизвестных или пользовательских весов без YAML используется1280.axis_aligned_output (bool, optional) – Если
True(по умолчанию), OBB-детекции преобразуются в обычные осеориентированные прямоугольники. ЕслиFalse, OBB-детекции возвращаются как повёрнутые полигоны черезpage/polygonsи как строкиcx, cy, w, h, score, class_id, angleвboxes. Для моделей без OBB этот флаг не влияет на результат.containment_threshold (float or None, optional) – Удаляет меньший бокс, если как минимум такая доля его площади покрыта большим боксом. Например,
0.9удаляет боксы, которые покрыты на90%и более. УстановитеNone, чтобы отключить эту дополнительную очистку. По умолчанию0.9.force_download (bool)
Заметки
Класс предоставляет один основной публичный метод:
predict— выполняет инференс на одном изображении и возвращает детекции.
Доступные пресеты:
"yolo26s_obb_text_g1"- OBB-детектор текста YOLO26-S"yolo26x_obb_text_g1"- OBB-детектор текста YOLO26-X
Методы
__call__(*args, **kwargs)Вызов объекта как функции.
predict(img_or_path)Запустить YOLO ONNX-инференс на одном изображении и вернуть обнаруженную структуру страницы.
runtime_providers()Получение провайдеров выполнения ONNX Runtime в зависимости от устройства.
train(*args, **kwargs)export
- __init__(weights=None, config=None, device=None, force_download=False, *, score_thresh=0.1, class_ids=None, target_size=None, axis_aligned_output=True, containment_threshold=0.9, **kwargs)[исходный код]
- Параметры:
weights (str | Path | None)
config (str | Path | None)
device (str | None)
force_download (bool)
score_thresh (float)
class_ids (Sequence[int] | None)
target_size (int | None)
axis_aligned_output (bool)
containment_threshold (float | None)
-
config_registry:
Dict[str,str] = {'yolo26s_obb_text_g1': 'https://github.com/konstantinkozhin/manuscript-ocr/releases/download/v0.1.0/yolo26s_obb_text_g1.raw.yaml', 'yolo26x_obb_text_g1': 'https://github.com/konstantinkozhin/manuscript-ocr/releases/download/v0.1.0/yolo26x_obb_text_g1.raw.yaml'}
- default_target_size = 1280
-
default_weights_name:
Optional[str] = 'yolo26x_obb_text_g1'
- predict(img_or_path)[исходный код]
Запустить YOLO ONNX-инференс на одном изображении и вернуть обнаруженную структуру страницы.
- Параметры:
img_or_path (str or pathlib.Path or numpy.ndarray) – Путь к файлу изображения или RGB-изображение в виде массива NumPy формата
uint8с формой(H, W, 3).- Результат:
Разобранный результат детекции в виде объекта Page, содержащего один Block с одной Line из объектов TextSpan.
- Тип результата:
Примеры
Выполнить инференс и получить структурированный результат:
>>> from manuscript.detectors import YOLO >>> model = YOLO(weights="yolo26x_obb_text_g1") >>> page = model.predict("page.jpg") >>> first_text_span = page.blocks[0].lines[0].text_spans[0] >>> print(first_text_span.detection_confidence)
-
pretrained_registry:
Dict[str,str] = {'yolo26s_obb_text_g1': 'https://github.com/konstantinkozhin/manuscript-ocr/releases/download/v0.1.0/yolo26s_obb_text_g1.raw.onnx', 'yolo26x_obb_text_g1': 'https://github.com/konstantinkozhin/manuscript-ocr/releases/download/v0.1.0/yolo26x_obb_text_g1.raw.onnx'}
EAST: Training Notes
The EAST detector in manuscript-ocr is based on the architecture proposed in
EAST: An Efficient and Accurate Scene Text Detector
(Zhou et al., CVPR 2017). The training procedure has been significantly reworked
compared to the original: the loss weighting scheme, augmentation pipeline,
quadrilateral annotation handling, and support for mixed annotations have all
been modified. Pretrained weights were produced by the project authors.
Четырёхугольные области для обучения EAST
Обучение EAST ожидает цели в виде четырехугольников. При загрузке полигонов COCO segmentation используйте augmentation_config["quad_source"] в EAST.train(...), чтобы управлять тем, как полигоны преобразуются в 4-точечные обучающие квады:
"auto"сохраняет готовые 4-точечные полигоны как есть и используетminAreaRectтолько для полигонов с большим числом вершин."as_is"принимает только 4-точечные полигоны и пропускает полигоны с другим числом вершин."min_area_rect"всегда строит прямоугольник минимальной площади и соответствует старому пути преобразования.