はじめに
RolmOCRは、Reducto AIチームによって開発されたオープンソースの光学式文字認識(OCR)ツールで、Qwen2.5-VL-7B視覚言語モデルをベースにしています。類似ツールよりも高速に画像やPDFファイルからテキストを抽出することができます。 olmOCR RolmOCRはPDFのメタデータに依存しないため、手書きのメモや学術論文など幅広い種類の文書をサポートしながら、処理を簡素化することができます。Reductoチームは、文書のデジタル化をより効率的にすることを目標に、モデルを更新し、学習データを最適化することでツールを構築した。
機能一覧
- 高速テキスト抽出: 画像やPDFからテキストを抽出します。
- 様々な文書に対応:手書きのメモ、印刷された文書、複雑なフォームを認識します。
- オープンソースで無料:Apache 2.0ライセンスで公開されており、コードを自由にダウンロードし、適応させることができる。
- メモリ・フットプリントが小さい:以下のものと比較して olmOCR リソース効率が高く、実行時のコンピュータ要件が低い。
- メタデータ不要:PDFからの追加情報に依存することなく、元の文書を直接処理します。
- 斜め文書認識の強化:学習データ中の15%を回転させ、非正対角文書への適応を改善。
- 最新モデル:Qwen2.5-VL-7Bを採用し、認識精度と効率を向上。
ヘルプの使用
RolmOCRは、主にコードによって動作するオープンソースのツールであり、基本的なプログラミングスキルを持つユーザーに適しています。以下は、インストールと使い方の詳細です。
設置プロセス
- Python環境のチェック
RolmOCRにはPython 3.8以上が必要です。コマンドラインを開きpython --version
バージョンを確認してください。インストールされていない場合は、Pythonのウェブサイトからダウンロードしてインストールしてください。 - vLLMフレームワークのインストール
RolmOCRの使用法 ブイエルエルエム モデルを実行します。コマンドラインで入力する:
pip install vllm
インストールが完了したら、環境変数を設定する:
export VLLM_USE_V1=1
これにより、vLLMが正常に動作することが保証される。
- RolmOCRモデルのダウンロード
モデルファイルはHugging Faceにあります。https://huggingface.co/reducto/RolmOCR、"Files and versions "をクリックしてダウンロードしてください。またはコマンドラインからダウンロードしてください:
git clone https://huggingface.co/reducto/RolmOCR
- ローカルサービスの開始
ダウンロードしたモデルのフォルダに移動し、実行します:
vllm serve reducto/RolmOCR
サービス開始時のデフォルトアドレスは http://localhost:8000/v1
.コマンドラインウィンドウを開いたままにする。
使用方法
RolmOCRはAPIコールでテキストを抽出します。具体的な手順は以下の通りです。
書類の準備
画像(PNG/JPG)またはPDFなど、認識するファイルを準備します。 test_doc.png
.
APIを呼び出してテキストを抽出する
ファイルをbase64エンコーディングに変換してRolmOCRに送信するスクリプトをPythonで作成する:
from openai import OpenAI
import base64
# 连接本地服务
client = OpenAI(api_key="123", base_url="http://localhost:8000/v1")
model = "reducto/RolmOCR-7b"
# 图片转 base64
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# 调用 RolmOCR 提取文字
def ocr_page_with_rolm(img_base64):
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_base64}"}},
{"type": "text", "text": "把这张图片里的文字提取出来,像人读的那样自然返回。"}
]
}
],
temperature=0.2,
max_tokens=4096
)
return response.choices[0].message.content
# 运行示例
test_img_path = "test_doc.png"
img_base64 = encode_image(test_img_path)
result = ocr_page_with_rolm(img_base64)
print(result)
ファイルとして保存 ocr_test.py
そして実行する:
python ocr_test.py
プログラムは抽出されたテキストを返す:
会议记录
2025年4月7日
- 项目计划讨论
- 准备相关资料
バッチファイル
複数のファイルを扱うには、コードを書き換える。ファイル・パスをリストに入れ、ループの中でそれを呼び出す:
file_paths = ["doc1.png", "doc2.png", "doc3.png"]
for path in file_paths:
img_base64 = encode_image(path)
result = ocr_page_with_rolm(img_base64)
print(f"{path} 的结果:\n{result}\n")
注目の機能操作
- 手書き認識
RolmOCRは手書き文字を認識します。例えば、「Deepseek Coder」と書かれたメモが「OCLM」と間違われることなく正確に出力される。画像をアップロードすると、自然な順序でソートされます。 - 歪んだ文書処理
15%は学習データで回転しているため、傾いた文書にも適応しやすい。例えば、傾いたスキャンでも、テキストは正しく抽出される。 - 低メモリ動作
メタデータに依存せず、ヒント長が短く、処理に使用するグラフィックメモリ(VRAM)が少ない。低コンフィギュレーションのコンピュータに適しています。
ほら
- サービスの中断サービスを開始した後、コマンドラインウィンドウを閉じないでください。
- 記憶障害コンピューターに十分なメモリーがない場合は、以下のようにvLLMパラメーターを調整することができます。
per_device_train_batch_size
資源の必要性は減少した。 - 制限RolmOCRは、コントラストの低い小さな文字や、メタデータのない複雑な表を認識できないことがあります。画質を最適化して再試行することをお勧めします。
- レイアウトボックスはサポートされていませんReductoの商用APIと異なり、RolmOCRはテキストのバウンディングボックスを出力できません。
以上の手順で、ユーザーは簡単にRolmOCRをインストールし、文書からテキストを素早く抽出することができます。
アプリケーションシナリオ
- 学術研究
学生や研究者は、RolmOCRを使って手書きのメモや古い文書をスキャンし、電子テキストにすることで、整理や検索が簡単にできる。 - エンタープライズ・ドキュメント・プロセッシング
同社は、契約書や封筒からテキストを抽出してシステムに入力するためにこれを使用することができ、手作業を減らすことができる。 - 多言語サポート
中国語と英語の混在した文書やフランス語の手書き文字を処理し、情報を迅速に抽出し、国境を越えたコミュニケーションに適しています。
品質保証
- RolmOCRとolmOCRの違いは何ですか?
RolmOCRは最新のQwen2.5-VL-7Bモデルに基づいており、より高速で、メモリフットプリントが小さく、メタデータを使用せず、歪んだ文書に対してより堅牢である。 - オフラインで使用できますか?
できる。モデルをダウンロードしてローカルサービスを開始するだけで、インターネット接続は不要です。 - フォーム認識に対応していますか?
サポートされているが、学術論文の小見出しなど、メタデータのない複雑な表の一部を見逃す可能性がある。