|
|
from transformers import PretrainedConfig, VisionEncoderDecoderConfig |
|
|
from typing import Any, Optional |
|
|
|
|
|
|
|
|
class Magiv2Config(PretrainedConfig): |
|
|
""" |
|
|
Klasa konfiguracyjna dla modelu Magiv2. |
|
|
|
|
|
Magiv2Config dziedziczy po PretrainedConfig z biblioteki transformers i definiuje |
|
|
kompletn膮 konfiguracj臋 dla modelu wizyjnego sk艂adaj膮cego si臋 z trzech g艂贸wnych komponent贸w: |
|
|
- Model detekcji obiekt贸w (detection) |
|
|
- Model OCR (rozpoznawanie tekstu) |
|
|
- Model embedowania wyci臋tych fragment贸w obrazu (crop embeddings) |
|
|
|
|
|
Attributes: |
|
|
model_type: Identyfikator typu modelu dla biblioteki transformers |
|
|
disable_ocr: Flaga wy艂膮czaj膮ca modu艂 OCR |
|
|
disable_crop_embeddings: Flaga wy艂膮czaj膮ca modu艂 embedowania wyci臋tych fragment贸w |
|
|
disable_detections: Flaga wy艂膮czaj膮ca modu艂 detekcji obiekt贸w |
|
|
detection_model_config: Konfiguracja modelu detekcji (po deserializacji) |
|
|
ocr_model_config: Konfiguracja modelu OCR (po deserializacji) |
|
|
crop_embedding_model_config: Konfiguracja modelu embedowania (po deserializacji) |
|
|
detection_image_preprocessing_config: Parametry przetwarzania obrazu dla detekcji |
|
|
ocr_pretrained_processor_path: 艢cie偶ka do wytrenowanego procesora OCR |
|
|
crop_embedding_image_preprocessing_config: Parametry przetwarzania obrazu dla embedowania |
|
|
""" |
|
|
|
|
|
|
|
|
model_type: str = "magiv2" |
|
|
|
|
|
def __init__( |
|
|
self, |
|
|
disable_ocr: bool = False, |
|
|
disable_crop_embeddings: bool = False, |
|
|
disable_detections: bool = False, |
|
|
detection_model_config: Optional[dict[str, Any]] = None, |
|
|
ocr_model_config: Optional[dict[str, Any]] = None, |
|
|
crop_embedding_model_config: Optional[dict[str, Any]] = None, |
|
|
detection_image_preprocessing_config: Optional[dict[str, Any]] = None, |
|
|
ocr_pretrained_processor_path: Optional[str] = None, |
|
|
crop_embedding_image_preprocessing_config: Optional[dict[str, Any]] = None, |
|
|
**kwargs: Any, |
|
|
) -> None: |
|
|
""" |
|
|
Inicjalizuje konfiguracj臋 modelu Magiv2. |
|
|
|
|
|
Konstruktor przyjmuje parametry kontroluj膮ce kt贸re modu艂y modelu s膮 aktywne, |
|
|
oraz konfiguracje dla poszczeg贸lnych komponent贸w. Konfiguracje przekazane jako |
|
|
s艂owniki s膮 deserializowane do odpowiednich obiekt贸w Config z transformers. |
|
|
|
|
|
Args: |
|
|
disable_ocr: Czy wy艂膮czy膰 modu艂 rozpoznawania tekstu (OCR). |
|
|
Domy艣lnie False - OCR jest aktywne. |
|
|
disable_crop_embeddings: Czy wy艂膮czy膰 modu艂 tworzenia embedding贸w dla wyci臋tych |
|
|
fragment贸w obrazu. Domy艣lnie False - embedowanie aktywne. |
|
|
disable_detections: Czy wy艂膮czy膰 modu艂 detekcji obiekt贸w na obrazie. |
|
|
Domy艣lnie False - detekcja aktywna. |
|
|
detection_model_config: S艂ownik z konfiguracj膮 modelu detekcji obiekt贸w. |
|
|
Je艣li podany, zostanie zdeserializowany do PretrainedConfig. |
|
|
ocr_model_config: S艂ownik z konfiguracj膮 modelu OCR (encoder-decoder). |
|
|
Je艣li podany, zostanie zdeserializowany do VisionEncoderDecoderConfig. |
|
|
crop_embedding_model_config: S艂ownik z konfiguracj膮 modelu embedowania wyci臋tych |
|
|
fragment贸w. Je艣li podany, zostanie zdeserializowany |
|
|
do PretrainedConfig. |
|
|
detection_image_preprocessing_config: S艂ownik z parametrami preprocessingu obrazu |
|
|
dla modu艂u detekcji (np. rozmiar, normalizacja). |
|
|
ocr_pretrained_processor_path: 艢cie偶ka do katalogu lub Hub ID z wytrenowanym |
|
|
procesorem obrazu dla modu艂u OCR. |
|
|
crop_embedding_image_preprocessing_config: S艂ownik z parametrami preprocessingu |
|
|
obrazu dla modu艂u embedowania. |
|
|
**kwargs: Dodatkowe argumenty przekazywane do klasy bazowej PretrainedConfig. |
|
|
|
|
|
Returns: |
|
|
None |
|
|
|
|
|
Note: |
|
|
- Konfiguracje modeli s膮 deserializowane z dict do obiekt贸w Config tylko wtedy, |
|
|
gdy zosta艂y przekazane (nie s膮 None) |
|
|
- Flagi disable_* pozwalaj膮 na selektywne wy艂膮czanie poszczeg贸lnych modu艂贸w |
|
|
- Wszystkie dodatkowe kwargs s膮 przekazywane do klasy bazowej PretrainedConfig |
|
|
""" |
|
|
|
|
|
self.disable_ocr: bool = disable_ocr |
|
|
self.disable_crop_embeddings: bool = disable_crop_embeddings |
|
|
self.disable_detections: bool = disable_detections |
|
|
|
|
|
|
|
|
self.kwargs: dict[str, Any] = kwargs |
|
|
|
|
|
|
|
|
|
|
|
self.detection_model_config: Optional[PretrainedConfig] = None |
|
|
self.ocr_model_config: Optional[VisionEncoderDecoderConfig] = None |
|
|
self.crop_embedding_model_config: Optional[PretrainedConfig] = None |
|
|
|
|
|
|
|
|
if detection_model_config is not None: |
|
|
self.detection_model_config = PretrainedConfig.from_dict( |
|
|
detection_model_config |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
if ocr_model_config is not None: |
|
|
self.ocr_model_config = VisionEncoderDecoderConfig.from_dict( |
|
|
ocr_model_config |
|
|
) |
|
|
|
|
|
|
|
|
if crop_embedding_model_config is not None: |
|
|
self.crop_embedding_model_config = PretrainedConfig.from_dict( |
|
|
crop_embedding_model_config |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
self.detection_image_preprocessing_config: Optional[dict[str, Any]] = ( |
|
|
detection_image_preprocessing_config |
|
|
) |
|
|
|
|
|
|
|
|
self.ocr_pretrained_processor_path: Optional[str] = ocr_pretrained_processor_path |
|
|
|
|
|
|
|
|
|
|
|
self.crop_embedding_image_preprocessing_config: Optional[dict[str, Any]] = ( |
|
|
crop_embedding_image_preprocessing_config |
|
|
) |
|
|
|
|
|
|
|
|
super().__init__(**kwargs) |
|
|
|