Use SAM2 to extract and warp a page from a photo.
Project description
Page Extractor
Extracts a page from a photo, and warps it to a rectangular image using skimage.
Features
- Remove margin clutter from photos of pages, usually improved document processing.
- GroundingDINO detection model integration.
- SAM 2.1
- Customizable text prompt, e.g. to "receipt." or "invoice."
Getting Started
Prerequisites
- Python 3.10 or higher
Installation
Installing PyTorch Dependencies
Before installing pageextractor, install PyTorch:
pip install torch==2.4.1 torchvision==0.19.1 --extra-index-url https://download.pytorch.org/whl/cu124
Installation options
pip install -U git+https://github.com/UG-Team-Data-Science/pageextractor.git
Or:
git clone https://github.com/UG-Team-Data-Science/pageextractor && cd pageextractor
pip install -e .
Usage
from PIL import Image
from matplotlib import pyplot as plt
from pageextractor import PageExtractor
img = Image.open('example.png')
model = PageExtractor(sam_type='sam2.1_hiera_tiny', device='cuda')
mask, polygon, cropped = model.extract_page(img)
_, (ax0, ax1, ax2) = plt.subplots(1, 3, figsize=(30, 15))
ax0.imshow(img)
ax1.imshow(img)
ax1.plot(*polygon[[0,1,2,3,0]].T, 'r:')
ax1.imshow(1-mask, cmap='Blues', alpha=0.8 - 0.8*mask)
ax2.imshow(cropped)
Acknowledgments
This project is based on/used the following repositories:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pageextractor-0.1.2.tar.gz
(8.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pageextractor-0.1.2.tar.gz.
File metadata
- Download URL: pageextractor-0.1.2.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
345fd521e2ae1ad9739adea7665b9de668f4604d4d4231bbbb215b716a12b538
|
|
| MD5 |
c274429160ebb868e26ac299f85e1335
|
|
| BLAKE2b-256 |
c341ff6a17cdd8c464f088d757e62822eab9d643e27e09fa328e21d9eb02c7f8
|
File details
Details for the file pageextractor-0.1.2-py3-none-any.whl.
File metadata
- Download URL: pageextractor-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81972f391a1dab8483df00c78cd330d6d1104aa9888ce0bdaad6fd76cbf47681
|
|
| MD5 |
db070808007edc4014396c88be18253a
|
|
| BLAKE2b-256 |
2f4a53f1ddcc6b1e8438365dcc0f01df963ceddcba7846eeae0715be7bd8f892
|