🚀 アラビア語ベースのNougat
アラビア語の書籍に特化した、エンドツーエンドの構造化OCRシステムです。
🚀 クイックスタート
アラビア語ベースのNougat OCRは、アラビア語に特化したエンドツーエンドの構造化光学文字認識(OCR)システムです。
デモ
こちらのデモをご利用いただけます。
ローカルでの使用方法
以下のコードを使って、モデルをローカルで使用することができます。ただし、transformersを更新することを忘れないでください。
pip install -U transformers
from PIL import Image
import torch
from transformers import NougatProcessor, VisionEncoderDecoderModel
processor = NougatProcessor.from_pretrained("MohamedRashad/arabic-base-nougat")
model = VisionEncoderDecoderModel.from_pretrained("MohamedRashad/arabic-base-nougat", torch_dtype=torch.bfloat16, attn_implementation={"decoder": "flash_attention_2", "encoder": "eager"})
context_length = model.decoder.config.max_position_embeddings
torch_dtype = model.dtype
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
def predict(img_path):
image = Image.open(img_path)
pixel_values = processor(image, return_tensors="pt").pixel_values.to(torch_dtype).to(device)
outputs = model.generate(
pixel_values.to(device),
repetition_penalty=1.5,
min_length=1,
max_new_tokens=context_length,
bad_words_ids=[[processor.tokenizer.unk_token_id]],
)
page_sequence = processor.batch_decode(outputs, skip_special_tokens=True)[0]
page_sequence = processor.post_process_generation(page_sequence, fix_markdown=False)
return page_sequence
print(predict("path/to/page_image.jpg"))
✨ 主な機能
アラビア語ベースのNougat OCRは、アラビア語の書籍ページの画像を構造化テキストに変換するタスクに最適化されています。特にMarkdown形式が必要な場合に最適で、アラビア文学のデジタル化や印刷物からのテキスト抽出などの分野でのアプリケーションに適しています。
🔧 技術詳細
バイアス、リスク、制限事項
- テキストのホールミネーション:OCRタスクの固有の複雑さにより、モデルは時折、繰り返しまたは誤ったテキストを生成することがあります。
- 誤った画像パス:モデルが入力と関係のない画像パスを出力する場合があり、これは時折の混乱を示しています。
- コンテキスト長の制約:モデルの最大コンテキスト長は2048トークンであり、長い書籍ページの場合、文字起こしが不完全になる可能性があります。
意図された使用方法
アラビア語ベースのNougat OCRは、アラビア語の書籍ページの画像を構造化テキストに変換するタスクに設計されています。特にMarkdown形式が必要な場合に適しており、アラビア文学のデジタル化や印刷物からのテキスト抽出などの分野でのアプリケーションに最適です。
倫理的な考慮事項
正確なOCR結果が重要な場合、モデルの制限事項を認識することが重要です。ユーザーは、特に精度が最も重要なシナリオでは、出力を検証およびレビューすることをお勧めします。
📚 ドキュメント
モデルの詳細
プロパティ |
詳細 |
開発者 |
Mohamed Rashad |
モデルタイプ |
VisionEncoderDecoderModel |
言語 |
アラビア語と英語 |
ライセンス |
GPL 3.0 |
ファインチューニング元のモデル |
nougat-base |
謝辞
アラビア語ベースのNougat OCRを使用または拡張する場合は、モデル開発者とオープンソースコミュニティの貢献を認めてください。また、モデルの再配布または修正バージョンには、GPL 3.0ライセンスのコピーを必ず含めてください。GPL 3.0ライセンスを選択することで、オープンソースの原則を促進し、モデルの恩恵を幅広いコミュニティと共有することができます。
引用
このモデルが役に立った場合は、対応する研究論文を引用してください。
@misc{rashad2024arabicnougatfinetuningvisiontransformers,
title={Arabic-Nougat: Fine-Tuning Vision Transformers for Arabic OCR and Markdown Extraction},
author={Mohamed Rashad},
year={2024},
eprint={2411.17835},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2411.17835},
}
免責事項
アラビア語ベースのNougat OCRは「現状のまま」提供されるツールであり、開発者は特定のタスクへの適合性について保証しません。ユーザーは、特定のユースケースや要件に対してモデルの出力を十分に評価することをお勧めします。
[**Github**](https://github.com/MohamedAliRashad/arabic-nougat) 🤗 [**Hugging Face**](https://huggingface.co/collections/MohamedRashad/arabic-nougat-673a3f540bd92904c9b92a8e) 📝 [**論文**](https://arxiv.org/abs/2411.17835) 🗂️ [**データ**](https://huggingface.co/datasets/MohamedRashad/arabic-img2md) 📽️ [**デモ**](https://huggingface.co/spaces/MohamedRashad/Arabic-Nougat)