|
--- |
|
tags: |
|
- object-detection |
|
license: apache-2.0 |
|
base_model: facebook/detr-resnet-50 |
|
--- |
|
|
|
# Model Card for detr-doc-table-detection |
|
|
|
# Model Details |
|
|
|
detr-doc-table-detection is a model trained to detect both **Bordered** and **Borderless** tables in documents, based on [facebook/detr-resnet-50](https://huggingface.co/facebook/detr-resnet-50). |
|
|
|
- **Developed by:** Taha Douaji |
|
- **Shared by [Optional]:** Taha Douaji |
|
- **Model type:** Object Detection |
|
- **Language(s) (NLP):** More information needed |
|
- **License:** More information needed |
|
- **Parent Model:** [facebook/detr-resnet-50](https://huggingface.co/facebook/detr-resnet-50) |
|
- **Resources for more information:** |
|
- [Model Demo Space](https://huggingface.co/spaces/trevbeers/pdf-table-extraction) |
|
- [Associated Paper](https://arxiv.org/abs/2005.12872) |
|
|
|
|
|
|
|
# Uses |
|
|
|
|
|
## Direct Use |
|
This model can be used for the task of object detection. |
|
|
|
## Out-of-Scope Use |
|
|
|
The model should not be used to intentionally create hostile or alienating environments for people. |
|
|
|
# Bias, Risks, and Limitations |
|
|
|
|
|
Significant research has explored bias and fairness issues with language models (see, e.g., [Sheng et al. (2021)](https://aclanthology.org/2021.acl-long.330.pdf) and [Bender et al. (2021)](https://dl.acm.org/doi/pdf/10.1145/3442188.3445922)). Predictions generated by the model may include disturbing and harmful stereotypes across protected classes; identity characteristics; and sensitive, social, and occupational groups. |
|
|
|
|
|
|
|
## Recommendations |
|
|
|
|
|
Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. |
|
|
|
# Training Details |
|
|
|
## Training Data |
|
|
|
The model was trained on ICDAR2019 Table Dataset |
|
|
|
|
|
# Environmental Impact |
|
|
|
Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). |
|
|
|
|
|
# Citation |
|
|
|
|
|
**BibTeX:** |
|
|
|
|
|
```bibtex |
|
@article{DBLP:journals/corr/abs-2005-12872, |
|
author = {Nicolas Carion and |
|
Francisco Massa and |
|
Gabriel Synnaeve and |
|
Nicolas Usunier and |
|
Alexander Kirillov and |
|
Sergey Zagoruyko}, |
|
title = {End-to-End Object Detection with Transformers}, |
|
journal = {CoRR}, |
|
volume = {abs/2005.12872}, |
|
year = {2020}, |
|
url = {https://arxiv.org/abs/2005.12872}, |
|
archivePrefix = {arXiv}, |
|
eprint = {2005.12872}, |
|
timestamp = {Thu, 28 May 2020 17:38:09 +0200}, |
|
biburl = {https://dblp.org/rec/journals/corr/abs-2005-12872.bib}, |
|
bibsource = {dblp computer science bibliography, https://dblp.org} |
|
} |
|
``` |
|
|
|
|
|
# Model Card Authors [optional] |
|
|
|
Taha Douaji in collaboration with Ezi Ozoani and the Hugging Face team |
|
|
|
|
|
# Model Card Contact |
|
|
|
More information needed |
|
|
|
# How to Get Started with the Model |
|
|
|
Use the code below to get started with the model. |
|
|
|
|
|
```python |
|
from transformers import DetrImageProcessor, DetrForObjectDetection |
|
import torch |
|
from PIL import Image |
|
import requests |
|
|
|
image = Image.open("IMAGE_PATH") |
|
|
|
processor = DetrImageProcessor.from_pretrained("TahaDouaji/detr-doc-table-detection") |
|
model = DetrForObjectDetection.from_pretrained("TahaDouaji/detr-doc-table-detection") |
|
|
|
inputs = processor(images=image, return_tensors="pt") |
|
outputs = model(**inputs) |
|
|
|
# convert outputs (bounding boxes and class logits) to COCO API |
|
# let's only keep detections with score > 0.9 |
|
target_sizes = torch.tensor([image.size[::-1]]) |
|
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0] |
|
|
|
for score, label, box in zip(results["scores"], results["labels"], results["boxes"]): |
|
box = [round(i, 2) for i in box.tolist()] |
|
print( |
|
f"Detected {model.config.id2label[label.item()]} with confidence " |
|
f"{round(score.item(), 3)} at location {box}" |
|
) |
|
``` |