Pipeline и Stack
Pipeline
- class manuscript.Pipeline(detector=<default>, layout=<default>, recognizer=<default>, corrector=None, layout_after='detector', memory_policy='keep')[исходный код]
Базовые классы:
ModelCompositionOCR-пайплайн с настраиваемым порядком этапов.
Пайплайн по умолчанию:
detector -> layout -> recognizer.correctorнеобязателен и по умолчанию отключён.Инициализация OCR-пайплайна.
- Параметры:
detector (object, optional) – Экземпляр детектора с интерфейсом
predict(image) -> Page. Если не указан, используетсяYOLO(weights="yolo26x_obb_text_g1")по умолчанию. Детектор отключить нельзя.layout (object or None, optional) – Экземпляр компонента анализа структуры с интерфейсом
predict(page, image=None) -> Page. Если не указан, используетсяSimpleSorting()по умолчанию. ПередайтеNone, чтобы отключить этап анализа структуры.recognizer (object or None, optional) – Экземпляр распознавателя с интерфейсом
predict(page, image=None, ...) -> Page. Если не указан, используетсяTRBA(weights="trba_lite_g2")по умолчанию. ПередайтеNone, чтобы отключить этап распознавания.corrector (object or None, optional) – Экземпляр корректора с интерфейсом
predict(page, image=None) -> Page. По умолчаниюNone(отключён).layout_after ({"detector", "recognizer", "corrector"}, optional) – Этап, после которого выполняется анализ структуры. По умолчанию
"detector".memory_policy ({"keep", "sequential"}, optional) – По умолчанию сохраняет загруженные сессии моделей. «sequential» освобождает сессии после каждого вызова процессора, включая ошибки, и действует внутри вложенных Stack и ансамблей. Участникам нужен close(); вложенное параллельное выполнение несовместимо. Общие модели требуют внешней синхронизации между конвейерами и прямыми вызовами.
- predict(image, vis=False, profile=False)[исходный код]
Запустить пайплайн на одном изображении.
- get_text(page, format='plain', *, separators=None, separator_priorities=None)[исходный код]
Возвращает текст через метод Page.get_text.
- property last_timings: Dict[str, float]
Возвращает копию словаря со временем последнего вызова predict в секундах.
Ключи: detector, layout, recognizer, corrector, load_image, visualization и total. Присутствуют только выполненные этапы. Время этапа включает проверку дерева, снимки и отложенную инициализацию модели. Явная загрузка изображения в Pipeline учитывается отдельно и вычитается из времени этапов обработки Page. Загрузка внутри модели остаётся во времени её этапа. Общее время включает организацию вызовов и необязательную визуализацию. При ошибке время завершённых этапов сохраняется без записи total.
Stack
- class manuscript.Stack(stages, *, parallel=False, memory_policy='keep')[исходный код]
Базовые классы:
ModelCompositionОбъединить обработчики в одном этапе Pipeline или запускать их напрямую.
- Параметры:
stages (iterable of processors) – Список из одного или нескольких обработчиков с predict(image, …) или predict(page, image=None, …). Порядок списка определяет порядок запуска. Можно вкладывать Stack друг в друга.
parallel (bool, optional) – При True детекторы запускаются параллельно в потоках, а результаты объединяются в порядке списка. По умолчанию False. Режим доступен только для Stack из детекторов: обработчики Page зависят от результата предыдущего обработчика.
memory_policy ({"keep", "sequential"}, optional) – По умолчанию сохраняет сессии. «sequential» освобождает сессии каждого процессора после вызова, включая ошибки, и действует во вложенных композициях. Требует close() у каждого участника и запрещает parallel=True. Участники должны принадлежать одному вызывающему коду либо использовать внешнюю синхронизацию при совместном доступе.
Примеры
>>> detector = Stack([block_detector, word_detector]) >>> page = detector.predict(image) >>> recognizer = Stack([recognizer_a, recognizer_b]) >>> page = recognizer.predict(page, image=image)
См. также
manuscript.recognizers.MajorityVotingRecognizerВыбирает самый частый текстовый ответ целиком.
manuscript.recognizers.MedoidRecognizerВыбирает ответ с наименьшей суммой расстояний редактирования до остальных.
- predict(page=None, image=None, *, return_raw=False, return_masks=False, return_outputs=False, detector_result=None, **kwargs)[исходный код]
Принимает изображение, Page (при необходимости вместе с изображением) или именованные аргументы.
По умолчанию возвращает Page. Флаги raw/mask/output включают словарь с итоговым Page и результатами детекторов, сгруппированными по моделям. Обработчики Page всегда запускаются в режиме Page. Stack не кеширует результаты предсказаний.