A fast poisson image editing implementation that can utilize multi-core CPU or GPU to handle a high-resolution image input.

Overview

Poisson Image Editing - A Parallel Implementation

PyPI Docs Test

Jiayi Weng (jiayiwen), Zixu Chen (zixuc)

Poisson Image Editing is a technique that can fuse two images together without producing artifacts. Given a source image and its corresponding mask, as well as a coordination on the target image, the algorithm always yields amazing result.

This project aims to provide a fast poisson image editing algorithm (based on Jacobi Method) that can utilize multi-core CPU or GPU to handle a high-resolution image input.

Installation

Linux/macOS

# install cmake >= 3.4
# if you don't have sudo (like GHC), install cmake from source
# on macOS, type `brew install cmake`
$ pip install fpie

# or install from source
$ pip install .

Extensions

Backend EquSolver GridSolver Documentation Dependency for installation
NumPy ✔️ ✔️ docs pip install numpy
Numba ✔️ ✔️ docs pip install numba
GCC ✔️ ✔️ docs cmake, gcc
OpenMP ✔️ ✔️ docs cmake, gcc (on macOS you need to change clang to gcc-11)
CUDA ✔️ ✔️ docs nvcc
MPI ✔️ ✔️ docs pip install mpi4py and mpicc (on macOS: brew install open-mpi)
Taichi ✔️ ✔️ docs pip install taichi

After installation, you can use --check-backend option to verify:

$ fpie --check-backend
['numpy', 'numba', 'taichi-cpu', 'taichi-gpu', 'gcc', 'openmp', 'mpi', 'cuda']

The above output shows all extensions have successfully installed.

Usage

We have prepared the test suite to run:

$ cd tests && ./data.py

This script will download 8 tests from GitHub, and create 10 images for benchmarking (5 circle, 5 square). To run:

$ fpie -s test1_src.jpg -m test1_mask.jpg -t test1_tgt.jpg -o result1.jpg -h1 -150 -w1 -50 -n 5000 -g max
$ fpie -s test2_src.png -m test2_mask.png -t test2_tgt.png -o result2.jpg -h1 130 -w1 130 -n 5000 -g src
$ fpie -s test3_src.jpg -m test3_mask.jpg -t test3_tgt.jpg -o result3.jpg -h1 100 -w1 100 -n 5000 -g max
$ fpie -s test4_src.jpg -m test4_mask.jpg -t test4_tgt.jpg -o result4.jpg -h1 100 -w1 100 -n 5000 -g max
$ fpie -s test5_src.jpg -m test5_mask.png -t test5_tgt.jpg -o result5.jpg -h0 -70 -w0 0 -h1 50 -w1 0 -n 5000 -g max
$ fpie -s test6_src.png -m test6_mask.png -t test6_tgt.png -o result6.jpg -h1 50 -w1 0 -n 5000 -g max
$ fpie -s test7_src.jpg -t test7_tgt.jpg -o result7.jpg -h1 50 -w1 30 -n 5000 -g max
$ fpie -s test8_src.jpg -t test8_tgt.jpg -o result8.jpg -h1 90 -w1 90 -n 10000 -g max

Here are the results:

# Source image Mask image Target image Result image
1
2
3
4
5
6
7 /
8 /

GUI

$ fpie-gui -s test3_src.jpg -t test3_tgt.jpg -o result.jpg -b cuda -n 10000

We provide a simple GUI for real-time seamless cloning. You need to use your mouse to draw a rectangle on top of the source image, and click a point in target image. After that the result will automatically be generated. In the end, you can press ESC to terminate the program.

Backend and Solver

We have provided 7 backends. Each backend has two solvers: EquSolver and GridSolver. You can find the difference between these two solvers in the next section.

For different backend usage, please check out the related documentation here.

For other usage, please run fpie -h or fpie-gui -h to see the hint.

Benchmark Result

See benchmark result and report.

Algorithm Detail

The general idea is to keep most of gradient in source image, while matching the boundary of source image and target image pixels.

