ByteDance Dolphinとは?
ByteDance Dolphin(正式名称: Document Image Parsing via Heterogeneous Anchor Prompting)は、文書画像やPDFからレイアウト構造を保ったまま内容を解析・変換できる最新のマルチモーダルAIモデルです。
従来のOCRは単純な文字起こしにとどまりますが、Dolphinは段組・表・数式・図なども位置関係ごと理解して、MarkdownやJSONなど構造化データとして出力できるのが最大の特徴です。
特徴
-
二段階解析方式(analyze-then-parse)
- ページ全体のレイアウト・読み順を把握
- 要素ごとに位置情報を付与して並列処理
-
レイアウト保持の高精度OCR
表や見出し、数式も崩れにくい -
高速処理
ページ数の多い文書も効率的に解析 -
オープンソース
Hugging FaceでMITライセンス公開、Pythonから利用可能
おすすめ用途
- 請求書・領収書のデータ化 — レイアウトごと取り込み、経理処理効率化
- 学術論文や技術資料のMarkdown化 — 図表・数式付きで二次利用しやすい
- アンケートや申込書の集計 — 位置情報を保持したまま抽出
- 電子書籍・古書のデジタル化 — 段組や見出しを保ったまま変換
- 契約書・法的文書の整理 — 条項や付録をタグ化し全文検索可能に
実際に画像からWord化してみた
1. Colab環境を用意し、必要ライブラリをインストール
!pip install transformers pillow
2. Hugging Face モデルのロード
from transformers import AutoProcessor, AutoModelForDocumentParsing
model_name = "bytedance/dolphin"
processor = AutoProcessor.from_pretrained(model_name)
model = AutoModelForDocumentParsing.from_pretrained(model_name)
3. 解析するファイルのアップロード
from google.colab import files
uploaded = files.upload()
image_path = list(uploaded.keys())[0]
4. 推論して Markdown 取得
from PIL import Image
image = Image.open(image_path).convert("RGB")
inputs = processor(images=image, return_tensors="pt")
outputs = model.generate(**inputs)
md_text = processor.batch_decode(outputs, skip_special_tokens=True)[0]
5. Wordに保存
from docx import Document
doc = Document()
doc.add_paragraph(md_text)
doc.save("output.docx")
感想・レビュー
-
精度の高さ
日本語文書でも誤認識が少なく、長文も正しく改行・段落分けされることが多かったです。 -
レイアウト再現性
文章の順序や段組も概ね正しく認識。ただし完全なレイアウト保持にはOCR併用が有効でした。 -
速度
1ページあたり数秒で処理可能。複数ページでもストレスなく変換できます。 -
注意点
低解像度画像では精度が下がるため、スキャンは300dpi程度推奨。
まとめ
ByteDance Dolphinは、単なるOCRを超えた構造理解型文書解析AIです。
表や数式、段組など複雑なレイアウトを保ちながらデジタル化が可能で、業務文書や研究資料などそのまま編集・再利用したい文書の変換に特に強みがあります。
Word化やMarkdown化など、情報整理・再利用の場面で非常に役立ちます。
🐣
こんにちは、だいすけです。
ぼくはフリーランス・エンジニアで、 AR や 機械学習のアプリの実装をしています。
お仕事のご相談こちらまで。
rockyshikoku@gmail.com
Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。
Twitter
Medium
