Real-Time Neural 3D Hand Pose Estimation from an Event Stream [ICCV 2021]

EventHands: Real-Time Neural 3D Hand Pose Estimation from an Event Stream

Project Page

Index

Data and Assets

Please download all the data from here into the corresponding folders.

If you don't plan retraining the network, you might want to skip downloading train_data as it is magnitutes larger than all of the other folders.

If you don't plan to use the evaluation datasets, you might also want to skip downloading real_eval_data and synth_eval_data folders.

Environment

Please find the Anaconda environment we used for everything (incl. compiling the simulator) at environment.yml

Models

  • regular.ckpt -- regular model
  • bottom.ckpt -- model for the hand coming from the bottom edge of the frame

License

Permission is hereby granted, free of charge, to any person or company obtaining a copy of this software and associated documentation files (the "Software") from the copyright holders to use the Software for any non-commercial purpose. Publication, redistribution and (re)selling of the software, of modifications, extensions, and derivates of it, and of other software containing portions of the licensed Software, are not permitted. The Copyright holder is permitted to publically disclose and advertise the use of the software by any licensee.

Packaging or distributing parts or whole of the provided software (including code, models and data) as is or as part of other software is prohibited. Commercial use of parts or whole of the provided software (including code, models and data) is strictly prohibited. Using the provided software for promotion of a commercial entity or product, or in any other manner which directly or indirectly results in commercial gains is strictly prohibited.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Similar Resources

HybridPose: 6D Object Pose Estimation under Hybrid Representation (CVPR 2020)

HybridPose: 6D Object Pose Estimation under Hybrid Representation (CVPR 2020)

HybridPose: 6D Object Pose Estimation under Hybrid Representations This repository contains authors' implementation of HybridPose: 6D Object Pose Esti

Nov 22, 2022

A lightweight 2D Pose model can be deployed on Linux/Window/Android, supports CPU/GPU inference acceleration, and can be detected in real time on ordinary mobile phones.

A lightweight 2D Pose model  can be deployed on Linux/Window/Android, supports CPU/GPU inference acceleration, and can be detected in real time on ordinary mobile phones.

A lightweight 2D Pose model can be deployed on Linux/Window/Android, supports CPU/GPU inference acceleration, and can be detected in real time on ordinary mobile phones.

Jan 3, 2023

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

Dec 29, 2022

R3live - A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package

R3live - A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package

R3LIVE A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package News [Dec 31, 2021] Release of cod

Jan 4, 2023

The 2nd solution (68.1 mIoU) for ICCV workshop challenge SensarUrban

The 2nd solution (68.1 mIoU) for ICCV workshop challenge SensarUrban

SensatUrban 2nd Solution This repository is for the runner up solution for the ICCV 2021 workshop challenge SensatUrban. Getting Started Requirements

Dec 1, 2022

Research on Event Accumulator Settings for Event-Based SLAM

Research on Event Accumulator Settings for Event-Based SLAM

Research on Event Accumulator Settings for Event-Based SLAM This is the source code for paper "Research on Event Accumulator Settings for Event-Based

Dec 21, 2022

IBM Z Deep Neural Network Library (zDNN) provides an interface for applications making use of Neural Network Processing Assist Facility (NNPA).

zDNN API Reference Contacts Nicholas Marion ([email protected]) Andreas Krebbel ([email protected]) Version 0.4.0 Table of Contents Overview Envi

Dec 20, 2022

[CVPR 2021] NormalFusion: Real-Time Acquisition of Surface Normals for High-Resolution RGB-D Scanning

NormalFusion: Real-Time Acquisition of Surface Normals for High-Resolution RGB-D Scanning Project Page | Paper | Supplemental material #1 | Supplement

Jan 2, 2023

Real-time Skeletonization for Sketch-based Modeling (SMI:2021)

 Real-time Skeletonization for Sketch-based Modeling (SMI:2021)

Real-time Skeletonization for Sketch-based Modeling (SMI:2021) Demo We provide an executable software under directory "demo_exe/". Tested Environment

