打造面向物理治療的運動驗證引擎 Kinetiq:價值是姿態模型之上經信心度閘控、可 RTM 計費的證明。
Physical TherapyDigital HealthHealthcare AI

任何姿態模型都會在膝蓋塌陷時記下 15 次良好深蹲。我打造會抓住第 9 次的 AI。

Ashutosh SinghalAshutosh Singhal2026年7月8日13 min

我做出這個示範的第一版,是為了證明姿態模型能數深蹲次數;一天之內,我卻證明了錯誤的事。我餵給它一位名為 Maria 的合成 ACL 術後患者:62 歲、膝關節重建後第八週、處方十五次徒手深蹲。免費姿態函式庫做了免費姿態函式庫會做的事。它記錄了十五次,全部計入,然後繼續。十五次裡十五次。一場乾淨的訓練。

問題出在第 9 次。第 9 次時,Maria 的膝蓋向內塌陷,她放慢速度來代償——這正是物理治療師在 ACL 重建後會盯著看的動作,因為那是人們再次撕裂移植物的方式。姿態模型看到的是一次深蹲。它沒有看到再受傷風險,因為那不是姿態模型該做的事。它本該標記的那一次,正是它計入的那一次。

就在那一刻,真正的產品對我變得清晰。我一直把姿態估計當成難關。它已不再是難關。它是免費的。

姿態估計是免費的,所以我不再試著與之競爭

第一週我試著打造更好的關鍵點追蹤器,那是整個專案最浪費的一週。BlazePose 與 MoveNet 早已能在手機上以每秒 30 幀運作,免費給你 33 個關鍵點的骨架。每個 PT 平台與企業健康應用早已具備這套能力,或明天就能接入。在那裡競爭,等於搶著白送別人已經在白送的東西。

沒有人會白送給你的是關鍵點之後的那一層。把原始姿態串流轉成臨床醫師能據以行動、付款方願意報銷的東西。那正是我決定讓 Kinetiq 端到端打造的一層,而我反覆回到的論點是這個。

姿態估計是免費的。價值在其之上的大腦,以及可計費的證明。

於是我丟掉了追蹤器,改為打造詮釋引擎。它接收關鍵點串流(三名測試患者使用合成資料;第四名則從真實拍攝的深蹲片段離線擷取,以證明管線能跑在真實畫面),以 1-Euro 濾波器平滑、依信心度閘控、以時間自相似性切分次數,並計算臨床醫師真正會推理的特徵:關節角度與活動範圍、膝外翻指數、下降對上升的節奏比、以 Log Dimensionless Jerk 衡量的動作平滑度,以及左右對稱指數。純粹、有單元測試的 NumPy。評分路徑裡沒有模型。你可以打造整套系統於veriprajna.com/zh-Hant/demos/ai-biomechanics-exercise-verification,並觀看它評分一場訓練。

當我把 Maria 再跑過這個引擎,第 9 次回來的結果,才是第一次就該有的樣子。

Kinetiq 為 Maria 的逐次表格:第 9 次標記為 KNEE VALGUS,外翻指數 0.054 高於 0.03 門檻,節奏 1.4 高於 1.25,標記為再受傷風險,而周圍次數評為良好
第 9 次——原始計數器稱為良好的那一次:引擎回傳膝外翻指數 0.054(達到或超過 0.03 門檻)與節奏 1.4(高於 1.25),是再受傷風險旗標,不是第十五次良好次數。

引擎不只說「不良次數」。它寫出自己檢查過的條款:外翻 0.054 達到或超過 0.03,節奏 1.4 高於 1.25。臨床醫師可以據此交叉詰問。你無法交叉詰問黑箱,而在 ACL 手術之後,你非常想要這麼做。

我曾想造假的那一次

我清楚記得自己何時起了貪念,就是第 12 次。Maria 那次訓練的第 12 次,髖部關鍵點掉到可見度閘控以下。該關節的追蹤器信心低到不可信。有幾幀,引擎根本不知道她的髖在哪裡。

誘人的做法——能讓基準看起來更好的做法——是插值。從前後幀猜測髖的位置,照樣算角度、評分這一次,讓數字保持乾淨。我寫過那種插值。它有效。然後我讀了單目準確度文獻,並刪掉了它

單鏡頭膝角度誤差的平均絕對誤差落在 9.3 到 21.9 度(Nature Scientific Reports,2025)。那是這類測量誠實的上限。若我在低信心幀上捏造髖位置,再據此報告關節角度,我就不是在量測膝蓋,而是在產生看起來可信的數字並稱之為臨床數據。對一家名為 Veriprajna——意為真實智慧——的公司來說,那不是兩可的抉擇。

