Last updated:
0 purchases
pyxu 2.0
Pyxu: Modular and Scalable Computational Imaging
Pyxu (pronounced [piksu], formerly known as Pycsou) is an open-source Python framework allowing scientists at any
level to quickly prototype/deploy hardware accelerated and out-of-core computational imaging pipelines at scale.
Thanks to its microservice architecture and tight integration with the PyData ecosystem, Pyxu supports a wide range
of imaging applications, scales, and computation architectures.
What Makes Pyxu Special?
Universal & Modular ๐: Unlike other frameworks which are specialized for particular imaging types, Pyxu is a
general-purpose computational imaging tool. No more wrestling with one-size-fits-all solutions that donโt quite fit!
Plug-and-Play Functionality ๐ฎ: Craft imaging pipelines effortlessly with advanced operator algebra logic. Pyxu
automates the tedious bits, like computing gradients, proximal operators, and computing hyperparameters.
High-Performance Computing ๐: Whether youโre using CPUs or GPUs, Pyxu works with both. It employs Duck arrays, just-in-time compilation via Numba, and relies on CuPy and Dask for
GPU/distributed computing needs.
Flexible & Adaptable ๐ ๏ธ: Combat the common woes of software rigidity with Pyxuโs ultra-flexible framework.
Bayesian techniques requiring extensive software flexibility are a breeze here.
Hardware Acceleration ๐ฅ๏ธ: Leverage built-in support for hardware acceleration to ramp up your computational
speed, all thanks to our module-agnostic codebase.
Distributed Computing ๐: Got a lot of data? No worries! Pyxu works at scale and is easily deployable on
institutional clusters using industry-standard technologies like Kubernetes and Docker.
Deep Learning Interoperability ๐ค: Integrate with major deep learning frameworks like PyTorch and JAX for state-of-the-art computational
imaging techniques.
Why is Pyxu Necessary?
In the realm of computer vision ๐ท, digital image restoration and enhancement techniques have established themselves as
indispensable pillars. These techniques, aiming to restore and elevate the quality of degraded or partially observed
images, have witnessed unprecedented progress ๐ in recent times. Thanks to potent image priors, weโve now reached an
era where image restoration and enhancement methods are incredibly advanced โจ โso much so that we might be approaching a
pinnacle in terms of performance and accuracy.
However, itโs not all roses ๐น.
Despite their leaps in progress, advanced image reconstruction methods often find themselves trapped in a vicious cycle
of limited adaptability, usability, and reproducibility. Many advanced computational imaging solutions, while
effective, are tailored for specific use-cases and seldom venture beyond the confines of a proof-of-concept ๐ง. These
niche solutions demand deep expertise to customize and deploy, making their adoption in production pipelines
challenging.
In essence, the imaging domain is desperately seeking what the deep learning community found in frameworks like PyTorch, TensorFlow, or Keras โa flexible,
modular, and powerful environment that accelerates the adoption of cutting-edge methods in real-world settings. Pyxu
stands as an answer to this call: a groundbreaking, open-source computational imaging software framework tailored for
Python enthusiasts ๐.
Basic Installation
The core of Pyxu is lightweight and straightforward to install. Youโll need Python (>= 3.10, < 3.13) and a few
mandatory dependencies. While these dependencies will be automatically installed via pip, we highly recommend
installing NumPy and SciPy via conda to benefit from optimized math libraries.
First, to install NumPy and SciPy from conda-forge:
conda install -c conda-forge numpy scipy
And then install Pyxu:
pip install pyxu
Thatโs it for the basic installation; youโre ready to go! Check out the install guide for instructions on how to build from source, or for more
advanced options.
Comparison with other Frameworks
Pyxu offers a comprehensive suite of algorithms, including the latest primal-dual splitting methods for nonsmooth
optimization. The feature set is robust and mature, positioning it as a leader in the computational imaging arena.
Feature Maturity - Comparison
Package Name ๐ฆ
Operator Types ๐ ๏ธ
Operator Algebra ๐ฏ
Algorithmic Suite ๐
Application Focus ๐ฏ
Remarks ๐ฌ
PyLops
๐ด Linear oeprators
๐ก Partial
๐ด Least-squares & sparse reconstructions
๐ก Wave-processing, geophysics
๐ด Linear operators based on NumPyโs old matrix interface
PyProximal
๐ด Proximable functionals
๐ด None
๐ด Non-smooth convex optimization
๐ข None
๐ด Under early development, unstable API
Operator Discretization Library (ODL)
๐ข (Non)linear operators, differentiable/proximable functionals
๐ข Full
๐ข Smooth, non-smooth & hybrid (non-)convex optimization
๐ข None
๐ด Domain-specific language for mathematicians
GlobalBioIm
๐ข (Non)linear operators, differentiable/proximable functionals
๐ข Full
๐ข Smooth, non-smooth & hybrid convex optimization
๐ข None
๐ด MATLAB-based, unlike most DL frameworks
SigPy
๐ก Linear operators, proximable functionals
๐ก Partial
๐ก Smooth & non-smooth convex optimization
๐ด MRI
๐ด Very limited suite of operators, functionals, and algorithms
SCICO
๐ข (Non)linear operators, differentiable/proximable functionals
๐ข Full
๐ข Smooth, non-smooth & hybrid (non-)convex optimization
๐ข None
๐ก JAX-based (pure functions only, no mutation, etc.)
DeepInv
๐ข (Non)linear operators, differentiable/proximable functionals
๐ก Partial
๐ข Smooth, non-smooth & hybrid (non-)convex optimization
๐ก Deep Learning
๐ก PyTorch-based (lots of dependencies)
Pyxu
๐ข (Non)linear operators, differentiable/proximable functionals
๐ข Full
๐ข Smooth, non-smooth & hybrid (non-)convex optimization
๐ข None
๐ข Very rich suite of operators, functionals, algorithms & HPC features
Pyxu is unique in supporting both out-of-core and distributed computing. Additionally, it offers robust support for JIT
compilation and GPU computing via Numba and CuPy respectively. Most contenders either offer partial support or lack
these features altogether.
HPC Features - Comparison
Package Name ๐ฆ
Auto Diff/Prox โ๏ธ
GPU Computing ๐ฅ๏ธ
Out-of-core Computing ๐
JIT Compiling โฑ๏ธ
PyLops
๐ด No
๐ข Yes (CuPy)
๐ด No
๐ก Partial (LLVM via Numba)
PyProximal
๐ด No
๐ด No
๐ด No
๐ด No
Operator Discretization Library (ODL)
๐ข Yes
๐ก Very limited (CUDA)
๐ด No
๐ด No
GlobalBioIm
๐ข Yes
๐ข Yes (MATLAB)
๐ด No
๐ด No
SigPy
๐ด No
๐ข Yes (CuPy)
๐ก Manual (MPI)
๐ด No
SCICO
๐ข Yes
๐ข Yes + TPU (JAX)
๐ด No
๐ข Yes (XLA via JAX)
DeepInv
๐ข Autodiff support
๐ข Yes (PyTorch)
๐ด No
๐ก Partial(XLA via torch.compile)
Pyxu
๐ข Yes
๐ข Yes (CuPy)
๐ข Yes (Dask)
๐ข Yes (LLVM and CUDA via Numba)
Get Started Now!
Ready to dive in? ๐โโ๏ธ Our tutorial kicks off with an introductory overview of computational imaging and Bayesian
reconstruction. Our user guide then provides an in-depth tour of Pyxuโs multitude of features through concrete examples.
So, gear up to embark on a transformative journey in computational imaging.
Join Our Community
Pyxu is open-source and ever-evolving ๐. Your contributions, whether big or small, can make a significant impact. So
come be a part of the community thatโs setting the pace for computational imaging ๐ฑ.
Letโs accelerate the transition from research prototypes to production-ready solutions. Dive into Pyxu today and make
computational imaging more powerful, efficient, and accessible for everyone! ๐
Cite us
@software{pyxu-framework,
author = {Matthieu Simeoni and
Sepand Kashani and
Joan Ruรฉ-Queralt and
Pyxu Developers},
title = {pyxu-org/pyxu: pyxu},
publisher = {Zenodo},
doi = {10.5281/zenodo.4486431},
url = {https://doi.org/10.5281/zenodo.4486431}
}
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.