Hand Tracking(手部検出)で遊んでみた

STJ

こんにちは。研究開発センターの内田です。弊社TECH blogには初登場です。ソフトウェア開発チームでエンジニアやっています。
センスタイムの検出技術を様々なOSで動作させたりデモを作ったり等、ソフトウェア面での業務をメインで行っています。

弊社は姿勢推定や視線検出など様々な技術を保有していますが、今回の記事では、Hand Tracking(手部検出)を使ったゲームを作ってみましたので、その紹介をしたいと思います。

Hand Tracking(手部検出) の紹介

動作環境について

一般的な画像処理検出は、複眼カメラ(RGB+Depth等)や、処理にGPUが必要になりますよね。今回の処理は、単眼カメラ(RGB)CPU演算で動作させます。限られた環境で処理できる点は、センスタイムの技術の強みのひとつです。

機能について

キーポイント検出

カメラからの映像を検出処理に渡すことで、手のキーポイント座標や右手or左手の情報を高速で検出することができます。

ジェスチャー検出

OKサイン等のジェスチャーが検出が可能です。

OKサインのほか検出可能なジェスチャーの一例は、以下の通りです。

他のHand Tracking処理と比べて特徴的なのは片手だけではなく両手を組み合わせたポーズも検出出来る点です。

デモアプリ制作

これらを応用してゲームを作ってみました。

ライブラリ化

検出処理を動的ライブラリ化することで他の言語でも高速に検出処理を呼び出すことが可能となります。

ゲーム実装

以上の仕組みを利用しゲームを実装しました。

ゲーム内容は、線を引きボールをゴールに導くゲームです。
人差し指を立てると指で線が描け、Vサインでゲームが開始します。

ゲームはC#で実装しましたが、検出処理をネイティブ実装にしているので非常に軽快に検出しゲームを動作することが出来ました。

最後に

Hand Trackingは、様々なオペレーションに対応できる可能性を秘めているので、今後も何かに応用出来たら紹介したいと思います。

最後まで読んでくださり、ありがとうございました。

投稿者プロフィール

uchida
uchida
ソフトウェア開発チームのエンジニア。
弊社の検出技術を様々なOSに対応させたりデモを作ったりなんやかんやお仕事しています。ゲームとアルパカが好き。