系列: 與 AI 一起學寫程式

次毫米錨點與書法的考題

從筆尖追蹤到次毫米錨點姿態疊加。

次毫米錨定 疊加層落在同一個位置,每一畫格、每一次眨眼 配準標記 → 6DoF 紙張姿態 筆尖 < 1 mm 疊加漂移 ~2 ms 每畫格標記偵測
錨定在紙上,而不是房間裡——誤差鏈就此崩解。

大多數 AR 可以容忍幾公分的漂移。書法家教什麼都不容忍。RakuAI 就是為這種精度打造的——在這種精度下,AR 不再是展示品,而開始成為老師。

這個週六早晨,一場合作夥伴對話還鮮明地留在我腦中,連同一個讓我有點害怕的精度目標。NTT QONOQ 一直在日本進行認真的文化 AR 工作,而他們希望這顆引擎支援的書法使用情境,有一條毫不留情的規格:疊加在練習紙上的虛擬墨跡筆畫指引,必須落在同一張紙上完全相同的位置,每一畫格、每一次眨眼。

大多數 AR 體驗對精度是寬容的。如果一個虛擬機器人站在你地板上的某個位置,你移開視線再看回來時它漂移了三公分,你可能不會注意到。機器人就是機器人。機器人會走來走去。

書法家教並不寬容。三公分的漂移是一個沒用的產品。三毫米的漂移是一個令人沮喪的產品。次毫米才是及格線。這個週末,執行環境開始跨過這條線。

落地了什麼

五個 API 和一個合作夥伴引用:

  • 用於高精度 AR 內容對齊的次毫米錨點姿態 API
  • 用於基於標記的紙張校準的紙張 CV 偵測 API
  • 用於即時筆與毛筆追蹤的筆畫路徑 CV 分析
  • 語音延遲事件時間戳與即時指標
  • 為轉向動畫的展示所做的動畫延遲追蹤
  • README 中一段關於與 NTT QONOQ 研究合作的引用

整個週末七十個 commit。大部分的工程工作都在前三項。

為什麼「次毫米」是正確的數字

次毫米的要求不是來自行銷活動。它來自一個使用情境。使用者握著毛筆,懸在一張練習紙上。執行環境看著筆、看著紙、看著房間。它把使用者接下來該寫的筆畫,以微光的形式疊加在紙上。使用者跟著微光走。

只要微光稍微偏離紙面,整個體驗就會崩潰,因為使用者的眼睛會盯著微光而不是實體筆尖,而實體的筆畫會跟著錯位的微光走。疊加層的漂移會造成練習筆畫的漂移。產品就消失了。

所以及格線不是「次毫米很了不起」。及格線是「對這個使用情境來說,次毫米是唯一可接受的失效範圍」。超過它,產品就壞了。

次毫米錨點如何運作

機制(簡化版):紙張本身成為錨點。練習紙上印有一個配準標記,每一畫格都會被偵測。執行環境計算紙張相對於使用者視角的 6DoF 姿態。疊加層以紙張本地座標渲染,而不是房間本地座標。當使用者的頭移動時,數學往另一個方向跑:紙張姿態更新,疊加層重新投影,微光落在下一筆該落的地方。

這和標準的「把虛擬物件錨定到房間,然後信任房間重建」是不同的設計。房間重建適合家具等級的精度。它不適合紙張等級的精度,因為房間重建誤差會和使用者的頭部姿態誤差疊加。透過直接錨定到一個已知的實體物件(紙張),並把疊加層對著這個物件配準,我們讓誤差鏈崩解。

代價是紙張必須是一個已知的實體物件。我們這個週末用基於標記的紙張 CV 偵測 API 解決了這件事。標記很小、不顯眼,印在展示隨附的每一張練習紙上。執行環境大約每畫格兩毫秒偵測到標記,並在典型光照下穩定追蹤它。

勝利在於,我們是在 AR 眼鏡上、在它們現有的運算範圍內、即時地、每一畫格做到這件事,而且在正常使用下疊加漂移被限制在一毫米以內。

關於 NTT QONOQ 的引用

我這個週末在 README 裡加了一段對 NTT QONOQ 的引用,因為我們正在進行積極的研究對話。日本的 NTT QONOQ 一直在真實世界 AR、以及 AR 體驗如何錨定到實體文物這個問題上做認真的工作。書法使用情境和日本空間運算社群一直在推進的那種文化 AR 工作是一致的。

這不是合作夥伴關係的宣告。這是一則備註,說明合作對話正在進行,而這個週末的工程反映了要好好支援它所需要的東西。「你能不能在東京的書法教室做到這件事」這個產品問題,比「你能不能在某個地方做到這件事」更具體。具體的問題會產生更好的工程。

筆畫路徑 CV:更難的那個

次毫米錨點是這個週末的頭條。實際上最難的一塊工程是筆畫路徑 CV。

在 AR 眼鏡上即時追蹤一支筆或毛筆,並不是一個已解決的問題。筆尖很小,經常被使用者的手部分遮擋,而且以變動的速度移動。這個週末的 CV 管線追蹤筆尖相對於紙張的位置,推斷筆尖何時處於接觸狀態(而非懸空),並把筆畫路徑以帶時間戳的點串流輸出。手部遮擋恢復是吃掉最多時間的部分。代理和我把恢復邏輯改了三個版本,測試軌跡才不再掉點。

這是「AI 作為執行環境原語」開始重要起來的那種工程。CV 管線拿到每一個畫格。裝置上的一個小模型判斷當前畫格是接觸畫格還是懸空畫格。模型的判斷餵給筆畫路徑發射器。這個模型不是聊天機器人。它是一個在模擬步驟裡運行的執行環境元素。

這個架構模式正在這顆引擎裡成為一句反覆出現的疊句。AI 不是你添加的功能。AI 是發生在感測器與渲染器之間的那件事,每一畫格,在使用者做著他們正在做的任何事情的同時。

我希望合作夥伴與開發者從中看到什麼

如果你是 NTT QONOQ 或任何其他正在考慮真實環境中精密 AR 疊加的夥伴,書法家教的工作是這顆引擎所瞄準的精度的具體展示。這個框架是通用的。它不是專門的書法工具。它是一個次毫米錨點和一條筆畫路徑 CV 管線,兩者都適用於許多看起來完全不像書法的東西。

如果你是一個 AI 實驗室,手上有擅長手部或筆分割的小模型,這正是能住進這顆引擎模擬步驟裡的那種模型。延遲預算很緊。品質門檻很高。如果你的模型塞得進去,這顆引擎有一個位子留給它。

七十個 commit。一個展示目標。一場正在加速的合作對話。這樣的週六,我拿什麼都不換。

精度是一個合作的故事

如果你的產品需要能把位置保持在次毫米級的 AR 疊加——文化 AR、訓練、精密引導——RakuAI 就是為這條門檻打造的執行環境。來聊聊你的使用情境需要什麼。

← 所有文章