🚀 TFT-ID:学术论文的表格/图片/文本识别器
TFT-ID 是一个目标检测模型,由 Yifei Hu 开发,旨在从学术论文中精准提取表格、图片和文本部分。它基于 microsoft/Florence-2 的预训练权重进行微调,为学术文档处理提供了高效的解决方案。
🚀 快速开始
使用以下代码即可快速开始使用该模型:
import requests
from PIL import Image
from transformers import AutoProcessor, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("yifeihu/TFT-ID-1.0", trust_remote_code=True)
processor = AutoProcessor.from_pretrained("yifeihu/TFT-ID-1.0", 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)
⚠️ 重要提示
对于非 CUDA 环境,请参考 此文章 获取简单的补丁。
若要可视化检测结果,可查看 此教程笔记本 获取更多详细信息。
✨ 主要特性
- 精准识别:TFT-ID 模型以单页学术论文图像为输入,能够准确返回页面中所有表格、图片和文本部分的边界框。
- 文本优化:识别出的文本部分包含清晰的文本内容,非常适合后续的 OCR 工作流。推荐使用 TB-OCR-preview-0.1 [HF] 作为 OCR 模型,将文本部分转换为清晰的 Markdown 和数学 LaTeX 输出。
目标检测结果格式如下:
{'<OD>': {'bboxes': [[x1, y1, x2, y2], ...],
'labels': ['label1', 'label2', ...]} }
📦 安装指南
暂未提供安装步骤相关内容。
💻 使用示例
基础用法
import requests
from PIL import Image
from transformers import AutoProcessor, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("yifeihu/TFT-ID-1.0", trust_remote_code=True)
processor = AutoProcessor.from_pretrained("yifeihu/TFT-ID-1.0", 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)
高级用法
暂未提供高级用法相关代码示例。
📚 详细文档
模型微调
TFT-ID 模型基于 microsoft/Florence-2 的预训练权重进行微调。微调数据来自 Hugging Face Daily Papers 中的论文,所有 36,000 多个边界框均由 Yifei Hu 手动标注和检查。
训练代码与数据集
基准测试
该模型在训练数据集之外的论文页面上进行了测试,这些论文是 Hugging Face 每日论文的一个子集。
任务 1:表格、图片和文本部分识别
模型 |
总图像数 |
正确输出数 |
成功率 |
TFT-ID-1.0[HF] |
373 |
361 |
96.78% |
任务 2:表格和图片识别
模型 |
总图像数 |
正确输出数 |
成功率 |
TFT-ID-1.0[HF] |
258 |
255 |
98.84% |
TF-ID-large[HF] |
258 |
253 |
98.06% |
💡 使用建议
根据具体使用场景,一些“错误”的输出可能仍然可用。例如,模型为包含两个子组件的图片绘制了两个边界框。
🔧 技术细节
暂未提供技术细节相关内容。
📄 许可证
本项目采用 MIT 许可证,详情请见 许可证链接。
📖 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}},
}