擴增實境觸聽系統 TouchHear

把印刷圖片變成「一摸就發聲」的介面,協助視障學生學習空間與地形概念

獨立開發 · 2025 年 9 月 – 2025 年 12 月

TouchHear 讓視障學生用手觸摸一張印刷圖片(地圖、示意圖、觸覺圖形),手指摸到哪個區域,就聽到該區域的說明。這套系統是為一項「協助視障學生學習空間與地形概念」的研究而開發。

要解決的問題

在原本的研究流程中,「系統」其實是一個人:研究者坐在受試者旁邊,看著他的手摸到觸覺圖的哪裡,再手動播放對應的音檔。這讓每次施測都很耗人力,回饋的時機取決於研究者的注意力,而且教材離開受過訓練的研究者就無法使用。

TouchHear 以即時指尖追蹤取代這個「研究者在迴圈中」的步驟,讓圖紙自己回應觸摸。

運作方式

系統分成兩種模式:給製作教材的老師用,以及給使用教材的學生用。

1. 教材編輯(老師/研究者) 載入任意背景圖片、框選矩形熱區,並為每個熱區指派音檔,不需要寫程式。完成後匯出四周帶有 ArUco 標記、可直接列印的 A4 模板。

2. 觸摸偵測(學生) 把列印好的圖紙放在 Orbbec Femto Bolt 深度相機下,系統會:

  1. 校正:偵測 ArUco 標記,並用深度影像擬合出紙面所在的平面。
  2. 辨識專案:同一組標記也編碼了這張圖紙屬於哪個專案,放上去就自動載入對應的熱區與音檔。
  3. 追蹤指尖:以 MediaPipe 追蹤食指指尖,並用深度相機量測指尖離紙面的高度;距離在 25 mm 以內才算觸碰,懸空移動不會誤觸發。
  4. 對應與播放:把指尖位置從相機像素座標轉換到模板座標,比對命中的熱區,播放對應音檔。

我很喜歡的一個設計決定是讓 ArUco 標記一物二用:同一個列印元素同時負責幾何校正與專案辨識,每張圖紙因此能「自我描述」,使用時不需要另外告訴系統現在放的是哪份教材。

實作

  • 桌面端:Python + PyQt6,採 MVVM 架構;偵測流程拆成校正、專案辨識、觸碰判斷、座標轉換與音效模組,以 Qt signal/slot 串接。
  • 伺服器:FastAPI + PostgreSQL,負責帳號、專案儲存、檔案上傳與模板產生,讓在一台電腦上做好的教材能同步到另一台。
  • 部署:Docker Compose。