Skip to main content

A professional tool for cleaning duplicate or near-duplicate image frames using perceptual hashing and embeddings.

Project description

CleanFrames

CleanFrames is a Python library designed to clean and summarize video frames efficiently using embedding models and clustering techniques. It provides tools to process video frames, remove duplicates or near-duplicates, and generate concise reports and visualizations.

Key Features

  • Support for multiple embedding models to represent frames.
  • Various clustering methods to group similar frames.
  • Caching mechanisms to optimize performance.
  • Visualization tools to inspect clusters and embeddings.
  • Cleaning functions to remove redundant frames.
  • Reporting capabilities to summarize cleaning results.
  • Two main classes: CleanFrame for standard processing and CleanFrame_optimized for enhanced performance.

Installation

To install CleanFrames, you can clone the repository and install the required dependencies. (Note: The exact installation commands depend on your setup and are not specified in the code.)

git clone <repository-url>
cd cleanframes
pip install -r requirements.txt

Usage

Using CleanFrame

from cleanframes import CleanFrame

# Initialize with video path and parameters
cf = CleanFrame(
    video_path='path/to/video.mp4',
    embedding_model='clip-ViT-B-32',
    clustering_method='kmeans',
    cache_folder='cache/',
    verbose=True
)

# Load video frames
cf.load_frames()

# Generate embeddings for frames
cf.embed_frames()

# Cluster embeddings to group similar frames
cf.cluster_frames()

# Clean frames by removing duplicates or near-duplicates
cleaned_frames = cf.clean_frames()

# Generate report of cleaning
cf.report()

# Visualize clusters or embeddings
cf.visualize()

Using CleanFrame_optimized

from cleanframes import CleanFrame_optimized

# Initialize with video path and parameters
cf_opt = CleanFrame_optimized(
    video_path='path/to/video.mp4',
    embedding_model='clip-ViT-L-14',
    clustering_method='dbscan',
    cache_folder='cache_optimized/',
    verbose=True
)

# Load video frames with optimized method
cf_opt.load_frames()

# Generate embeddings using optimized pipeline
cf_opt.embed_frames()

# Cluster embeddings
cf_opt.cluster_frames()

# Clean frames
cleaned_frames_opt = cf_opt.clean_frames()

# Generate report
cf_opt.report()

# Visualize results
cf_opt.visualize()

Supported Embedding Models

CleanFrames supports various embedding models to convert video frames into numerical representations, including but not limited to:

  • CLIP models such as clip-ViT-B-32 and clip-ViT-L-14
  • Other models can be integrated as per user requirements.

Clustering Methods

The library provides different clustering algorithms to group similar frames:

  • KMeans clustering
  • DBSCAN clustering
  • Other clustering methods can be added or customized.

Caching

To improve performance, CleanFrames supports caching of intermediate results such as extracted frames and computed embeddings. Users can specify a cache folder where these results are stored and reused.

Visualization

CleanFrames includes visualization tools to help users inspect the clustering results and embedding distributions. This aids in understanding the cleaning process and verifying the quality of frame grouping.

Cleaning and Reporting

The cleaning functions remove redundant frames based on clustering results and embedding similarity. After cleaning, a report is generated summarizing the number of frames processed, removed, and retained, providing insights into the cleaning effectiveness.


For more detailed information and advanced usage, please refer to the source code and examples provided in the repository.

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

cleanframes-0.3.6.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

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

cleanframes-0.3.6-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file cleanframes-0.3.6.tar.gz.

File metadata

  • Download URL: cleanframes-0.3.6.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for cleanframes-0.3.6.tar.gz
Algorithm Hash digest
SHA256 f55be1f33107fb2fe6d5f1459478008609c67a2a70be9d1b6883aa02c4d33d82
MD5 33e8bc22d7ca03ded6ffe214f5b1b50f
BLAKE2b-256 e1d49c3adc9ff58b994e85fdaaf3cc58292d70306754928e23c6c0768f497c87

See more details on using hashes here.

File details

Details for the file cleanframes-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: cleanframes-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for cleanframes-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6f9f36ea26955f0c7c79402c33ec966fbdc42072b72a779978e59e93549d9e6a
MD5 d569687ceb3ddb626f1c6f84d03adf13
BLAKE2b-256 821eedb225bba954d004ef1c2a4d38dc390db5948ac0277a9b39bb671c624564

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