
どんな姿勢モデルも、崩れている膝で良好スクワット15回を記録する。私はレップ9を捕まえるAIを作った。
このデモの最初のバージョンを作った目的は、姿勢モデルがスクワットを数えられることを証明することだった。ところが一日もしないうちに、私は間違ったことを証明してしまっていた。ACL再建手術から8週間後、62歳、処方された自重スクワット15回という、Mariaと呼ぶ合成の術後患者を与えたのだ。無料の姿勢ライブラリは、無料の姿勢ライブラリがやることを正確にやった。15レップを記録し、すべてを数え、次へ進んだ。15回中15回。きれいなセッションだ。
問題はレップ9だった。レップ9でMariaの膝は内側に崩れ、代償のために動きを遅くする——ACL再建後に理学療法士がまさに見張る動きで、移植腱を再断裂させる動きそのものだ。姿勢モデルはスクワットを見た。再受傷リスクは見なかった。それを見ることは姿勢モデルの仕事ではないからだ。フラグを立てるべきだったレップを、そのままカウントしていたのだ。
その瞬間に、本当の製品が私にはっきり見えた。私は姿勢推定を難しい部分だと思い込んでいた。もはやそれは難しい部分ではない。それは無料だ。
姿勢推定は無料だ。だから私はそれと競うのをやめた
最初の1週間は、より良いキーポイントトラッカーを作ろうとして費やし、それがプロジェクトで最も無駄な1週間だった。BlazePoseとMoveNetはすでにスマートフォン上で毎秒30フレームで動き、33キーポイントのスケルトンを無償でくれる。すべてのPTプラットフォームと企業ウェルネスアプリがすでにこれを持っているか、明日にも投入できる。そこで競うのは、すでに無償で配られているものを配ろうとして競うことだ。
誰も手渡してくれないのは、キーポイントの後の層だ。生の姿勢ストリームを取り込み、臨床医が行動でき、支払者が償還する何かへ変えること。それこそがKinetiqがエンドツーエンドで構築すると決めた層であり、私が何度も立ち返ってきたテーゼはこうだ。
姿勢推定は無料だ。価値はその上の脳と、請求可能な証拠にある。
そこで私はトラッカーを捨て、代わりに解釈エンジンを構築した。キーポイントストリームを取り込み(テスト患者3人分は合成、4人目は実際に撮ったスクワット映像からオフライン抽出し、パイプラインが実映像で動くことを証明した)、1-Euroフィルタで平滑化し、信頼度でゲートし、時間的自己類似性でレップを分割し、臨床医が実際に判断に使う特徴量を計算する——関節角度と可動域、膝外反指数、下降対上昇のテンポ比、Log Dimensionless Jerkとしての動きの滑らかさ、左右対称性指数。素のユニットテスト済みNumPy。採点パスにモデルはない。全体はveriprajna.com/ja/demos/ai-biomechanics-exercise-verificationで構築でき、セッション採点を見ることができる。
Mariaをこのエンジンに通し直すと、レップ9は最初からそうあるべきだった通りに返ってきた。

エンジンは単に「悪いレップ」と言うだけではない。検査した条項を書く——外反0.054が0.03以上、テンポ1.4が1.25超。臨床医はそれを突き合わせられる。ブラックボックスは突き合わせられない。ACL手術後は、まさにそれをしたいのだ。
ごまかしたくなったレップ
欲が出た場所を正確に覚えている。レップ12だ。Mariaのセッションのレップ12で、腰のキーポイントが可視性ゲートを下回る。その関節のトラッカー信頼度が低すぎて信用できない。数フレームのあいだ、エンジンは腰がどこにあるか単純にわからない。
誘惑される手——ベンチマークを良く見せる手——は補間だ。前後のフレームから腰の位置を推測し、とにかく角度を計算し、レップを採点し、数字をきれいに保つ。私はその補間を書いた。動いた。そして単眼精度の文献を読み、削除した。
単一カメラの膝角度誤差は平均絶対誤差9.3〜21.9度で走る(Nature Scientific Reports、2025)。この種の測定の正直な上限だ。低信頼フレームで腰の位置を捏造し、それをもとに関節角度を報告するなら、私は膝を測っているのではなく、もっともらしく見える数字を生成して臨床と呼んでいるのだ。真の智慧を意味するVeriprajnaという名の会社にとって、それは迷う余地のない判断だった。

