• Stars
    star
    151
  • Rank 246,057 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

KeypointNet: A Large-scale 3D Keypoint Dataset Aggregated from Numerous Human Annotations (CVPR2020)

KeypointNet

Full dataset is available now! KeypointNet is a large-scale and diverse 3D keypoint dataset that contains 83,231 keypoints and 8,329 3D models from 16 object categories, by leveraging numerous human annotations, based on ShapeNet models. Our paper is available on https://arxiv.org/pdf/2002.12687.pdf and is accepted to CVPR 2020. You can explore our dataset on http://qq456cvb.github.io/keypointnet/explore/.

News! Two interesting unsupervised keypoint detectors: UKPGAN (unordered but SE(3) invariant) and SkeletonMerger (not SE(3) invariant but ordered) are now released!

Change Logs

For updated dataset information, see Change Log

Keypoint Data

Dataset can be downloaded from Google Drive or OneDrive. Annotated JSON data is placed under annotations. In addition, we provide sampled point clouds (2048 points) for each ShapeNet model under pcds.

We have processed and cleaned labels for airplane (1022 models), bathtub (492 models), bed (146 models), bottle (380 models), cap (38 models), car (1002 models), chair (999 models), guitar (697 models), helmet (90 models), knife (270 models), laptop (439 models), motorcycle (298 models), mug (198 models), skateboard (141 models), table (1124 models) and vessel (910 models).

UPDATE: we have managed to add color information onto sampled point clouds and keypoints. In addition, since processing raw ShapeNet obj file as colored triangle meshes is painful, we have generated corresponding ply files (named ShapeNetCore.v2.ply.zip) with vertex colors (diffuse texture color), for those are interested in dealing with triangle meshes. We believe color is an important source when learning from 3D geometries.

Data format

[
    ...,
    {  
        "class_id": "03001627",  // WordNet id
        "model_id": "88382b877be91b2a572f8e1c1caad99e",  // model id
        "keypoints": [
            {
                "xyz": [0.16, 0.1, 0.1],  // xyz coordinate of keypoint
                "rgb": [255, 255, 255], // rgb color of keypoint, uint8
                "semantic_id": 0,  // id of semantic meaning
                "pcd_info": {
                    "point_index": 0  // keypoint index on corresponding point cloud
                },
                "mesh_info": {  // mesh information for both obj and ply files
                    "face_index": 0,  // index of mesh face where keypoint lies
                    "face_uv": [0.2, 0.4, 0.4]  // barycentric coordinate on corresponding mesh face
                }
            },
            ...
        ],
        "symmetries": { // information of keypoint symmetries
            "reflection": 
            [
                {
                    "kp_indexes": [0, 1]  // keypoint indexes of a reflection symmetric group
                },
                ...
            ],
            "rotation":
            [
                {
                    "kp_indexes": [0, 1, 2, 3],  // keypoint indexes of a rotation symmetric group
                    "is_circle": true,  // true if this rotation symmtric group is a rounding circle
                    "circle": {
                        "center": [0.2, 0.5, 0.2],  // circle center
                        "radius": 0.32,  // circle radius
                        "normal": [0, 1.0, 0],  // normal of circle plane
                    }
                },
                ...
            ]
        }

    },
    ...
]

Examples

Example scripts on reading and visualizing keypoints on both point clouds and triangle meshes are placed under examples.

Keypoint Detection Tasks

Keypoint saliency and correspondence training and evaluation baselines for various backbones are placed under benchmark_scripts. For more details, please refer to benchmark_scripts/README.md.

Data Splits

train/val/test splits are placed under splits. Each line is formatted as [class_id]-[model_id].

Citation

If you find KeypointNet data or code useful in your research, please consider citing:

@article{you2020keypointnet,
  title={KeypointNet: A Large-scale 3D Keypoint Dataset Aggregated from Numerous Human Annotations},
  author={You, Yang and Lou, Yujing and Li, Chengkun and Cheng, Zhoujun and Li, Liangwei and Ma, Lizhuang and Lu, Cewu and Wang, Weiming},
  journal={arXiv preprint arXiv:2002.12687},
  year={2020}
}

TODOs

  • clean labels for more classes
  • add colored pcds/meshes
  • a browser interface to explore dataset

License

Our KeypointNet is released under MIT license.

More Repositories

1

Point-Transformers

Point Transformers
Python
617
star
2

doudizhu-C

C++/python fight the lord with pybind11 (强化学习AI斗地主), Accepted to AIIDE-2020
Python
158
star
3

VoteNet