Kinetiq 表格顯示第 12 次為 NOT SCORED,原因是 LHIP 不可見:髖關鍵點低於可見度閘控,該次未捏造任何角度
第 12 次:髖關鍵點掉到可見度閘控以下,因此判定為「未評分,髖不可見」。骨架變灰,該幀不發明任何角度。

於是引擎棄權。它在畫面上說:「該次未評分,髖不可見。」它把骨架變灰。它不裝懂。

我們從不依低信心關鍵點猜測關節角度。

我把那句話放上畫面,因為我希望紀律可見,而不是埋在設定檔裡。在我標註集中被遮擋的次數裡,三之三棄權、零角度被捏造——那不是我主張的說法,而是有單元測試的不變量。被遮擋的次數若仍被評分,依定義就是捏造角度。測試會抓到它。拒絕回答是一項功能,我得與自己的本能對抗才能守住。

為什麼同一次深蹲,對這位患者合格,對下一位卻不合格?

我幾乎要出貨單一全域門檻,一位物理治療師看了早期版本,大約三十秒就勸退了我。她的重點很簡單。ACL 術後八週的女性做出 80 度深蹲是好進展。同一位健康的 30 歲保健客戶做出同樣 80 度深蹲,則是偷懶的一次。若你的引擎給他們相同分數,它不懂復健,只懂幾何。

於是規則引擎變成族群自適應。門檻依患者檔案而定:年齡帶、病況、復原週次。Maria,ACL 術後第 8 週,屈曲目標 75 度。Jordan,30 歲企業健康運動員、膝蓋健康,則是 95 度。我在示範裡加了控制項,讓重點無可辯駁:切換檔案下拉選單,保持完全相同的動作,看判定如何改變。

Kinetiq 顯示 Jordan(健康運動員檔案)同一約 80 度深蹲被評為深度不足(畫面上的 shallow 判定),因屈曲低於 95 度目標;Maria 的 ACL 術後檔案則評為良好
對 Maria 評為良好(目標 75 度)的同一約 80 度深度,對 Jordan(目標 95 度)則評為深度不足,畫面上顯示為 shallow 判定。一個動作、兩種判定,因為門檻依患者自適應。

第一次我在別人面前切換那個下拉選單,整欄判定在動作沒變的情況下全部改寫,我看著他們懂了。同一動作依檔案得到不同判定,那是臨床判斷,不是錯誤。 這也是論點中不會過時的部分。當姿態估計變得完美——它會的——感測器仍無法告訴你:80 度對正在癒合的膝蓋是一回事,對健康膝蓋是另一回事。那種理解活在上方那一層。

代理給建議,程式碼做決定

我確實讓一個 AI 代理讓我丟臉過一次,而這就是架構長成現在這樣的原因。我向每個人提案時,他們都想要當紅能力:讀取訓練並撰寫臨床紀錄的代理、觀察趨勢並升級通報的代理。沒問題。我為另一位患者 Eleanor——70 歲、膝關節置換術後、活動範圍在訓練史中悄悄下降——接上了 Clinical Scribe 與 Longitudinal Monitor。

書記寫出的初稿流暢又自信,卻含有證據中不存在的活動範圍數字。它四捨五入、平滑,或乾脆發明了一個讀起來不錯的數字。若我信任它,就會出貨一份含有捏造測量的臨床紀錄。那正是把語言模型放進醫療迴路的完整失敗模式,而我剛在自己的螢幕上看著它發生。

修正方式是讓代理在結構上無法這麼做。代理引入的每個數字都對照決定性證據檢查。任何不在引擎輸出中的數字都會被拒絕,改為顯示決定性範本。沒有 API 金鑰時,兩個代理完全棄權。它們詮釋、它們溝通。它們不做決定。

Eleanor 的 Kinetiq AI Scribe 與 Longitudinal Monitor 面板,兩者皆標示為 grounding-checked;監測器回報訓練史中下降的活動範圍趨勢,並升級供臨床醫師審查
Eleanor 合成訓練史上的 Longitudinal Monitor:它偵測到下降的活動範圍趨勢,並起草主動的臨床醫師升級通報。兩個代理都對決定性引擎做 grounding-checked,因此不在證據中的任何數字在進入紀錄前就會被拒絕。
代理給建議,程式碼做決定。

那句話是整個示範的承重設計決策。信任核心——每一次判定與計費決定——是純粹且經單元測試的程式碼,附近沒有語言模型。代理坐在上方,受界線約束並經 grounding-checked,做它們真正擅長的一件事:把已驗證數字變成臨床醫師可用的散文。一旦代理對判定擁有一票,你就失去了整件事本來要追求的可稽核性。

付款方真正報銷的是收據,不是次數計數

