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
GPT, but made only out of gMLPs

GPT - gMLP This repository will attempt to crack long context autoregressive language modeling (GPT) using variations of gMLPs. Specifically, it will

Phil Wang 80 Dec 01, 2022
Car Parking Tracker Using OpenCv

Car Parking Vacancy Tracker Using OpenCv I used basic image processing methods i

Adwait Kelkar 30 Dec 03, 2022
Learning Saliency Propagation for Semi-supervised Instance Segmentation

Learning Saliency Propagation for Semi-supervised Instance Segmentation PyTorch Implementation This repository contains: the PyTorch implementation of

Berkeley DeepDrive 68 Oct 18, 2022
List of content farm sites like g.penzai.com.

内容农场网站清单 Google 中文搜索结果包含了相当一部分的内容农场式条目,比如「小 X 知识网」「小 X 百科网」。此种链接常会 302 重定向其主站,页面内容为自动生成,大量堆叠关键字,揉杂一些爬取到的内容,完全不具可读性和参考价值。 尤为过分的是,该类网站可能有成千上万个分身域名被 Goog

WDMPA 541 Jan 03, 2023
Bare bones use-case for deploying a containerized web app (built in streamlit) on AWS.

Containerized Streamlit web app This repository is featured in a 3-part series on Deploying web apps with Streamlit, Docker, and AWS. Checkout the blo

Collin Prather 62 Jan 02, 2023
EmoTag helps you train emotion detection model for Chinese audios

emoTag emoTag helps you train emotion detection model for Chinese audios. Environment pip install -r requirement.txt Data We used Emotional Speech Dat

_zza 4 Sep 07, 2022
Unoffical reMarkable AddOn for Firefox.

reMarkable for Firefox (Download) This repo converts the offical reMarkable Chrome Extension into a Firefox AddOn published here under the name "Unoff

Jelle Schutter 45 Nov 28, 2022
Code for CMaskTrack R-CNN (proposed in Occluded Video Instance Segmentation)

CMaskTrack R-CNN for OVIS This repo serves as the official code release of the CMaskTrack R-CNN model on the Occluded Video Instance Segmentation data

Q . J . Y 61 Nov 25, 2022
《Train in Germany, Test in The USA: Making 3D Object Detectors Generalize》(CVPR 2020)

Train in Germany, Test in The USA: Making 3D Object Detectors Generalize This paper has been accpeted by Conference on Computer Vision and Pattern Rec

Xiangyu Chen 101 Jan 02, 2023
Official Python implementation of the FuzionCoin protocol

PyFuzc Official Python implementation of the FuzionCoin protocol WARNING: Under construction. Use at your own risk. Some functions may not work. Setup

FuzionCoin 3 Jul 07, 2022
Kaggle Feedback Prize - Evaluating Student Writing 15th solution

Kaggle Feedback Prize - Evaluating Student Writing 15th solution First of all, I would like to thank the excellent notebooks and discussions from http

Lingyuan Zhang 6 Mar 24, 2022
A modular domain adaptation library written in PyTorch.

A modular domain adaptation library written in PyTorch.

Kevin Musgrave 225 Dec 29, 2022
CLIP + VQGAN / PixelDraw

clipit Yet Another VQGAN-CLIP Codebase This started as a fork of @nerdyrodent's VQGAN-CLIP code which was based on the notebooks of @RiversWithWings a

dribnet 276 Dec 12, 2022
Unimodal Face Classification with Multimodal Training

Unimodal Face Classification with Multimodal Training This is a PyTorch implementation of the following paper: Unimodal Face Classification with Multi

Wenbin Teng 3 Jul 06, 2022
Customer-Transaction-Analysis - This analysis is based on a synthesised transaction dataset containing 3 months worth of transactions for 100 hypothetical customers.

Customer-Transaction-Analysis - This analysis is based on a synthesised transaction dataset containing 3 months worth of transactions for 100 hypothetical customers. It contains purchases, recurring

Ayodeji Yekeen 1 Jan 01, 2022
A Simple Key-Value Data-store written in Python

mercury-db This is a File Based Key-Value Datastore that supports basic CRUD (Create, Read, Update, Delete) operations developed using Python. The dat

Vaidhyanathan S M 1 Jan 09, 2022
Semi-supervised Representation Learning for Remote Sensing Image Classification Based on Generative Adversarial Networks

SSRL-for-image-classification Semi-supervised Representation Learning for Remote Sensing Image Classification Based on Generative Adversarial Networks

Feng 2 Nov 19, 2021
Related resources for our EMNLP 2021 paper

Plan-then-Generate: Controlled Data-to-Text Generation via Planning Authors: Yixuan Su, David Vandyke, Sihui Wang, Yimai Fang, and Nigel Collier Code

Yixuan Su 61 Jan 03, 2023
Code of the paper "Part Detector Discovery in Deep Convolutional Neural Networks" by Marcel Simon, Erik Rodner and Joachim Denzler

Part Detector Discovery This is the code used in our paper "Part Detector Discovery in Deep Convolutional Neural Networks" by Marcel Simon, Erik Rodne

Computer Vision Group Jena 17 Feb 22, 2022
Official code for "Distributed Deep Learning in Open Collaborations" (NeurIPS 2021)

Distributed Deep Learning in Open Collaborations This repository contains the code for the NeurIPS 2021 paper "Distributed Deep Learning in Open Colla

Yandex Research 96 Sep 15, 2022