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.5.tar.gz (8.7 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.5-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pageextractor-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e37bcc4bfd3263f94c4a20e08b17d6663065f402dc21f01728e1e25ed87b22c7
MD5 79e20d5ebb5f47ade3cb645d3e5b5b7f
BLAKE2b-256 5941545571550f7bd078490dce9619581e6e6c9b544b2e36d9d2490cd7f7afb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pageextractor-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b3e111cced14ba4708f564a73d680bf533544cd89758ad83b76bf16a578cf024
MD5 72043a21822e531f981d0c70c15b40e0
BLAKE2b-256 91a0c736e17f713196266555daa801baaa2786a38ee5880c2f09261dde876f09

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