OpenPoseによる顔の形の推定

解説

Jetson Orin Nano で、OpenPose を利用して、画像から顔の形を推定してみます。

前提

OpenPoseの動作環境の構築」を実施していない場合は、実施します。

コンテナの起動

以下のコマンドを実行します。


OpenPoseの動作環境の構築」で作成した環境のコンテナが起動します。

コンテナが起動すると、Terminalでの表示が「root@ホスト名:/#」に変わり、コンテナ上での作業になります。
以降の作業は、指定がない場合は、コンテナ上での作業です。

Webカメラ画像からの顔の形の推定

Webカメラ画像から顔の形を推定するプログラムを試してみます。

以下のコマンドを実行し、作業用ディレクトリに移動します。


「estimate-face.py」ファイルを作成し、ファイルの内容を以下のようにします。


以下のコマンドを実行し、Flaskウェブサーバーを起動します。


同一ネットワーク上のPCのブラウザアプリ(ChromeやEdge)から、
http://[Jetson Orin Nano のIPアドレス]:5000
もしくは
http://[Jetson Orin Nano のホスト名]:5000
にアクセスします。

顔の形を推定した結果が表示されます。
(キャプチャ画像なし)

「ctrl + c」を押下し、Flaskウェブサーバーを終了します。

顔の形の推定のみの描画

カメラ画像を描画せず、顔の形の推定のみを描画してみます。

「estimate-face.py」ファイルをコピーし、「estimate-face-no-render-camera-image.py」というファイル名にします。

以下の変更を加えます。

NumPyの関数を使用するので、「import numpy as np」をimport部に追加します。


「推定結果をフレームに描画」の描画対象を、「カメラ画像」から「灰色キャンバス」に差し替える処理を追加します。


「estimate-face-no-render-camera-image.py」ファイル全体の内容は以下のようになります。


以下のコマンドを実行し、Flaskウェブサーバーを起動します。


同一ネットワーク上のPCのブラウザアプリ(ChromeやEdge)から、
http://[Jetson Orin Nano のIPアドレス]:5000
もしくは
http://[Jetson Orin Nano のホスト名]:5000
にアクセスします。

Webカメラ画像は表示されず、顔の形の推定のみ表示されます。


「ctrl + c」を押下し、Flaskウェブサーバーを終了します。

コンテナの終了

以下のコマンドを実行し、コンテナを終了します。


コンテナが終了すると、Terminalでの表示が「ユーザー名@ホスト名:/~$」に変わり、ホスト上での作業に戻ります。

関連ページ

MediaPipe

MediaPipeの動作環境の構築
MediaPipeによる人の骨格の推定
MediaPipeによる手の形の推定
MediaPipeによる顔の形の推定

OpenPose

OpenPoseの動作環境の構築
OpenPoseによる人の骨格の推定
OpenPoseによる手の形の推定
OpenPoseによる顔の形の推定 - 【本ページ】