Official PyTorch code of Holistic 3D Scene Understanding from a Single Image with Implicit Representation (CVPR 2021)

Overview

Implicit3DUnderstanding (Im3D) [Project Page]

Holistic 3D Scene Understanding from a Single Image with Implicit Representation

Cheng Zhang, Zhaopeng Cui, Yinda Zhang, Shuaicheng Liu, Bing Zeng, Marc Pollefeys

img.jpg 3dbbox.png recon.png
img.jpg 3dbbox.png recon.png
img.jpg 3dbbox.png recon.png

pipeline

Introduction

This repo contains training, testing, evaluation, visualization code of our CVPR 2021 paper. Specially, the repo contains our PyTorch implementation of the decoder of LDIF, which can be extracted and used in other projects. We are expecting to release a refactored version of our pipeline and a PyTorch implementation of the full LDIF model in the future.

Install

sudo apt install xvfb ninja-build
conda env create -f environment.yml
conda activate Im3D
python project.py build

Demo

  1. Download the pretrained checkpoint and unzip it into out/total3d/20110611514267/

  2. Change current directory to Implicit3DUnderstanding/ and run the demo, which will generate 3D detection result and rendered scene mesh to demo/output/1/

    CUDA_VISIBLE_DEVICES=0 python main.py out/total3d/20110611514267/out_config.yaml --mode demo --demo_path demo/inputs/1
    
  3. In case you want to run it off screen (for example, with SSH)

    CUDA_VISIBLE_DEVICES=0 xvfb-run -a -s "-screen 0 800x600x24" python main.py out/total3d/20110611514267/out_config.yaml --mode demo --demo_path demo/inputs/1
    
  4. If you want to run it interactively, change the last line of demo.py

    scene_box.draw3D(if_save=True, save_path = '%s/recon.png' % (save_path))
    

    to

    scene_box.draw3D(if_save=False, save_path = '%s/recon.png' % (save_path))
    

Data preparation

We follow Total3DUnderstanding to use SUN-RGBD to train our Scene Graph Convolutional Network (SGCN), and use Pix3D to train our Local Implicit Embedding Network (LIEN) with Local Deep Implicit Functions (LDIF) decoder.

Preprocess SUN-RGBD data

Please follow Total3DUnderstanding to directly download the processed train/test data.

In case you prefer processing by yourself or want to evaluate 3D detection with our code (To ultilize the evaluation code of Coop, we modified the data processing code of Total3DUnderstanding to save parameters for transforming the coordinate system from Total3D back to Coop), please follow these steps:

  1. Follow Total3DUnderstanding to download the raw data.

  2. According to issue #6 of Total3DUnderstanding, there are a few typos in json files of SUNRGBD dataset, which is mostly solved by the json loader. However, one typo still needs to be fixed by hand. Please find {"name":""propulsion"tool"} in data/sunrgbd/Dataset/SUNRGBD/kv2/kinect2data/002922_2014-06-26_15-43-16_094959634447_rgbf000089-resize/annotation2Dfinal/index.json and remove ""propulsion.

  3. Process the data by

    python -m utils.generate_data
    

Preprocess Pix3D data

We use a different data process pipeline with Total3DUnderstanding. Please follow these steps to generate the train/test data:

  1. Download the Pix3D dataset to data/pix3d/metadata

  2. Run below to generate the train/test data into 'data/pix3d/ldif'

    python utils/preprocess_pix3d4ldif.py
    

Training and Testing

We use wandb for logging and visualization. You can register a wandb account and login before training by wandb login. In case you don't need to visualize the training process, you can put WANDB_MODE=dryrun before the commands bellow.

