Crane は端末内の機械学習で、姿勢の問題をリアルタイムに検出します。ここではその仕組みを正確に説明します。ブラックボックスも、ごまかしもありません。
初めて Crane を起動したら、いつも仕事をしている姿勢で自然に座ります。Crane は Google の最先端の姿勢推定モデル MoveNet で、その基準姿勢を記録します。モデルは鼻・左耳・右耳・左肩・右肩といった身体の主要な点を捉え、その相対的な位置を保存します。
この基準が、あなたにとっての「良い姿勢」の目安になります。Crane は万人共通の基準を押しつけません。あなたの身体と机まわりにとっての良い姿勢を学びます。あとで椅子や机の高さを変えて取り直しても、Crane は合わせ直します。
キャリブレーションが済むと、Crane は TensorFlow.js を使い、自分のプロセス内だけでウェブカメラの映像を処理し続けます。各フレームは基準姿勢とのずれを見るために解析されます。
3 層の信号処理が誤検知を防ぎます:
EMA スムージングのおかげで、コーヒーを取ろうと少し前傾しても Crane は反応しません。スコアが動くには、ずれが続くことが必要です。信頼度フィルタリングは、暗い場所、一部が隠れている状態(顔の前の手)など、モデルが姿勢を正しく推定できない状況に対応します。
シグモイド関数は、生のずれの値を 0 から 1 までの滑らかな姿勢スコアに変換します。これにより、わずかな動きでスコアが良い・悪いの間を行き来する「ぶれの領域」がなくなります。
姿勢スコアが設定したしきい値を一定時間下回ると、Crane は作業を妨げない通知を表示します。半透明のオーバーレイで、気づく程度には見えて、大事な作業の途中なら無視できる程度に控えめです。
主な設計上の判断:
目的は知らせることであって、中断させることではありません。視界の端で気づき、都合のよいときに姿勢を直せます。アプリの都合ではありません。
姿勢検出とは別に、Crane は選んだプロファイルに沿って人間工学タイマーを動かします。各プロファイルは、座る・立つ・歩く・運動・ストレッチという活動の繰り返しを、産業保健の研究に基づく長さで定義します。
たとえば開発者向けの Deep Focus プロファイルはこうです:
切り替えの時間になると(たとえば座るから立つへ)、Crane が次の活動を知らせます。従うかどうかにかかわらずタイマーは進みます。Crane は導きますが、強制はしません。
Crane には、集中的なコーディングからクリエイティブな作業、コールセンターまで、働き方に合わせた 15 のプロファイルがあります。3 つは無料で、15 すべては Pro で使えます。
Crane のプライバシーはポリシー上の判断ではなく、設計上の判断です。姿勢データ用のサーバーはありません。ウェブカメラの映像を受け取るサーバーもありません。姿勢データが端末の外に出ることはありません。ネットワーク通信は、Pro ユーザーのライセンス確認と、ストア経由のアップデートだけです。
ウェブカメラの映像は TensorFlow.js がメモリ上で 1 フレームずつ処理します。各フレームを解析して姿勢スコアを計算し、フレームは直後に破棄されます。ディスクに画像は書き込まれません。バッファリングもキューイングも送信もありません。
これが「あなたのデータを見ないと約束します」と「あなたのデータを見る手段がありません」の違いです。Crane は後者を選びました。仮にアプリが乗っ取られても、盗めるものはありません。何も保存していないからです。