我打造這一切的商業理由,是讀 CMS 計費規則時學到的事——那不是我預期會花一個月去做的事。臨床醫師可依 CPT 98975-98981 計費遠距治療監測(Remote Therapeutic Monitoring),加上 2026 代碼 98979 與 98985,且 2026 合格門檻降到少至 2 天與 10 分鐘資料(Veriprajna WP29 研究,2026)。但 CMS 不報銷原始座標。它要求與治療決策綁定的裝置蒐集資料。一堆關鍵點不可計費。一份有文件、可稽核的判定才可以。

那道落差不小,因為底層問題也不小。PT 居家運動遵從率約在 35%,且 65% 患者在第一個月內放棄計畫(Veriprajna WP29 研究,2026)。自我報告會高估遵從,因此臨床醫師常常依自己無法信任的資料計費與治療。在雇主端,肌肉骨骼疾患每年每名員工大約花費 3,591 美元,估計 36% 的 MSK 手術被視為不必要(900 億美元),超過一半員工因隱私抗拒分享健康資料(Veriprajna WP29 研究,2026)。已驗證、隱私安全、可計費的運動資料,正是這條鏈上每個人都缺少的東西。

因此引擎對每場訓練最後做的事是判定:可計費、需臨床醫師審查,或裝置資料不足,並匯出 FHIR 形狀的訓練報告。逐次觀察、每次檢查過的門檻條款、訓練彙總、RTM 判定,以及 CMS 要求的文件欄位。我說 FHIR 形狀,從不說 FHIR 驗證,因為它是鏡射 Observation 與 DocumentReference 欄位形狀的結構化 JSON,不是提交到即時 EHR 的負載。我發出它。我不假裝 POST 它。

Maria 那次訓練帶著第 9 次外翻旗標,不會自動計費。它先路由給臨床醫師,因為再受傷訊號在成為費用之前,該由人看見。那是我一直堅持的誠實分寸:可計費並不代表一切都好,而是指記錄得足以站得住腳。

Kinetiq 基準摘要:25 個清楚案例判定一致率 100%,10 個門檻一標準差內的臨界案例一致率 100%,3 之 3 被遮擋次數棄權且 0 個捏造角度,4 場訓練中 3 場自動可計費、1 場路由至審查
固定標註合成集上的基準:25 個清楚案例與 10 個臨界案例(約在門檻一個標準差內)判定一致率皆為 100%,3 之 3 被遮擋次數棄權且 0 個捏造角度;4 場訓練中,3 場自動可計費、1 場路由至審查。

面板上的數字是我在意的那些,我要精確說明其範圍。此處的真實標籤,是由植入的物理參數對檔案門檻所蘊含的判定——獨立於引擎計算——然後在標籤固定後,再把次數渲染成加上測量雜訊的關鍵點,因此引擎必須穿過雜訊找回判定。在該集合上,25 個清楚案例一致率 100%,約在門檻一個標準差內的 10 個臨界案例一致率亦 100%。那是標註合成集上的判別結果,不是開放世界保證,而臨界案例正是在天真門檻下會翻轉的那些,這正是我分開報告它們的原因。這些是耐久指標:任務準確度、自動化吞吐量,以及誠實。它們不會在姿態模型進步時過時,因為其中沒有一項是姿態模型錯誤率。

留給我的問題

我進來時以為自己在做電腦視覺產品,結束時卻確信我做的是問責產品——碰巧從攝影機開始。有趣的工作從來不是取得關鍵點。而是決定系統被允許主張什麼、何時必須棄權、適用誰的門檻,以及臨床醫師能用執照擔保什麼。若你想看引擎為塌陷的膝蓋評分、拒絕被遮擋的次數,並匯出收據,它在無金鑰狀態下執行於veriprajna.com/zh-Hant/demos/ai-biomechanics-exercise-verification

若你寧願看它運轉,而不是讀我描述,這裡是整套端到端執行。

我反覆琢磨、也真心希望其他打造者與我爭論的問題是這個。當感測器漸近完美,誘惑會是讓模型決定更多,因為它幾乎不會錯。但「幾乎不錯」正是捏造數字傷害最大的條件,因為你已停止檢查。那麼,在你自己的系統裡,你拒絕讓模型跨越的那條線在哪,你能否指出強制執行它的程式碼?

相關研究

自信打造您的 AI。

與一支在打造新世代企業級 AI 方面擁有深厚經驗的團隊攜手合作。讓我們協助您設計、建置並部署值得信賴的 AI 策略。

Veriprajna 深度科技顧問公司 專精於為醫療、金融及法規監管領域打造攸關安全的 AI 系統。我們的架構均依循既定規範進行驗證,並備有完整的合規文件。