Skip to main content

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)

Examples

Photo of a book page, unfortunately centerfold and page block are included

Photo of a book page, unfortunately centerfold and page block are included

Photo of a letter

Photo of a letter

Acknowledgments

This project is based on/used the following repositories:

Project details


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.9.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pageextractor-0.1.9-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file pageextractor-0.1.9.tar.gz.

File metadata

  • Download URL: pageextractor-0.1.9.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for pageextractor-0.1.9.tar.gz
Algorithm Hash digest
SHA256 eacb61fa751d6750f3110fe805ce5cf3ccb92e1a8040917995188886b0ebeeaa
MD5 00361b7d436a73d6573e8615cca461e8
BLAKE2b-256 bfb0a6de0774740289baa2fdfe23c58959736539e16bb759ac508b5fee5d9d5d

See more details on using hashes here.

File details

Details for the file pageextractor-0.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for pageextractor-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 3744eab8dffbde824c3e5db8c790a954c1427a51a30faf1460118d9ac3543a9f
MD5 fab1b1fcb979e8fcb541c3f57710e8c8
BLAKE2b-256 416f4c86a3620d4905d1ef1d009abcad1eb708bf6c7b5caff06a8b09b92e2079

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page