Skip to main content

A Python library for sign language video and pose segmentation.

Project description

signlang-segmenter

A Python library for sign language segmentation.

Optical Flow

motion curve with segments

Important Naming Note

  • Distribution/package name: signlang-segmenter
  • Python import name: signlang_segmenter

Python imports use underscores, not dashes.

Current Layout

signlang-segmenter/
├── signlang_segmenter/
│   ├── __init__.py
│   ├── video/
│   │   ├── __init__.py
│   │   └── optical_flow/
│   │       ├── __init__.py
│   │       ├── segmenter.py
│   │       ├── motion_analyzer.py
│   │       ├── models.py
│   │       ├── utils.py
│   │       ├── exporter.py
│   │       └── visualization.py
│   └── pose/
│       └── __init__.py
├── examples/
│   └── basic_pipeline.ipynb
├── setup.py
└── README.md

Installation

Option 1: Install the library to use it

If you only want to use the package in your own project, install it directly from GitHub:

python -m pip install "git+https://github.com/24-mohamedyehia/signlang-segmenter.git"

Option 2: Install the project for development

If you want to modify the code and contribute, use an isolated environment and editable install:

  1. Install Miniconda if needed.
  2. Run:
git clone https://github.com/24-mohamedyehia/signlang-segmenter.git
cd signlang-segmenter
conda create -n signlang-segmenter python=3.11 -y
conda activate signlang-segmenter
python -m pip install --upgrade pip
python -m pip install -e .

Quick Import Check

import signlang_segmenter
import signlang_segmenter.video
import signlang_segmenter.pose

Segmentation API (MVP)

from signlang_segmenter.video import VideoSegmenter, SegmentExporter

segmenter = VideoSegmenter(
	roi_mode="full",
	smooth_window=11,
	min_len_sec=0.30,
	merge_gap_sec=0.45,
	pad_before_frames=10,
	pad_after_frames=12,
)

segments, info = segmenter.segment(VIDEO_PATH)
print(f"Found {len(segments)} segments: {segments}")

exporter = SegmentExporter(out_dir="../output/segments_out")
exporter.export(VIDEO_PATH, segments)

Visualization

from signlang_segmenter.video import plot_motion_segments

plot_motion_segments(segments, info)

The plot includes:

  • motion raw curve
  • motion smooth curve
  • adaptive high/low thresholds
  • shaded spans for detected segments

The info dict returned by VideoSegmenter.segment must include:

  • motion_raw
  • motion_smooth
  • fps
  • frame_idx
  • th_high_arr
  • th_low_arr

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

signlang_segmenter-0.1.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

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

signlang_segmenter-0.1.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file signlang_segmenter-0.1.0.tar.gz.

File metadata

  • Download URL: signlang_segmenter-0.1.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for signlang_segmenter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6a369e713d1ce04fb340bd64a6d45ad7c11824fbd1d1e9d99b4dc665310256e7
MD5 3daac1f3b3e54a42ba40424e982ecc53
BLAKE2b-256 a85b0d2c4778a6392c1ce8ecfb310f373c76b8d79aa17157c5032ba05d7572af

See more details on using hashes here.

File details

Details for the file signlang_segmenter-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for signlang_segmenter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e20c9a17c1b3a07b87eff561edcd841485839d4dcdf86374d4ed1d90d32013c
MD5 c198b28f40bff1bbb0f93acdf4d987d3
BLAKE2b-256 d2ffeb3a79e304cf38240b4ee76db454835e9441e53ba337ddf192acce456abc

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