キャプチャ機能の解説 (注)本機能は未完成で、現在も更新中です。 1.概要  メインメニューのオプションに「キャプチャ」ボタンがある場合、このボタンを押すと、キャプチャ画面が表示される。  キャプチャは、カメラ画像、静止画、動画の3種類の画像から人の骨格検出を行い、各アプリの姿勢に関係する項目の入力に利用される。  本アプリの骨格検出には、GoogleのBlazePose(深度情報のない単眼カメラ画像による3次元骨格推定)[1][2][3]を利用している。 Google BlazePose Copyright 2021 Google LLC. All Rights Reserved. Licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0  ★BlazePoseは、起動時に骨格検出ライブラリを関係サイトから端末にダウンロードして作動する。本アプリの使用中、骨格検出する画像や検出結果のデータがネットワーク経由で外部に送信されることはない。一度起動してキャプチャすると、以後はネットワークの接続が切れていても作動する場合もある。ただし、ブラウザは自動リロード(再読み込み)が生じやすいので、使用時には基本的に常時ネットワークには接続しておくこと。  骨格データから算出して利用している角度や位置データは以下の通りである:   (*は左右平均値を利用。一部アプリは対応予定) 1)REBAcalc2:体幹の前傾角・側屈(20度以上)・ひねり(20度以上)、肩屈曲角・外転角(20度以上)、肘屈曲角、膝屈曲角  ・下肢は膝屈曲角の未判定(片足立ちや座位の判定はしていない)。 2)OWAS:体幹の前傾角(20度以上)・側屈(20度以上)・ひねり(20度以上)、肩高と比べた左右の手の高さ、膝屈曲角、左右の足の高さの差(片足立ちの有無判定) 3)BlessPro2:体幹前傾角、肩屈曲角、肘屈曲角、股関節角、膝屈曲角  BlazePoseのデータを使うと、頸の屈曲・側屈・回旋、手関節の掌屈・尺屈、前腕の回旋、足関節の屈曲も推定は可能だが、値が安定しないのでいずれも利用していない。  キャプチャで指定しなかった項目については、手入力された現状の値がそのまま利用されて評価値が出力される。 2.利用できるデバイスとブラウザ 1)デバイス  パソコンは多くの機種で利用可能。スマホやタブレットは、ゲーム向けのやや高めなものなら可能(2~4万円のものは、評価値の計算や静止画のキャプチャは可能だが、動画のキャプチャが不可)。  Windows 11:intel Core i5(第8世代)以降は可。GPUはCPU内蔵のもので可。  Mac/iOS/iPadOS: M1, A11 Bionic以降で可。  Android 13~16: Snapdragonは695以降、GoogleはTensor G2以降で可。MediaTekは動画再生に難あり。 2)ブラウザ  Google Cromeが理想。  FireFoxとSafariも動くが、レイアウトが崩れる場合がある(ブラウザのズームで90%程度に縮小すると改善する場合あり)。また、動画の集計での複数ファイルの連続ダウンロードがアプリの制限でうまく動かない。 3.キャプチャの方法  以下、カメラ、静止画、動画のキャプチャの使用法を解説する。 1)カメラキャプチャ ・キャプチャ画面右上の「カメラ」ボタンを押すと、ブラウザからのカメラ使用許可のウィンドウが表示される。 ・「サイトへのアクセス時は許可」あるいは「今回のみ許可」をすると、カメラ画像が表示され、人が映っていれば緑の人の骨格が表示される。  (注)アプリの起動直後だと、キャプチャライブラリのローディング待ちがある。初期は20秒程度、速度の遅いスマホやタブレットだと40秒以上かかることもある。 ・キャプチャ実行中は「カメラ」ボタンは赤くなる。 ・キャプチャを停止するには、赤い「カメラ」ボタンを再度押すと停止する。  再度カメラを使うには、「カメラ」ボタンを再度押せばよい。2回目以降は、キャプチャライブラリのローディング時間は短くなる。 ・カメラの前後を切り替えるのは、「切替」ボタンを押す。 ・カメラ画像の下のエリアには3次元の人型が表示される。このエリアをマウスで左右にドラッグすると左右回転、上下にドラッグすると上下回転する。エリア中央付近をクリックすると、初期のカメラ方位に戻る。 ・「記録」ボタンを押すと、表示された画像の静止画がpngファイルとして保存され、骨格データと評価項目の値がメモリ内に記録される。「記録」時にカメラ画像のダウンロードに許可が要求された場合には、許可ををする必要がある。 ・「記録」すると、キャプチャ画面の下に、キャプチャされた画像と評価値がタスク一覧(あるいはレコード一覧)として表示される。 ・何枚かキャプチャした後で、タスク一覧のどれかをクリックすると、そのシーンの静止画とキャプチャ姿勢が表示される。  (注)カメラが動いたままでクリックすると、自動的にカメラは停止する。 ・タスク一覧に記録したデータが表示されている状態で、アプリ画面上部のメインメニューの「保存」をすると、一覧のタスクデータ(各評価の作業条件、評価値、骨格データ)が一括してダウンロード保存される。  保存されるファイルの名前は、作業条件や骨格データの入っているタスクファイルは、そのアプリ固有の3文字+年月日時分秒+.txtになっている。同時期に保存した画像ファイルは、同じアプリ固有の3文字+年月日時分秒+.pngファイルである。  OWASのタスクファイル名の例:OWS20250710_132121.txt  OWASの画像ファイル名の例:OWS20250710_132106.png ・保存したデータを呼び出すには、メインメニューの「開く」を押す。ファイル選択の画面になるので、ダウンロードフォルダに保存されているタスクファイルと画像ファイルを指定して呼び出す。たとえば、3回キャプチャして保存した場合、1つのタスクファイル(拡張子はtxt)と、3つの画像ファイル(拡張子png)を指定して「開く」。  画像ファイルの指定を忘れたり抜けがあると、評価値だけが読み込まれて表示される。抜けた画像のところは、レコード一覧の画像で「-」と表示される。 2)静止画のキャプチャ ・キャプチャ画面の下の「画像ファイル」を押すと、ファイル選択画面が表示される。 ・ここでpngあるいはjpg形式の画像ファイルを指定すると、静止画読み込まれてキャプチャが行われる。 ・キャプチャされた状態で、キャプチャ画面の「記録」ボタンを押すと、作業条件とキャプチャデータ、それに画像ファイルのダウンロード保存が行われる。この場合、画像ファイルは、元ファイルに上書きはせず、画面エリアに応じて幅375pxにリサイズされたものが別途、保存される。 ・タスクファイルと画像ファイルのファイル名は、カメラの保存ファイル名と同じ命名法に従う。 ・キャプチャした姿勢が今一つの場合、「再キャプチャ」のボタンを押すと改めて骨格検出が行われる。静止画だと、前の姿勢の影響が残ることもあるので、数回、「再キャプチャ」を行い、妥当な姿勢になったところで「記録」するとよい。 3)動画キャプチャ ・キャプチャ画面の下の「画像ファイル」を押して、ファイル選択で動画ファイル(拡張子はmp4やmovなど)を指定する。  (注)動画ファイルは、せいぜい数分程度までのものとすること。長すぎると必要な作業シーンにたどり着くのが大変になる。長いファイルは、別のアプリで必要部分だけ抜て使用するのが良い。 ・動画が読み込まれれると、自動再生されてキャプチャも行われる。 ・動画の再生中は、「再生」と表示されていたボタンが「停止」に変わる。このボタンを押すと、再生が止まる。「再生」ボタンを再度押すと、その位置から再生が再開する。 ・「先頭」を押すと、動画の最初に戻る。 ・画像の下のスライダーバーをマウスでクリックするとその時点の画像に飛ぶ。ドラッグすると、前後に動くが圧縮ブロックの関係でとびとびにキャプチャされる。 ・再生中あるいは停止中にキャプチャ画面の「記録」を押すと、そのシーンでの画像がダウンロードされ、作業条件や評価値といったタスク情報がメモリ内に記録される。  ・タスク情報の保存は、メインメニューのファイルの「保存」を用いる。 (注)「グラフ」表示機能と集計 ・動画を読み込んだ状態で「グラフ」ボタンを押すと、「グラフ」ボタンが赤くなって、先頭から再生してすべての画像のキャプチャデータがメモリに保持される。 ・最後まで再生が完了すると、「グラフ」ボタンの色が戻り、画像の下のエリアに時系列グラフが表示され、「画像ファイル」の下には解析区間、始点・終点等のマーカの「追加」や「削除」のボタン、およびマーカ位置の「集計」ボタンなどが表示される。 ・グラフには、評価値や体幹前傾角、手の相対速度などが表示される。 ・グラフをマウスでクリックあるいはドラッグすると、その時点のフレームの画像とキャプチャ画像が表示される。ただしグラフのドラッグ操作は、メモリを消耗するのであまりやらないこと。 ・所定の位置で「追加」を押すと、その時点がマークされる。フレームを動かして複数の点を記録すると、グラフにマーカの位置が縦線で表示される。マーカ位置で前後に移動するには、「-」や「+」のボタンを押す。 ・複数の時点のマーカが設置された状態で「集計」を押すと、そのマーカ時点のフレームが画像保存され、キャプチャ姿勢と評価条件のデータを持ったタスクファイルも保存される。  (注)この場合、ブラウザから複数ファイルのダウンロード許可依頼が出されるので、順次許可する必要がある。Mac/iOSは複数ファイルの連続ダウンロードに対応できていないので、この機能は作動しない。 ・MHNでは、手の速度を基に持ち上げや持ち下げの始点と終点を自動検出される。マーカされた点は、最初が始点、次が終点、その追が始点、終点・・と、始点と終点が交互に繰り返すとみなさる。 ・過剰に検出されたマーカ位置は「削除」、検出できなかったマーカ位置は「追加」で追加できる。 4.キャプチャ上の注意点 1)BlazePoseによるキャプチャ姿勢の特徴 ・深度(奥行き)データが使われていないので、奥行き方向がうまく反映されない姿勢が生成されやすい。 ・隠蔽された四肢は、前にキャプチャした姿勢に近い肢位になる(カメラの反対方向にある腕など)。左右四肢については、見えない側は見える側にやや近い肢位になる様子。 ・下肢がまるで見えない場合、BlazePoseではしゃがみこんだ下肢姿勢になる。そのため本アプリで「姿勢補正」にチェックが入っていると、下肢のデータの信頼度が低い場合は直立姿勢を取るように修正している。 ・BlazePoseは1人しかキャプチャできない。複数人が映りこんだ画像の場合、カメラに近いかどうかもよりも人らしく見えるほうが優先的にキャプチャされる傾向がある。 ・カメラや動画で連続的にキャプチャしている場合、前のシーンでキャプチャしていた人が優先される傾向がある。 ・BlazePoseは床面認識はしない。カメラを斜めに構えると、そのまま人が傾いて立った姿勢がキャプチャされる。 2)うまくキャプチャできない場合 ・画像の中で人が小さすぎる  (対策)人の部分を切り出して拡大するとキャプチャできる場合あり。 ・暗い画像や黒い服で背景に紛れる  (対策)γ補正等で調整するとキャプチャできる場合あり。 ・複数人が重なっている  (対策)対象とする人だけ切り出す。 ・体の一部しか見えない   (対策)顔と腕が見えるとうまくキャプチャできることが多い。 ・カメラを高いところに接地して見下ろすように撮影した画像  (症状)足が隠れると下肢がうまくキャプチャできない。      前かがみになると、顔も足も見えなくなってキャプチャできない。      体全体がカメラ方向に傾いた姿勢になる(アプリの「カメラ角度補正」」機能である程度は補正できる)。  (対策)できれば、カメラを水平に接地して撮影できるのが望ましい。 ・カメラを傾けて設置すると、人も傾いたままになる:  (対策)カメラをできるだけ水平に固定する。 【文献】 [1] Bazarevsky, V., Grishchenko, I., Raveendran, K., Zhu, T., Zhang, F., & Grundmann, M. BlazePose: On-device Realtime Body Pose tracking. In arXiv [cs.CV]. 2020. arXiv. http://arxiv.org/abs/2006.10204 [2] https://blog.tensorflow.org/2021/08/3d-pose-detection-with-mediapipe-blazepose-ghum-tfjs.html [3] https://github.com/tensorflow/tfjs-models/tree/master/pose-detection/src/blazepose_mediapipe