PointCNN: Convolution On X-Transformed Points (NeurIPS 2018)

Overview

PointCNN: Convolution On X-Transformed Points

Created by Yangyan Li, Rui Bu, Mingchao Sun, Wei Wu, Xinhan Di, and Baoquan Chen.

Introduction

PointCNN is a simple and general framework for feature learning from point cloud, which refreshed five benchmark records in point cloud processing (as of Jan. 23, 2018), including:

  • classification accuracy on ModelNet40 (91.7%, with 1024 input points only)
  • classification accuracy on ScanNet (77.9%)
  • segmentation part averaged IoU on ShapeNet Parts (86.13%)
  • segmentation mean IoU on S3DIS (65.39%)
  • per voxel labelling accuracy on ScanNet (85.1%)

See our preprint on arXiv (accepted to NeurIPS 2018) for more details.

Pretrained models can be downloaded from here.

Performance on Recent Benchmarks

Revisiting Point Cloud Classification: A New Benchmark Dataset and Classification Model on Real-World Data

PartNet: A Large-scale Benchmark for Fine-grained and Hierarchical Part-level 3D Object Understanding

ABC: A Big CAD Model Dataset For Geometric Deep Learning

Practical Applications

3D cities: Deep Learning in three-dimensional space (from Esri)

PointCNN: replacing 50,000 man hours with AI (from Esri)

Point Cloud Segmentation using PointCNN in ArcGIS API for Python (from Esri)

More Implementations

We highly welcome issues, rather than emails, for PointCNN related questions.

License

Our code is released under MIT License (see LICENSE file for details).

Code Organization

The core X-Conv and PointCNN architecture are defined in pointcnn.py.

The network/training/data augmentation hyper parameters for classification tasks are defined in pointcnn_cls, for segmentation tasks are defined in pointcnn_seg.

Explanation of X-Conv and X-DeConv Parameters

Take the xconv_params and xdconv_params from shapenet_x8_2048_fps.py for example:

xconv_param_name = ('K', 'D', 'P', 'C', 'links')
xconv_params = [dict(zip(xconv_param_name, xconv_param)) for xconv_param in
                [(8, 1, -1, 32 * x, []),
                 (12, 2, 768, 32 * x, []),
                 (16, 2, 384, 64 * x, []),
                 (16, 6, 128, 128 * x, [])]]

xdconv_param_name = ('K', 'D', 'pts_layer_idx', 'qrs_layer_idx')
xdconv_params = [dict(zip(xdconv_param_name, xdconv_param)) for xdconv_param in
                 [(16, 6, 3, 2),
                  (12, 6, 2, 1),
                  (8, 6, 1, 0),
                  (8, 4, 0, 0)]]

Each element in xconv_params is a tuple of (K, D, P, C, links), where K is the neighborhood size, D is the dilation rate, P is the representative point number in the output (-1 means all input points are output representative points), and C is the output channel number. The links are used for adding DenseNet style links, e.g., [-1, -2] will tell the current layer to receive inputs from the previous two layers. Each element specifies the parameters of one X-Conv layer, and they are stacked to create a deep network.

Each element in xdconv_params is a tuple of (K, D, pts_layer_idx, qrs_layer_idx), where K and D have the same meaning as that in xconv_params, pts_layer_idx specifies the output of which X-Conv layer (from the xconv_params) will be the input of this X-DeConv layer, and qrs_layer_idx specifies the output of which X-Conv layer (from the xconv_params) will be forwarded and fused with the output of this X-DeConv layer. The P and C parameters of this X-DeConv layer is also determined by qrs_layer_idx. Similarly, each element specifies the parameters of one X-DeConv layer, and they are stacked to create a deep network.

PointCNN Usage

PointCNN is implemented and tested with Tensorflow 1.6 in python3 scripts. Tensorflow before 1.5 version is not recommended, because of API. It has dependencies on some python packages such as transforms3d, h5py, plyfile, and maybe more if it complains. Install these packages before the use of PointCNN.

If you can only use Tensorflow 1.5 because of OS factor(UBUNTU 14.04),please modify "isnan()" to "std::nan()" in "/usr/local/lib/python3.5/dist-packages/tensorflow/include/tensorflow/core/framework/numeric_types.h" line 49

