LoginSignup
56
49

More than 1 year has passed since last update.

Hand 検出について調査中

Last updated at Posted at 2018-11-24

Hand 検出について調査中です。

追記 2022.01.13 時点では、代表的なプラットフォームで、hand poseの検出の学習済みモデルが提供されるようになってきています。あなたが利用しようとするプラットフォームで、検索してみてください。

次に示すmediapipeのライブラリにもhand poseの検出を含んでいます。Android iOS C++ Python JSの各環境で利用することができます。

追記 2019.6.25時点で私が使えそうに思っているのは
TensorFlow での実装です。
そのため、記述の順序を入れ替えました。

追記 2019.10.4 github で hand-detection についての一覧があります。

https://github.com/topics/hand-detection

How to Build a Real-time Hand-Detector using Neural Networks (SSD) on Tensorflow

The Egohands Dataset を利用している。

github https://github.com/victordibia/handtracking

victordibia/handtracking

github をcloneして動作させるとよい。

$ pip install tensorflow

# 引数の指定がないときは、ビデオ入力を処理する。
$ python detect_single_threaded.py


Youtube Hand recognition full source code OpenCV

Hand_recognition_full_source_code_OpenCV.png

Youtube のサイトから、ソースコードへのリンクが貼ってある。

顔を検出してから、それを元に肌色の領域を検出している。
2値化した領域を
凸包(Convex Hull)
の情報を元に、ハンドジェスチャを判断していると見られます。


Youtube Hand detection using opencv

Hand_detection_using_opencv.png
これも、肌色の領域を求めて判断するアルゴリズムです。


Youtube Basic Hand Detection Finger Counter with C++ and OpenCV (source code included)

動画を、見ると固定カメラを用いて、しかも画像中の固定の領域で処理をしており、輪郭処理によって指の本数を数えている。

github https://github.com/redbeardanil/Estimation-of-the-number-of-real-time-hand-fingers-with-image-processing

上記のYoutubeに対応するGithub のサイトです。

BackgroundSubtractorMOG2()
を使って領域を求めているので、どうやら、カメラが固定されていることが必須の条件となります。

convexHull 点集合に対する凸包 を作って、convexityDefects 輪郭の凹状欠損を見つけています。見つけた凹状欠損の数を元に、指を何本広げているのかを判定しています。

手を検出するということ自体に役に立つことではないけれども、見つけた後に輪郭情報を使って、広げた指の本数を判定するのに役立てることができます。


Youtube Hand detection + Gesture recognition by YOLOv2

Hand detection + Gesture recognition by YOLOv2
と書かれています。
対応するソースコードと学習に何を用いたのかの情報にたどり着けていません。


Youtube Real-time hand detection, tracking and segmentation

2012/11/27 に公開

Hand detection using random forrests, handtracking using a particle filter, hand segmentation using active contours. The background in this demo video is rather simple; I'm mainly testing the tracking and segmentation behaviour in bad illumination conditions (where for instance pure skin color based tracking or detection would fail)

コードにはたどり着けていません。


Youtube Joint Hand Detection and Rotation Estimation Using CNN

Youtube のページからProject webpage にたどり着けます。

http://www.idengxm.com/handdetection/index.html

The rotation annotation of hand detection dataset will be available.

と言ってくれているので、dataset の公開が待たれます。

paper http://www.idengxm.com/handdetection/TIP2018_handdeteciton_cameraready.pdf


www Hand detection using multiple proposals


データが次の場所から入手できます。
Visual Geometry Group Hand Dataset

またソースコードが以下の場所からダウンロードできます。
Visual Geometry Group A reference implementation of the hand detection
2012 年時点の実装です。

輪郭についてはHOG特徴量を使っています。深層学習以前の実装です。
深層学習では、エッジ特徴も色の特徴も同時に扱える枠組みです。
hand検出が深層学習で実装されているのに着目すべきでしょう。


Github Real-time Hand-Detection using Neural Networks (SSD) on Tensorflow

DNNを用いた実装です。

This repo documents steps and scripts used to train a hand detector using Tensorflow (Object Detection API). As with any DNN based task, the most expensive (and riskiest) part of the process has to do with finding or creating the right (annotated) dataset.

と言っており、ここでも、適切なデータセットを見つける、あるいは自前で作ることが重要になっている。
このページでは以下の2つのデータセットを用いている。

