人機介面 Pen-Based Interface 筆跡介面 開課單位 授課教師
動機 人們習慣以手寫方式輸入或紀錄資訊。 許多資料利用手寫之方式能以更快之速度輸入,如數學方程式、路徑。 藉由電腦軟體的搭配,在做某些事情時能提供更大的自由度,如修改筆跡、更改顏色。
歷史演進(60s and 70s) SketchPad(Sutherland 1963) Math Reco(Anderson 1967) HUNCH(Herot 1976) Logic Diagrams(Sutherland 1966)
歷史演進(80s and 90s) GRIDPad(1989) Apple Newton(1994) CrossPad(1999) Pal Pilot’s Graffiti(1994) CrossPad(1999)
現今 Ipad(2010) Android Tablet(2010) Microsoft Surface(2007) Wacom Inkling(2011)
筆跡應用層面解析 N Complete Sketch Understanding Systems 2D/3D Gestural Shape Recognition And Modeling 每次運算 筆畫數 Mathematical Sketching Sketching 3D Geometry Real-Time Mathematical Expression recognition Domain Specific Gestural Commands 1 低 模糊程度 高
應用實例 平面繪圖 使用者介面原型設計 電路圖模擬 動畫路線繪製 製作筆記或文件註解 手寫文字 數學公式識別
應用實例:平面繪圖 例如: wacom繪圖板
應用實例:使用者介面原型設計 DENIM http://www.youtube.com/watch?v=tCVYKgewDXc
應用實例:電路圖模擬 VibroSketch 官方影片 使用者可繪畫系統之後進行模擬,另外一範例可參考 Sim-U-Sketch
應用實例:動畫路線繪製 Motion Doodles 官方影片
應用實例:製作筆記 Note Taker HD http://itunes.apple.com/app/note-taker-hd/id366572045?mt=8
應用實例:文件註解 iAnnotate PDF http://itunes.apple.com/us/app/iannotate-pdf/id363998953?mt=8
應用實例:手寫文字 iPhone Android
應用實例:數學公式識別及運算 MathPad2 可使用 Windows 7 的附屬應用程式 :數學輸入面板,測試現有軟體功能。
筆跡介面的優勢 平日習慣:人類習慣以手寫方式輸入 寫公式、畫圖等透過筆跡輸入更方便 無須使用較大體積的輸入設備(鍵盤)
應用實例的關鍵問題 辨識 需了解筆跡元件 多重性 單一筆跡可能會有多重意義 功能展示 辨識介面及相關功能可能會被隱藏
筆跡介面的限制 筆跡辨識仍不完美 指令多元,若沒標示清楚不易上手。 需針對特定需求開發 需要理解筆跡的內容是什麼,但此變數太大容易造成電腦的誤判。 需要在特定區塊才能辨識。 指令多元,若沒標示清楚不易上手。 需針對特定需求開發
Feature Extraction and Analysis 筆跡介面的資訊處理架構 Raw Stroke Data Preprocessing Segmentation Make Inferences Sketch Understanding Ink Parsing Feature Extraction and Analysis Classification
筆跡介面的資訊處理技術 筆跡資料的表達(Raw Stroke Data) 點及筆畫 圖像 s=p1p2...pn 當 pi =(xi, yi, zi), 1≦i≦n S=s1s2...sm 圖像 使用每一個點的陣列 點的表達方式較不普及(off-line recognition)
筆跡介面的資訊處理技術 資訊前處理(Preprocessing) 筆跡資料的純淨使得往後之運算能更順利 一般使用高斯(Gaussian)或指數(exponential)濾波(filter)將資料做初步過濾 需將資料轉換到固定比率 使得大小、位置、旋轉等條件能在相同判斷標準 由於某些使用者的習慣,筆畫結尾處可能會有小勾,需進行消除以利判斷。
筆跡介面的資訊處理技術 資料切割(Segmentation) 判斷哪些筆畫是一起的 判斷那些筆畫是分開的 通常以筆畫的順序作為判斷依據
筆跡介面的資訊處理技術 特徵存取及分析(Feature extraction and Analysis) 希望能使不同筆跡被分開 好的特徵值影響效果顯著 重要的計算資訊 幾何結構、筆跡統計值、前後關聯 範例 筆畫長度、直方圖、比例、區域等等…
筆跡介面的資訊處理技術 資料分類(Classification) 使用特徵值的結果作為驗證依據 最簡單的驗證可以是有限狀態機,如手勢辨識 一般使用機器學習演算法 線性分類器(linear classifiers),類神經網路(neural networks),隱藏式馬可夫模型(HMM),支援向量機(SVM)等等… 根據不同的問題選擇不同演算法
筆跡介面的資訊處理技術 筆跡分析(Sketch Parsing) 只辨識筆畫是不足夠的 需了解筆畫或元素彼此的關係 高階的筆跡分析 手勢辨識例外 需了解筆畫或元素彼此的關係 如數學運算式 高階的筆跡分析 屬於文字或是僅是繪圖
筆跡介面的技術挑戰 如何提升辨識率? 如何克服不同手寫風格? 如何將同意思的筆畫分為同一類?
筆跡範例(1)
筆跡範例(2)
線上實例_$1 Unistroke http://depts.washington.edu/aimgroup/proj/dollar/
線上實例_$N Multistroke http://depts.washington.edu/aimgroup/proj/dollar/ndollar.html
筆跡辨識的開發工具 手寫辨識: LipiTk http://lipitk.sourceforge.net/ 機器學習: TORCH http://www.torch.ch/ 包含許多演算法 支援向量機(SVM) 隱藏式馬可夫模型(HMM) 貝氏分類器(Bayes Classifiers)
參考資料 Zeleznik, R., K. Herndon, and J. Hughes. SKETCH: An Interface for Sketching 3D Scenes. Proceedings of SIGGRAPH'96, ACM Press, 163-170, 1996 SIGGRAPH course http://www.eecs.ucf.edu/courses/cap5937/fall2007/course3.pdf