readme: ---
  tags:
  - object-detection
  
  ---
  
  # 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}"
      )
  ```