--- license: mit datasets: - mssqpi/Arabic-OCR-Dataset language: - ar base_model: - microsoft/trocr-base-handwritten library_name: transformers --- # 🖋️ Qalam-Net V2: Advanced Arabic OCR
Hugging Face Model Python Version PyTorch Transformers

**Qalam-Net V2** (قلم-نت) is a high-performance Arabic Optical Character Recognition (OCR) system. Built on the **TrOCR** (Transformer-based OCR) architecture, it achieves superior accuracy by treats OCR as a sequence-to-sequence problem, mapping visual features directly to text tokens. --- ## 🏗️ Architecture Visualization The model utilizes a **Vision-Encoder-Decoder** framework, specifically optimized for the complexities of Arabic script (ligatures, cursive nature, and right-to-left orientation). ```mermaid graph TD A[Input Arabic Image] --> B[ViT Encoder] B -->|Visual Embeddings| C[Cross-Attention] D[Previous Tokens] --> E[RoBERTa Decoder] E --> C C --> F[Next Token Prediction] F -->|Generated Text| G[Final Arabic Transcription] subgraph "Encoder (Vision Transformer)" B end subgraph "Decoder (Language Model)" E end ``` --- ## 🚀 Key Features - **End-to-End Transformer**: No reliance on traditional CNN-RNN architectures or complex preprocessing (like line segmentation). - **Arabic Script Specialist**: Fine-tuned on the `mssqpi/Arabic-OCR-Dataset` for robust handling of various Arabic fonts and styles. - **State-of-the-Art Accuracy**: Leverages pre-trained vision and language weights from `microsoft/trocr-base-handwritten`. - **Flexible Deployment**: Supports CUDA, MPS (Apple Silicon), and CPU execution. --- ## 🧠 How It Works > [!IMPORTANT] > **Qalam-Net V2** differs from traditional OCR by eliminating the need for an external language model or a separate CTC (Connectionist Temporal Classification) layer. 1. **Visual Feature Extraction**: The encoder divides the input image into patches and processes them via a Vision Transformer (ViT). 2. **Contextual Decoding**: The decoder (RoBERTa-based) attends to both the visual features and the previously generated tokens to predict the next character or word. 3. **Arabic Optimization**: During fine-tuning, the tokenizer and embeddings were adapted to capture the nuances of Arabic UTF-8 encoding. --- ## 📊 Performance Metrics The model was fine-tuned for **1 epoch** on a high-quality selection of **5,000 samples**. | Metric | Value | |--------|-------| | Training Samples | 5,000 | | Optimizer | AdamW | | Learning Rate | 3e-5 | | Convergence (Loss) | 9.5 → 0.03 | > [!TIP] > Even with a single epoch, the model reached a training loss of **0.03**, indicating highly efficient transfer learning from the base TrOCR weights. --- ## 🖥️ Getting Started ### Installation ```bash pip install transformers datasets Pillow torch ``` ### Quick Inference Example
Click to expand the Python inference script ```python import torch from PIL import Image, ImageDraw, ImageFont from transformers import TrOCRProcessor, VisionEncoderDecoderModel MODEL_NAME = "Ali0044/Qalam_Net_V2" processor = TrOCRProcessor.from_pretrained(MODEL_NAME) model = VisionEncoderDecoderModel.from_pretrained(MODEL_NAME) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device) model.eval() def run_ocr(image): pixel_values = processor(image, return_tensors="pt").pixel_values.to(device) with torch.no_grad(): generated_ids = model.generate(pixel_values) return processor.batch_decode(generated_ids, skip_special_tokens=True)[0] image = Image.new('RGB', (200, 50), color = 'white') d = ImageDraw.Draw(image) try: font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 20) except IOError: font = ImageFont.load_default() d.text((10,10), "المتميزة", fill=(0,0,0), font=font) print(f"Predicted Transcription: {run_ocr(image)}") image.show() ```
--- ## 🛡️ Ethical Considerations & Limitations - **Language Scope**: Primarily optimized for Modern Standard Arabic (MSA). Performance on historical scripts or specific dialects may vary. - **Image Quality**: Performs best on clear, well-lit text snippets. Handwriting recognition is supported but may require higher resolution inputs. - **Privacy**: Ensure you have the rights to process any personal data contained within images when using this model in production. --- ## 🤝 Contributing & License Contributions are what make the open-source community an amazing place to learn, inspire, and create. - **License**: Distributed under the **Apache 2.0 License**. - **Contact**: Reach out via Github or Hugging Face at `Ali0044`. ---
Built with ❤️ Ali Khalid Ali Khalid