The gradient is computed by

After calculating the gradient in source image, the algorithm tries to solve the following problem: given the gradient and the boundary value, calculate the approximate solution that meets the requirement, i.e., to keep target image's gradient as similar as the source image. It can be formulated as , where , N is the number of pixels in the mask, A is a giant sparse matrix because each line of A only contains at most 4 non-zero value (neighborhood), b is the gradient from source image, and x is the result value.

N is always a large number, i.e., greater than 50k, so the Gauss-Jordan Elimination cannot be directly applied here because of the high time complexity O(N^3). People use Jacobi Method to solve the problem. Thanks to the sparsity of matrix A, the overall time complexity is O(MN) where M is the number of iteration performed by poisson image editing.

This project parallelizes Jacobi method to speed up the computation. To our best knowledge, there's no public project on GitHub that implements poisson image editing with either OpenMP, or MPI, or CUDA. All of them can only handle a small size image workload.

EquSolver vs GridSolver

Usage: --method {equ,grid}

EquSolver directly constructs the equations by re-labeling the pixel, and use Jacobi method to get the solution via .

GridSolver uses the same Jacobi iteration, however, it keeps the 2D structure of the original image instead of re-labeling the pixel in the mask. It may take some advantage when the mask region covers all of the image, because in this case GridSolver can save 4 read instructions by directly calculating the neighborhood's coordinate.

If the GridSolver's parameter is carefully tuned (--grid-x and --grid-y), it can always perform better than EquSolver with different backend configuration.

Gradient for PIE

Usage: -g {max,src,avg}

The PIE paper states some variant of gradient calculation such as Equ. 12: using the maximum gradient to perform "mixed seamless cloning". We also provide such an option in our program:

  • src: only use the gradient from source image
  • avg: use the average gradient of source image and target image
  • max: use the max gradient of source and target image

The following example shows the difference between these three methods:

# target image --gradient=src --gradient=avg --gradient=max
3
4
8

Miscellaneous (for 15-618 course project)

Project proposal and milestone

Final report and 5min video

You might also like...
A simplistic and efficient pure-python neural network library from Phys Whiz with CPU and GPU support.
A simplistic and efficient pure-python neural network library from Phys Whiz with CPU and GPU support.

A simplistic and efficient pure-python neural network library from Phys Whiz with CPU and GPU support.

Copy Paste positive polyp using poisson image blending for medical image segmentation
Copy Paste positive polyp using poisson image blending for medical image segmentation

Copy Paste positive polyp using poisson image blending for medical image segmentation According poisson image blending I've completely used it for bio

Unofficial pytorch implementation of the paper "Dynamic High-Pass Filtering and Multi-Spectral Attention for Image Super-Resolution"

