姿勢推定(Pose Estimation)とは?

姿勢推定は人間の動きや姿勢を理解するための技術です。コンピュータビジョンとディープラーニングを組み合わせることで、画像/映像中の人間の体の各部位を特定し、それらを繋げて全体の姿勢や動作を解析することが可能となります。これによって、人間の動きのパターンを把握することができるようになり、リアルタイムでの姿勢推定が可能になります。安全監視、スポーツ、医療リハビリテーション、エンターテインメントなど、さまざまなアプリケーションへ応用が期待されています。

【今回のデモ】
本ページでは、
IoT/組込み機器向けにリリースされている“Qualcomm Snapdragon” に “姿勢推定のAIモデル(※)” を組み込んだデモンストレーションを実施しています。コマンド実行によって生成された動画もご覧いただけます。

Google Coralで公開されている“PoseNetモデル(MobileNetV1アーキテクチャベース)を使用。
PoseNetでは17個のキーポイントを検出することができます。キーポイントは、姿勢推定技術において中心的な役割を果たす概念です。人間の姿勢を構成する個々の部位のことを指し、例えば右目、左耳、右手首、左膝、右足首などが含まれます。キーポイントは、位置(座標)と信頼度スコア(どれだけその部位が正確に検出されたかの尺度)の両方を含み、人間の体の主要な関節や特徴的な部位をカバーしています。これにより全体的な姿勢の解析が可能になります。

PoseNetによる姿勢推定

テスト環境

・Qualcomm QCS6490搭載評価ボード (C6490 Development Kit) (製品ページへジャンプします)

- OS: Ubuntu 20.04 (SDKバージョン:C6490.LU1.0.CS.r002002)

Windows PC (コマンドプロンプト)

USB Type-A to Type-Cケーブル

環境セットアップ

Google Coralが公開しているGithubからPoseNetモデルをダウンロードします。
"posenet_mobilenet_v1_075_481_641_quant.tflite"を使用しました。

https://github.com/google-coral/project-posenet/blob/master/models/mobilenet/components/posenet_mobilenet_v1_075_481_641_quant.tflite

・ラベルファイルを用意します。今回は"posenet.labels"というファイルを準備しました。

・デモ実行時に処理をかける動画を用意します。今回は"dance.mp4"というファイルを準備しました。

 

それぞれのファイルをC6490 Development Kitへ転送します。

(PC) $ adb push posenet_mobilenet_v1_075_481_641_quant.tflite /data/TFLite 
(PC) $ adb push posenet.labels /data/TFLite
(PC) $ adb push dance.mp4 /data/misc/camera

姿勢推定処理の実行

こちらのコマンドで上述の手順で用意したmp4ファイルの映像を用いて姿勢推定処理をおこないます。動画内で検出したキーポイントを繋いだ線を描画し、新しいmp4ファイルを生成します。下記の例では"camera_posenet.mp4"という動画ファイルが保存されます。

(C6490) # gst-launch-1.0 -e qtivcomposer name=mixer sink_1::dimension="<1280,720>" ! queue ! qtic2venc ! h264parse ! mp4mux ! queue ! filesink location="/data/camera_posenet.mp4" filesrc location=/data/misc/camera/dance.mp4 ! qtdemux name=demux. ! queue ! h264parse ! qtivdec ! video/x-raw\(memory:GBM\) ! queue ! tee name=split ! queue ! mixer. split. ! queue ! qtimlvconverter ! queue ! qtimltflite  delegate=hexagon model=/data/TFLite/posenet_mobilenet_v1_075_481_641_quant.tflite ! queue ! qtimlvpose threshold=51.0 results=2 module=posenet labels=/data/TFLite/posenet.labels ! video/x-raw,format=BGRA,width=640,height=360 ! queue ! mixer.

コマンド実行によって生成された動画を再生してみます。

本ページではQualcomm QCS6490 SoCを搭載したTurboX C6490 Development Kit上で、姿勢推定モデルのPoseNetを動かしてみました。

 

Qualcomm社の“Snapdragonシリーズは、IoT/組込み機器向けにSoCを多数ラインナップしており、本ページでご紹介した事例のように画像処理AIアプリケーションでの使用事例も増えてきています。今回使用した“QCS6490は、ミドルクラスの製品ですが、他にもエントリークラスからプレミアムクラスまで幅広いレンジでの使用用途に対してご提案可能な製品を取り揃えております。詳細情報をご希望の方はぜひ弊社までお問い合わせください。

 

お問い合わせ/お見積もり

本ページの内容に関するご質問や製品詳細情報をご希望の方はこちらからお問い合わせください。

クアルコム メーカー情報Topへ