だからエンジンは棄権する。画面上で「レップ未採点、腰が見えない」と言う。スケルトンを灰色にする。装わない。
低信頼のキーポイントから関節角度を推測することは決してない。
その一文を画面に置いたのは、規律を設定ファイルに埋もれさせず、見える形にしたかったからだ。ラベル付きセットのオクルージョンレップでは、3件中3件が棄権し、捏造された角度はゼロ——これは私が主張するだけの話ではなく、ユニットテスト済みの不変条件だ。それでも採点されたオクルージョンレップは、定義上、捏造角度になる。テストが捕まえる。答えないことは、自分の本能と闘って守り続けなければならなかった機能だ。
なぜ同じスクワットが、ある患者では合格し、次の患者では不合格になるのか?
単一のグローバルしきい値を出荷しそうになり、初期ビルドを見せた理学療法士に約30秒で止められた。彼女の指摘は単純だった。ACL術後8週の女性の80度スクワットは良い進歩だ。同じ80度スクワットが、健康な30歳のウェルネスクライアントでは怠惰なレップだ。エンジンが同じ採点をするなら、リハビリを理解していない——幾何学を理解しているだけだ。
そこでルールエンジンは集団適応型になった。しきい値は患者プロファイルに紐づく——年齢帯、疾患、回復週。Maria、ACL術後第8週は屈曲目標75度。Jordan、健康な膝を持つ30歳の企業ウェルネスアスリートは95度。論点を否定できないようにデモにコントロールを入れた——プロファイルのドロップダウンを切り替え、まったく同じ動きを保ったまま、判定が変わるのを見る。

誰かの前でそのドロップダウンを初めて切り替え、動かない動きの下で判定の列全体が変わったとき、相手が理解するのを見た。同じ動きがプロファイルごとに異なる判定を得ること——それはバグではなく、臨床判断だ。これはテーゼのうち、色あせない部分でもある。姿勢推定が完璧になったとき——そしてそうなる——センサーは、80度が治癒中の膝にとって一つの意味を持ち、健康な膝にとって別の意味を持つことを教えてはくれない。その理解は上の層に住んでいる。
エージェントは助言し、コードが決める
一度だけAIエージェントに恥をかかされたことがあり、それが今のアーキテクチャの姿の理由だ。ピッチした相手は皆、流行の能力を求めた——セッションを読んで臨床ノートを書くエージェント、トレンドを見てエスカレートするエージェント。いいだろう。Clinical ScribeとLongitudinal Monitorを別の患者Eleanor——70歳、人工膝置換術後、セッション履歴を通じて可動域が静かに低下している——の上に配線した。
スクライブが書いた初稿は流暢で自信に満ち、証拠にない可動域の数値を含んでいた。丸めたか、平滑化したか、単によく読める数字を発明したのだ。信用していたら、捏造測定値入りの臨床ノートを出荷していた。それが言語モデルを医療ループに入れる失敗モードそのものであり、自分の画面でまさにそれを見ていた。
修正は、エージェントを構造的にそれができないようにすることだった。エージェントが持ち込む数値はすべて、決定論的な証拠と照合される。エンジン出力にない数値はすべて却下され、代わりに決定論的テンプレートが表示される。APIキーがないとき両エージェントは完全に棄権する。解釈し、伝達する。決めない。

