BlazeHand : 手のキーポイントを検出する機械学習モデル
ailia SDKで使用できる機械学習モデルである「BlazeHand」のご紹介です。エッジ向け推論フレームワークであるailia SDKとailia MODELSに公開されている機械学習モデルを使用することで、簡単にAIの機能をアプリケーションに実装することができます。
BlazeHandの概要
BlazeHandは手のキーポイントを検出する機械学習モデルです。手の詳細な動きを検出できるため、ジェスチャー操作などに応用可能です。

検出可能なランドマークは下記となります。

出典:https://google.github.io/mediapipe/solutions/hands.html
BlazeHandのアーキテクチャ
BlazeHandは、BlazePalmとBlazeHandの2つのモデルで構成されており、BlazePalmで入力された画像から手の位置を検出した後、BlazeHandで手の画像から手のキーポイントを検出します。
BlazePalmによる手の検出は毎フレーム処理を行うと、負荷が高く、また、手をロストする場合もあります。そのため、最初のフレームではBlazePalmによる検出処理を行い、以降のフレームでは、BlazeHandで検出した手のキーポイントから少し大きなRectangle(ROI)を計算し、そのRectangleに対してBlazeHandを適用してRectangleを動かしていくことで、高速かつロバストな認識を実現しています。

出典:https://arxiv.org/pdf/2006.10214.pdf
手の位置の検出を行うBlazePalmはシンプルなSSD系のDetectorとなっています。BlazeFaceと似たアーキテクチャです。

出典:https://arxiv.org/pdf/2006.10214.pdf
手のキーポイントを検出するBlazeHandはFPNに似たアーキテクチャとなっています。学習には、Real Worldの画像と、3D CGで合成したSynthetic Imagesを使用しています。

出典:https://arxiv.org/pdf/2006.10214.pdf
BlazeHandの出力には21個のx,y,相対depthに加えて、手である確率を示すHand Presenceと、左手か右手かを示すHandednessの2つのフラグが含まれます。
BlazeHandの使用方法
下記のコマンドでWEBカメラに対して認識が可能です。
python3 blazehand.py --video 0
WEBカメラに対して認識を行った例は下記です。
アイリア株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。アイリア株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。
ailia Tech BLOG