🚀 Qari-OCR-Arabic-0.2.2.1-VL-2B-Instruct モデル
このモデルは、アラビア語のOCRデータセットで微調整されたQwen2 VLベースのモデルで、高精度なアラビア語の光学文字認識を行うことができます。
🚀 クイックスタート
このモデルは、transformers
とqwen_vl_utils
ライブラリを使用してロードすることができます。以下のコマンドで必要なライブラリをインストールします。
!pip install transformers qwen_vl_utils accelerate>=0.26.0 PEFT -U
!pip install -U bitsandbytes
以下は、このモデルを使用する基本的なPythonコード例です。
from PIL import Image
from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
import torch
import os
from qwen_vl_utils import process_vision_info
model_name = "NAMAA-Space/Qari-OCR-0.2.2.1-Arabic-2B-Instruct"
model = Qwen2VLForConditionalGeneration.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_name)
max_tokens = 2000
prompt = "Below is the image of one page of a document, as well as some raw textual content that was previously extracted for it. Just return the plain text representation of this document as if you were reading it naturally. Do not hallucinate."
image.save("image.png")
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": f"file://{src}"},
{"type": "text", "text": prompt},
],
}
]
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
)
inputs = inputs.to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=max_tokens)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
os.remove(src)
print(output_text)
Qari v0.2.2.1をGoogle Colabで試す
✨ 主な機能
- 高い精度:アラビア語のOCRにおいて最先端の性能指標を達成します。
- ダイアクリティカルマークのサポート:アラビア語のダイアクリティカルマーク(タシーケル)を完全に認識します。
- 複数のフォントサポート:様々なアラビア語のフォントスタイルに対応しています。
- レイアウトの柔軟性:異なる文書レイアウトや形式を処理することができます。

📦 インストール
必要なライブラリをインストールするには、以下のコマンドを実行します。
!pip install transformers qwen_vl_utils accelerate>=0.26.0 PEFT -U
!pip install -U bitsandbytes
📚 ドキュメント
モデルの詳細
- ベースモデル:Qwen2 VL
- 微調整データセット:アラビア語のOCRデータセット
- 目的:高精度で全ページのアラビア語テキストを抽出する
- 言語:アラビア語
- タスク:OCR(光学文字認識)
- データセットサイズ:50,000件
- エポック数:1
評価指標
パフォーマンスは、以下の3つの標準的な指標を使用して評価されます。
- 単語誤り率 (WER):単語レベルの精度を測定します(低い方が良い)
- 文字誤り率 (CER):文字レベルの精度を測定します(低い方が良い)
- BLEUスコア:全体的な翻訳品質を測定します(高い方が良い)
結果
モデル |
WER ↓ |
CER ↓ |
BLEU ↑ |
Qari-OCR-0.2.2.1-VL-2B-Instruct |
0.221 |
0.059 |
0.597 |
AIN 8B |
0.757 |
0.309 |
0.103 |
Qari-OCR-0.1-VL-2B-Instruct |
1.294 |
0.770 |
0.022 |
easyOCR |
1.004 |
0.648 |
0.005 |
pytesseract |
0.990 |
0.911 |
<0.001 |
WER比較
CER比較
BLEUスコア比較
学習データ
モデルは、以下の仕様で学習されました。
- フォントサイズ:14、16、18、20、24、32、40pt
- ページレイアウト:
- A4 (210mm × 297mm)
- Letter (216mm × 279mm)
- Small (105mm × 148mm)
- Square (1080px × 1080px)
- OneLine (210mm × 10mm)
- 使用されたアラビア語フォント:
- IBM Plex Sans Arabic
- KFGQPCUthman Taha Naskh
- Scheherazade New
- Amiri
- Madina
- Diwani Letter
- Tajawal
- Cairo
- Lateef
- Almarai
- AlQalam Quran
- Noto Naskh Arabic
制限事項
学習仕様に基づいて、モデルには以下の制限があります。
- フォントサイズの制約:非常に小さい(< 14pt)または非常に大きい(> 40pt)テキストでは精度が低下する可能性があります。
- フォントのカバレッジ:学習データに含まれていない珍しいアラビア語のフォントでは性能が低下する可能性があります。
- ダイアクリティカルマークの複雑さ:モデルはダイアクリティカルマーク(タシーケル)をサポートしていますが、非常に密集したまたは非標準的なダイアクリティカルマークの組み合わせでは精度が低下する可能性があります。
- レイアウトの感度:複雑な多段レイアウトや非標準的なページ形式では困難を伴う可能性があります。
- 手書き文字認識:学習はデジタルフォントに焦点を当てているため、手書きテキストの認識能力は限られています。
- 装飾的なテキスト:高度にスタイリッシュまたは装飾的なアラビア語の書道には苦労する可能性があります。
- 背景の複雑さ:明瞭な背景に最適化されているため、複雑またはテクスチャのある背景では性能が低下する可能性があります。
- テキストの劣化:著しく劣化した、ぼやけた、または解像度の低いテキストでは問題が生じる可能性があります。
- 非標準的な向き:主に水平方向のテキストを対象として設計されているため、垂直または斜めのテキストでは苦労する可能性があります。
評価方法
評価は、主にダイアクリティカルマーク(タシーケル)を含むアラビア語のテキスト画像の多様なデータセットで行われ、以下の指標が測定されました。
- 単語誤り率 (WER):誤って認識された単語の割合
- 文字誤り率 (CER):誤って認識された文字の割合
- BLEUスコア:翻訳品質の尺度で、スコアが高いほど全体的なテキスト認識が良好です。
📄 ライセンス
このモデルは、元のQwen2 VLモデルのライセンス条項に従っています。商用利用する前に条項を確認してください。
引用
このモデルを研究で使用する場合は、以下を引用してください。
@misc{QariOCR2025,
title={Qari-OCR v0.2.2.1: A High-Accuracy Model for Arabic Optical Character Recognition},
author={NAMAA},
year={2025},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/NAMAA-Space/Qari-OCR-0.2.2.1-VL-2B-Instruct}},
note={Accessed: 2025-04-01}
}