エージェントは助言し、コードが決める。
その一文がデモ全体の要となる設計決定だ。信頼の核心——レップごとの判定と請求判定のすべて——は、言語モデルが一切近づかない素のユニットテスト済みコードだ。エージェントはその上に座り、境界付けされグラウンディングチェックされ、本当に得意なこと——検証済みの数字を臨床医向けの散文に変えること——だけをやる。エージェントが判定に一票を得た瞬間、そもそも全体のポイントだった監査可能性を失う。
支払者が実際に償還するのは証憑であり、レップ数ではない
これを作った商業的理由は、CMSの請求ルールを読んで学んだことであり、1か月をそう使うとは思っていなかった。臨床医はCPT 98975-98981の下で遠隔治療モニタリング(RTM)を請求でき、さらに2026年のコード98979と98985があり、2026年の適格しきい値はわずか2日と10分のデータにまで下がった(Veriprajna WP29 research、2026)。しかしCMSは生の座標を償還しない。治療決定に結びついたデバイス収集データを要求する。キーポイントの山は請求可能ではない。文書化され監査可能な判定が請求可能だ。
そのギャップは小さくない。根本問題が小さくないからだ。PT在宅エクササイズの遵守率は約35%、患者の65%が最初の1か月以内にプログラムを放棄する(Veriprajna WP29 research、2026)。自己申告はコンプライアンスを過大報告するので、臨床医はしばしば信頼できないデータで請求し治療している。雇用主側では、筋骨格系疾患が従業員一人あたり年間およそ3,591ドルかかり、MSK手術の推定36%が不要とされ(900億ドル)、従業員の半数超がプライバシーのため健康データ共有に抵抗する(Veriprajna WP29 research、2026)。検証済みでプライバシー安全で請求可能なエクササイズデータこそ、そのチェーンの全員が欠けているものだ。
だからエンジンがセッションごとに最後に行うのは決定だ——請求可能、臨床医レビューが必要、またはデバイスデータ不足——そしてFHIR形式のセッションレポートをエクスポートする。レップごとの観察、それぞれ検査したしきい値条項、セッションの集約、RTM判定、CMSが求める文書フィールド。私はFHIR形式と言うが、決してFHIR検証済みとは言わない。ObservationとDocumentReferenceのフィールド形状を映した構造化JSONであり、ライブEHRにPOSTするペイロードではない。出力する。POSTしたふりはしない。
レップ9の外反フラグがあるMariaのセッションは自動請求しない。まず臨床医へ回す。再受傷シグナルは請求になる前に人間が見るべきだからだ。私がこだわり続けた正直なニュアンスだ:請求可能はすべて良好を意味しないということであり、後ろ盾を持てるほど十分に文書化されていることを意味する。

そのパネル上の数字こそ私が気にかけるものであり、スコープを正確にしたい。ここでのグラウンドトゥルースは、植え込まれた物理パラメータ対プロファイルしきい値が暗示する判定で、エンジンとは独立に計算され、その後ラベル固定後に測定ノイズを加えてキーポイントへレンダリングされるので、エンジンはノイズを通じて判定を回復しなければならない。そのセットでは明確な25件で一致100%、しきい値のおよそ1標準偏差以内の境界線10件で一致100%だ。それはラベル付き合成セット上の判別結果であり、オープンワールドの保証ではない。そして境界線ケースこそ、素朴なしきい値処理で反転するものであり、だからこそ別途報告する。これらは耐久性のある指標だ——タスク精度、自動化スループット、正直さ。姿勢モデルが改善しても色あせない。どれも姿勢モデルの誤差率ではないからだ。
私に残された問い
私はコンピュータビジョン製品を作っていると思い込んで始め、カメラから始まる説明責任製品を作ったと確信して終わっている。面白い仕事は決してキーポイントを得ることではなかった。システムが何を主張してよいか、いつ棄権しなければならないか、誰のしきい値が適用されるか、臨床医が自分の免許をかけて後ろ盾にできるものは何か、を決めることだった。崩れゆく膝を採点し、オクルージョンレップを拒否し、証憑をエクスポートするエンジンを見たいなら、キーレスでveriprajna.com/ja/demos/ai-biomechanics-exercise-verificationで動く。
そして私の説明を読むより動くところを見たいなら、エンドツーエンドで動く全体がここにある。
私が何度も考え直している問い——他のビルダーにも本気で議論してもらいたい問い——はこれだ。センサーが完璧に漸近するにつれ、モデルにより多く決めさせたくなる。めったに間違わないからだ。しかし「めったに間違わない」こそ、捏造された数字が最も被害を出す条件だ。チェックをやめてしまうからだ。では、あなた自身のシステムでは、モデルに越えさせないと決めた線はどこにあり、それを強制するコードを指し示せるか?


