トップに戻る
パラメータの意味
EVMを効果的に使用するには、各パラメータの意味を理解し、適切に設定することが重要です。 このページでは、主要なパラメータとその設定方法を解説します。
パラメータ一覧
| パラメータ | 記号 | 典型値 | 影響 |
|---|---|---|---|
| 増幅率 | α |
10-50 | 動きの増幅倍率 |
| 周波数下限 | f_low |
0.5-1.0 Hz | 抽出する最低周波数 |
| 周波数上限 | f_high |
fps/2以下 | 抽出する最高周波数(ナイキスト制約) |
| 空間周波数カットオフ | - | - | 細部/大局のバランス |
増幅率(Amplification Factor)
α
増幅率(Alpha)
動きや色変化をどれだけ強調するか増幅率αは、検出された微小な変化をどれだけ拡大するかを決めるパラメータです。 値が大きいほど変化が強調されますが、ノイズも同時に増幅されます。
出力 = 元の映像 + α × フィルタリングされた信号
増幅率と出力の関係
| α値 | 効果 | 適した場面 | 注意点 |
|---|---|---|---|
| 1-10 | 微弱な増幅 | 大きな動きの確認 | 変化が見えにくい可能性 |
| 10-30 | 適度な増幅 | 構造物振動、呼吸検出 | 推奨範囲 |
| 30-50 | 強い増幅 | 心拍検出(Color) | ノイズが目立ち始める |
| 50以上 | 過剰な増幅 | ほとんど使用しない | アーティファクト多発 |
推奨アプローチ
小さな値(α=10程度)から始めて、徐々に上げていきましょう。
ノイズやアーティファクト(偽の動き)が目立ち始めたら、少し下げてください。
周波数帯域(Frequency Band)
flow
周波数下限(Low Frequency Cutoff)
抽出する最低周波数この周波数より低い変化は無視されます。ゆっくりした動き(照明変化、カメラのドリフトなど)を除外するために設定します。
fhigh
周波数上限(High Frequency Cutoff)
抽出する最高周波数この周波数より高い変化は無視されます。 重要:フレームレートの半分(ナイキスト周波数)を超えることはできません。
ナイキスト周波数とFPSの関係
| フレームレート | ナイキスト周波数 | 推奨f_high上限 | 検出可能な対象 |
|---|---|---|---|
| 30 fps | 15 Hz | 13.5 Hz | 心拍、呼吸、低周波振動 |
| 60 fps | 30 Hz | 27 Hz | 上記 + 一部機械振動 |
| 120 fps | 60 Hz | 54 Hz | 上記 + 多くの機械振動 |
| 240 fps | 120 Hz | 108 Hz | 高周波機械振動 |
ナイキスト周波数の90%以下を推奨
エイリアシング(折り返し雑音)を避けるため、f_highはナイキスト周波数の90%以下に設定することを推奨します。
詳しくは限界と制約を参照してください。
用途別推奨設定
一般的な用途に対する推奨パラメータ設定をまとめました。
心拍検出(Color)
- 増幅率 α30-50
- f_low0.8 Hz
- f_high2.0 Hz
- 相当bpm48-120 bpm
呼吸検出(Motion)
- 増幅率 α10-20
- f_low0.1 Hz
- f_high0.5 Hz
- 相当回数6-30 回/分
構造物振動(Motion)
- 増幅率 α10-30
- f_low0.5 Hz
- f_high5-15 Hz
- 備考fpsに注意
機械振動(Motion)
- 増幅率 α5-20
- f_low1 Hz
- f_highfps/2の90%
- 備考高fps推奨
# Python (PyEVM) での設定例:心拍検出
magnify_color(
video_name="face.mp4",
low=0.8, # f_low: 0.8 Hz (48 bpm)
high=2.0, # f_high: 2.0 Hz (120 bpm)
amplification=50 # α: 50倍に増幅
)
パラメータ調整のコツ
1. 小さく始めて徐々に上げる
増幅率は低めの値(α=10)から始めて、効果を確認しながら徐々に上げましょう。
2. 周波数帯域は狭くする
f_lowとf_highの差を小さくすることで、目的の信号のみを抽出しやすくなります。
広すぎるとノイズも通過してしまいます。
3. フレームレートを確認する
高い周波数を検出したい場合は、必ず動画のフレームレートを確認し、
ナイキスト周波数の範囲内でf_highを設定してください。
よくある間違い
- 30fps動画で20Hz以上を検出しようとする(不可能)
- 増幅率を最初から高く設定してノイズだらけになる
- 周波数帯域を広くしすぎて不要な動きも増幅してしまう