Dec 21, 2022
Comments
  • Evaluate synthtic script missing

    Evaluate synthtic script missing

    Hello,

    i think the evaluation script of synthetic data is missing in this repository.

    According to https://github.com/r00tman/EventHands/blob/main/EVAL_SYNTH.md, there should be a predict_synth.py file. However, i cannot find it here. Can you please point it our where to find that script?

  • Fail On Generate video1000.mp4

    Fail On Generate video1000.mp4

    I run the step 3 in readme EVAL_REAL.md, try to generate the visualized video1000.mp4:

    ./build/evsim -o -p ../filter/predictions_filteredfast.txt -r 60 -j joints.txt -w 240 -h 180 -v | ffmpeg -y -s 240x180 -f rawvideo -pix_fmt rgb24 -framerate 60 -i pipe:0 -crf 1 -pix_fmt yuv444p video1000.mp4

    but got some trouble with output below:

    ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 7.3.0 (crosstool-NG 1.23.0.449-a04d0) configuration: --prefix=/home/ai1/anaconda3 --cc=/tmp/build/80754af9/ffmpeg_1587154242452/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc --disable-doc --enable-avresample --enable-gmp --enable-hardcoded-tables --enable-libfreetype --enable-libvpx --enable-pthreads --enable-libopus --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-static --enable-version3 --enable-zlib --enable-libmp3lame --disable-nonfree --enable-gpl --enable-gnutls --disable-openssl --enable-libopenh264 --enable-libx264 libavutil 56. 31.100 / 56. 31.100 libavcodec 58. 54.100 / 58. 54.100 libavformat 58. 29.100 / 58. 29.100 libavdevice 58. 8.100 / 58. 8.100 libavfilter 7. 57.100 / 7. 57.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 5.100 / 5. 5.100 libswresample 3. 5.100 / 3. 5.100 libpostproc 55. 5.100 / 55. 5.100 1 1 1 1 1 1 loading replay loaded replay time=955ms frames=100 fps=104.71 c=0.50 t=1.65 1/dt=60.00 time=1331ms frames=200 fps=150.26 c=0.50 t=3.32 1/dt=60.00 Input #0, rawvideo, from 'pipe:0': Duration: N/A, bitrate: 62208 kb/s Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 240x180, 62208 kb/s, 60 tbr, 60 tbn, 60 tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) [libx264 @ 0x559e729f1dc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x559e729f1dc0] profile High 4:4:4 Predictive, level 1.3, 4:4:4, 8-bit [libx264 @ 0x559e729f1dc0] 264 - core 157 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'video1000.mp4': Metadata: encoder : Lavf58.29.100 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p, 240x180, q=-1--1, 60 fps, 15360 tbn, 60 tbc Metadata: encoder : Lavc58.54.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
    video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown`

    The video after output is not playable, is there any advice to solve the problem ??

    I had tried to use command /build/evsim -p ../filter/predictions_filteredfast.txt -r 60 -j joints.txt -w 240 -h 180 -v which let the executable reder on the screen, and it seems works fine.

  • problem when compiling c++ code

    problem when compiling c++ code

    Thanks for your excellent work! But I met some problem when compiling the c++ code.

    $ cmake .. -DCMAKE_CXX_COMPILER=g++-8 -DCMAKE_C_COMPILER=gcc-8 -- The CXX compiler identification is GNU 8.4.0 -- The CUDA compiler identification is NVIDIA 10.1.105 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++-8 - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Detecting CUDA compiler ABI info -- Detecting CUDA compiler ABI info - done -- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc - skipped -- Detecting CUDA compile features -- Detecting CUDA compile features - done -- Found SDL2: /usr/lib/x86_64-linux-gnu/libSDL2.so (found version "2.0.10") CMake Warning (dev) at /usr/local/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to find_package_handle_standard_args (SDL2main) does not match the name of the calling package (SDL2). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/sdl2/FindSDL2.cmake:318 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:37 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

    -- Found SDL2main: /usr/lib/x86_64-linux-gnu/libSDL2main.a (found version "2.0.10") CMake Warning (dev) at /usr/local/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to find_package_handle_standard_args (SDL2main) does not match the name of the calling package (SDL2). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/sdl2/FindSDL2.cmake:318 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) cmake/sdl2/FindSDL2_image.cmake:114 (find_package) CMakeLists.txt:42 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

    -- Found SDL2_image: /usr/lib/x86_64-linux-gnu/libSDL2_image.so (found version "2.0.5") -- Found GLEW: /usr/include (found version "2.1.0") -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    -- Found GLM: /usr/include
    -- Looking for sgemm_ -- Looking for sgemm_ - found -- Found BLAS: /usr/lib/x86_64-linux-gnu/libopenblas.so
    -- Looking for cheev_ -- Looking for cheev_ - found -- Found LAPACK: /usr/lib/x86_64-linux-gnu/libopenblas.so;/usr/lib/x86_64-linux-gnu/libopenblas.so
    -- Found CUDAToolkit: /usr/local/cuda/include (found version "10.1.105") -- Found Threads: TRUE
    -- Configuring done -- Generating done -- Build files have been written to: /home/cll/disk/EventHands/evsim_joints/build

    $ cmake --build . [ 6%] Building CXX object CMakeFiles/evsim.dir/main.cpp.o [ 12%] Building CUDA object CMakeFiles/evsim.dir/evc.cu.o /usr/lib/gcc/x86_64-linux-gnu/7/include/avx512fintrin.h(11265): error: identifier "__builtin_ia32_scalefsd_round" is undefined

    /usr/lib/gcc/x86_64-linux-gnu/7/include/avx512fintrin.h(11274): error: identifier "__builtin_ia32_scalefss_round" is undefined

    2 errors detected in the compilation of "/tmp/tmpxft_00001d58_00000000-6_evc.cpp1.ii". make[2]: *** [CMakeFiles/evsim.dir/build.make:90: CMakeFiles/evsim.dir/evc.cu.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/evsim.dir/all] Error 2 make: *** [Makefile:91: all] Error 2

    Could you please provide any instructions on it? Thank you in advance.

  • install the the whole c++ project

    install the the whole c++ project

    Great Job

    Is there a readme t install the whole c++ project.

    I read all readme but these is no readme how to make/install the whole project or each module

Android hand detect and pose estimation by ncnn
Android hand detect and pose estimation by ncnn

ncnn_nanodet_hand 1.hand detect:用nanode-m训练了个hand detect模型, 2.hand pose:用CMU的数据集训练了个ghostnet作为backbone模仿pfld的handpose模型 3.推理:handpose.cpp单独检测pose,nano

Jan 3, 2023
Pose-tensorflow - Human Pose estimation with TensorFlow framework
Pose-tensorflow -  Human Pose estimation with TensorFlow framework

Human Pose Estimation with TensorFlow Here you can find the implementation of the Human Body Pose Estimation algorithm, presented in the DeeperCut and

Dec 29, 2022
ROS wrapper for real-time incremental event-based vision motion estimation by dispersion minimisation
ROS wrapper for real-time incremental event-based vision motion estimation by dispersion minimisation

event_emin_ros ROS wrapper for real-time incremental event-based vision motion estimation by dispersion minimisation (EventEMin). This code was used t

Jan 10, 2022
ManipNet: Neural Manipulation Synthesis with a Hand-Object Spatial Representation - SIGGRAPH 2021
ManipNet: Neural Manipulation Synthesis with a Hand-Object Spatial Representation - SIGGRAPH 2021

ManipNet: Neural Manipulation Synthesis with a Hand-Object Spatial Representation - SIGGRAPH 2021 Dataset Code Demos Authors: He Zhang, Yuting Ye, Tak

Jan 5, 2023
Pixel-Perfect Structure-from-Motion with Featuremetric Refinement (ICCV 2021, Oral)
Pixel-Perfect Structure-from-Motion with Featuremetric Refinement (ICCV 2021, Oral)

Pixel-Perfect Structure-from-Motion Best student paper award @ ICCV 2021 We introduce a framework that improves the accuracy of Structure-from-Motion

Dec 28, 2022
Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.
Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.

Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.

Jan 9, 2023
Fast and robust certifiable relative pose estimation

Fast and Robust Relative Pose Estimation for Calibrated Cameras This repository contains the code for the relative pose estimation between two central

Dec 6, 2022
Android MoveNet pose estimation by ncnn
Android MoveNet pose estimation by ncnn

ncnn_Android_MoveNet Android MoveNet single human pose estimation by ncnn this project is a ncnn Android demo for MoveNet, it depends on ncnn library

Dec 31, 2022
CUDA-accelerated Apriltag detection and pose estimation.
CUDA-accelerated Apriltag detection and pose estimation.

Isaac ROS Apriltag Overview This ROS2 node uses the NVIDIA GPU-accelerated AprilTags library to detect AprilTags in images and publishes their poses,

Dec 26, 2022
Reviatalizing Optimization for 3D Human Pose and Shape Estimation: A Sparse Constrained Formulation
Reviatalizing Optimization for 3D Human Pose and Shape Estimation: A Sparse Constrained Formulation

Reviatalizing Optimization for 3D Human Pose and Shape Estimation: A Sparse Constrained Formulation This is the implementation of the approach describ

Nov 15, 2022