DFSA Unofficial pytorch implementation of the ICCV 2021 paper "Dynamic High-Pass Filtering and Multi-Spectral Attention for Image Super-Resolution" (p

Implementation of 'lightweight' GAN, proposed in ICLR 2021, in Pytorch. High resolution image generations that can be trained within a day or two
Implementation of 'lightweight' GAN, proposed in ICLR 2021, in Pytorch. High resolution image generations that can be trained within a day or two

512x512 flowers after 12 hours of training, 1 gpu 256x256 flowers after 12 hours of training, 1 gpu Pizza 'Lightweight' GAN Implementation of 'lightwe

Implementation for HFGI: High-Fidelity GAN Inversion for Image Attribute Editing
Implementation for HFGI: High-Fidelity GAN Inversion for Image Attribute Editing

HFGI: High-Fidelity GAN Inversion for Image Attribute Editing High-Fidelity GAN Inversion for Image Attribute Editing Update: We released the inferenc

Very simple NCHW and NHWC conversion tool for ONNX. Change to the specified input order for each and every input OP. Also, change the channel order of RGB and BGR. Simple Channel Converter for ONNX.
Very simple NCHW and NHWC conversion tool for ONNX. Change to the specified input order for each and every input OP. Also, change the channel order of RGB and BGR. Simple Channel Converter for ONNX.

scc4onnx Very simple NCHW and NHWC conversion tool for ONNX. Change to the specified input order for each and every input OP. Also, change the channel

Img-process-manual -  Utilize Python Numpy and Matplotlib to realize OpenCV baisc image processing function
Img-process-manual - Utilize Python Numpy and Matplotlib to realize OpenCV baisc image processing function

Img-process-manual - Opencv Library basic graphic processing algorithm coding reproduction based on Numpy and Matplotlib library

Multiple types of NN model optimization environments. It is possible to directly access the host PC GUI and the camera to verify the operation. Intel iHD GPU (iGPU) support. NVIDIA GPU (dGPU) support.
Multiple types of NN model optimization environments. It is possible to directly access the host PC GUI and the camera to verify the operation. Intel iHD GPU (iGPU) support. NVIDIA GPU (dGPU) support.

mtomo Multiple types of NN model optimization environments. It is possible to directly access the host PC GUI and the camera to verify the operation.

GrabGpu_py: a scripts for grab gpu when gpu is free

GrabGpu_py a scripts for grab gpu when gpu is free. WaitCondition: gpu_memory

Comments
  •  Legacy-install-failure installing fpie package #64

    Legacy-install-failure installing fpie package #64

    I had some problems with installing the fpie package. I already updated the wheel and installed the cmake package manually.

    image

    • OS: Ubuntu debian 18.04.6 LTS
    • CUDA 11.4
    • Nvidia RTX A5000 and Nvidia GeForce RTX 3090
    • Browser firefox
    opened by toonpeters 3
  • some questions about border treatment

    some questions about border treatment

    First of all, I highly appreciate this great work, which implements lots of methods to perform poisson image editing with different backends, where I really value the promising implementations of CUDA and Taichi which enable me to use poisson image editing during my deep network training although it isn't differentiate. Although it seems perfect right now, I may have a small issue about the special treatment of image boundary, because it's likely that the blending result is less satisfactory if the mask touches the image border.

    https://github.com/Trinkle23897/Fast-Poisson-Image-Editing/blob/d605cf90542ddac7cd47ae830f713510f1a5d935/fpie/process.py#L183-L187

    Since my mask will touch the image border, so the codes above will forcely set the mask value to 0 (instead of keeping the original 255). I think this is because the current implementation don't give a special treatment to this case, and therefore if the target image have wrong values inside the masked region (e.g. all zeros inside the mask) and we use gradient="src", the filled values will definitely affect the blending results because the filled values are also involved in the boundary constraints (some mask values are set to zero, see above).

    I wonder to know, if I want to address this, what should I do and modify the codes so as to keep the changes minimum?

    Thank you very much!

    question 
    opened by Karbo123 3
  • Batch processing

    Batch processing

    Hello, Is there any way to process images in batch? So let's say I have three folders, in which dst/src/masks are already rescaled and aligned and I just want to take triplets with the same name, blend them and output it in a separate folder. I also wonder whether solver reinitialization produces significant overhead if you do it one by one.

    question 
    opened by dmonkoff 1
  • fpie failed building in windows 11 / python 3.10.6

    fpie failed building in windows 11 / python 3.10.6

    Hello

    Here are my logs from anaconda virutal env terminal :

    pip install vie

    Here is the log

    (sd-inf) C:\Users\B\Desktop\stablediffusion\stablediffusion-infinity>pip install fpie Collecting fpie Using cached fpie-0.2.4.tar.gz (29 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: cmake>=3.4 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from fpie) (3.24.1.1) Requirement already satisfied: opencv-python-headless>=4.2 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from fpie) (4.6.0.66) Requirement already satisfied: numpy>=1.18 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from fpie) (1.23.3) Requirement already satisfied: taichi>=1.0 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from fpie) (1.1.3) Requirement already satisfied: numba>=0.51 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from fpie) (0.56.3) Requirement already satisfied: llvmlite<0.40,>=0.39.0dev0 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from numba>=0.51->fpie) (0.39.1) Requirement already satisfied: setuptools in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from numba>=0.51->fpie) (63.4.1) Requirement already satisfied: sourceinspect>=0.0.4 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from taichi>=1.0->fpie) (0.0.4) Requirement already satisfied: colorama in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from taichi>=1.0->fpie) (0.4.5) Requirement already satisfied: rich in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from taichi>=1.0->fpie) (12.6.0) Requirement already satisfied: dill in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from sourceinspect>=0.0.4->taichi>=1.0->fpie) (0.3.5.1) Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from rich->taichi>=1.0->fpie) (0.9.1) Requirement already satisfied: pygments<3.0.0,>=2.6.0 in c:\users\b\anaconda3\envs\sd-inf\lib\site-packages (from rich->taichi>=1.0->fpie) (2.13.0) Building wheels for collected packages: fpie Building wheel for fpie (setup.py) ... error error: subprocess-exited-with-error

    × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [62 lines of output] running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-cpython-310 creating build\lib.win-amd64-cpython-310\fpie copying fpie\args.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\cli.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\gui.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\io.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\np_solver.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\numba_solver.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\process.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\taichi_solver.py -> build\lib.win-amd64-cpython-310\fpie copying fpie_init_.py -> build\lib.win-amd64-cpython-310\fpie running build_ext -- Building for: Visual Studio 16 2019 -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044. -- The C compiler identification is MSVC 19.29.30146.0 -- The CXX compiler identification is MSVC 19.29.30146.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Git: C:/Program Files/Git/cmd/git.exe (found version "2.36.0.windows.1") -- downloading/updating pybind11 -- pybind11 directory not found, cloning... Cloning into 'C:/Users/B/AppData/Local/Temp/pip-install-5bykcwlg/fpie_1af82193c262414a803966f640d8358b/pybind11'... -- Switched to a new branch 'stable' -- branch 'stable' set up to track 'origin/stable'.

      -- pybind11 v2.10.0
      -- Found PythonInterp: C:/Users/B/anaconda3/envs/sd-inf/python.exe (found suitable version "3.10.6", minimum required is "3.6")
      -- Found PythonLibs: C:/Users/B/anaconda3/envs/sd-inf/libs/python310.lib
      -- Performing Test HAS_MSVC_GL_LTCG
      -- Performing Test HAS_MSVC_GL_LTCG - Success
      -- Found OpenMP_C: -openmp (found version "2.0")
      -- Found OpenMP_CXX: -openmp (found version "2.0")
      -- Found OpenMP: TRUE (found version "2.0")
      -- Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS)
      -- Could NOT find MPI_CXX (missing: MPI_CXX_LIB_NAMES MPI_CXX_HEADER_DIR MPI_CXX_WORKS)
      -- Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND)
      -- Found CUDA: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7 (found version "11.7")
      -- The CUDA compiler identification is NVIDIA 11.7.99
      -- Detecting CUDA compiler ABI info
      -- Detecting CUDA compiler ABI info - done
      -- Check for working CUDA compiler: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe - skipped
      -- Detecting CUDA compile features
      -- Detecting CUDA compile features - done
      -- Found PythonInterp: C:/Users/B/anaconda3/envs/sd-inf/python.exe (found suitable version "3.10.6", minimum required is "3")
      -- Found PythonLibs: C:/Users/B/anaconda3/envs/sd-inf/libs/python310.lib (found suitable version "3.10.6", minimum required is "3.10")
      -- Configuring done
      -- Generating done
      -- Build files have been written to: C:/Users/B/AppData/Local/Temp/pip-install-5bykcwlg/fpie_1af82193c262414a803966f640d8358b/build/temp.win-amd64-cpython-310/Release
      error: [WinError 2] Le fichier spécifié est introuvable
      [end of output]
    

    note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for fpie Running setup.py clean for fpie Failed to build fpie Installing collected packages: fpie Running setup.py install for fpie ... error error: subprocess-exited-with-error

    × Running setup.py install for fpie did not run successfully. │ exit code: 1 ╰─> [56 lines of output] running install C:\Users\B\anaconda3\envs\sd-inf\lib\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running build running build_py creating build creating build\lib.win-amd64-cpython-310 creating build\lib.win-amd64-cpython-310\fpie copying fpie\args.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\cli.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\gui.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\io.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\np_solver.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\numba_solver.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\process.py -> build\lib.win-amd64-cpython-310\fpie copying fpie\taichi_solver.py -> build\lib.win-amd64-cpython-310\fpie copying fpie_init_.py -> build\lib.win-amd64-cpython-310\fpie running build_ext -- Building for: Visual Studio 16 2019 -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044. -- The C compiler identification is MSVC 19.29.30146.0 -- The CXX compiler identification is MSVC 19.29.30146.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- pybind11 v2.10.0 -- Found PythonInterp: C:/Users/B/anaconda3/envs/sd-inf/python.exe (found suitable version "3.10.6", minimum required is "3.6") -- Found PythonLibs: C:/Users/B/anaconda3/envs/sd-inf/libs/python310.lib -- Performing Test HAS_MSVC_GL_LTCG -- Performing Test HAS_MSVC_GL_LTCG - Success -- Found OpenMP_C: -openmp (found version "2.0") -- Found OpenMP_CXX: -openmp (found version "2.0") -- Found OpenMP: TRUE (found version "2.0") -- Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS) -- Could NOT find MPI_CXX (missing: MPI_CXX_LIB_NAMES MPI_CXX_HEADER_DIR MPI_CXX_WORKS) -- Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND) -- Found CUDA: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7 (found version "11.7") -- The CUDA compiler identification is NVIDIA 11.7.99 -- Detecting CUDA compiler ABI info -- Detecting CUDA compiler ABI info - done -- Check for working CUDA compiler: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe - skipped -- Detecting CUDA compile features -- Detecting CUDA compile features - done -- Found PythonInterp: C:/Users/B/anaconda3/envs/sd-inf/python.exe (found suitable version "3.10.6", minimum required is "3") -- Found PythonLibs: C:/Users/B/anaconda3/envs/sd-inf/libs/python310.lib (found suitable version "3.10.6", minimum required is "3.10") -- Configuring done -- Generating done -- Build files have been written to: C:/Users/B/AppData/Local/Temp/pip-install-5bykcwlg/fpie_1af82193c262414a803966f640d8358b/build/temp.win-amd64-cpython-310/Release error: [WinError 2] Le fichier spécifié est introuvable [end of output]

    note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure

    × Encountered error while trying to install package. ╰─> fpie

    note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure.

    opened by francoisbonnard 12
