ホーム/モデル/Baberu OCR
Image → Text · 115M

Baberu OCR

マンガの吹き出しを1つ渡すと、中のセリフをテキストにして返す。日本語・中国語・英語に対応した115Mの小型モデルです。狙いは、サーバに送らずスマホやブラウザの中だけで動く軽さ。翻訳やセリフ検索のように、大量のコマを次々に処理する使い方を想定しています。

Apache-2.0 115M パラメータ 日中英 オンデバイス DINOv2 + GQAデコーダ
115M
パラメータ。うち86Mは凍結したDINOv2
3.5%
日本語の吹き出しCER。教師モデルを上回る
サイズのモデルとも吹き出し単位で互角
14,630
文字単位の語彙。日中英を1つの表に
Baberu OCR と他モデルの吹き出しCER比較(日本語・英語・中国語)
吹き出し単位の緩和CER(%、低いほど良い)。ピンクがBaberu。日英中の3言語で、桁違いに大きいモデルと並ぶ。
Why

なぜ小さく作ったか

マンガのセリフを読む用途は、1コマずつ大量に処理することが多い。1枚あたりのコストが効いてきます。そこで、巨大な汎用モデルを積むのではなく、吹き出しという狭い入力に絞った小さなモデルを作りました。画像を理解する部分は学習済みのDINOv2をそのまま使い、文字を書き出すデコーダだけをゼロから学習させています。見る力は借りて、書く力だけ自分で育てる。この分担なら、115Mでも必要な精度が出せると考えました。

結果として、日本語のベンチマークでは蒸留のもとにした教師モデルを上回り、英語と中国語でも、8倍の大きさのモデルと吹き出し単位では互角のところまで来ています。学習はA100を1枚、3日ほど。評価は学習に使っていない人手注釈で行いました。

Architecture

しくみ

Baberu OCR のアーキテクチャ図:DINOv2エンコーダ(凍結)→MLP→6層GQAデコーダ(ゼロから学習)→文字ロジット
青は再利用(凍結)、オレンジはゼロから学習した部分。

吹き出しを224×224で切り出し、凍結したDINOv2-ViT-B/14に通します。出てきた256個の視覚トークンを小さなMLPで512次元に変換し、6層のデコーダに渡す。デコーダは文字を1つずつ予測します。語彙は文字単位で14,630種類。日中英の漢字とかな、アルファベットを1つの表にまとめました。学習は2段階で、まずデコーダだけを回し、あとから微調整しています。

視覚エンコーダ
DINOv2-ViT-B/14(86M・凍結して再利用
デコーダ
6層 GQA(8q / 2kv)・約26M・ゼロから学習
デコーダ構成
hidden 512 · FFN 1536 · RoPE · SwiGLU · tied embeddings
語彙
14,630(文字単位
対応言語
日中英(3言語
配布形式
PyTorch / ONNX(121MB・242MB)
量子化
fp16 / int8 / int4
ライセンス
Apache-2.0
Benchmark

精度

言語Baberu 115MPaddleOCR-VL 0.9BFor-Manga 0.9Bmanga-ocr 110M
日本語3.53.74.2
英語6.28.119.239.2
中国語5.27.78.837.1

吹き出し単位の緩和CER(%、低いほど良い)。評価はManga109-v2026(日 n=2000)と、人手注釈のホールドアウト(英 n=237、中 n=246)。なお、長文を文字重みで測るCERでは、英語と中国語でPaddleOCR-VLが優位です。For-Mangaは日本語をManga109で学習しているため、日本語の比較からは外しています。

Limitations

苦手なところ

  • 入力は吹き出し1つが前提です。ページ全体をそのまま渡す使い方には向きません(検出は別の工程で)。
  • 濁点と半濁点をたまに取り違えます。
  • 学習データから外れた、古い西洋コミックのフォントには弱いです。
Related

関連

← モデルとデータセットの一覧に戻る