Skip to main content

Pytorch Based - Efficient and Lightweight Ear Segmentation

Project description

🦻 Ear Segmentation AI

License: MIT PyPI Python Downloads Code style: black Ruff

A state-of-the-art ear segmentation library powered by deep learning. Detect and segment human ears in images and video streams with high accuracy and real-time performance.

Ear Segmentation Demo

✨ Features

  • 🚀 High Performance: Optimized for both CPU and GPU processing
  • 🎯 Accurate Detection: State-of-the-art U-Net architecture with ResNet18 encoder
  • 📷 Multiple Input Sources: Images, videos, webcam, and URLs
  • 🔄 Real-time Processing: Smooth webcam segmentation with temporal smoothing
  • 📊 Batch Processing: Efficient processing of multiple images
  • 🛠️ Easy to Use: Simple Python API and CLI interface
  • 🎨 Visualization Tools: Built-in mask overlay and heatmap visualization
  • 📦 Lightweight: Minimal dependencies, easy to install

🚀 Quick Start

Installation

# Using pip
pip install earsegmentationai

# Using poetry (recommended)
poetry add earsegmentationai

For detailed installation instructions, see Installation Guide.

Basic Usage

Python API

from earsegmentationai import ImageProcessor

# Initialize processor
processor = ImageProcessor(device="cpu")  # or "cuda:0" for GPU

# Process single image
result = processor.process("path/to/image.jpg")
print(f"Ear detected: {result.has_ear}")
print(f"Ear area: {result.ear_percentage:.2f}% of image")

# Process with visualization
result = processor.process(
    "path/to/image.jpg",
    return_visualization=True
)

Command Line

# Process single image
earsegmentationai process-image path/to/image.jpg --save-viz

# Process directory
earsegmentationai process-image path/to/images/ -o output/

# Real-time webcam
earsegmentationai webcam --device cuda:0

# Process video
earsegmentationai process-video path/to/video.mp4 -o output.avi

📚 Documentation

📚 Advanced Usage

Batch Processing

from earsegmentationai import ImageProcessor

processor = ImageProcessor(device="cuda:0")

# Process multiple images
results = processor.process([
    "image1.jpg",
    "image2.jpg",
    "image3.jpg"
])

print(f"Detection rate: {results.detection_rate:.1f}%")
print(f"Average ear area: {results.average_ear_area:.0f} pixels")

Video Processing

from earsegmentationai import VideoProcessor

processor = VideoProcessor(
    device="cuda:0",
    skip_frames=2,      # Process every 3rd frame
    smooth_masks=True   # Temporal smoothing
)

# Process video file
stats = processor.process(
    "video.mp4",
    output_path="output.mp4",
    display=True
)

print(f"FPS: {stats['average_fps']:.1f}")
print(f"Detection rate: {stats['detection_rate']:.1f}%")

Custom Configuration

from earsegmentationai import ImageProcessor, Config

# Create custom configuration
config = Config(
    model={"architecture": "FPN", "encoder_name": "resnet50"},
    processing={"input_size": (640, 480), "batch_size": 8}
)

processor = ImageProcessor(config=config, threshold=0.7)

🔧 Configuration

Model Settings

Parameter Default Description
architecture "Unet" Model architecture (Unet, FPN, PSPNet, DeepLabV3, DeepLabV3Plus)
encoder_name "resnet18" Encoder backbone
input_size (480, 320) Input image size (width, height)
threshold 0.5 Binary mask threshold

Processing Options

Parameter Default Description
device "cpu" Processing device (cpu, cuda:0)
batch_size 1 Batch size for processing
skip_frames 0 Frame skipping for video (0 = process all)
smooth_masks True Enable temporal smoothing for video

🏗️ Architecture

The library uses a modular architecture with clear separation of concerns:

earsegmentationai/
├── core/           # Core model and prediction logic
├── preprocessing/  # Image preprocessing and validation
├── postprocessing/ # Visualization and export utilities
├── api/           # High-level Python API
├── cli/           # Command-line interface
└── utils/         # Logging, exceptions, and helpers

🧪 Testing

# Run all tests
make test

# Run with coverage
make test-cov

# Run specific test suite
poetry run pytest tests/unit/test_transforms.py

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

# Setup development environment
make install-dev

# Run linting and formatting
make format
make lint

# Run pre-commit hooks
make pre-commit

📈 Performance

Device Image Size FPS Memory
CPU (i7-9700K) 480×320 15 200 MB
GPU (RTX 3080) 480×320 120 400 MB
GPU (RTX 3080) 1920×1080 45 800 MB

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support


Made with ❤️ by the Ear Segmentation AI Team

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

earsegmentationai-2.0.0.tar.gz (33.7 kB view details)

Uploaded Source

Built Distribution

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

earsegmentationai-2.0.0-py3-none-any.whl (39.2 kB view details)

Uploaded Python 3

File details

Details for the file earsegmentationai-2.0.0.tar.gz.

File metadata

  • Download URL: earsegmentationai-2.0.0.tar.gz
  • Upload date:
  • Size: 33.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for earsegmentationai-2.0.0.tar.gz
Algorithm Hash digest
SHA256 2e7ca18dce0218c996b593ef33b8bcd70999c55e4b55b06cfa4b09cd1df88820
MD5 21d53f6ec500dd1f59a6cb9c18497d53
BLAKE2b-256 854263cf0353e938611768cde3b6c243254a1b456b441b38b2924161ad998e9b

See more details on using hashes here.

File details

Details for the file earsegmentationai-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for earsegmentationai-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 07f6e33331351e75fe1e10f8b7fd8530bae983b9cc2a6b758202f4514e033f93
MD5 ac050a53719de6f90b54264fb944824a
BLAKE2b-256 5c354437be62e3770daef773e41c402c8a248605fd40ad0595a9590473dcb49c

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