Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Pifuhd | 8,668 | 3 days ago | 65 | other | Python | |||||
High-Resolution 3D Human Digitization from A Single Image. | ||||||||||
Open3d | 8,368 | a day ago | 782 | other | C++ | |||||
Open3D: A Modern Library for 3D Data Processing | ||||||||||
Openmvg | 4,773 | 2 days ago | 193 | mpl-2.0 | C++ | |||||
open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion. | ||||||||||
Prnet | 4,769 | 8 months ago | n,ull | mit | Python | |||||
Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network (ECCV 2018) | ||||||||||
Vrn | 4,368 | 2 years ago | 4 | mit | MATLAB | |||||
:man: Code for "Large Pose 3D Face Reconstruction from a Single Image via Direct Volumetric CNN Regression" | ||||||||||
Awesome_3dreconstruction_list | 3,038 | a year ago | 5 | |||||||
A curated list of papers & resources linked to 3D reconstruction from images. | ||||||||||
Alicevision | 2,454 | 7 hours ago | 80 | other | C++ | |||||
Photogrammetric Computer Vision Framework | ||||||||||
Deep3dfacereconstruction | 1,633 | 4 months ago | 89 | mit | Python | |||||
Accurate 3D Face Reconstruction with Weakly-Supervised Learning: From Single Image to Image Set (CVPRW 2019) | ||||||||||
Deca | 1,578 | a month ago | 115 | other | Python | |||||
DECA: Detailed Expression Capture and Animation (SIGGRAPH 2021) | ||||||||||
Pixel2mesh | 1,163 | a year ago | 44 | apache-2.0 | Python | |||||
Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images. In ECCV2018. |
Master | Development | Anaconda binaries |
---|---|---|
|
Iterative image reconstruction (IIR) methods frequently require regularisation to ensure convergence and make inverse problem well-posed. The CCPi-Regularisation Toolkit (CCPi-RGL) toolkit provides a set of 2D/3D regularisation strategies to guarantee a better performance of IIR methods (higher SNR and resolution). The regularisation modules for scalar and vectorial datasets are based on the proximal operator framework and can be used with proximal splitting algorithms, such as PDHG, Douglas-Rachford, ADMM, FISTA and others. While the main target for CCPi-RGL is tomographic image reconstruction, the toolkit can be used for image denoising problems. The core modules are written in C-OMP and CUDA languages and wrappers for Matlab and Python are provided. Software also can be used by running in parallel across multiple GPU devices on a PC or a compute node of a cluster.
The package comes as a CMake project and additional wrappers for Python and Matlab.
To install precompiled binaries, you need conda
and install from ccpi
channel using :
conda install ccpi-regulariser -c ccpi -c conda-forge
In order to compile C/C++ sources and additional wrappers from source code for numpy 1.12 and python 3.6, the recommended way is:
git clone https://github.com/vais-ral/CCPi-Regularisation-Toolkit
cd CCPi-Regularisation-Toolkit
export CCPI_BUILD_ARGS="--numpy 1.12 --python 3.6"
build/jenkins-build.sh
this will install conda build
environment and compiles C/C++ and Python wrappers and performs basic tests for environment with python 3.6 and numpy 1.12.
If you want to build directly using cmake, install CMake (v.>=3) to configure it. Additionally you will need a C compiler, make
(on linux) and CUDA SDK where available. The toolkit may be used directly from C/C++ as it is compiled as a shared library (check-out the include files in Core
for this)
CCPi-Regularisation-Toolkit
,cmake
to configure (or cmake-gui
, or ccmake
, or cmake3
). Use additional flags to fine tune the configuration.Flags used during configuration
CMake flag | type | meaning |
---|---|---|
BUILD_PYTHON_WRAPPER |
bool |
ON|OFF whether to build the Python wrapper |
BUILD_MATLAB_WRAPPER |
bool |
ON|OFF whether to build the Matlab wrapper |
CMAKE_INSTALL_PREFIX |
path | your favourite install directory |
PYTHON_DEST_DIR |
path | python modules install directory (default ${CMAKE_INSTALL_PREFIX}/python ) |
MATLAB_DEST_DIR |
path | Matlab modules install directory (default ${CMAKE_INSTALL_PREFIX}/matlab ) |
BUILD_CUDA |
bool |
ON|OFF whether to build the CUDA regularisers |
CONDA_BUILD |
bool |
ON|OFF whether it is installed with setup.py install
|
Matlab_ROOT_DIR |
path | Matlab directory |
PYTHON_EXECUTABLE |
path | /path/to/python/executable |
Here an example of build on Linux (see also run.sh
for additional info):
git clone https://github.com/vais-ral/CCPi-Regularisation-Toolkit.git
cd build
cmake .. -DCONDA_BUILD=OFF -DBUILD_MATLAB_WRAPPER=ON -DBUILD_PYTHON_WRAPPER=ON -DBUILD_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install
make install
cd install/python
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:../lib
Python binaries are distributed via the ccpi conda channel. Currently we produce packages for Linux64, Python 2.7, 3.5 and 3.6, NumPy 1.12 and 1.13.
conda install ccpi-regulariser -c ccpi -c conda-forge
export CIL_VERSION=`date +%Y.%m` (Unix) / set CIL_VERSION=19.10 (Windows)
conda build recipe/ --numpy 1.15 --python 3.7
conda install ccpi-regulariser=${CIL_VERSION} --use-local --force-reinstall # doesn't work?
conda install -c file://${CONDA_PREFIX}/conda-bld/ ccpi-regulariser=${CIL_VERSION} --force-reinstall # try this one
cd demos/
python demo_cpu_regularisers.py # to run CPU demo
python demo_gpu_regularisers.py # to run GPU demo
If passed CONDA_BUILD=ON
the software will be installed by issuing python setup.py install
which will install in the system python (or whichever other python it's been picked up by CMake at configuration time.)
If passed CONDA_BUILD=OFF
the software will be installed in the directory pointed by ${PYTHON_DEST_DIR}
which defaults to ${CMAKE_INSTALL_PREFIX}/python
. Therefore this directory should be added to the PYTHONPATH
.
If Python is not picked by CMake you can provide the additional flag to CMake -DPYTHON_EXECUTABLE=/path/to/python/executable
.
The toolkit can be used by running in parallel across multiple GPU devices on a PC or a compute node of a cluster. In order to initiate a parallel run on your GPUs you will need an MPI library, such as, mpi4py. See multi_gpu demo script in demos folder, it can be run as
mpirun -np 2 python multi_gpu.py -g -s -gpus 2
where -np
parameter defines the total number of processes and -gpus
defines the number of available GPUs.
Matlab wrapper will install in the ${MATLAB_DEST_DIR}
directory, which defaults to ${CMAKE_INSTALL_PREFIX}/matlab
If Matlab is not picked by CMake, you could add -DMatlab_ROOT_DIR=<Matlab directory>
.
Because you've installed the modules in <your favourite install directory>
you need to instruct Matlab to look in those directories:
PATH="/path/to/mex/:$PATH" LD_LIBRARY_PATH="/path/to/library:$LD_LIBRARY_PATH" matlab
By default /path/to/mex
is ${CMAKE_INSTALL_PREFIX}/bin
and /path/to/library/
is ${CMAKE_INSTALL_PREFIX}/lib
On Windows the dll
and the mex modules must reside in the same directory. It is sufficient to add the directory at the beginning of the m-file.
addpath(/path/to/library);
cd src/Matlab/mex_compile
compileCPU_mex.m % to compile CPU modules
compileGPU_mex.m % to compile GPU modules (see instructions in the file)
Kazantsev, D., Jrgensen, J.S., Andersen, M., Lionheart, W.R., Lee, P.D. and Withers, P.J., 2018. Joint image reconstruction method with correlative multi-channel prior for X-ray spectral computed tomography. Inverse Problems, 34(6) Results can be reproduced using the following SOFTWARE
CCPi-RGL software is a product of the CCPi group and STFC SCD software developers. Any relevant questions/comments can be e-mailed to Daniil Kazantsev at [email protected]