Deep Hough Voting for 3D Object Detection in Point Clouds (https://arxiv.org/abs/1904.09664)
Python
141
star
4

PRIN

Pointwise Rotation-Invariant Network (AAAI 2020)
Python
85
star
5

UKPGAN

UKPGAN: A General Self-Supervised Keypoint Detector (CVPR2022)
Python
64
star
6

CPPF

CPPF: Towards Robust Category-Level 9D Pose Estimation in the Wild (CVPR2022)
Jupyter Notebook
48
star
7

CanonicalVoting

Canonical Voting: Towards Robust Oriented Bounding Box Detection in 3D Scenes (CVPR2022)
Python
46
star
8

cs231n

cs231n assignments
Python
35
star
9

SPRIN

PRIN/SPRIN: On Extracting Point-wise Rotation Invariant Features
Python
23
star
10

CPPF2

6D Pose Estimation in the Wild
Jupyter Notebook
22
star
11

Mahjong

Python 图形化麻将游戏 (带蒙特卡洛AI)
Java
19
star
12

RealTimeTrack

A fast algorithm tracking real time deformable planers
C++
19
star
13

Panoroma

Fully C++ implementation of "Automatic Panoramic Image Stitching using Invariant Features"
C++
16
star
14

multi-stage-detection

Tensorflow implementation of "MULTI-STAGE REINFORCEMENT LEARNING FOR OBJECT DETECTION"
Python
15
star
15

PACE

Python
13
star
16

SemanticTransfer

Code repo for the paper "Semantic Correspondence via 2D-3D-2D Cycle"
Python
12
star
17

PatchMatchStereo

https://www.microsoft.com/en-us/research/wp-content/uploads/2011/01/PatchMatchStereo_BMVC2011_6MB.pdf
Python
10
star
18

doudizhu-tornado

Python
9
star
19

CSVAE

Python
8
star
20

FightTheLord

斗地主python命令行版
Python
7
star
21

deblur

Two-Phase Kernel Estimation for Robust Motion Deblurring
Python
7
star
22

Collaborative-Learning

Tensorflow implementation of "Collaborative Learning for Deep Neural Networks"
Python
7
star
23

VideoView

The android Video system
Java
5
star
24

OneLoc

OneLoc: One-Shot General Object Localization
Cuda
5
star
25

QENet

Quaternion Equivariant Capsule Networks for 3D Point Clouds
Python
5
star
26

mask-rcnn

tiny-mask-rcnn-tensorflow
Python
5
star
27

Perception3D

Python
4
star
28

ObjSimplifier

Open-source C++ Obj Simplifier implementing "Surface Simplification Using Quadric Error Metrics" 1997
C++
4
star
29

DanmukuTools

in the future, I decide to write some danmuku js tools for bilibiliers to use.
JavaScript
3
star
30

DeHaze

Matlab implementation of "Single Image Haze Removal Using Dark Channel Prior"
MATLAB
3
star
31

KdNet-Tensorflow

KdNet
Python
3
star
32

DSO-iOS

Direct Sparse Odometry for iOS
C++
3
star
33

TSDF-from-Depth

C++
3
star
34

CudaRenderer

A Cuda Renderer in C++ style using PBRT
Cuda
3
star
35

SLAM-MaskRCNN

Jupyter Notebook
3
star
36

OctConv

Tensorflow implementation on OctConv https://arxiv.org/pdf/1904.05049.pdf
Python
3
star
37

enumlator

超级斗地主模拟器
Python
2
star
38

AAE

Adversarial Autoencoders (https://arxiv.org/pdf/1511.05644.pdf)
Python
2
star
39

DoomRL

This is for Doom using Reinforcement Learning
Python
2
star
40

Visual-Question-Answering

Deep Learning solving VQA with Pytorch
Jupyter Notebook
2
star
41

Cycle-W-GAN

Cycle-GAN using Wasserstein distance
Python
2
star
42

DeepLearningKitForiOS

Swift
2
star
43

algorithm-snippets

algorithms across many fields, some small experiments giving the idea how the algorithm works
Python
1
star
44

GrabCut

GrabCut in C++
C++
1
star
45

DanmuEngine

Danmu Engine, nothing is impossible
JavaScript
1
star
46

Lianliankan

C++
1
star
47

Butterfly

For butterfly detection
Python
1
star
48

cuda-renderer

cuda_renderer
Cuda
1
star
49

doudizhu-baseline

C++
1
star
50

Sketch-WGAN

Python
1
star
51

Coursera-Algorithm-II

Princeton course
Java
1
star
52

SfM

Python
1
star
53

GeometricProcessing3D

C++
1
star
54

mpm

MPM playground
C++
1
star
55

cs348b

C++
1
star