GLM-OCRはオープンな(MITライセンスの)OCRモデルです。Pythonで簡単に使えます。日本語の縦書きにも対応しています。
動かすにはPyTorchとTransformersが必要です(pip install --upgrade torch transformers)。後者は最新のものを入れてもエラーになる場合は pip install git+https://github.com/huggingface/transformers.git で開発版を入れます。
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
MODEL_PATH = "zai-org/GLM-OCR"
processor = AutoProcessor.from_pretrained(MODEL_PATH)
model = AutoModelForImageTextToText.from_pretrained(
pretrained_model_name_or_path=MODEL_PATH,
torch_dtype="auto",
device_map="auto",
)
url = "画像ファイルへのパス"
messages = [
{
"role": "user",
"content": [
{ "type": "image", "url": url },
{ "type": "text", "text": "Text Recognition:" },
],
}
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt"
).to(model.device)
inputs.pop("token_type_ids", None)
generated_ids = model.generate(**inputs, max_new_tokens=8192)
output_text = processor.decode(
generated_ids[0][inputs["input_ids"].shape[1]:],
skip_special_tokens=True
)
print(output_text)
Last modified: