Mateusz Mr贸z
Implement Magiv2Model with detection, OCR, and character association capabilities
cd77b9d
| 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 | |
| """ | |
| # Identyfikator typu modelu u偶ywany przez bibliotek臋 transformers | |
| 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 | |
| """ | |
| # Przechowywanie flag wy艂膮czaj膮cych poszczeg贸lne modu艂y | |
| self.disable_ocr: bool = disable_ocr | |
| self.disable_crop_embeddings: bool = disable_crop_embeddings | |
| self.disable_detections: bool = disable_detections | |
| # Przechowywanie dodatkowych argument贸w przekazanych do konstruktora | |
| self.kwargs: dict[str, Any] = kwargs | |
| # Inicjalizacja atrybut贸w konfiguracji modeli jako None | |
| # (mog膮 zosta膰 zdeserializowane poni偶ej je艣li parametry nie s膮 None) | |
| self.detection_model_config: Optional[PretrainedConfig] = None | |
| self.ocr_model_config: Optional[VisionEncoderDecoderConfig] = None | |
| self.crop_embedding_model_config: Optional[PretrainedConfig] = None | |
| # Deserializacja konfiguracji modelu detekcji ze s艂ownika do obiektu PretrainedConfig | |
| if detection_model_config is not None: | |
| self.detection_model_config = PretrainedConfig.from_dict( | |
| detection_model_config | |
| ) | |
| # Deserializacja konfiguracji modelu OCR ze s艂ownika do obiektu VisionEncoderDecoderConfig | |
| # OCR wykorzystuje architektur臋 encoder-decoder (vision encoder + text decoder) | |
| if ocr_model_config is not None: | |
| self.ocr_model_config = VisionEncoderDecoderConfig.from_dict( | |
| ocr_model_config | |
| ) | |
| # Deserializacja konfiguracji modelu embedowania ze s艂ownika do obiektu PretrainedConfig | |
| if crop_embedding_model_config is not None: | |
| self.crop_embedding_model_config = PretrainedConfig.from_dict( | |
| crop_embedding_model_config | |
| ) | |
| # Przechowywanie konfiguracji preprocessingu obrazu dla modu艂u detekcji | |
| # (np. docelowy rozmiar obrazu, parametry normalizacji, augmentacje) | |
| self.detection_image_preprocessing_config: Optional[dict[str, Any]] = ( | |
| detection_image_preprocessing_config | |
| ) | |
| # 艢cie偶ka do wytrenowanego procesora OCR (mo偶e by膰 lokalna lub z Hugging Face Hub) | |
| self.ocr_pretrained_processor_path: Optional[str] = ocr_pretrained_processor_path | |
| # Przechowywanie konfiguracji preprocessingu obrazu dla modu艂u embedowania | |
| # (np. docelowy rozmiar wyci臋膰, parametry normalizacji) | |
| self.crop_embedding_image_preprocessing_config: Optional[dict[str, Any]] = ( | |
| crop_embedding_image_preprocessing_config | |
| ) | |
| # Wywo艂anie konstruktora klasy bazowej PretrainedConfig z dodatkowymi kwargs | |
| super().__init__(**kwargs) | |