Releases(v0.2.0)
Owner
Jiayi Weng
Graduated from THU-CST and [email protected]. Incoming
Jiayi Weng
Implementation of "Semi-supervised Domain Adaptive Structure Learning"

Semi-supervised Domain Adaptive Structure Learning - ASDA This repo contains the source code and dataset for our ASDA paper. Illustration of the propo

3 Dec 13, 2021
This Repostory contains the pretrained DTLN-aec model for real-time acoustic echo cancellation.

This Repostory contains the pretrained DTLN-aec model for real-time acoustic echo cancellation.

Nils L. Westhausen 182 Jan 07, 2023
[CVPR'21 Oral] Seeing Out of tHe bOx: End-to-End Pre-training for Vision-Language Representation Learning

Seeing Out of tHe bOx: End-to-End Pre-training for Vision-Language Representation Learning [CVPR'21, Oral] By Zhicheng Huang*, Zhaoyang Zeng*, Yupan H

Multimedia Research 196 Dec 13, 2022
Using LSTM to detect spoofing attacks in an Air-Ground network

Using LSTM to detect spoofing attacks in an Air-Ground network Specifications IDE: Spider Packages: Tensorflow 2.1.0 Keras NumPy Scikit-learn Matplotl

Tiep M. H. 1 Nov 20, 2021
custom pytorch implementation of MoCo v3

MoCov3-pytorch custom implementation of MoCov3 [arxiv]. I made minor modifications based on the official MoCo repository [github]. No ViT part code an

39 Nov 14, 2022
Advanced Deep Learning with TensorFlow 2 and Keras (Updated for 2nd Edition)

Advanced Deep Learning with TensorFlow 2 and Keras (Updated for 2nd Edition)

Packt 1.5k Jan 03, 2023
ImageNet Adversarial Image Evaluation

ImageNet Adversarial Image Evaluation This repository contains the code and some materials used in the experimental work presented in the following pa

Utku Ozbulak 11 Dec 26, 2022
DirectVoxGO reconstructs a scene representation from a set of calibrated images capturing the scene.

DirectVoxGO reconstructs a scene representation from a set of calibrated images capturing the scene. We achieve NeRF-comparable novel-view synthesis quality with super-fast convergence.

sunset 709 Dec 31, 2022
PyTorch common framework to accelerate network implementation, training and validation

pytorch-framework PyTorch common framework to accelerate network implementation, training and validation. This framework is inspired by works from MML

Dongliang Cao 3 Dec 19, 2022
Source code for paper "Deep Superpixel-based Network for Blind Image Quality Assessment"

DSN-IQA Source code for paper "Deep Superpixel-based Network for Blind Image Quality Assessment" Requirements Python =3.8.0 Pytorch =1.7.1 Usage wit

7 Oct 13, 2022
A framework for GPU based high-performance medical image processing and visualization

FAST is an open-source cross-platform framework with the main goal of making it easier to do high-performance processing and visualization of medical images on heterogeneous systems utilizing both mu

Erik Smistad 315 Dec 30, 2022
Code to reproduce the results in the paper "Tensor Component Analysis for Interpreting the Latent Space of GANs".

Tensor Component Analysis for Interpreting the Latent Space of GANs [ paper | project page ] Code to reproduce the results in the paper "Tensor Compon

James Oldfield 4 Jun 17, 2022
Leibniz is a python package which provide facilities to express learnable partial differential equations with PyTorch

Leibniz is a python package which provide facilities to express learnable partial differential equations with PyTorch

Beijing ColorfulClouds Technology Co.,Ltd. 16 Aug 07, 2022
Official repository for ABC-GAN

ABC-GAN The work represented in this repository is the result of a 14 week semesterthesis on photo-realistic image generation using generative adversa

IgorSusmelj 10 Jun 23, 2022
A collection of models for image<->text generation in ACM MM 2021.

Bi-directional Image and Text Generation UMT-BITG (image & text generator) Unifying Multimodal Transformer for Bi-directional Image and Text Generatio

Multimedia Research 63 Oct 30, 2022
PyTorch Language Model for 1-Billion Word (LM1B / GBW) Dataset

PyTorch Large-Scale Language Model A Large-Scale PyTorch Language Model trained on the 1-Billion Word (LM1B) / (GBW) dataset Latest Results 39.98 Perp

Ryan Spring 114 Nov 04, 2022
An efficient PyTorch implementation of the winning entry of the 2017 VQA Challenge.

Bottom-Up and Top-Down Attention for Visual Question Answering An efficient PyTorch implementation of the winning entry of the 2017 VQA Challenge. The

Hengyuan Hu 731 Jan 03, 2023
Evolving neural network parameters in JAX.

Evolving Neural Networks in JAX This repository holds code displaying techniques for applying evolutionary network training strategies in JAX. Each sc

Trevor Thackston 6 Feb 12, 2022
2021:"Bridging Global Context Interactions for High-Fidelity Image Completion"

TFill arXiv | Project This repository implements the training, testing and editing tools for "Bridging Global Context Interactions for High-Fidelity I

Chuanxia Zheng 111 Jan 08, 2023
This repository contains implementations and illustrative code to accompany DeepMind publications

DeepMind Research This repository contains implementations and illustrative code to accompany DeepMind publications. Along with publishing papers to a

DeepMind 11.3k Dec 31, 2022