Thanks to the well-structured code of Total3DUnderstanding, we use the same method to manage parameters of each experiment with configuration files (configs/****.yaml). We first follow Total3DUnderstanding to pretrain each individual module, then jointly finetune the full model with additional physical violation loss.

Pretraining

We use the pretrained checkpoint of Total3DUnderstanding to load weights for ODN. Please download and rename the checkpoint to out/pretrained_models/total3d/model_best.pth. Other modules can be trained then tested with the following steps:

  1. Train LEN by:

    python main.py configs/layout_estimation.yaml
    

    The pretrained checkpoint can be found at out/layout_estimation/[start_time]/model_best.pth

  2. Train LIEN + LDIF by:

    python main.py configs/ldif.yaml
    

    The pretrained checkpoint can be found at out/ldif/[start_time]/model_best.pth

    The training process is followed with a quick test without ICP and Chamfer distance evaluated. In case you want to align mesh and evaluate the Chamfer distance during testing:

    python main.py configs/ldif.yaml --mode train
    

    The generated object meshes can be found at out/ldif/[start_time]/visualization

  3. Replace the checkpoint directories of LEN and LIEN in configs/total3d_ldif_gcnn.yaml with the checkpoints trained above, then train SGCN by:

    python main.py configs/total3d_ldif_gcnn.yaml
    

    The pretrained checkpoint can be found at out/total3d/[start_time]/model_best.pth

Joint finetune

  1. Replace the checkpoint directory in configs/total3d_ldif_gcnn_joint.yaml with the one trained in the last step above, then train the full model by:

    python main.py configs/total3d_ldif_gcnn_joint.yaml
    

    The trained model can be found at out/total3d/[start_time]/model_best.pth

  2. The training process is followed with a quick test without scene mesh generated. In case you want to generate the scene mesh during testing (which will cost a day on 1080ti due to the unoptimized interface of LDIF CUDA kernel):

    python main.py configs/total3d_ldif_gcnn_joint.yaml --mode train
    

    The testing resaults can be found at out/total3d/[start_time]/visualization

Testing

  1. The training process above already include a testing process. In case you want to test LIEN+LDIF or full model by yourself:

    python main.py out/[ldif/total3d]/[start_time]/model_best.pth --mode test
    

    The results will be saved to out/total3d/[start_time]/visualization and the evaluation metrics will be logged to wandb as run summary.

  2. Evaluate 3D object detection with our modified matlab script from Coop:

    external/cooperative_scene_parsing/evaluation/detections/script_eval_detection.m
    

    Before running the script, please specify the following parameters:

    SUNRGBD_path = 'path/to/SUNRGBD';
    result_path = 'path/to/experiment/results/visualization';
    
  3. Visualize the i-th 3D scene interacively by

    python utils/visualize.py --result_path out/total3d/[start_time]/visualization --sequence_id [i]
    

    or save the 3D detection result and rendered scene mesh by

    python utils/visualize.py --result_path out/total3d/[start_time]/visualization --sequence_id [i] --save_path []
    

    In case you do not have a screen:

    python utils/visualize.py --result_path out/total3d/[start_time]/visualization --sequence_id [i] --save_path [] --offscreen
    

    If nothing goes wrong, you should get results like:

    camera view 3D bbox scene reconstruction

  4. Visualize the detection results from a third person view with our modified matlab script from Coop:

    external/cooperative_scene_parsing/evaluation/vis/show_result.m
    

    Before running the script, please specify the following parameters:

    SUNRGBD_path = 'path/to/SUNRGBD';
    save_root = 'path/to/save/the/detection/results';
    paths = {
        {'path/to/save/detection/results', 'path/to/experiment/results/visualization'}, ...
        {'path/to/save/gt/boundingbox/results'}
    };
    vis_pc = false; % or true, if you want to show cloud point ground truth
    views3d = {'oblique', 'top'}; % choose prefered view
    dosave = true; % or false, please place breakpoints to interactively view the results.
    

    If nothing goes wrong, you should get results like:

    oblique view 3D bbox

About the testing speed

Thanks to the simplicity of LIEN+LDIF, the pretrain takes only about 8 hours on a 1080Ti. However, although we used the CUDA kernel of LDIF to optimize the speed, the file-based interface of the kernel still bottlenecked the mesh reconstruction. This is the main reason why our method takes much more time in object and scene mesh reconstruction. If you want speed over mesh quality, please lower the parameter data.marching_cube_resolution in the configuration file.

Citation

If you find our work and code helpful, please consider cite:

@article{zhang2021holistic,
  title={Holistic 3D Scene Understanding from a Single Image with Implicit Representation},
  author={Zhang, Cheng and Cui, Zhaopeng and Zhang, Yinda and Zeng, Bing and Pollefeys, Marc and Liu, Shuaicheng},
  journal={arXiv preprint arXiv:2103.06422},
  year={2021}
}

We thank the following great works:

  • Total3DUnderstanding for their well-structured code. We construct our network based on their well-structured code.
  • Coop for their dataset. We used their processed dataset with 2D detector prediction.
  • LDIF for their novel representation method. We ported their LDIF decoder from Tensorflow to PyTorch.
  • Graph R-CNN for their scene graph design. We adopted their GCN implemention to construct our SGCN.
  • Occupancy Networks for their modified version of mesh-fusion pipeline.

If you find them helpful, please cite:

@InProceedings{Nie_2020_CVPR,
author = {Nie, Yinyu and Han, Xiaoguang and Guo, Shihui and Zheng, Yujian and Chang, Jian and Zhang, Jian Jun},
title = {Total3DUnderstanding: Joint Layout, Object Pose and Mesh Reconstruction for Indoor Scenes From a Single Image},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2020}
}
@inproceedings{huang2018cooperative,
  title={Cooperative Holistic Scene Understanding: Unifying 3D Object, Layout, and Camera Pose Estimation},
  author={Huang, Siyuan and Qi, Siyuan and Xiao, Yinxue and Zhu, Yixin and Wu, Ying Nian and Zhu, Song-Chun},
  booktitle={Advances in Neural Information Processing Systems},
  pages={206--217},
  year={2018}
}	
@inproceedings{genova2020local,
    title={Local Deep Implicit Functions for 3D Shape},
    author={Genova, Kyle and Cole, Forrester and Sud, Avneesh and Sarna, Aaron and Funkhouser, Thomas},
    booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
    pages={4857--4866},
    year={2020}
}
@inproceedings{yang2018graph,
    title={Graph r-cnn for scene graph generation},
    author={Yang, Jianwei and Lu, Jiasen and Lee, Stefan and Batra, Dhruv and Parikh, Devi},
    booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
    pages={670--685},
    year={2018}
}
@inproceedings{mescheder2019occupancy,
  title={Occupancy networks: Learning 3d reconstruction in function space},
  author={Mescheder, Lars and Oechsle, Michael and Niemeyer, Michael and Nowozin, Sebastian and Geiger, Andreas},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
  pages={4460--4470},
  year={2019}
}
Comments
  • Training with self processed SUNRGBD dataset

    Training with self processed SUNRGBD dataset

    I want to evaluate 3D detection, so I preprocessed SUNRGBD as stated in the README. While training the logs say that 180/10450 missing samples 80/5014 missing samples

    Did I make a mistake while preprocessing or is this expected?

    Thanks :)

    opened by mertkiray 10
  • Visualization results different from paper outputs

    Visualization results different from paper outputs

    Hello, We followed the training steps provided and then tested the ldif and total3d with the following python main.py out/[ldif/total3d]/[start_time]/out_config.yaml --mode test However, outputs from the visualization seems to be different from the paper results.

    This is the expected output: photo_2021-06-01_22-23-43

    This is our output from visualization: photo_2021-06-01_22-23-50

    Do you have any idea what we are doing wrong? Thanks :)

    opened by mertkiray 7
  • librenderer.render() (glViewport) throws segfault

    librenderer.render() (glViewport) throws segfault

    Hi Cheng,

    Thanks for your high quality code base for great results and nice summary of 3D toolbox. I wish to turn to you for help on one issue of segfault.

    I encountered the problem of segfault when preprocessing the pix3d data. The segfault comes from librenderer.render when producing the depths. A closer check into the C code indicates that it is the glViewport function that throws the segfault. I tried to run the test and also encountered the segfault from the same place. I believe I have carefully installed the OpenGL, GLUT and GLEW packages through apt install and it is pretty hard to understand why the glViewport would throw the segfault. I used the headless mode with the xvfb utility. May I know if you have ever encountered the same problem and do you have any clues on this? Many thanks for your time!

    opened by zhusz 4
  •  Internal compiler error: Segmentation fault

    Internal compiler error: Segmentation fault

    Hello,

    While building with python project.py build

    I got the following error:

    image

    /usr/include/c++/10/chrono:473:154: required from here /usr/include/c++/10/chrono:428:27: internal compiler error: Segmentation fault 428 | _S_gcd(intmax_t __m, intmax_t __n) noexcept | ^~~~~~

    My OS: Ubuntu 21.04 Shipped gcc version:10.3 Installed gcc version: 9.3.0 nvcc version: 11.2 Nvidia-smi: image

    Thanks for the help

    opened by mertkiray 4
  • Failed to extract mesh with error:  ValueError (Surface level must be within volume data range) . Setting to unit sphere.

    Failed to extract mesh with error: ValueError (Surface level must be within volume data range) . Setting to unit sphere.

    Hello

    Thank you for this fantastic job. Here is an issue:

    No cmake in environment.yml :

    (Im3D)  ... $ conda config --add channels conda-forge
    (Im3D)  ... $ conda install cmake
    
    (Im3D)   ...  $ conda list
    # packages in environment at /......./miniconda3/envs/Im3D:
    #
    # Name                    Version                   Build  Channel
    _libgcc_mutex             0.1                        main    conda-forge
    blas                      1.0                         mkl    conda-forge
    bzip2                     1.0.8                h7b6447c_0  
    ca-certificates           2020.12.5            ha878542_0    conda-forge
    certifi                   2020.12.5        py36h5fab9bb_1    conda-forge
    cffi                      1.14.0           py36he30daa8_1  
    chardet                   3.0.4                    pypi_0    pypi
    click                     7.1.2                    pypi_0    pypi
    cloudpickle               1.6.0                      py_0    conda-forge
    cmake                     3.16.3               h28c56e5_0    conda-forge
    configparser              5.0.0                    pypi_0    pypi
    cudatoolkit               9.0                  h13b8566_0  
    curl                      7.69.1               hbc83047_0  
    cycler                    0.10.0                     py_2    conda-forge
    cython                    0.29.21          py36he6710b0_0  
    cytoolz                   0.11.0           py36h8c4c3a4_0    conda-forge
    dask-core                 2.28.0                     py_0    conda-forge
    decorator                 4.4.2                      py_0    conda-forge
    docker-pycreds            0.4.0                    pypi_0    pypi
    enum34                    1.1.10           py36h9f0ad1d_1    conda-forge
    expat                     2.2.6                he6710b0_0  
    freetype                  2.9.1                h8a8886c_1  
    future                    0.18.2                   py36_1  
    geos                      3.8.0                he6710b0_0  
    gitdb                     4.0.5                    pypi_0    pypi
    gitpython                 3.1.8                    pypi_0    pypi
    h5py                      2.10.0                   pypi_0    pypi
    hdf4                      4.2.13               h3ca952b_2  
    hdf5                      1.10.4               hb1b8bf9_0  
    icu                       58.2                 he6710b0_3  
    idna                      2.10                     pypi_0    pypi
    imagecodecs-lite          2019.12.3        py36h785e9b2_1    conda-forge
    imageio                   2.9.0                      py_0    conda-forge
    intel-openmp              2020.1                      217  
    jellyfish                 0.8.2                    pypi_0    pypi
    joblib                    0.16.0                   pypi_0    pypi
    jpeg                      9b                   h024ee3a_2  
    jsoncpp                   1.8.4                hfd86e86_0  
    kiwisolver                1.2.0            py36hdb11119_0    conda-forge
    krb5                      1.17.1               h173b8e3_0  
    ld_impl_linux-64          2.33.1               h53a641e_7    conda-forge
    libcurl                   7.69.1               h20c2e04_0  
    libedit                   3.1.20181209         hc058e9b_0  
    libffi                    3.3                  he6710b0_2  
    libgcc-ng                 9.1.0                hdf63c60_0  
    libgfortran-ng            7.3.0                hdf63c60_0  
    libnetcdf                 4.6.1                h11d0813_2  
    libogg                    1.3.2                h7b6447c_0  
    libpng                    1.6.37               hbc83047_0  
    libssh2                   1.9.0                h1ba5d50_1  
    libstdcxx-ng              9.1.0                hdf63c60_0  
    libtheora                 1.1.1                h5ab3b9f_1  
    libtiff                   4.1.0                h2733197_0  
    libuv                     1.40.0               hd18ef5c_0    conda-forge
    libvorbis                 1.3.6                h7b6447c_0  
    libxml2                   2.9.10               he19cac6_1  
    lz4-c                     1.8.1.2              h14c3975_0  
    matplotlib                3.2.2                    pypi_0    pypi
    matplotlib-base           3.2.1            py36hef1b27d_0  
    mkl                       2020.1                      217  
    mkl-service               2.3.0            py36he904b0f_0  
    mkl_fft                   1.0.15           py36ha843d7b_0  
    mkl_random                1.1.1            py36h0573a6f_0  
    ncurses                   6.2                  he6710b0_1  
    networkx                  2.5                        py_0    conda-forge
    ninja                     1.10.0.post1             pypi_0    pypi
    numpy                     1.18.1           py36h4f9e942_0  
    numpy-base                1.18.1           py36hde5b4d6_1  
    olefile                   0.46                     py36_0  
    opencv-python             4.2.0.34                 pypi_0    pypi
    openssl                   1.1.1h               h516909a_0    conda-forge
    pandas                    1.0.5            py36h0573a6f_0  
    pathlib                   1.0.1            py36h9f0ad1d_2    conda-forge
    pathtools                 0.1.2                    pypi_0    pypi
    pillow                    7.1.2            py36hb39fc2d_0  
    pip                       20.0.2                   py36_3  
    promise                   2.3                      pypi_0    pypi
    protobuf                  3.13.0                   pypi_0    pypi
    psutil                    5.7.2                    pypi_0    pypi
    pycparser                 2.20                       py_2  
    pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
    pysocks                   1.7.1                    pypi_0    pypi
    python                    3.6.10               h7579374_2  
    python-dateutil           2.8.1                      py_0    conda-forge
    python_abi                3.6                     1_cp36m    conda-forge
    pytorch                   1.1.0           py3.6_cuda9.0.176_cudnn7.5.1_0    pytorch
    pytz                      2020.1                     py_0  
    pywavelets                1.1.1            py36h68bb277_2    conda-forge
    pyyaml                    5.3.1            py36h7b6447c_0  
    readline                  8.0                  h7b6447c_0  
    requests                  2.24.0                   pypi_0    pypi
    rhash                     1.4.0                h36c2ea0_0    conda-forge
    scikit-image              0.17.2           py36h7c3b610_2    conda-forge
    scipy                     1.4.1            py36h0b6359f_0  
    seaborn                   0.10.1                   pypi_0    pypi
    sentry-sdk                0.17.8                   pypi_0    pypi
    setuptools                47.1.1                   py36_0  
    shapely                   1.7.0            py36h98ec03d_0  
    shortuuid                 1.0.1                    pypi_0    pypi
    six                       1.15.0                     py_0  
    smmap                     3.0.4                    pypi_0    pypi
    sqlite                    3.31.1               h62c20be_1  
    subprocess32              3.5.4                    pypi_0    pypi
    tbb                       2020.0               hfd86e86_0  
    tifffile                  2019.7.26.2              py36_0    conda-forge
    tk                        8.6.8                hbc83047_0  
    toolz                     0.11.1                     py_0    conda-forge
    torchvision               0.3.0           py36_cu9.0.176_1    pytorch
    tornado                   6.0.4            py36h8c4c3a4_1    conda-forge
    tqdm                      4.49.0                     py_0  
    trimesh                   3.8.10                   pypi_0    pypi
    urllib3                   1.25.10                  pypi_0    pypi
    vtk                       8.2.0           py36haa4764d_200  
    wandb                     0.10.8                   pypi_0    pypi
    watchdog                  0.10.3                   pypi_0    pypi
    wheel                     0.34.2                   py36_0    conda-forge
    xz                        5.2.5                h7b6447c_0  
    yaml                      0.1.7                had09818_2  
    zlib                      1.2.11               h7b6447c_3  
    zstd                      1.3.7                h0b5b093_0  
    

    (Im3D) ... $ python project.py build

    1

    2

    (Im3D)  ... $  CUDA_VISIBLE_DEVICES=0 python main.py out/total3d/20110611514267/out_config.yaml --mode demo --demo_path demo/inputs/1
    

    gives

    3

    4

    also, I had degraded to CUDA 10.0 on my UBUNTU 18.04

    $ nvcc --version
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2018 NVIDIA Corporation
    Built on Sat_Aug_25_21:08:01_CDT_2018
    Cuda compilation tools, release 10.0, V10.0.130
    
    opened by Fizmath 4
  • confusion about the final chamfer distance for LDIF result

    confusion about the final chamfer distance for LDIF result

    Hi, chengzhag. Thanks for you excellent work. I tried to reproduce the mesh generation part of your work, exactly the LDIF network, and I train this part followed the parameters mentioned in the paper, the best result I got from my reproduction was wicp_avg_chamfer=7.25, which remain a certain gap with the results shown in the paper(6.72). I am not sure if i missed some thing. Another question. I used the checkpoint file provided in the readme file to get 6.72. However, the final statistical results of various categories are not quite consistent with those shown in the paper, so I would like to ask if there is any difference between the statistical results in the paper and the statistical methods in the code?
    微信截图_20210830142401 微信截图_20210830142438

    opened by Harvey-Mei 3
  • 2D detector output from Total3D

    2D detector output from Total3D

    Hi @chengzhag, thanks for this great contribution! It is stated in the paper that: "We use the outputs of the 2D detector from Total3D as the input of our model.". Does this mean that 1) you used the exact same model and pre-trained weights provided by Total3D, or 2) you trained your own 2D detector in the same way as the authors of Total3D?

    Furthermore, could you share this pre-computed 2D bounding boxes, or some instructions (model and weights if available) that makes it possible to re-produce the whole pipeline?

    Thanks a lot in advance.

    opened by stefan-ainetter 2
  • About Layout Estimation Network Training

    About Layout Estimation Network Training

    Hello, I am trying to reproduce your baseline. I prepared data and other stuff by following your instructions. When I started to train both LEN and LIEN+LDIF, I saw that the loss convergence is as expected for LIEN+LDIF but I do not think the LEN trains as expected. Even though the best model is trained in 4th epochs and remain the same until 53th epochs (I trained until 53 so far and it does not seem promising), the config file says it will be trained for 100 epochs. Thus, I would like to ask you whether any problem with LEN or what I should expect as a traning behavior? Thank you.

    opened by EralpKocas 2
  • the pretrained checkpoint of Total3DUnderstanding for ODN

    the pretrained checkpoint of Total3DUnderstanding for ODN

    Hello! Is the link of the pretrained checkpoint of Total3DUnderstanding for ODN in Training and Testing wrong? I find it is same as the link of the preprocess SUN-RGBD data in Data preparation

    opened by Ivan-VV 2
  • Errors about the pyTorchChamferDistance

    Errors about the pyTorchChamferDistance

    Thanks for your great work! When I run the command CUDA_VISIBLE_DEVICES=0 python main.py out/total3d/20110611514267/out_config.yaml --mode demo --demo_path demo/inputs/1 ,I get the following error: ①Traceback (most recent call last): File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 949, in _build_extension_module check=True) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/subprocess.py", line 438, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "main.py", line 8, in import train, test,demo File "/home/data4t/wyf/Implicit3DUnderstanding/train.py", line 4, in from models.optimizers import load_optimizer, load_scheduler File "/home/data4t/wyf/Implicit3DUnderstanding/models/init.py", line 1, in from . import total3d, mgnet, ldif File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/init.py", line 1, in from . import modules, training, config, dataloader File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/modules/init.py", line 1, in from .network import TOTAL3D File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/modules/network.py", line 12, in from models.loss import get_phy_loss_samples File "/home/data4t/wyf/Implicit3DUnderstanding/models/loss.py", line 8, in from external.pyTorchChamferDistance.chamfer_distance import ChamferDistance File "/home/data4t/wyf/Implicit3DUnderstanding/external/pyTorchChamferDistance/chamfer_distance/init.py", line 3, in from .chamfer_distance import ChamferDistance File "/home/data4t/wyf/Implicit3DUnderstanding/external/pyTorchChamferDistance/chamfer_distance/chamfer_distance.py", line 8, in build_directory="external/pyTorchChamferDistance/build") File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 644, in load is_python_module) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 813, in jit_compile with_cuda=with_cuda) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 866, in write_ninja_file_and_build build_extension_module(name, build_directory, verbose) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 962, in build_extension_module raise RuntimeError(message) RuntimeError: Error building extension 'build': b"[1/2] /usr/local/cuda:/bin/nvcc -DTORCH_EXTENSION_NAME=build -DTORCH_API_INCLUDE_EXTENSION_H -isystem /home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/include -isystem /home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -isystem /home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/include/TH -isystem /home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/include/THC -isystem /usr/local/cuda:/include -isystem /home/wyf/anaconda3/envs/Im3D/include/python3.6m -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS -D__CUDA_NO_HALF_CONVERSIONS -D__CUDA_NO_HALF2_OPERATORS__ --compiler-options '-fPIC' -std=c++11 -c /home/data4t/wyf/Implicit3DUnderstanding/external/pyTorchChamferDistance/chamfer_distance/chamfer_distance.cu -o chamfer_distance.cuda.o\nFAILED: chamfer_distance.cuda.o \n/usr/local/cuda:/bin/nvcc -DTORCH_EXTENSION_NAME=build -DTORCH_API_INCLUDE_EXTENSION_H -isystem /home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/include -isystem /home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -isystem /home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/include/TH -isystem /home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/include/THC -isystem /usr/local/cuda:/include -isystem /home/wyf/anaconda3/envs/Im3D/include/python3.6m -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --compiler-options '-fPIC' -std=c++11 -c /home/data4t/wyf/Implicit3DUnderstanding/external/pyTorchChamferDistance/chamfer_distance/chamfer_distance.cu -o chamfer_distance.cuda.o\n/bin/sh: 1: /usr/local/cuda:/bin/nvcc: not found\nninja: build stopped: subcommand failed.\n"

    Then I changed the ['ninja', '-v'] in anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py to ['ninja', '--version']. And the error changed.

    ②Traceback (most recent call last): File "main.py", line 8, in import train, test,demo File "/home/data4t/wyf/Implicit3DUnderstanding/train.py", line 4, in from models.optimizers import load_optimizer, load_scheduler File "/home/data4t/wyf/Implicit3DUnderstanding/models/init.py", line 1, in from . import total3d, mgnet, ldif File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/init.py", line 1, in from . import modules, training, config, dataloader File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/modules/init.py", line 1, in from .network import TOTAL3D File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/modules/network.py", line 12, in from models.loss import get_phy_loss_samples File "/home/data4t/wyf/Implicit3DUnderstanding/models/loss.py", line 8, in from external.pyTorchChamferDistance.chamfer_distance import ChamferDistance File "/home/data4t/wyf/Implicit3DUnderstanding/external/pyTorchChamferDistance/chamfer_distance/init.py", line 3, in from .chamfer_distance import ChamferDistance File "/home/data4t/wyf/Implicit3DUnderstanding/external/pyTorchChamferDistance/chamfer_distance/chamfer_distance.py", line 8, in build_directory="external/pyTorchChamferDistance/build") File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 644, in load is_python_module) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 824, in _jit_compile return _import_module_from_library(name, build_directory, is_python_module) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 967, in _import_module_from_library file, path, description = imp.find_module(module_name, [path]) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/imp.py", line 297, in find_module raise ImportError(_ERR_MSG.format(name), name=name) ImportError: No module named 'build'

    It seems that the installation of module "chamfer_distance" has failed. So I used the command pip install git+'https://github.com/otaheri/chamfer_distance' to install the module by myself and changed the 8th line in Implicit3DUnderstanding/models/loss.py to from chamfer_distance import ChamferDistance. Then I got the following error:

    ③Traceback (most recent call last): File "main.py", line 8, in import train, test,demo File "/home/data4t/wyf/Implicit3DUnderstanding/train.py", line 4, in from models.optimizers import load_optimizer, load_scheduler File "/home/data4t/wyf/Implicit3DUnderstanding/models/init.py", line 1, in from . import total3d, mgnet, ldif File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/init.py", line 1, in from . import modules, training, config, dataloader File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/modules/init.py", line 1, in from .network import TOTAL3D File "/home/data4t/wyf/Implicit3DUnderstanding/models/total3d/modules/network.py", line 12, in from models.loss import get_phy_loss_samples File "/home/data4t/wyf/Implicit3DUnderstanding/models/loss.py", line 9, in from chamfer_distance import ChamferDistance File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/chamfer_distance/init.py", line 1, in from .chamfer_distance import ChamferDistance File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/chamfer_distance/chamfer_distance.py", line 10, in f_path + '/chamfer_distance.cu']) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 644, in load is_python_module) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 824, in _jit_compile return _import_module_from_library(name, build_directory, is_python_module) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 967, in _import_module_from_library file, path, description = imp.find_module(module_name, [path]) File "/home/wyf/anaconda3/envs/Im3D/lib/python3.6/imp.py", line 297, in find_module raise ImportError(_ERR_MSG.format(name), name=name) ImportError: No module named 'cd'

    So far,I have no idea about the errors. Would you like to give me any suggestions? Thank you ver much!My configuration is as follows.

    • nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2016 NVIDIA Corporation Built on Tue_Jan_10_13:22:03_CST_2017 Cuda compilation tools, release 9.0, V9.0.176 -gcc (Ubuntu 5.5.0-12ubuntu1~16.04) 5.5.0 20171010 g++ (Ubuntu 5.5.0-12ubuntu1~16.04) 5.5.0 20171010 NVIDIA-SMI 460.73.01 Driver Version: 460.73.01 CUDA Version: 11.2

    • ninja --version 1.10.0.git.kitware.jobserver-1

    • ` packages in environment at /home/wyf/anaconda3/envs/Im3D:

    Name Version Build Channel _libgcc_mutex 0.1 main conda-forge blas 1.0 mkl conda-forge bzip2 1.0.8 h7b6447c_0
    ca-certificates 2020.12.5 ha878542_0 conda-forge certifi 2020.12.5 py36h5fab9bb_1 conda-forge cffi 1.14.0 py36he30daa8_1
    chardet 3.0.4 pypi_0 pypi click 7.1.2 pypi_0 pypi cloudpickle 1.6.0 py_0 conda-forge cmake 3.16.3 h28c56e5_0 conda-forge configparser 5.0.0 pypi_0 pypi cudatoolkit 9.0 h13b8566_0
    curl 7.69.1 hbc83047_0
    cycler 0.10.0 py_2 conda-forge cython 0.29.21 py36he6710b0_0
    cytoolz 0.11.0 py36h8c4c3a4_0 conda-forge dask-core 2.28.0 py_0 conda-forge decorator 4.4.2 py_0 conda-forge docker-pycreds 0.4.0 pypi_0 pypi enum34 1.1.10 py36h9f0ad1d_1 conda-forge expat 2.2.6 he6710b0_0
    freetype 2.9.1 h8a8886c_1
    future 0.18.2 py36_1
    geos 3.8.0 he6710b0_0
    gitdb 4.0.5 pypi_0 pypi gitpython 3.1.8 pypi_0 pypi h5py 2.10.0 pypi_0 pypi hdf4 4.2.13 h3ca952b_2
    hdf5 1.10.4 hb1b8bf9_0
    icu 58.2 he6710b0_3
    idna 2.10 pypi_0 pypi imagecodecs-lite 2019.12.3 py36h785e9b2_1 conda-forge imageio 2.9.0 py_0 conda-forge intel-openmp 2020.1 217
    jellyfish 0.8.2 pypi_0 pypi joblib 0.16.0 pypi_0 pypi jpeg 9b h024ee3a_2
    jsoncpp 1.8.4 hfd86e86_0
    kiwisolver 1.2.0 py36hdb11119_0 conda-forge krb5 1.17.1 h173b8e3_0
    ld_impl_linux-64 2.33.1 h53a641e_7 conda-forge libcurl 7.69.1 h20c2e04_0
    libedit 3.1.20181209 hc058e9b_0
    libffi 3.3 he6710b0_2
    libgcc-ng 9.1.0 hdf63c60_0
    libgfortran-ng 7.3.0 hdf63c60_0
    libnetcdf 4.6.1 h11d0813_2
    libogg 1.3.2 h7b6447c_0
    libpng 1.6.37 hbc83047_0
    libssh2 1.9.0 h1ba5d50_1
    libstdcxx-ng 9.1.0 hdf63c60_0
    libtheora 1.1.1 h5ab3b9f_1
    libtiff 4.1.0 h2733197_0
    libuv 1.40.0 hd18ef5c_0 conda-forge libvorbis 1.3.6 h7b6447c_0
    libxml2 2.9.10 he19cac6_1
    lz4-c 1.8.1.2 h14c3975_0
    matplotlib 3.2.2 pypi_0 pypi mkl 2020.1 217
    mkl-service 2.3.0 py36he904b0f_0
    mkl_fft 1.0.15 py36ha843d7b_0
    mkl_random 1.1.1 py36h0573a6f_0
    ncurses 6.2 he6710b0_1
    networkx 2.5 py_0 conda-forge ninja 1.10.0.post1 pypi_0 pypi numpy 1.18.1 py36h4f9e942_0
    numpy-base 1.18.1 py36hde5b4d6_1
    olefile 0.46 py36_0
    opencv-python 4.2.0.34 pypi_0 pypi openssl 1.1.1h h516909a_0 conda-forge pandas 1.0.5 py36h0573a6f_0
    pathlib 1.0.1 py36h9f0ad1d_2 conda-forge pathtools 0.1.2 pypi_0 pypi pillow 7.1.2 py36hb39fc2d_0
    pip 20.0.2 py36_3
    promise 2.3 pypi_0 pypi protobuf 3.13.0 pypi_0 pypi psutil 5.7.2 pypi_0 pypi pycparser 2.20 py_2
    pyparsing 2.4.7 pyh9f0ad1d_0 conda-forge pysocks 1.7.1 pypi_0 pypi python 3.6.10 h7579374_2
    python-dateutil 2.8.1 py_0 conda-forge python_abi 3.6 1_cp36m conda-forge pytorch 1.1.0 py3.6_cuda9.0.176_cudnn7.5.1_0 pytorch pytz 2020.1 py_0
    pywavelets 1.1.1 py36h68bb277_2 conda-forge pyyaml 5.3.1 py36h7b6447c_0
    readline 8.0 h7b6447c_0
    requests 2.24.0 pypi_0 pypi rhash 1.4.0 h36c2ea0_0 conda-forge scikit-image 0.17.2 py36h7c3b610_2 conda-forge scipy 1.4.1 py36h0b6359f_0
    seaborn 0.10.1 pypi_0 pypi sentry-sdk 0.17.8 pypi_0 pypi setuptools 47.1.1 py36_0
    shapely 1.7.1 py36h98ec03d_0
    shortuuid 1.0.1 pypi_0 pypi six 1.15.0 py_0
    smmap 3.0.4 pypi_0 pypi sqlite 3.31.1 h62c20be_1
    subprocess32 3.5.4 pypi_0 pypi tbb 2020.0 hfd86e86_0
    tifffile 2019.7.26.2 py36_0 conda-forge tk 8.6.8 hbc83047_0
    toolz 0.11.1 py_0 conda-forge torchvision 0.3.0 py36_cu9.0.176_1 pytorch tornado 6.0.4 py36h8c4c3a4_1 conda-forge tqdm 4.49.0 py_0
    trimesh 3.8.10 pypi_0 pypi urllib3 1.25.10 pypi_0 pypi vtk 8.2.0 py36haa4764d_200
    wandb 0.10.8 pypi_0 pypi watchdog 0.10.3 pypi_0 pypi wheel 0.34.2 py36_0 conda-forge xz 5.2.5 h7b6447c_0
    yaml 0.1.7 had09818_2
    zlib 1.2.11 h7b6447c_3
    zstd 1.3.7 h0b5b093_0 `

    opened by Ivan-VV 2
  • got error

    got error "nvcc fatal: Unsupported gpu architecture 'compute_30' " when run "python project.py build"

    Hello, when I build the project by running the command 'python project.py build' in a docker container, I got the following error, nvcc fatal : Unsupported gpu architecture 'compute_30' my GPU is RTX 3090, Cuda version is 11.1.

    log.txt

    I want to know is there anyone who successfully run with RTX 3090 or knows the solution?

    opened by WenM1222 1
  • How to evaluate on ObjectNet3D

    How to evaluate on ObjectNet3D

    Hello chengzhag,

    Thanks for your work.

    I noticed that you test your work on another dataset named ObjectNet3D, and I download it too. but what make me confused is that the intrinsic and extrinsic for camera is not provided in that dataset, and these parameters are needed.

    Could you please give me some advice for this evaluation ?

    Thank you!

    opened by Harvey-Mei 0
  • Error when I run the demo

    Error when I run the demo

    Hi, @chengzhag

    I got the error when I try to run the demo!

    ImportError: external/pyTorchChamferDistance/build/build.so: undefined symbol: _ZN3c105ErrorC1ENS_14SourceLocationERK

    I don't know why the undefined symbol occured?

    Would appreciate your help with this.

    opened by WenZhiKun 0
  • Error in building the project

    Error in building the project

    Hi @chengzhag ,

    I got the following error while building the project. Seems like there are some missing files.

    Building pyrender...
    Run: cd external/mesh_fusion/librender && /home/user/anaconda3/envs/pytorch11_py3_Im3D/bin/python setup.py build_ext --inplace
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    In file included from /home/user/anaconda3/envs/pytorch11_py3_Im3D/lib/python3.6/site-packages/numpy/core/include/numpy/ndarraytypes.h:1832:0,
                     from /home/user/anaconda3/envs/pytorch11_py3_Im3D/lib/python3.6/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                     from /home/user/anaconda3/envs/pytorch11_py3_Im3D/lib/python3.6/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                     from pyrender.cpp:531:
    /home/user/anaconda3/envs/pytorch11_py3_Im3D/lib/python3.6/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     #warning "Using deprecated NumPy API, disable it with " \
      ^
    In file included from pyrender.cpp:534:0:
    offscreen.h:4:21: fatal error: GL/glew.h: No such file or directory
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    Traceback (most recent call last):
      File "project.py", line 158, in <module>
        globals()[args.work](args)
      File "project.py", line 120, in build
        subprocess.check_output(cmd, shell=True)
      File "/home/user/anaconda3/envs/pytorch11_py3_Im3D/lib/python3.6/subprocess.py", line 356, in check_output
        **kwargs).stdout
      File "/home/user/anaconda3/envs/pytorch11_py3_Im3D/lib/python3.6/subprocess.py", line 438, in run
        output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command 'cd external/mesh_fusion/librender && /home/user/anaconda3/envs/pytorch11_py3_Im3D/bin/python setup.py build_ext --inplace' returned non-zero exit status 1.
    

    It seems there is no directory called GL. Hence, any reference to headers included in it would probably throw an error.

    Would appreciate your help with this.

    ~Cheers!

    opened by metro-smiles 34
  • Detection Evaluation Script in Python

    Detection Evaluation Script in Python

    Hi @chengzhag ,

    Great work indeed! I had one quick question. Is the evaluation script (for object detection) also available in Python, so that it could be integrated with the testing module directly?

    Appreciate your help.

    Cheers!

    opened by metro-smiles 7
Owner
Cheng Zhang
Cheng Zhang of UESTC 电子科技大学 通信学院 章程
Cheng Zhang
Hypersim: A Photorealistic Synthetic Dataset for Holistic Indoor Scene Understanding

The Hypersim Dataset For many fundamental scene understanding tasks, it is difficult or impossible to obtain per-pixel ground truth labels from real i

Apple 1.3k Jan 4, 2023
Code for CVPR 2021 oral paper "Exploring Data-Efficient 3D Scene Understanding with Contrastive Scene Contexts"

Exploring Data-Efficient 3D Scene Understanding with Contrastive Scene Contexts The rapid progress in 3D scene understanding has come with growing dem

Facebook Research 182 Dec 30, 2022
PyTorch code for our ECCV 2020 paper "Single Image Super-Resolution via a Holistic Attention Network"

HAN PyTorch code for our ECCV 2020 paper "Single Image Super-Resolution via a Holistic Attention Network" This repository is for HAN introduced in the

五维空间 140 Nov 23, 2022
Implementation of "Bidirectional Projection Network for Cross Dimension Scene Understanding" CVPR 2021 (Oral)

Bidirectional Projection Network for Cross Dimension Scene Understanding CVPR 2021 (Oral) [ Project Webpage ] [ arXiv ] [ Video ] Existing segmentatio

Hu Wenbo 135 Dec 26, 2022
Build upon neural radiance fields to create a scene-specific implicit 3D semantic representation, Semantic-NeRF

Semantic-NeRF: Semantic Neural Radiance Fields Project Page | Video | Paper | Data In-Place Scene Labelling and Understanding with Implicit Scene Repr

Shuaifeng Zhi 243 Jan 7, 2023
Code for "Primitive Representation Learning for Scene Text Recognition" (CVPR 2021)

Primitive Representation Learning Network (PREN) This repository contains the code for our paper accepted by CVPR 2021 Primitive Representation Learni

Ruijie Yan 76 Jan 2, 2023
Code for ICCV 2021 paper "Distilling Holistic Knowledge with Graph Neural Networks"

HKD Code for ICCV 2021 paper "Distilling Holistic Knowledge with Graph Neural Networks" cifia-100 result The implementation of compared methods are ba

Wang Yucheng 30 Dec 18, 2022
Neural Scene Graphs for Dynamic Scene (CVPR 2021)

Implementation of Neural Scene Graphs, that optimizes multiple radiance fields to represent different objects and a static scene background. Learned representations can be rendered with novel object compositions and views.

null 151 Dec 26, 2022
Implementation of CVPR'21: RfD-Net: Point Scene Understanding by Semantic Instance Reconstruction

RfD-Net [Project Page] [Paper] [Video] RfD-Net: Point Scene Understanding by Semantic Instance Reconstruction Yinyu Nie, Ji Hou, Xiaoguang Han, Matthi

Yinyu Nie 162 Jan 6, 2023
[CVPR 2021] Official PyTorch Implementation for "Iterative Filter Adaptive Network for Single Image Defocus Deblurring"

IFAN: Iterative Filter Adaptive Network for Single Image Defocus Deblurring Checkout for the demo (GUI/Google Colab)! The GUI version might occasional

Junyong Lee 173 Dec 30, 2022
Learning Continuous Image Representation with Local Implicit Image Function

LIIF This repository contains the official implementation for LIIF introduced in the following paper: Learning Continuous Image Representation with Lo

Yinbo Chen 1k Dec 25, 2022
Pytorch implementation of Make-A-Scene: Scene-Based Text-to-Image Generation with Human Priors

Make-A-Scene - PyTorch Pytorch implementation (inofficial) of Make-A-Scene: Scene-Based Text-to-Image Generation with Human Priors (https://arxiv.org/

Casual GAN Papers 259 Dec 28, 2022
MediaPipeのPythonパッケージのサンプルです。2020/12/11時点でPython実装のある4機能(Hands、Pose、Face Mesh、Holistic)について用意しています。

mediapipe-python-sample MediaPipeのPythonパッケージのサンプルです。 2020/12/11時点でPython実装のある以下4機能について用意しています。 Hands Pose Face Mesh Holistic Requirement mediapipe 0.

KazuhitoTakahashi 217 Dec 12, 2022
Sign Language is detected in realtime using video sequences. Our approach involves MediaPipe Holistic for keypoints extraction and LSTM Model for prediction.

RealTime Sign Language Detection using Action Recognition Approach Real-Time Sign Language is commonly predicted using models whose architecture consi

Rishikesh S 15 Aug 20, 2022
Simple command line tool for text to image generation using OpenAI's CLIP and Siren (Implicit neural representation network)

Deep Daze mist over green hills shattered plates on the grass cosmic love and attention a time traveler in the crowd life during the plague meditative

Phil Wang 4.4k Jan 3, 2023
Official pytorch code for SSC-GAN: Semi-Supervised Single-Stage Controllable GANs for Conditional Fine-Grained Image Generation(ICCV 2021)

SSC-GAN_repo Pytorch implementation for 'Semi-Supervised Single-Stage Controllable GANs for Conditional Fine-Grained Image Generation'.PDF SSC-GAN:Sem

tyty 4 Aug 28, 2022
Code for the CVPR 2021 paper: Understanding Failures of Deep Networks via Robust Feature Extraction

Welcome to Barlow Barlow is a tool for identifying the failure modes for a given neural network. To achieve this, Barlow first creates a group of imag

Sahil Singla 33 Dec 5, 2022
Official code for "End-to-End Optimization of Scene Layout" -- including VAE, Diff Render, SPADE for colorization (CVPR 2020 Oral)

End-to-End Optimization of Scene Layout Code release for: End-to-End Optimization of Scene Layout CVPR 2020 (Oral) Project site, Bibtex For help conta

Andrew Luo 41 Dec 9, 2022
Official implementation of "SinIR: Efficient General Image Manipulation with Single Image Reconstruction" (ICML 2021)

SinIR (Official Implementation) Requirements To install requirements: pip install -r requirements.txt We used Python 3.7.4 and f-strings which are in

null 47 Oct 11, 2022