カメラで姿を映さずに、そっと見守る技術:
福祉工学と非接触空間センシング(IPA未踏から続く原点)
監修:加藤 明生(株式会社オープンナレッジ 創業者・代表取締役CTO / 2008年度 IPA未踏クリエーター / 上級医療情報技師)
この記事の要点と4つの章のご案内
| 章構成 | 主なテーマ | 要点と確認ポイント |
|---|---|---|
| 1. 基本と全体像 | 身近なたとえで見る仕組み:「部屋の中の防犯カメラ」と「襖(ふすま)越しの配慮した気配」 | 自動車の自動ブレーキやコウモリの超音波と同じように、目に見えない微弱な電波(ミリ波レーダーやWi-Fi電波の反射)や超音波をお部屋にふわっと広げ、その跳ね返り方(ドップラー効果)をRustの高速計算で解析するからです。映像(顔や裸の画像)は最初から一切撮影しないため、お風呂場や寝室、お手洗いでもプライバシーを100%守りながら、転倒や胸のわずかな上下動(呼吸)だけを検知できます。 |
| 2. 現場での進め方と対策 | ひと目でわかる図解:カメラ監視と「プライバシーを守る非接触空間センシング」の違い | 創業者・CTOの加藤明生が2008年度に経済産業省所管IPA(情報処理推進機構)の「未踏IT人材発掘・育成事業」に採択された際、まさに『視覚障がい者のための空間検知・歩行支援システム』を研究開発していたことが当社の原点だからです。「テクノロジーは弱い立場にある人や現場で働く人に寄り添うためにある」という創業精神が今もすべての製品に流れています。 |
| 3. 関連する制度とルール | 実践解説:IPA未踏プロジェクトから続く「配慮した技術」の系譜 | はい、喜んで承ります。高価な専用機をいきなり買うのではなく、既存のタブレットや省電力センサー、そして声だけで記録が終わる『プロンプト不要のAI日誌(帳票・バックオフィス自動化構成)』など、ご予算と現場の状況に合わせた無理のない方法を一緒に考えます。 |
| 4. 詳しい技術仕様としくみ | 福祉・非接触センシング方式のプライバシー・環境耐性検証マトリクス | 本当の意味で人に配慮した見守り技術とは、「カメラで24時間監視すること」ではなく、相手の尊厳とプライバシーを100%守りながら、万が一の転倒や異変だけを着実に知らせることです。電波や音の反射(ミリ波・超音波・Wi-Fi CSI)とエッジAIを使えば、カメラ映像を一切撮らずに安心を届けられます。 |
本当の意味で人に配慮した見守り技術とは、「カメラで24時間監視すること」ではなく、相手の尊厳とプライバシーを100%守りながら、万が一の転倒や異変だけを着実に知らせることです。電波や音の反射(ミリ波・超音波・Wi-Fi CSI)とエッジAIを使えば、カメラ映像を一切撮らずに安心を届けられます。
2008年度のIPA未踏プロジェクト(視覚障がい者支援)から始まったオープンナレッジの「人に寄り添うセンシング技術」は、現在の医療・介護・物流現場を支えるシステム設計の根幹となっています。
身近なたとえで見る仕組み:「部屋の中の防犯カメラ」と「襖(ふすま)越しの配慮した気配」
もし自分の寝室や脱衣所に「見守り用だから」とカメラをつけられたら、誰でも緊張して心が休まりませんよね。また、万が一そのカメラ映像がインターネット経由で漏洩してしまったら、取り返しのつかないプライバシー侵害になります。
私たちが大切にする「非接触空間センシング」は、日本の伝統的な家屋で、襖(ふすま)や障子越しに「あ、おばあちゃんが元気に起き出したな」「急に大きな音がして動かなくなったぞ」と気配だけで察する優しさを、科学の力で再現したものです。空気中のわずかな波の跳ね返り(ドップラー効果)だけを小さな機械の中で計算し、「元気」「転倒の疑い」という結果だけをスタッフへ伝えるため、誰の姿も映さず、暗い部屋でも湯気のある浴室でも確実に命を守ります。
60GHz帯ミリ波レーダーの波長は約5mmと極めて短いため、衣服や布団を透過して、呼吸による胸壁のわずか数ミリの動きや心拍の微細振動まで非接触で捉えることが可能です。
厚生労働省の介護ロボット・見守りセンサー導入実証において、バイタル・離床センサーとインカム・記録連携を行うことで、夜間巡視の心理的負担と移動時間が大幅に削減されています。
カメラレンズ自体を持たず、センサー内のRust組み込みプログラムがその場で数値判定のみを行うため、万が一にも個人の映像が流出するリスクは「物理的にゼロ」です。
ひと目でわかる図解:カメラ監視と「プライバシーを守る非接触空間センシング」の違い
| 比較項目 | 一般的なネットワークカメラ・腕時計型端末 | 非接触空間センシング × エッジAI方式 |
|---|---|---|
| ご本人の心理的ストレス | 「見られている」嫌悪感や、腕時計の装着・充電忘れ | カメラも装着物もゼロ。普段通りの生活のまま見守り |
| 浴室・トイレ・夜間の暗闇 | プライバシー上カメラを置けず、湯気や暗闇にも弱い | 姿が映らない電波方式のため、浴室や真っ暗な寝室でも正確 |
| 情報漏洩・サイバーリスク | 万一カメラが乗っ取られると室内の映像が流出する危険 | そもそも映像が存在せず、距離と速度の数字だけを内部処理 |
実践解説:IPA未踏プロジェクトから続く「配慮した技術」の系譜
1. 2008年度 IPA未踏事業「視覚障がい者支援」で学んだ一番大切なこと
創業者・加藤明生が2008年度にIPA(情報処理推進機構)の未踏クリエーターとして取り組んだテーマは、目の不自由な方が安全に歩けるよう周囲の空間を検知して伝えるシステムでした。そこで痛感したのは、「どれほど高度なセンサーを作っても、使う人に重い機材を背負わせたり、複雑な操作を求めたら、日常では原則として使ってもらえない」という現実でした。技術は裏方として空気のように消え、使う人にはただ「安心」だけが届くこと——これがオープンナレッジの「入力最大3項目・プロンプト不要」の哲学の原点です。
2. ドップラー効果と点群(ポイントクラウド)が守る「お風呂場と夜間の尊厳」
救急車が近づくと音が高く聞こえ、遠ざかると低く聞こえる現象を「ドップラー効果」と呼びます。60GHz帯などのミリ波センサーは、目に見えない微弱な電波を送り、跳ね返ってきた波のわずかな変化から「今、ベッドから立ち上がった」「浴室で急にしゃがみ込んでから動いていない」「1分間に16回、穏やかに呼吸している」という状態を計算します。カメラのレンズはどこにもないため、入浴中や着替え中であっても、ご本人の尊厳を少しも傷つけずにヒートショックや転倒の早期発見につながります。
3. 医療・介護スタッフの「記録と申し送り」を3秒に縮めるAI連携
福祉の現場で働く方々が一番時間を取られているのが、「見守りの記録」や「ご家族・多職種への連絡帳書き」です。センサーの安心見守りと、話しかけるだけで申し送り日誌が整う「帳票・バックオフィス自動化構成」、そしてセキュリティ基準を満たした「現場連絡・記録構成」を組み合わせることで、事務作業の時間を減らし、「目の前の利用者様と笑顔で向き合う時間」を取り戻すお手伝いをしています。
今日から確認できる!医療・介護・福祉現場のデジタル安心 3項目チェック
クリックしてチェックを入れてみてください。
福祉・非接触センシング方式のプライバシー・環境耐性検証マトリクス
浴室・脱衣所・寝室や手話・手指動作支援において、本人の尊厳(プライバシー)と物理的な環境耐性(湯気・暗闇・衣類越し)を両立するためのセンサー選定基準です。
| センシング方式 | 取得データ形式 | 暗闇・湯気耐性 | プライバシー保護水準 |
|---|---|---|---|
| 60GHz ミリ波レーダー(非接触) | 3D点群・ドップラー微細変位 | ◎(湯気・暗闇・布団越しでも検知) | ◎(光学映像を一切撮影しないため浴室・寝室に最適) |
| 前腕8ch sEMG 表面筋電位 | 20..450Hz 生体電位(エッジ処理) | ◎(照明やカメラ死角に非依存) | ◎(端末内Rust/Wasmで特徴量化し生波形を外部送信しない) |
| 一般的なネットワークカメラ | RGB映像ストリーム | △(湯気・逆光・暗所で精度低下) | ×(心理的ストレスおよび映像漏洩リスクが存在) |
新幹線のホームドアや自動車の自動ブレーキと同じ技術が、お年寄りの安眠を守っている!
実は、介護現場で活躍し始めている「ミリ波レーダー」は、雨や霧の夜でも前方の車を正確に検知する自動車の衝突被害軽減ブレーキや、新幹線のホームドア安全センサーとして磨かれてきた技術を、室内の配慮した見守り用に応用したものです。電波の強さは携帯電話の100分の1以下(Wi-Fiルーターよりもはるかに微弱)なので、ペースメーカーや医療機器にも丁寧に、24時間安心してお使いいただけます。
関連資料・解説記事
病院・薬局・介護のサイバーセキュリティ対策ガイド
医療情報ガイドライン第6.0版・第7.0版に対応した「診療・ケアを止めない守り方」を具体的に解説しています。
帳票・バックオフィスAI自動化支援・業務連絡基盤
個人LINEを使わない安全な業務連絡基盤と、指示文不要の記録補助により、現場スタッフの事務負担を軽減する支援を行っています。
上級医療情報技師への個別相談
医療・介護・福祉現場のシステム選びや補助金活用について、平易な表現で丁寧にご相談を承ります。
前腕8ch表面筋電位(sEMG)の双二次IIRノッチフィルタ伝達関数 H(z) と短時間フーリエ変換(STFT)による手指意図推定数理
前腕部の浅指屈筋・総指伸筋・母指外転筋等から皮膚表面電極で計測される表面筋電位(sEMG: Surface Electromyography)は、運動単位活動電位列(MUAP train)の空間・時間重畳信号であり、振幅 10 μV〜5 mV、有効周波数帯域 20〜450 Hz(エネルギーピーク 50〜150 Hz)という微弱な確率過程です。最大の障害は、商用電源ラインから容量結合で混入する 60 Hz(西日本:大阪・高槻)/ 50 Hz(東日本)のハム雑音と、皮膚・電極界面の半電池電位変動による 0.5〜15 Hz のモーションアーチファクトです。
これをリアルタイム(遅延 < 10 ms、サンプリング周波数 fs = 1000 Hz)で除去するため、当社の Rust DSP コアは双一次変換(Bilinear Transform)に基づく 2次双二次(Biquad)IIR ノッチフィルタを Direct Form II Transposed 構造で実装しています。阻止角周波数 ω0 = (2π f0) / fs、品質係数 Q = 30.0、減衰帯域幅パラメータ α = sin(ω0) / (2Q) とおくとき、伝達関数 H(z) は次式で厳密に定義されます:
ノッチおよび 20〜450 Hz バンドパスを通過した8チャンネル信号 xc[n] (c ∈ {0..7}) に対し、窓長 N = 256 ms、ホップ幅 H = 32 ms、ハミング窓 w[n] = 0.54 - 0.46 cos(2π n / (N - 1)) による離散短時間フーリエ変換 Xc(m, k) = Σn=0..N-1 xc[n + mH] w[n] exp(-j 2π kn / N) を実行し、パワースペクトル密度 Pc(m, k) = (1 / N) |Xc(m, k)|2 から中央周波数(Median Frequency: fmed)および Hudgins 時間領域特徴量(MAV, WL, ZC, SSC)を抽出します。これにより、カメラの死角となる手指の微細な屈曲・ピンチ力と筋疲労度をミリ秒単位で識別します。
| DSP Stage | Mathematical Formulation / Parameter | Numerical Value (fs = 1000 Hz) | Physiological / Signal Purpose |
|---|---|---|---|
| Stage 1: Front-End | INA Differential Gain & CMRR | G = 1000×, CMRR ≥ 105 dB | Reject common-mode body potential |
| Stage 2: IIR Notch | f0 = 60.0 Hz, Q = 30.0, ω₀ = 0.37699 rad | b0=0.9938, b1=-1.8477, a2=0.9877 | -48dB attenuation at 60Hz power-line hum |
| Stage 3: Bandpass | 4th-Order Butterworth Cascade | Passband 20 Hz ≤ f ≤ 450 Hz | Remove <15Hz motion drift & >450Hz aliasing |
| Stage 4: STFT | Hamming Window N=256, H=32 | Δ f = 3.90625 Hz/bin, 31.25 fps | Time-frequency MUAP recruitment tracking |
| Stage 5: Features | Hudgins TD (MAV, WL, ZC, SSC) + fmed | 8ch × 6 features = 48-dim ℝ^48 | Real-time sign & pinch intent classification |
#![no_std]
#![forbid(unsafe_code)]
/// Direct Form II Transposed 2nd-Order Biquad IIR Filter State.
/// Minimizes floating-point roundoff noise near the unit circle (Q = 30.0).
#[derive(Clone, Copy, Debug)]
pub struct BiquadNotchFilter {
pub b0: f32,
pub b1: f32,
pub b2: f32,
pub a1: f32,
pub a2: f32,
z1: f32,
z2: f32,
}
impl BiquadNotchFilter {
/// Pre-computed exact coefficients for f_s = 1000.0 Hz, f_0 = 60.0 Hz (West Japan / Osaka), Q = 30.0:
/// omega_0 = 2 * pi * 60 / 1000 = 0.3769911184 rad
/// sin(omega_0) = 0.3681245527, cos(omega_0) = 0.9297764859
/// alpha = sin(omega_0) / (2 * 30.0) = 0.0061354092
pub const fn new_60hz_fs1000_q30() -> Self {
let inv_a0 = 1.0f32 / 1.0061354092f32;
let b0 = 1.0f32 * inv_a0;
let b1 = (-2.0f32 * 0.9297764859f32) * inv_a0;
let b2 = 1.0f32 * inv_a0;
let a1 = b1;
let a2 = (1.0f32 - 0.0061354092f32) * inv_a0;
Self { b0, b1, b2, a1, a2, z1: 0.0, z2: 0.0 }
}
/// Processes a single sEMG sample x[n] in O(1) time via Direct Form II Transposed:
/// y[n] = b0 * x[n] + z1[n-1]
/// z1[n] = b1 * x[n] - a1 * y[n] + z2[n-1]
/// z2[n] = b2 * x[n] - a2 * y[n]
#[inline]
pub fn process_sample(&mut self, x: f32) -> f32 {
let y = self.b0 * x + self.z1;
self.z1 = self.b1 * x - self.a1 * y + self.z2;
self.z2 = self.b2 * x - self.a2 * y;
y
}
}
#[derive(Clone, Copy, Debug)]
pub struct SemgHudginsFeatures {
pub mean_abs_value: f32,
pub waveform_length: f32,
pub zero_crossings: u16,
pub slope_sign_changes: u16,
}
/// Extracts Hudgins time-domain features over a 256-sample filtered sEMG window (256ms @ 1kHz).
pub fn extract_hudgins_features_256(frame: &[f32; 256], deadzone_mv: f32) -> SemgHudginsFeatures {
let mut mav_sum = 0.0f32;
let mut wl_sum = 0.0f32;
let mut zc: u16 = 0;
let mut ssc: u16 = 0;
let mut i = 0usize;
while i < 256 {
let x = frame[i];
mav_sum += if x >= 0.0 { x } else { -x };
if i >= 1 {
let prev = frame[i - 1];
let diff = x - prev;
wl_sum += if diff >= 0.0 { diff } else { -diff };
// Zero Crossing with noise deadzone threshold
if ((x > 0.0 && prev < 0.0) || (x < 0.0 && prev > 0.0))
&& (if diff >= 0.0 { diff } else { -diff }) >= deadzone_mv
{
zc += 1;
}
}
if i >= 2 {
let prev = frame[i - 1];
let prev2 = frame[i - 2];
let d1 = prev - prev2;
let d2 = prev - x;
if (d1 * d2) >= (deadzone_mv * deadzone_mv) {
ssc += 1;
}
}
i += 1;
}
SemgHudginsFeatures {
mean_abs_value: mav_sum / 256.0,
waveform_length: wl_sum,
zero_crossings: zc,
slope_sign_changes: ssc,
}
}