handのlandmarkを検出するプログラムを調査中

# Paper with code

https://paperswithcode.com/task/3d-hand-pose-estimation

HOISDF: Constraining 3D Hand-Object Pose Estimation with Global Signed
Distance Fields
[pdf](https://arxiv.org/pdf/2402.17062v1.pdf)
[github](https://github.com/amathislab/hoisdf) comming soon

------------------------------------------------------------
3D Hand Pose Estimation on H3WB
[pdf](https://arxiv.org/pdf/2312.11894v1.pdf)

----------------------------------------------

# NVIDIA-AI-IOT にある例
https://github.com/NVIDIA-AI-IOT/trt_pose_hand
https://github.com/NVIDIA-AI-IOT/realtime_handpose_3d


# github 
github　上では、異なるtopic で似たものが登録されている。

hand-pose, hand-landmark, hand-landmarks, finger-detection

github [hand-pose](https://github.com/topics/hand-pose)
github [hand-landmark](https://github.com/topics/hand-landmark)
github [hand-landmarks](https://github.com/topics/hand-landmarks)
github [finger-detection](https://github.com/topics/finger-detection)

mediapipe でのhand pose のモデルが公開されてから、
それを利用するリポジトリが増えている。

PapersWithCode [Hand Pose Estimation](https://paperswithcode.com/task/hand-pose-estimation)

PapersWithCode のサイトは、それぞれのタスクに対して、どのようなデータセットで比較されているのかを示している。
そこに、Librariesに対応する実装へのリンクがおいてあります。
★の数で、どれくらい着目されているのかを知ることができます。


対象OS：
対象CPU：
対象GPU：
対象言語：
３次元のポーズを返すかどうか：
利用しているフレームワークの種類：
学習済みのモデルファイル：
こういったことを、あなたの利用目的の中で調査してみてください。

## OpenPose の場合
openpose のhand 検出器
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/src/openpose/hand/handDetector.cpp


[OpenPoseのHand Estimationを動かしてみた](https://qiita.com/nnn112358/items/713b4b8de25318fb1afc)
注意：OpenPose それ自体のライセンスは、以下のリンク先のとおりである。
そのため、商業利用ができない。
https://github.com/CMU-Perceptual-Computing-Lab/openpose?tab=License-1-ov-file#readme


## mediapipe のhand 実装
[Hand landmarks detection guide](https://developers.google.com/mediapipe/solutions/vision/hand_landmarker)

arXiv [MediaPipe Hands: On-device Real-time Hand Tracking](https://arxiv.org/abs/2006.10214)


## mediapipe を使っているもの
https://github.com/manthan89-py/Handpose-Estimation-Using-Mediapipe

[hand pose を含む jupyter notebook](https://github.com/MMD1426/Face-Body-Hand-Pose-Detection/blob/main/Face%20Body%20and%20Hand%20Pose%20Detection.ipynb)


github https://github.com/yasirrustam06/Handtracking-Mediapipe

github https://github.com/yasirrustam06/Mediapipe-Holistic

github [Hierarchical Temporal Transformer for 3D Hand Pose Estimation and Action Recognition from Egocentric RGB Videos](https://github.com/fylwen/HTT)


---

github https://github.com/MustafaLotfi/Paper-Piano
指の位置から Paper-Piano を実装している。mediapipe を利用。




解説記事 
- [PythonでMediaPipe Handsを使ってみる](https://qiita.com/akira2768922/items/c660129cc45cce384e90)
- [MediaPipe 0.8.9 でhandsのワールド座標が取れるようになりました](https://kazuhito00.hatenablog.com/entry/2021/12/14/220327)
- [【MediaPipe】手の形状検出をやってみた](https://dev.classmethod.jp/articles/mediapipe-hand-tracking/)

## mediapipe 以外の実装
## OpenMMLab Pose Estimation Toolbox
https://github.com/open-mmlab/mmpose/blob/main/demo/hand3d_internet_demo.py

github [Awesome work on hand pose estimation/tracking](https://github.com/xinghaochen/awesome-hand-pose-estimation)

[Convolutional Pose Machines - Tensorflow](https://github.com/timctho/convolutional-pose-machines-tensorflow)

[hand3d](https://github.com/lmb-freiburg/hand3d)
Network estimating 3D Handpose from single color images

![](https://github.com/lmb-freiburg/hand3d/blob/master/teaser.png?raw=true)

[V2V-PoseNet: Voxel-to-Voxel Prediction Network for Accurate 3D Hand and Human Pose Estimation from a Single Depth Map](https://github.com/mks0601/V2V-PoseNet_RELEASE)
![](https://raw.githubusercontent.com/mks0601/V2V-PoseNet_RELEASE/master/figs/result/Paper_result_ICVL.png)


https://github.com/lmb-freiburg/freihand

![](https://github.com/lmb-freiburg/freihand/raw/master/teaser.png)


https://github.com/NVIDIA-AI-IOT/trt_pose_hand


[Finger Detection and Tracking](https://github.com/amarlearning/Finger-Detection-and-Tracking)


## vision transformer ベースの実装
最近の画像認識系のタスクは、vision transformer系での実装が進んでいる。そのため、transformerとのキーワードを含めて検索してみた。


## [1st Place Solution to ECCV 2022 Challenge on HBHA: Transformer-based Global 3D Hand Pose Estimation in Two Hands Manipulating Objects Scenarios](https://arxiv.org/pdf/2210.11384.pdf)

![Screenshot from 2024-02-27 21-38-57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/643b96d7-b104-91b6-2127-000a38bbd538.png)

この実装についてのgithub は見つけていません。

## github [Transformer-based Unified Recognition of Two Hands Manipulating Objects](https://github.com/chohoseong/H2OTR)
![Screenshot from 2024-02-27 21-44-58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/f82c55ec-a91d-993a-fe35-bbf16dc6e10b.png)
[pdf](https://openaccess.thecvf.com/content/CVPR2023/papers/Cho_Transformer-Based_Unified_Recognition_of_Two_Hands_Manipulating_Objects_CVPR_2023_paper.pdf)

Egocentric (自己中心)の画像での学習になっていることに留意してください。


解説記事 [Hand Pose Estimation: A Survey(2019)](https://hackmd.io/@okn/Hyv40m7eB)


# 2024年の追記
## https://github.com/owenzlz/EgoHOS
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/c68bdc62-2bd3-f25e-1026-720a89c460d8.png)


- 左腕、右腕と対象物のセグメンテーションをするライブラリです。
- 推論を行うモジュールの他にデータセットとを含んでいます。
mmcv-full というライブラリを利用している。
そのmmsegmentation　フォルダを用いている。
> mim(openmim)はOpenMMLab関連のファイルのダウンロードやインストールを行ってくれるライブラリです。
[参照元](https://qiita.com/nyakiri_0726/items/6581e16924400ccc24bf)

```
- [egohos dataset root]
    |- train
        |- image
        |- label
        |- contact
    |- val 
        |- image
        |- label
        |- contact
    |- test_indomain
        |- image
        |- label
        |- contact
    |- test_outdomain
        |- image
        |- label
        |- contact
```


## [AssemblyHands: Towards Egocentric Activity Understanding via 3D Hand Pose Estimation](https://assemblyhands.github.io/)
[pdf](https://arxiv.org/pdf/2304.12301)
![](https://user-images.githubusercontent.com/28190044/229331527-6da02520-af0a-4b75-a108-856bc47492cb.png)

## github [assemblyhands-toolkit](https://github.com/facebookresearch/assemblyhands-toolkit)

## HANDS@ICCV2023 [Task 1 - Egocentric 3D Hand Pose Estimation](https://sites.google.com/view/hands2023/challenges/assemblyhands)

## SEE ALSO
PINTO_model_zoo [YOLOX-Body-Head-Hand](https://github.com/PINTO0309/PINTO_model_zoo/tree/main/426_YOLOX-Body-Head-Hand)
この方は、たくさんのモデルをアクセスしやすくしてくださっています。
検出のために、学習データの増強やアノテーション作業をしています。


qiita [Hand 検出について調査中](https://qiita.com/nonbiri15/items/6abaade346512fcb8c92)