Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Real-time_Hand_Gesture_Detection_and_Classification_Using_CNN.pdf

 Real-time_Hand_Gesture_Detection_and_Classification_Using_CNN.pdf

論文紹介セミナーでのプレゼンの内容

Kazu Ghalamkari

June 01, 2020
Tweet

More Decks by Kazu Ghalamkari

Other Decks in Technology

Transcript

  1. 家電が便利になる! PCやマウスの操作が容易になる! INTRODUCTION ジェスチャー認識+分類の需要 アプローチの種類 1. Using glove-based wearable devices

    2. Using 3-dimensional locations of hand keypoints 3. Using Row visual data ▶装備がうざったいが、精度も速度もよい ▶Keypointを知るための余分なステップが必要で計算面でも時間面でもコスト高 ▶カメラ1台あればよい!もっとも現実的!
  2. INTRODUCTION リアルタイムジェスチャー認識+分類に求められること 1. 有用な分類精度 2. 応答反応の俊敏さ 3. 計算リソース 4. 一回のジェスチャーで正しく認識すること

    ほとんどの研究は1にしか注目していない! リアルタイムで動くものもあるが、Deep CNNsを組み合わせているのでメモリや電源の問題がある。 我々は1~4のすべてを満たすアーキテクチャを作った!
  3. RELATED WORK CNNは動画解析でたくさん使われてる!スゴイ! CNNで時系列情報を扱うのは限界がある。 そこで、3D CNNが誕生!我々も3D CNNを採用した。 CNNの発展 リアルタイムジェスチャー認識+分類 Gesture

    Recognition: Focus on the Hands(2018) HOG特徴量からSVMでジェスチャーを分類 Multi-sensor System for Driver’s Hand-Gesture Recognition(2015) レーダーでジェスチャーを認識 Online Detection and Classification of Dynamic Hand Gestures with Recurrent 3D CNN(2016) CTC lossを用いて連続したジェスチャーを認識(ただし、single time activation不可) It is the first time single-time activations are performed for deep learning based hand gesture recognition.
  4. METHODOLOGY DEEP CNN Light weight CNN Detector に対しても Classifierに対してもs =

    1 sを大きくするとリソースを節約できる。 全体像
  5. METHODOLOGY Data Augmentation 1. 全画像をランダムにクロップして、112×112にして、 1倍、2−1/4倍、2−3/4倍、2−1倍にスケール 2. Spatial elastic displacement

    をクロップして、スケールされた画像に施す。 3. 入力動画の一部の連続したフレームをランダムに取り出す。 3D CNNはパラメータ数が多いので多くの訓練データが必要 cf: Best practices for convolutional neural networks applied to visual document analysis.(2003) 次の1~3すべてを行った。 画像は各画像の平均値と分散を用いて0から1に規格化。(これで学習がはやくなる?) テスト時は画像の中心をクロップして112×112にし、規格化した。 Training Detail SGD with Nesterov momentum = 0.9, damping factor = 0.9, weight decay = 0.001 Pretraining後の学習率は10エポック目から25エポック目までの間の1エポック毎に10で割る。 Training は 30エポックまで行う。 Pretraining ClassiferをJester datasetで訓練後に、EgoGesture dataset と nvGesture datasetで訓練 これで、劇的に結果が良くなった!
  6. METHODOLOGY Post processing service 手が画面の外にあったために、正しくジェスチャー認識ができなかったかもしれない。 −4 −3 −2 −1 ′

    = Median( , −1 , −2 , −3 , −4 ) raw softmax probability そこで過去の情報も用いる。 ′ の値で、ジェスチャーか否かを判定
  7. METHODOLOGY Single-time Activation リアルタイムジェスチャー認識では応答時間の短さが重要 ・各ジェスチャーは、「準備フェーズ」「コアフェーズ」「終了フェーズ」からなる。 区別が容易 ここに注目すればジェスチャー終了前に分類可 Single-time Activation Early-detection

    ジェスチャー終了前に分類 Late-detection 認識器がOFFになった段階で分類 Early-detectionのためには、コアフェーズ終了直後に分類するのが良い。 準備フェイズは似た動作が多いので大きく混同する。 ▶準備フェイズの影響が小さくなる重みを与える。 = 1 1 + −0.2(− 4) : iteration index : mean duration of the gestures in the dataset [Ego Gesture Dataset] を計算して、平均をとる。 ′ = ′
  8. METHODOLOGY Single-time Activation ▪ Early-detection 大きい2つの ′を比較して、その差が になったら最大の ′に対応するクラスと断定する ▪

    Late-detection 認識器がOFFになった時点で最大の ′が = 0.15より大きい場合に最大の ′に対応するクラスと断定する Late-detection Early-detection
  9. METHODOLOGY Evaluation of the Activation 次の3つのエラーを評価する指標が必要。 ・分類器による誤分類。 ・認識器がジェスチャーの存在をとりこぼした。 ・認識器が一つのジェスチャーを複数回認識した。 Levenshtein距離

    二つの文字がどれくらい似ているかを表現するときなどにも使われる。 Ground Truth Predicted [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 7, 4, 5, 6, 6, 7, 8, 9] 3が7に置き換わっている。 6が重複している。 Levenshtein距離 += 1 Levenshtein距離 += 1 ゆえにGround TruthとPredictedのLevenshtein距離は2 これをGround Truthの長さで割って2/9 = 0.2222、1から引くと (1-0.222)*100 = 77.8% 評価指標 Levenshtein精度
  10. EXPERIMENTS Real-Time Classification Results EgoGesture Dataset の 431 のテスト用動画で実験 Levenshtein精度

    91.04% nvGesture Dataset の 482 のテスト用動画で実験 Levenshtein精度 77.39% ▪実行速度 ジャスチャーなし 460 fps ジェスチャー認識中 62 fps ただし、実行環境は、NVIDIA Titan Xp GPU ▪精度 ▪ Early detection time and Levenshtein精度 nとmの値については記述なし。