手軽な映像ベースの手、上半身、全身のトラッカーにおすすめの「グローバルシャッター」方式のWebcamについて

## 1. この記事の対象読者

- [Webcam Motion Capture](https://webcammotioncapture.info/), [VSeeFace](https://www.vseeface.icu/), [VMagicMirror](https://malaybaku.github.io/VMagicMirror/) または画像認識技術を基礎としたハンドトラッカーやフルトラに興味ある方。
- 上記のようなアプリを試してみたが手を動かすと認識しなくなったりおかしくなったりして実用の難しさを感じている方。
- 画像認識用のカメラとして比較的安価ないわゆるWebcamを使いたい方。
- 一般的なカメラに広く普及したCMOSイメージセンサーとシャッター方式のローリングシャッターとグローバルシャッターについて画像認識技術への実用の観点から知りたい方

https://imgur.com/a/jxtRx7P

## 2. はじめに、結論としてはどのようなカメラを買うのがよいか？

| 重要度 | | 🟢GOOD | 🟡NG |
|--------|-|--------|-------|
| 1 | シャッター方式 | グローバルシャッター方式 | ローリングシャッター方式 |
| 2 | FPS | 高(>=60) | 低(<60) |
| 3 | 画角 | 設置場所と撮影対象の距離に合わせる | 考えなしに魚眼、超広角、広角、望遠などを決める |
| 4 | 歪み | 小 | 大 |
| 5 | 解像度 | 大(>=1280x960) | 小(>=320x240) |
| 6 | IR撮影 | 有 | 無 |

- 画像認識の用途では対象が完全に静止した状態をゆっくり撮影できる特殊な状況を除き「グローバルシャッター」のカメラを調達するとよい。
- FPSは高いほどよいが、FPSの高さと解像度がトレードオフとなる製品もあるので60FPS以上に対応したものと考えておけばよい。
- 画角は可能な限り事前に設置場場所、撮影対象との距離、撮像面の長さ（撮影対象の大きさ）から最適な角度を計算し、近い画角の製品を選ぶ。
  - 例: 画角 `120°` のカメラで `1.2m` 先の撮影対象を撮影する場合、撮影対象は `tan(120°/2)*1.2m` = `2.079m` です。
  - 例: 撮影対象の大きさが高々半径 `1.2m` に収まりカメラの設置場所が撮影対象から `0.8m` の距離の場合、カメラに必要な画角は `2*atan(1.2m/1.6m)` = `73.74°` です。

具体的な比較的安価で🟢GOODな製品の例:

- [ELP-USBGS1200P-H120](https://amzn.to/3sLHkeo) ￥10,498円 など

※執筆時点のAmazonで購入可能なものより適当に選択。
※原則的には「グローバルシャッター」と明記された製品から高FPSかつ撮影予定の環境に適当な画角のレンズの製品を選ぶとよい。

## 3. 画像認識によるトラッキングとWebcamのシャッター方式

- CMOSイメージセンサーを搭載したカメラのシャッター方式には「グローバルシャッター」と「ローリングシャッター」がある。
- 一般に広く安価に普及しているほとんどのいわゆる Webcam や USB カメラと呼ばれるカメラ製品のシャッター方式は「ローリングシャッター」である。
- 「ローリングシャッター」の製品は「グローバルシャッター」の製品に比べ一般的に圧倒的に低価格かつ非情に多くの製品の選択肢を持つ。
- 「グローバルシャッター」の製品は高速に移動中の撮影対象でも原理的には歪まない。
- 「ローリングシャッター」の製品は高速に移動中の撮影対象は撮影結果が変形したり、モーションブラー効果を施したようなボケ、ブレが生じる。画像認識への応用では致命的なエラーや精度低下の原因となる。

参考: [グローバルシャッターとローリングシャッターどれだけ違うのか検証してみた―@cocopa](https://qiita.com/cocopa/items/5ee3116d53c9fcdb479e)
※この記事に添付された画像はローリングシャッターによる歪みがわかりやすい。

## 4. FPS、解像度、画角

- 最終的に60FPSでモーションデータを生成したい用途であれば、少なくとも60FPS以上で撮影できる必要があるが、配信負荷などの都合から最終的に24FPSのライブを行えればよい場合には少なくとも24FPS以上で撮影できれば十分となる。最終的にどの程度のFPSのモーションデータが必要かに応じて選択する。
- 解像度は特に大きさに拘る重要性は薄いが、もし魚眼や超広角といった広角よりのレンズを撮影に用いる必要がある場合、つまり狭い部屋での撮影に最適化したい場合などはHDないしFHDあるいはそれ以上の解像度の要求について検討する必要が生じる。広角となればなるほど画像は歪みやすく、1ピクセルあたりに記録される撮影対象の大きさもより大きくなり、相対的に画像認識に必要十分の解像度を維持できなくなる可能性がある。逆に、十分に長い撮影距離を確保できる場合は相対的により低い解像度、例えば120x80などでも十二分の画像認識を行いやすくなる。高い解像度と高いFPSの両立、広い画角と歪みの小ささの両立は非情に困難のため、場合によっては撮影条件(主に撮影距離)とレンズの画角を再検討した方がよい場合もある。
- 画角は三角関数により比較的簡単に計算できる。もし計算に自信が無い場合は [カメラの画角の計算―Casio](https://keisan.casio.jp/exec/system/1378259716#!) などに頼るとよい。カメラの「画角」は厳密には水平画角、垂直画角、対角画角の3種類が混在しており、例えば横長画面を基準としたゲームでは垂直画角(視野角)のことを単に画角またはFOVY(Field of View Y-axis)と言う場合が多いが、いわゆる一眼レフカメラなどの撮影ガチ勢的な方向でのカメラとレンズの世界では対角画角を単に画角と言う場合が多いなど、状況によっては計算に誤りを生じる原因となり得る。自分が計算したい画角が何れの画角であり、参照するカメラの製品情報や撮影予定の環境情報の画角が何れの画角であるか十分慎重に読み解く必要がある場合もあるため注意する。

## 5. その他の性能諸元

- カメラによっては暗所での撮影がどの程度まで可能かをLUX値で表示している場合もある。暗所や夜間の屋外での撮影に応用する予定があればLUX値についても月明かりがどの程度の値かなど概要を把握して、購入検討の採用とするとよい。
  - 参考: [最低被写体照度とは？防犯カメラを夜間に使用するには―Canon](https://canon.jp/business/trend/what-is-illuminance)
- ほとんど完全な暗がりでの撮影ではIR(赤外線)機能についても検討する価値が高い。無理に低LUXへの撮影感度を要求するよりも、アクティブにIR照射を行う機能のついた製品や、カメラ本体とは別にIR照射器の併用を検討するとよい。一般的にCMOSイメージセンサーの特性上、たいていのWebcamは可視光に厳密に限定はせず、特に可視光に近いNIR領域の光にも感度を示す場合が多い。また、IR専用にチューニングされ、可視光はフィルターする製品もある。逆に可視光にチューニングするためIR領域はたとえイメージセンサーとしては感度があっても何らかのフィルターを装着する事で遮断する製品もある。また、IR照射が強すぎて被写体が白飛びしたり、レンズフードが必要となる場合もある。IR撮影を検討する場合はイメージセンサー、IR照射器、可視光とIRのフィルターについて注意深く検討する必要がある。

---

だいじなこと: **「Webcamでモーションキャプチャーしたいときはグローバルシャッターのカメラを調達しましょう！」**

---

※この記事で「いわゆるWebcam」として表現した製品はより正確には「UVC(USB Video Class)に準拠したUSBでPCなどに挿すだけで自動的にドライバーも認識されて動作してくれるお手軽で比較的小型のカメラ製品」の意図です。