Here we list the commands for training/evaluating PointCNN on classification and segmentation tasks on multiple datasets.

  • Classification

    • ModelNet40

    cd data_conversions
    python3 ./download_datasets.py -d modelnet
    cd ../pointcnn_cls
    ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4
    
    • ScanNet

    Please refer to http://www.scan-net.org/ for downloading ScanNet task data and scannet_labelmap, and refer to https://github.com/ScanNet/ScanNet/tree/master/Tasks/Benchmark for downloading ScanNet benchmark files:

    scannet_dataset_download

    |_ data

    |_ scannet_labelmap

    |_ benchmark

    cd ../data/scannet/scannet_dataset_download/
    mv ./scannet_labelmap/scannet-labels.combined.tsv ../benchmark/
    
    #./pointcnn_root
    cd ../../../pointcnn/data_conversions
    python extract_scannet_objs.py -f ../../data/scannet/scannet_dataset_download/data/ -b ../../data/scannet/scannet_dataset_download/benchmark/ -o ../../data/scannet/cls/
    python prepare_scannet_cls_data.py -f ../../data/scannet/cls/
    cd ../pointcnn_cls/
    ./train_val_scannet.sh -g 0 -x scannet_x3_l4
    
    • tu_berlin

    cd data_conversions
    python3 ./download_datasets.py -d tu_berlin
    python3 ./prepare_tu_berlin_data.py -f ../../data/tu_berlin/ -a --create-train-test
    cd ../pointcnn_cls
    ./train_val_tu_berlin.sh -g 0 -x tu_berlin_x3_l4
    
    • quick_draw

    Note that the training/evaluation of quick_draw requires LARGE RAM, as we load all stokes into RAM and converting them into point cloud on-the-fly.

    cd data_conversions
    python3 ./download_datasets.py -d quick_draw
    cd ../pointcnn_cls
    ./train_val_quick_draw.sh -g 0 -x quick_draw_full_x2_l6
    
    • MNIST

    cd data_conversions
    python3 ./download_datasets.py -d mnist
    python3 ./prepare_mnist_data.py -f ../../data/mnist
    cd ../pointcnn_cls
    ./train_val_mnist.sh -g 0 -x mnist_x2_l4
    
    • CIFAR-10

    cd data_conversions
    python3 ./download_datasets.py -d cifar10
    python3 ./prepare_cifar10_data.py
    cd ../pointcnn_cls
    ./train_val_cifar10.sh -g 0 -x cifar10_x3_l4
    
  • Segmentation

    We use farthest point sampling (the implementation from PointNet++) in segmentation tasks. Compile FPS before the training/evaluation:

    cd sampling
    bash tf_sampling_compile.sh
    
    • ShapeNet

    cd data_conversions
    python3 ./download_datasets.py -d shapenet_partseg
    python3 ./prepare_partseg_data.py -f ../../data/shapenet_partseg
    cd ../pointcnn_seg
    ./train_val_shapenet.sh -g 0 -x shapenet_x8_2048_fps
    ./test_shapenet.sh -g 0 -x shapenet_x8_2048_fps -l ../../models/seg/pointcnn_seg_shapenet_x8_2048_fps_xxxx/ckpts/iter-xxxxx -r 10
    cd ../evaluation
    python3 eval_shapenet_seg.py -g ../../data/shapenet_partseg/test_label -p ../../data/shapenet_partseg/test_data_pred_10 -a
    
    • S3DIS

    Please refer to data_conversions for downloading S3DIS, then:

    cd data_conversions
    python3 prepare_s3dis_label.py
    python3 prepare_s3dis_data.py
    python3 prepare_s3dis_filelists.py
    mv S3DIS_files/* ../../data/S3DIS/out_part_rgb/
    ./train_val_s3dis.sh -g 0 -x s3dis_x8_2048_fps -a 1
    ./test_s3dis.sh -g 0 -x s3dis_x8_2048_fps -a 1 -l ../../models/seg/s3dis_x8_2048_fps_xxxx/ckpts/iter-xxxxx -r 4
    cd ../evaluation
    python3 s3dis_merge.py -d <path to *_pred.h5>
    python3 eval_s3dis.py
    

We use a hidden marker file to note when prepare is finished to avoid re-processing. This cache can be invalidated by deleting the markers.

Please notice that these command just for Area 1 (specified by -a 1 option) validation. Results on other Areas can be computed by iterating -a option.

  • ScanNet

Please refer to data_conversions for downloading ScanNet, then:

cd data_conversions
python3 prepare_scannet_seg_data.py
python3 prepare_scannet_seg_filelists.py
cd ../pointcnn_seg
./train_val_scannet.sh -g 0 -x scannet_x8_2048_k8_fps
./test_scannet.sh -g 0 -x scannet_x8_2048_k8_fps -l ../../models/seg/pointcnn_seg_scannet_x8_2048_k8_fps_xxxx/ckpts/iter-xxxxx -r 4
cd ../evaluation
python3 eval_scannet.py -d <path to *_pred.h5> -p <path to scannet_test.pickle>
  • Semantic3D

Please check the free disk space before start, about 900 GB will be required.

cd data_conversions
bash download_semantic3d.sh
bash un7z_semantic3d.sh
python3 prepare_semantic3d_data.py
mkdir ../../data/semantic3d/filelists
python3 prepare_semantic3d_filelists.py
cd ../pointcnn_seg
./train_val_semantic3d.sh -g 0 -x semantic3d_x4_2048_fps
./test_semantic3d.sh -g 0 -x semantic3d_x4_2048_fps -l <path to ckpt>
cd ../evaluation
python3 semantic3d_merge.py -d <path to *_pred.h5> -v <reduced or full>
  • Tensorboard

    If you want to monitor your train step, we recommend you use the following command
    cd <your path>/PointCNN
    tensorboard --logdir=../models/<seg/cls> <--port=6006>
    
Comments
  • ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4

    ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4

    hello ,when I excute the commad: ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4 it just print "Train/Val with setting modelnet_x3_l4 on GPU 0!",but no any other action,why???

    opened by chunhuaqiushi1989 15
  • issue about the tf_sampling_compile.sh

    issue about the tf_sampling_compile.sh

    when I compile tf_sampling_so.so file some warning happened: nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). but the tf_sampling_so.so compiled successfully then I run the command: ./train_val_shapenet.sh -g 0 -x shapenet_x8_2048_fps error messages in pointcnn_seg_shapenet_x8_2048_fps.txt like that: Traceback (most recent call last): File "../train_val_seg.py", line 295, in main() File "../train_val_seg.py", line 127, in main net = model.Net(points_augmented, features_augmented, is_training, setting) File "/home/whf/ZYM/PointCNN/pointcnn_seg.py", line 11, in init PointCNN.init(self, points, features, is_training, setting) File "/home/whf/ZYM/PointCNN/pointcnn.py", line 64, in init from sampling import tf_sampling File "/home/whf/ZYM/PointCNN/sampling/tf_sampling.py", line 15, in sampling_module=tf.load_op_library(os.path.join(BASE_DIR, 'tf_sampling_so.so')) File "/home/whf/anaconda3/envs/tf_gpu/lib/python3.6/site-packages/tensorflow/python/framework/load_library.py", line 58, in load_op_library lib_handle = py_tf.TF_LoadLibrary(library_filename, status) File "/home/whf/anaconda3/envs/tf_gpu/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", line 516, in exit c_api.TF_GetCode(self.status.status)) tensorflow.python.framework.errors_impl.NotFoundError: /home/whf/ZYM/PointCNN/sampling/tf_sampling_so.so: undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv

    My environment as follows: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) tensorflow 1.6.0

    opened by YamingZ 11
  • Visualization of the segmentation results

    Visualization of the segmentation results

    Hello, thanks for sharing your great work with us here! I just downloaded the ScanNet dataset for semantic segmentation task, and I have finished the training and testing. When I wanted to visualize the results, I found that every ply file is just a tiny part of the whole scene. How can I visualize the result of the whole scene? I have no idea which files belong to the same scene. Does every h5 file contain several different scenes?

    opened by RicheyHuang 10
  • Memory Error

    Memory Error

    When I test the semantic3d data set, my computer has 64GB of memory. Memory Error appears when I prepare data and train. How much memory does it need?

    opened by ruanhailiang 9
  • tf_sampling_so.so error while training

    tf_sampling_so.so error while training

    Hi, I followed the steps in the Semantic3d dataset and used a custom dataset to train. I was able to create .h5 and all steps were successful. But when I run, ./train_val_semantic3d.sh -g 0 -x semantic3d_x4_2048_fps :
    inside models/seg -> the log file shows the following error: tf_sampling_so.so: cannot open shared object file: No such file or directory

    I checked the existing issues (https://github.com/charlesq34/pointnet2/issues/48) and made changes to Pointcnn/sampling/tf_sampling_compiler.sh but still did not work.

    I am using the TensorFlow version = 1.15, python 3.6, conda environment(Used pip command to install tf as mentioned in one of the issues. Still didn't work) Any help on how to resolve this issue? Regards Niranjan

    opened by NiranjanRavi1993 8
  • Undefined name 'tnet'

    Undefined name 'tnet'

    https://github.com/yangyanli/PointCNN/blob/master/pointnetpp_cls/utils/pointnet_util.py#L49

    flake8 testing of https://github.com/yangyanli/PointCNN

    $ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

    ./pointnetpp_cls/utils/pointnet_util.py:49:23: F821 undefined name 'tnet'
            grouped_xyz = tnet(grouped_xyz, tnet_spec)
                          ^
    1     F821 undefined name 'tnet'
    
    opened by cclauss 8
  • Classification on large *.ply data

    Classification on large *.ply data

    Hi, Thank you for sharing your work. My 3D face dataset contains large ply files. For example:

    ply
    format ascii 1.0
    element vertex 166368
    property float x
    property float y
    property float z
    element face 156797
    property list uchar int vertex_indices
    end_header
    -50.8063 31.0753 83.1526
    ...
    3 37583 37611 37610 
    ...
    

    And i should do the classification basing on these ply files but I have no idea how to implement it using PointCNN. What should i do?

    Thank you. tsly

    opened by tsly123 7
  • ScanNet classification, can't obtain 9,305/2,606 training/testing instances

    ScanNet classification, can't obtain 9,305/2,606 training/testing instances

    How did you fix the benchmark files to reach 9,305/2,606 instances, as you mentioned in issue #29 ?

    Can you update the benchmark files with the fixed files (maybe scannet-labels.combined.tsv and classes_ObjClassification-ShapeNetCore55.txt in ./data_conversions)? Thanks.

    opened by Yochengliu 7
  • ImportError: No module named sampling in Python 2.7

    ImportError: No module named sampling in Python 2.7

    Hi, I am able to compile the sampling file but can't use it. I am using python 2.7 and Tensorflow 1.7.0 When I want to import sampling in pointcnn.py, I got the following error :

      File "/home/yjm/Project/PointCNN11_24_new/code/pointcnn.py", line 69, in __init__
        from sampling import tf_sampling
    ImportError: No module named sampling
    

    However, when I compile sampling, I got no error. My tf_sampling_compile.sh file is :

    #/bin/bash
    PYTHON=python
    nvcc=/usr/local/cuda/bin/nvcc
    cudalib=/usr/local/cuda/lib64
    tensorflow=/home/yjm/anaconda3/envs/py27_1/lib/python2.7/site-packages/tensorflow/include
    TF_INC=$($PYTHON -c 'import tensorflow as tf;print(tf.sysconfig.get_include())')
    TF_LIB=$($PYTHON -c 'import tensorflow as tf;print(tf.sysconfig.get_lib())')
    
    $nvcc tf_sampling_g.cu -o tf_sampling_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
    g++ -std=c++11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I $tensorflow -I$TF_INC/external/nsync/public -L$TF_LIB -ltensorflow_framework -I /usr/local/cuda/include -lcudart -L /usr/local/cuda/lib64/ -O2
    

    I would be very grateful if you give me some suggestions ! Thanks!

    opened by jialancong 7
  • Problem on Reproducing Scannet Segmentation Results

    Problem on Reproducing Scannet Segmentation Results

    Hi,

    I tried to reproduce the results for Scannet Dataset on Segmentation Task but I cannot reproduce the mentioned results. The accuracy just around 77.76% (Validation) and ~85% for training data. I used the "pointnet++ preprocessed data" with provided scannet-seg hyper-parameters.

    Can you give me a clue what I should do to reproduce the result? And also how long do you train the model to achieve the published result?

    opened by hasanari 7
  • could not run the code

    could not run the code

    Hi, I could not run the code using the commands you give.

    (pointcnn) [email protected]:/mnt/Ubuntu/PointCNN-master/pointcnn_cls$ ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4 Train/Val with setting modelnet_x3_l4 on GPU 0! (pointcnn) [email protected]:/mnt/Ubuntu/PointCNN-master/pointcnn_cls$

    It echos "Train/Val with setting modelnet_x3_l4 on GPU 0!" but exits immediately. What's the problem?

    opened by rruixxu 6
  • ScannetV2 for point cloud Classification get too high performace

    ScannetV2 for point cloud Classification get too high performace

    Thanks for your work! When i use your code extract scannet dataset for 3D classification , I get 12060 examples for training and 3416 for testing. It seems that scannetv2 is different from scannetv1. However , when i train it with pointnet and pointnet++, I respectively get the best performance 89.34 and 90.35! It is higher than your paper's result. Do anyone have the same founding with me? Is it normal phenomenon due to the Scannetv2 is easy to classify than Scannetv1(i guess that in 2018 , Scannet just release V1) or i make some mistakes which cause my dataset wrong?

    Thanks for anyone's answer. Best regards. ╰(°▽°)╯

    opened by jumptiger66 0
  • PointCNN Part segmentation model details

    PointCNN Part segmentation model details

    Dear author,

    I am interested in finding out the model size for PointCNN part segmentation, but I could only find the information for PointCNN classification network. Could you please report what is GMac for PointCNN part segmentation network? Thank you very much in advance.

    opened by edshkim98 0
  • Regarding custom dataset

    Regarding custom dataset

    Hi. Thank you for the repository.

    I wanted to ask if it is possible to get any guidance regarding the custom dataset. I have my own dataset i.e. X, Y, Z points with labels (4 columns in total) in txt files. I wanted to know how I can create a data loader for custom data and train the network.

    opened by pytholic 7
  • How to run PointCNN

    How to run PointCNN

    Hi everyone,

    I am pretty new in Neural Networks, can anyone share with me which parameters do you use? In which formats are (number, dictionary, array)? How do you run the class PointCNN?

    Thank you in advance!

    opened by elinausmanova 0
  • Creating Confusion matrix from predicted results

    Creating Confusion matrix from predicted results

    I am trying to create (and plot) a confusion matrix for a multilabel dataset that has the predicted results structured in the same way the S3DIS results. I'm having trouble with creating the confusion matrix from the results and I am wondering if anyone has figured out how to do this. Any help would be greatly appreciated!

    opened by jobberz77 0
Releases(v1.0)
Automatic packaging of the open-composite libs for OvGME

OvGME Packager for OpenXR – OpenComposite for DCS Note This repository is currently unsupported and needs to be migrated to the upstream OpenComposite

12 Nov 03, 2022
Sample Prior Guided Robust Model Learning to Suppress Noisy Labels

PGDF This repo is the official implementation of our paper "Sample Prior Guided Robust Model Learning to Suppress Noisy Labels ". Citation If you use

CVSM Group - email: <a href=[email protected]"> 22 Dec 23, 2022
GB-CosFace: Rethinking Softmax-based Face Recognition from the Perspective of Open Set Classification

GB-CosFace: Rethinking Softmax-based Face Recognition from the Perspective of Open Set Classification This is the official pytorch implementation of t

Alibaba Cloud 5 Nov 14, 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
REBEL: Relation Extraction By End-to-end Language generation

REBEL: Relation Extraction By End-to-end Language generation This is the repository for the Findings of EMNLP 2021 paper REBEL: Relation Extraction By

Babelscape 222 Jan 06, 2023
SciPy fixes and extensions

scipyx SciPy is large library used everywhere in scientific computing. That's why breaking backwards-compatibility comes as a significant cost and is

Nico Schlömer 16 Jul 17, 2022
PyTorch code for EMNLP 2021 paper: Don't be Contradicted with Anything! CI-ToD: Towards Benchmarking Consistency for Task-oriented Dialogue System

Don’t be Contradicted with Anything!CI-ToD: Towards Benchmarking Consistency for Task-oriented Dialogue System This repository contains the PyTorch im

Libo Qin 25 Sep 06, 2022
An implementation for the loss function proposed in Decoupled Contrastive Loss paper.

Decoupled-Contrastive-Learning This repository is an implementation for the loss function proposed in Decoupled Contrastive Loss paper. Requirements P

Ramin Nakhli 71 Dec 04, 2022
《Image2Reverb: Cross-Modal Reverb Impulse Response Synthesis》(2021)

Image2Reverb Image2Reverb is an end-to-end neural network that generates plausible audio impulse responses from single images of acoustic environments

Nikhil Singh 48 Nov 27, 2022
OOD Generalization and Detection (ACL 2020)

Pretrained Transformers Improve Out-of-Distribution Robustness How does pretraining affect out-of-distribution robustness? We create an OOD benchmark

littleRound 57 Jan 09, 2023
codebase for "A Theory of the Inductive Bias and Generalization of Kernel Regression and Wide Neural Networks"

Eigenlearning This repo contains code for replicating the experiments of the paper A Theory of the Inductive Bias and Generalization of Kernel Regress

Jamie Simon 45 Dec 02, 2022
DiSECt: Differentiable Simulator for Robotic Cutting

DiSECt: Differentiable Simulator for Robotic Cutting Website | Paper | Dataset | Video | Blog post DiSECt is a simulator for the cutting of deformable

NVIDIA Research Projects 73 Oct 29, 2022
A Pytorch Implementation of ClariNet

ClariNet A Pytorch Implementation of ClariNet (Mel Spectrogram -- Waveform) Requirements PyTorch 0.4.1 & python 3.6 & Librosa Examples Step 1. Downlo

Sungwon Kim 286 Sep 15, 2022
Gradient Inversion with Generative Image Prior

Gradient Inversion with Generative Image Prior This repository is an implementation of "Gradient Inversion with Generative Image Prior", accepted to N

MLLab @ Postech 25 Jan 09, 2023
Pytorch implementation of NeurIPS 2021 paper: Geometry Processing with Neural Fields.

Geometry Processing with Neural Fields Pytorch implementation for the NeurIPS 2021 paper: Geometry Processing with Neural Fields Guandao Yang, Serge B

Guandao Yang 162 Dec 16, 2022
使用OpenCV部署全景驾驶感知网络YOLOP,可同时处理交通目标检测、可驾驶区域分割、车道线检测,三项视觉感知任务,包含C++和Python两种版本的程序实现。本套程序只依赖opencv库就可以运行, 从而彻底摆脱对任何深度学习框架的依赖。

YOLOP-opencv-dnn 使用OpenCV部署全景驾驶感知网络YOLOP,可同时处理交通目标检测、可驾驶区域分割、车道线检测,三项视觉感知任务,依然是包含C++和Python两种版本的程序实现 onnx文件从百度云盘下载,链接:https://pan.baidu.com/s/1A_9cldU

178 Jan 07, 2023
Irrigation controller for Home Assistant

Irrigation Unlimited This integration is for irrigation systems large and small. It can offer some complex arrangements without large and messy script

Robert Cook 176 Jan 02, 2023
An implementation of an abstract algebra for music tones (pitches).

nbdev template Use this template to more easily create your nbdev project. If you are using an older version of this template, and want to upgrade to

Open Music Kit 0 Oct 10, 2022
Learning to Prompt for Vision-Language Models.

CoOp Paper: Learning to Prompt for Vision-Language Models Authors: Kaiyang Zhou, Jingkang Yang, Chen Change Loy, Ziwei Liu CoOp (Context Optimization)

Kaiyang 679 Jan 04, 2023
[ACMMM 2021, Oral] Code release for "Elastic Tactile Simulation Towards Tactile-Visual Perception"

EIP: Elastic Interaction of Particles Code release for "Elastic Tactile Simulation Towards Tactile-Visual Perception", in ACMMM (Oral) 2021. By Yikai

Yikai Wang 37 Dec 20, 2022