ExcelTableCNN: VEnron2 table detector

A Faster R-CNN table-boundary detector for spreadsheets, from ExcelTableCNN, a license-clean reimplementation of the TableSense approach. Given a sheet's cell grid it predicts a bounding box (cell range) for each table, with PBR boundary snapping and a grid-context backbone.

  • Input: 30 per-cell feature channels, built by the package from .xls/.xlsx.
  • Output: table bounding boxes as cell ranges, each with a confidence score.
  • Weights: final.pt (about 201 MB), trained 160 epochs on the full VEnron2 set.

Metrics

Evaluated on the held-out VEnron2 test split (197 sheets, 342 tables) at score threshold 0.5, using the strict Error-of-Boundary metric (EoB-0 = cell-exact, EoB-2 = within 2 cells):

Metric Precision Recall
EoB-0 (exact) 47.7% 48.2%
EoB-2 (within 2 cells) 66.5% 67.3%

The reloaded checkpoint reproduces these numbers exactly (RoI pooling scale pinned to 1.0, see PR #8). For reference, the TableSense paper reports EoB-2 precision 86.5% / recall 91.3%, trained on about 25x more hand-labeled sheets.

Usage

Install the package (it handles featurization and decoding):

pip install git+https://github.com/Flagro/ExcelTableCNN.git

Download the weights and detect tables from the command line:

huggingface-cli download flagro/exceltablecnn-venron2 final.pt --local-dir .
excel-table-cnn-detect report.xls --weights final.pt
# Sheet1!B2:H45   score=0.973

Or from Python:

from huggingface_hub import hf_hub_download
from excel_table_cnn import load_checkpoint

path = hf_hub_download("flagro/exceltablecnn-venron2", "final.pt")
model = load_checkpoint(path, device="cpu")  # or "cuda"

Training

  • Data: VEnron2, 1,288 training sheets, via the ExcelTableCNN pipeline.
  • Schedule: 160 epochs, batch size 1, SGD (lr 0.005, momentum 0.9, weight decay 5e-4), 100-step warmup, constant LR, mixed precision.
  • Featurization caps: default 2,048 x 512 cells. Seed 42.
  • Hardware: single NVIDIA T4 (Kaggle), about 4 hours.
  • Architecture: 30-channel input, grid-context backbone (stride 1), Faster R-CNN detection head, PBR boundary-snapping head, 2 classes (table vs background).
  • Code: excel-table-cnn 0.3.0, commit 0ed4205.

Limitations

  • Trained only on VEnron2 (Enron-derived financial and operational spreadsheets); expect lower accuracy on very different domains or layouts.
  • Cell-exact (EoB-0) detection is still under 50%; boundaries are often off by 1 to 2 cells, which is why EoB-2 is much higher. Use EoB-2 for downstream extraction that tolerates small boundary error.
  • Sheets larger than 2,048 x 512 cells are clipped during featurization.

License and data

Code and weights are MIT-licensed (see the repository). The training data is the public VEnron2 corpus, derived from the Enron email dataset; confirm its terms permit your intended redistribution or use.

Citation

Built on the method from TableSense (Dong et al., AAAI 2019). Please cite the original paper for the approach and link this repository for the implementation.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support