🚀 TF-ID: 学術論文用の表/図識別器
TF-ID(Table/Figure IDentifier)は、学術論文内の表と図を抽出するために微調整された物体検出モデルのファミリーです。これらのモデルはYifei Huによって作成され、4つのバージョンがあります。
✨ 主な機能
モデル概要
TF-IDには以下の4つのバージョンがあります。
モデル |
モデルサイズ |
モデルの説明 |
TF-ID-base[HF] |
0.23B |
表/図とそのキャプションテキストを抽出 |
TF-ID-large[HF] (推奨) |
0.77B |
表/図とそのキャプションテキストを抽出 |
TF-ID-base-no-caption[HF] |
0.23B |
キャプションテキストを含まない表/図を抽出 |
TF-ID-large-no-caption[HF] (推奨) |
0.77B |
キャプションテキストを含まない表/図を抽出 |
すべてのTF-IDモデルは、microsoft/Florence-2のチェックポイントから微調整されています。
- これらのモデルは、Hugging Face Daily Papersの論文を使って微調整されました。すべてのバウンディングボックスは手動で注釈付けされ、人間によってチェックされています。
- TF-IDモデルは、論文の1ページの画像を入力として受け取り、与えられたページ内のすべての表と図のバウンディングボックスを返します。
- TF-ID-baseとTF-ID-largeは、表/図とそのキャプションテキストの周りにバウンディングボックスを描画します。
- TF-ID-base-no-captionとTF-ID-large-no-captionは、キャプションテキストを含まない表/図の周りにバウンディングボックスを描画します。
大規模モデルが常に推奨されます!

物体検出結果の形式:
{'': {'bboxes': [[x1, y1, x2, y2], ...],
'labels': ['label1', 'label2', ...]} }
学習コードとデータセット
ベンチマーク
我々は、学習データセット外の論文ページでモデルをテストしました。これらの論文は、huggingface daily paperのサブセットです。
正しい出力 - モデルが与えられたページ内のすべての表/図に正しいバウンディングボックスを描画すること。
モデル |
総画像数 |
正しい出力数 |
成功率 |
TF-ID-base[HF] |
258 |
251 |
97.29% |
TF-ID-large[HF] |
258 |
253 |
98.06% |
モデル |
総画像数 |
正しい出力数 |
成功率 |
TF-ID-base-no-caption[HF] |
261 |
253 |
96.93% |
TF-ID-large-no-caption[HF] |
261 |
254 |
97.32% |
使用ケースによっては、一部の「誤った」出力も全く使える場合があります。たとえば、モデルが2つの子コンポーネントを持つ1つの図に2つのバウンディングボックスを描画する場合です。
💻 使用例
基本的な使用法
import requests
from PIL import Image
from transformers import AutoProcessor, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("yifeihu/TF-ID-base", trust_remote_code=True)
processor = AutoProcessor.from_pretrained("yifeihu/TF-ID-base", trust_remote_code=True)
prompt = "<OD>"
url = "https://huggingface.co/yifeihu/TF-ID-base/resolve/main/arxiv_2305_10853_5.png?download=true"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(text=prompt, images=image, return_tensors="pt")
generated_ids = model.generate(
input_ids=inputs["input_ids"],
pixel_values=inputs["pixel_values"],
max_new_tokens=1024,
do_sample=False,
num_beams=3
)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=False)[0]
parsed_answer = processor.post_process_generation(generated_text, task="<OD>", image_size=(image.width, image.height))
print(parsed_answer)
結果を可視化するには、このチュートリアルノートブックを参照してください。
📚 詳細ドキュメント
BibTexと引用情報
@misc{TF-ID,
author = {Yifei Hu},
title = {TF-ID: Table/Figure IDentifier for academic papers},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/ai8hyf/TF-ID}},
}
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。