振戦事例 動画解析プロトコル・パイプライン

作成日:2026-04-19 / 対象:PD / ET / 小脳性 / 関連:tremor-analyzer

目的・撮影環境図解・共通設定。初めて触れる人はここから。

0. 目的

1. 撮影環境 図解

共通環境(カメラ・照明・距離・両手同時)と 4条件の患者姿勢・カメラ位置を一目で確認。全条件前額面(正面)撮影に統一

振戦4条件撮影環境図

図:振戦 4条件 撮影環境セットアップ(Claude Design)

2. 共通機材

項目推奨最低
フレームレート60 fps30 fps(ナイキスト15Hz確保)
解像度1920×10801280×720
被写体距離50cm〜1m手が画面1/3以上
撮影角度正面(患者と同じ高さ)俯瞰は不可
両手同時必須(左右差評価)
4条件撮影手順・撮影記録テンプレート。現場で使う具体手順。

★ 4条件撮影(各30秒以上)

1
安静時(Rest Tremor)
・手を膝の上または肘掛けに置く/脚を組まない
・視線は前方、リラックスした姿勢
PD 検出の最重要条件 ここで4–6Hzの pill-rolling を捉える
2
姿勢時(Postural Tremor)
・両手を前に水平伸展(肘を伸ばし、指を開いた状態)
・30秒保持
ET 検出の最重要条件 ここで6–12Hzの対称性振戦を捉える
3
動作時(Action / Intention Tremor)
・指-鼻試験を3回(目を閉じて・ゆっくり)
・コップを持つ動作/文字を書く動作
小脳性の検出 目標接近時の振幅増大を確認
4
Distraction(注意散らし)
・安静時姿勢のまま「100から7ずつ引き算」または「逆唱」
・30秒継続
PD安静時振戦が増強する現象を捉える(鑑別の決め手)

撮影記録テンプレート

項目記録値
撮影日時YYYY-MM-DD HH:MM
撮影場所外来 / 通所 / 訪問 / 在宅
薬物状態ON / OFF(最終内服時刻を記録)
診断PD / ET / 小脳性 / 鑑別中
優位側左 / 右 / 不明
主訴ふるえの時期・強さ・影響
MDS-UPDRS 3.170–4 点
プライバシー:顔が写る場合は自動モザイク処理(fog-analyzer/scripts/anonymize_video.py 流用)を事前に適用する。
動画から振戦指標までの5段階処理と、分類判定の優先順位。

解析パイプライン(5段階)

1
動画 → 手キーポイントCSV(MediaPipe Hands)
両手 21点 × 3軸 / 出力: data/keypoints/patient_XXX.csv / 60秒動画で約1–2分
2
前処理
欠損補間(最大10フレーム)/ Butterworthバンドパス(2–15Hz、4次)/ Visibility<0.3 は補間
3
スペクトル解析
Welch法で全体PSD(nperseg = 2秒×fps)/ 帯域パワー積算/ スライディングFFT(2秒窓、0.2秒ステップ)
4
振戦分類
ピーク周波数の位置で候補分類/ パワー比(>20%)で信頼性確認/ 左右パワー差で非対称性/ 優位側判定(1.3倍超で判定)
5
レポート生成
6パネル Claude Design ダッシュボード(PNG 130dpi)/ 自己完結型HTML/ JSONサマリー/ ケースカンファ議論スライド

解析指標(片手ごと)

指標算出方法臨床的意義
Peak Frequency (Hz)PSD の 2–15Hz 最大値PD/ET/小脳性 の鑑別
Peak Powerピーク周波数のパワー値振戦の強さ
PD帯比率 (4–6Hz)PD帯積分 / 全体積分PD 振戦の純度
ET帯比率 (6–12Hz)ET帯積分 / 全体積分ET 振戦の純度
Tremor Constancy (%)振戦検出ウィンドウ / 全ウィンドウ持続性
Mean AmplitudePeak-to-Peak 中央値振幅の重症度

両手統合指標

指標意味
Asymmetry Index = |L-R| / max(L, R)左右差(PD 一側優位性の確認)
Dominant ClassificationPD / ET / Cerebellar / Physio / None
Dominant Handleft / right / both

振戦分類の判定基準

分類周波数文脈左右対称性治療反応
PD4–6 Hz安静時非対称L-dopa ◎
ET6–12 Hz姿勢・動作時対称β遮断薬 ◎
小脳性3–5 Hz動作時(目標接近で増大)両側特効薬なし
生理的8–12 Hz姿勢時(低振幅)対称カフェイン断ち
判定の優先順位
① Peak frequency(PD/ET直接鑑別)
② Peak power(閾値>1e-6で振戦あり)
③ 帯域パワー比 >20%(分類の信頼性)
④ Asymmetry Index(一側性=PDの補助)
⑤ Tremor Constancy(持続性)
⑥ 検出率(データ品質ゲート)
データ品質チェック・実行コマンド・トラブルシューティング・参考文献。

データ品質チェック

自動チェック項目

項目閾値低値時の対応
手検出率≥ 70%70%未満なら解釈保留・再撮影推奨
有効フレーム数≥ fps × 1.0 秒FFTに不足なら判定不可
Visibility≥ 0.3 平均照明・背景改善

撮影失敗のサイン

実行コマンド

# 合成データテスト(動画不要)
cd ~/work/medical-tools/tremor-analyzer
py src/test_tremor_analyzer.py

# 動画 → キーポイントCSV → 解析
py src/tremor_analyzer.py --video data/videos/patient01.mp4 --output data/results/patient01

# CSV再解析
py src/tremor_analyzer.py --csv data/keypoints/patient01.csv --fps 60

よくある問題と対処

症状原因対処
手が検出されない照明不足 / 手が画面外150lux以上 / 近接撮影
振戦なし判定(分類 None)振幅小さすぎpeak_power_threshold 緩和(1e-6→1e-7)
PD のはずが ET と誤分類安静時条件未達成撮影条件の分離徹底
左右が逆MediaPipe Handedness誤判定最初のフレームで手動確認
FFT ピーク不明瞭fps 不足60fps 撮影推奨

参考文献