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.4.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.4-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pageextractor-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 ad6df85eb6aa25abe301cd87620cd8cdb4965fd257d05b01f25a6c212acffba9
MD5 3c8d28c1b0fb551539c50eb4f5f94f6b
BLAKE2b-256 951ba9ecf8427291561beb0accba42f02624c51bf362deed3d8a23b5b1e4b905

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pageextractor-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5f808d4e73059a3f3fd0f9bf834fb8d2329bbb5c11efcf3c0cc5082a75560fd7
MD5 11180b330b1a935f227fe507a8227e13
BLAKE2b-256 8d191bededfc60bc19b45ee1371d479550502299deff4aa0afa29bf70eda377a

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