Skip to main content

Parallel multiradial LBP features

Project description

fastLBP

Highly parallel LBP implementation

Important pre-release warning: If aborted mid-execution, this software sometimes create a lot of orphan processes that needs to be killed manually. Please, note down the name of your python script, search for Python in your task manager and look for the processes that correspond to your python script.

Requirements

FastLBP is tested with Python 3.11 on Windows 10, Debian 11, and Ubuntu 22.04

Python requirements are:

  • numpy >= 1.26.0
  • Cython (to build the binary modules, will be optional in the future)
  • scikit-image >= 0.22.0 (mostly for testing, we plan making this requirement optional in the future)
  • pandas >= 2.1.1
  • psutil

Installation

  • Activate or create a Python 3.11 environment (e.g. using conda create -y -n p11 python=3.11 && conda activate p11)
  • Verify you are using the right env
    • python --version and pip --version
  • Install a stable version from PyPI
    pip install fastlbp
  • Or build the latest version from sources
    git clone git@github.com:imbg-ua/fastLBP.git
    cd fastLBP
    # git checkout <branchname> # if you need a specific branch
    pip install . # this will install the fastlbp package in the current env
    
  • You can use import fastlbp as fastlbp now

GPU (CUDA) optional install

  • CPU-only install (default):
    pip install fastlbp
    
  • GPU build (opt-in): ensure CUDA is discoverable by setting CUDA_HOME (or having nvcc on PATH) and install the extra:
    export CUDA_HOME=/usr/local/cuda  # adjust to your CUDA install
    pip install fastlbp
    
  • To hard-require CUDA and fail if not found, set:
    FORCE_CUDA=1 pip install fastlbp
    

If CUDA isn’t detected, the build will proceed with CPU-only features. At runtime, you can check availability:

import fastlbp
fastlbp.fastlbp.is_cuda_available()  # -> True/False

Testing

# in repo root
conda activate fastlbp
pip install -e .
python -m unittest

Bug reporting

You can report a bug or suggest an improvement using our github issues

Implemented modules

run_fastlbp

Computes multiradial LBP of a single multichannel image in a parallel fashion.

Features:

  • Powered by fastlbp.lbp, our implementation of skimage.feature.local_binary_pattern
  • Concurrency is managed by Python's multiprocessing module
  • Parallel computation via multiprocessing.Pool of size ncpus
  • Efficient memory usage via multiprocessing.shared_memory to make sure processes do not create redundant copies of data
  • If save_intermediate_results=False then computes everything in RAM, no filesystem usage

TODO:

  • Use max_ram parameter to estimate optimal number of sub-processes and collect memory stats. Now max_ram is ignored.

Planned modules

run_chunked_skimage

Similar to 1. run_fastlbp, but each subprocess should compute LBP for its image chunk, not the whole image.

run_dask and run_chunked_dask

Similar to 1. run_fastlbp, but use Dask and dask.array.map_overlap for parallelisation instead of multiprocessing and manual data wrangling

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

fastlbp-0.3.2-cp313-cp313-manylinux_2_39_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

fastlbp-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

fastlbp-0.3.2-cp312-cp312-manylinux_2_39_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

fastlbp-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

fastlbp-0.3.2-cp311-cp311-manylinux_2_39_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

fastlbp-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

File details

Details for the file fastlbp-0.3.2-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for fastlbp-0.3.2-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 4696778c0fbdeae87c4d636d37ceb80f8068186cc2363ead6b5fac99e9411edb
MD5 356a1635dbce4acd9b192c82209a9a56
BLAKE2b-256 a3c03202303afe3b44a497d5b4e99a3b8f6ea7bb16474daa4e5cf84565bf9a90

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastlbp-0.3.2-cp313-cp313-manylinux_2_39_x86_64.whl:

Publisher: publish-to-pypi.yaml on imbg-ua/fastLBP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastlbp-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for fastlbp-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 dad92a3525b6c5a1f701ffa8862f8baadf95c3425910cad09ab4b70c0d90d676
MD5 100d5739db1c1d42035d1f6034f35c63
BLAKE2b-256 20caabcc31aba4bf3230949c37d74a7b9f15fb7bf12753ca75f2a0c454f0dca4

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastlbp-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: publish-to-pypi.yaml on imbg-ua/fastLBP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastlbp-0.3.2-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for fastlbp-0.3.2-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 4cac5ea9a7d318f7fec42742101aae060ba9d32f93fab0f846f212001db52eff
MD5 48a694f372c941e7617c51ae6a988130
BLAKE2b-256 9aa91fa5d306767edbacbe5dbb98d97795c373311991e1e5ed6638471833c331

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastlbp-0.3.2-cp312-cp312-manylinux_2_39_x86_64.whl:

Publisher: publish-to-pypi.yaml on imbg-ua/fastLBP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastlbp-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for fastlbp-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d834853ee8bb0372b75c08267241cf7a86c85067dcba25a604b7f0027094e583
MD5 63a9b28950bd775403b400749fe2b0a2
BLAKE2b-256 19820463373d22493d4d60fb8eaa4e87c63096a0f7daf0e5001b3825b0b5d5af

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastlbp-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: publish-to-pypi.yaml on imbg-ua/fastLBP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastlbp-0.3.2-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for fastlbp-0.3.2-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 2d806b5f80998b6009737f954e02143c116f840bdfdd3b040607650af4e482a9
MD5 f94fa7cc6ebfe833bb4f9362e5b29e8e
BLAKE2b-256 6879e612712d40ee5ad310f06af0018aa002093b8b549a3da7e3f7db2bc478d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastlbp-0.3.2-cp311-cp311-manylinux_2_39_x86_64.whl:

Publisher: publish-to-pypi.yaml on imbg-ua/fastLBP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastlbp-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for fastlbp-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 38544de7567a5491ea43bf11cc346666c9e4c010993398ba5e8e8525e5c410ac
MD5 60703847a8bcf62ff10f9071db345bfa
BLAKE2b-256 91a9824613a2c3debf904d2fe66ae1d4cdee4cedd281959fdc15c5c0cb6e0356

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastlbp-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: publish-to-pypi.yaml on imbg-ua/fastLBP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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