精度はRGBの場合とほとんど変わらなかった
- カメラ2台に対応したモデルを実装
- 先行研究の論文を読む
Two-Stream CNNs for Gesture-Based Verification and Identification: Learning User Style
https://www.cv-foundation.org/openaccess/content_cvpr_2016_workshops/w4/html/Wu_Two-Stream_CNNs_for_CVPR_2016_paper.html
概要
・ハンドジェスチャーを生体認証として利用するための研究
・ネットワークはTwo-Stream CNNsを使用し、ハンドジェスチャーのdepth map、optical flowから特徴量を抽出
・ImageNetの重みで初期化
・ユーザーが行う特定のジェスチャーだけでなく、ユーザーがジェスチャーを行う際の特定のスタイルを学習する
・基本情報の勉強
・全体ゼミ資料の作成
全体ゼミの質疑応答に対する反省点と改善点をまとめました。
・長回しで取ったmp4ファイルを自動で分割するプログラムを作成
mp4ファイルにMediaPipe Handsを使うことで手を認識し、ジェスチャーの開始フレームと終了フレームを求め、ジェスチャーごとのmp4ファイルに分割
・自分で集めたデータを学習、ファインチューニングありとなしで検証
学習に使ったデータ:カメラ1台で撮影、10種類のハンドジェスチャーをそれぞれ20回ずつ
精度はどちらも100%になりましたが、t-SNEで可視化したものやcos類似度を見ると、ファインチューニングなしで学習したものは本質的に動作の特徴を学習できておらず、今回集めたジェスチャーのデータに過学習しているように見えます。
ファインチューニングによる負の転移は今のところ起きてないようなので、ファインチューニングが有効であるという前提で研究を続けます。
・基本情報の勉強
・データの取得
・プログラムの修正
webカメラ周りで少し詰まってます。
具体的には、
カメラを2台使って同時に録画したい
→Macに入ってるQuickTime Playerは同時に録画できなさそうなのでpythonとopencvで録画
→1frame保存するのに0.15秒くらいかかるので実質7fpsくらいしか出ない
後から動画を画像に分割してframeを間引く(fpsを小さくする)ので、あまり問題にならないと思いますが、できれば30fpsに近い値で録画したいです。カメラ2台を同期させて録画するのに何か良い方法はありますか?
・基本情報技術者試験の勉強
まだほとんど勉強できてないので、ここから1ヶ月は基本情報の勉強に時間をかけようと思います。
深層距離学習(Deep Metric Learning)の基礎から紹介
https://tech-blog.optim.co.jp/entry/2021/10/01/100000
卒論の到達目標は、ハンドジェスチャーによる生体認証を完成させること
(損失関数の変更、バッチサイズの拡張、testデータの精度を求める)
結局、ECO + ArcFaceLoss で上手くいった。
lossが下がり、精度もそれなりに良いので、このアーキテクチャーで研究を行おうと思います。
研究で使うために、webカメラ2台(スタンド付き)が欲しいです。
Stay Hungry, Stay Foolish!