dataset http://www.robots.ox.ac.uk/~vgg/data/hands/

dataset http://vision.soic.indiana.edu/projects/egohands/


WWW Welcome to the VIVA Hand Detection Challenge!

Welcome to the VIVA hand detection benchmark! The dataset consists of 2D bounding boxes around driver and passenger hands from 54 videos collected in naturalistic driving settings of illumination variation, large hand movements, and common occlusion. There are 7 possible viewpoints, including first person view. Some of the data has been captured in our testbeds, while some was kindly provided by YouTube.

このような車の中での運転者と同乗者の手の画像のデータセットです。

このチャレンジに応募した人の論文に、上記のホームページからたどることができます。

paper http://adas.cvc.uab.es/cvvt2017/wp-content/uploads/sites/14/2014/03/5.pdf


Github Hand Tracking : Tracking hands using SSD with MobilenetV1

Tensorflow Object Detection API Tensorflow Object Detection API Tutorial
を使ったHand 検出です。

このgithub のリポジトリの著者は、自分で手のデータとアノテーションを用意して、このリポジトリにデータを公開しています。
hand sign についても開発を進めています。

Github https://github.com/EvilPort2/Sign-Language

GithubのREADME.md にはYouTubeの動画にリンクが示しています。
Hand_sign.png

この動画の様子をみれば、手の領域がどのあたりにあるのかは予め与えていて、手の画像で手話のどの表現になっているかの判定に集中しているものらしいことがわかります。背景は、手との分離がしやすい壁画像になっています。


Deep Convolutional Neural Networkによる手形状領域の抽出

paper Deep Convolutional Neural Network による手形状領域の抽出


Github https://github.com/PierfrancescoSoffritti/Handy

A few assumptions have been made:

  • The camera is supposed to be static.
  • The camera has no automatic regulations, such as auto-focus etc.
  • The user is not moving in the frame (eg: he sits at his desk in front of the camera).
  • There are no particular constraints on the color of the background, but it should be approximately static (no moving objects/strong changes of illumination in the background).

となっており、固定カメラであることを仮定しているのは、用途が限られる。


Youtube Real-time hand detection and tracking using OpenCV and Python

Screenshot from 2018-11-28 00-46-08.png

Github https://github.com/amarlearning/Finger-Detection-and-Tracking

HSV 色空間でのヒストグラムで処理しているらしい。


Youtube Hand Detection using OpenCV


Youtube Hand tracking using Tensorflow Object Detection API (In Progress)

Youtube Hand Gestures Detection, Tiny Yolo vs SSD_Mobilenet Comparison

Youtube YoloV2 Realtime Object Detection on iOS

Youtube Hand Detection using Deep Learning

Github hand detection with OpenCV and Qt

Hue distance from the reference skin tone という表現があるので、色をベースとして手の領域を求めているようだ。

WWW Handy, hand detection with OpenCV

Github Handy



Training a Hand Detector with TensorFlow Object Detection API


Hands Detection

これも、TensorFlowを用いた検出器。
次の動画を参照するとよい。

YouTube https://www.youtube.com/watch?v=-klQ_bEPwfs&feature=youtu.be


Youtube Mobile Hand Tracking

ステレオカメラを用いたうえで、手を検出している。
動画の冒頭に、使用しているステレオカメラを示している。
DUO MLX
https://duo3d.com/product/duo-minilx-lv1


GANerated Hands for Real-Time 3D Hand Tracking from Monocular RGB

Context-aware Deep Feature Compression for High-speed Visual Tracking

Correlation Tracking via Joint Discrimination and Reliability Learning

Deep Hand:
How to Train a CNN on 1 Million Hand Images When Your Data Is Continuous and Weakly Labelled
CVPR 2016 Oral

github XRDrive-Sim hand gesture applications using Intel® RealSense™ D400 depth cameras.

Intelさんがまた褒めてくれたヽ(゚∀゚)ノ イエァ RaspberryPi3でMobileNet-SSD(MobileNetSSD)物体検出とRealSense測距(640x480) 再生フレームレート25FPS以上 + 予測レート12FPSを達成したよ


追記(2020.12.01)
Training a Custom Object Detector with DLIB & Making Gesture Controlled Applications
これにも手検出が書かれている。

56
49
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
49