可攜式多媒體助理之線上手寫辨識處理器研製(II)
On-line Hand-Writing Recognition System of a Portable
Multimedia Assistant(II)
執行單位:台灣大學電機工程研究所
計劃編號:NSC-872215E002-029
主持人:龐台銘 教授
摘要 為了研製一高效能、低功率的即時手 寫辨識器所需之演算法及特殊硬體 架構與晶片。硬體晶片之主要功能是 處理手寫中英文、數字及特殊命令符 號等之即時輸入與辨識中最耗時之 比對演算,以減少 RISC CPU 之計算 負擔,本年度我們完成了整個硬體架 構的設計與模擬。 Abstr actOne high-performance, low-power and real-time “On-line Handwritten Character Recognizer” will be proposed in this project. This project involves the character recognition algorithm and special hardware architecture. The main function of the hardware chip is to handle handwritten English, numbers, and special symbols with real-time input and recognize. Because the matching is the most time-consuming, we use the hardware to reduce the load of RISC CPU. This year, we complete the hardware design and simulation. 一、計劃緣由與目的 “ 線 上 手 寫 辨 識 ” 是 未 來 的 “筆式電腦”如“可攜式多媒體助 理”之主要輸入方式。雖然目前“線 上手寫辨識”研究已相當成熟,然而 現有的研究及產品,大多是在功能強 大而無省電顧慮的“桌上型”個人 電腦上發展。至於現有可攜式產品如 “個人數位助理”雖也具有“線上 手寫辨識”功能,但因成本考慮,都 是由其內之微處理理器純以軟體處 理。由於目前可攜式系統內之微處理 器限於省電要求而效能較低,其辨認 能力、速度與辨認率,對簡單的應 用,在加以某些書寫限制下,雖已達 可接受之程度,但對未來高速度、多 功能的“可攜式多媒體助理”的效 能需求而言,則仍有極大的差距。而 且,以一個適合一般應用之通用微處 理器執行一特殊應用如“線上手寫 辨識”,雖然具有低成本與高靈活度 之優點,卻因未以最直接有效的系統 與硬體結構處理而“事倍功半”- 不符合“低功率”的設計準則:要以 最有的方式及最少的電路活動量,在 最短的時間內達到相同或更好的結 果。 本計劃的目標是,在三年內根據 以 往 之 經 驗 與 “ 低 功 率 ” 設 計 考 慮,發展一套適用於“低功率可攜式 多媒體助理”之“線上手寫辨識處 理器”。研究其硬體架構、電路、VLSI 晶片、及相關演算法。所擬研製處理 器之主要功能,是辨認線上手寫輸入 之中英文字、注音符號、及特殊字符 等,處理線上手寫輸入與辨識過程中 重覆最多、最耗時之演算,包括筆輸 入、切割、前處理、特徵抽取、比對 分類、及文辭後處理等,以減輕主處 理器之計算負擔。研究重點是如何在 軟體、速度、耗電量、與晶片大小四
者之間取捨,做一適合用於“低功率 可 攜 式 多 媒 體 助 理 ” 之 最 佳 化 設 計。 二、研究方法及成果 (1)演算法回顧 上個年度我們已經完成整個演 算法, 在此為了報告的完整性需要 再回顧一下。我們使用的演算法為搜 尋樹中的“先深後廣”搜尋法。在搜 尋的過程中對搜尋樹中的每一個節 點,要去比對目前節點所代表的手寫 字筆劃和對應到的資料庫筆劃是否 相似,且目前節點和上兩個節點所代 表的筆劃的關係也要與資料庫中所 對應到的關係做比對,以決定在搜尋 樹中的搜尋方向。當對一個資料庫中 的字比對完成後,再依所得到的比對 分數做排序,選出最相似的字。 (2)架構簡介 因為在搜尋的過程中會有往樹 根(root)走的情形,所以要將之前比對 過的每一個節點的結果記錄下來。因 此將會用到許多暫存器,但是為了兼 顧省電的考量,我們在兩個層次上做 了特殊的設計: 1.架構層次:盡量少用耗電量大的位 移暫存器(shift register),而依實際 的需求以先進後出(first in last out) 暫存器代替。 2.電路層次: 因為使用 到很多暫 存 器,為了減少不必要的寫入動作, 我們使用時脈遮斷(clock gating)的 技術,以達到省電的要求。 整個架構的方塊圖如下: (3)手寫字儲存單元 在開始執行搜尋樹的搜尋前,要 先輸入手寫字的資料到這個單元的 暫存器內,以供搜尋時使用。 (4)模版字儲存單元 這個單元內暫存了正在和手寫 字進行比對的模版字的筆畫資料。為 了縮短辨識的時間,這個單元並不像 手寫字儲存單元一樣,在開始搜尋前 就輸入目前要比對的模版字的所有 資料暫存著。因為並不是每個模版字 都會比對到所有的筆畫,很多時候比 對幾個筆畫後,就可以認定這個模版 字和手寫字比對失敗,所以不需要浪 費時間在搜尋前就存入所有的模版 字資料。此外當搜尋過程中發生往樹 根(root)走的情況時我們依舊要將目 前對應到的模版字的筆畫資料存下 來,留待搜尋樹再走到相同深度時比 對之用。這樣就可大量減少對唯讀記 憶體的讀取動作,以降低功率的消 耗。 下圖為這個單元的方塊圖,因為 需要三個輸出埠(output port),所以我 們把前三組暫存器構成位移暫存器 手寫字 儲存單 元 模版字 儲存單元 已比對筆 劃儲存單 元 所有節點 比對結果 儲存單元 排序單元 最長搜尋 時間儲存 單元 欲比對 筆劃選 擇單元 控制單 元 缺少筆劃 計算單元 比對單 元 計算總分 數單元 選擇器 INPUT VALUE
Input Stroke type register
Input Stroke relation table register
32
7 CLEAR INPUT
Input Stroke type
Input Relatin Row Selected input Stroke no. 解碼器 oe Input Stroke relation 多工器 計數器 計數器 解碼器 we we we we we we we 解碼器 oe oe
(shift register),以避免堆疊需要三個 讀 取 埠 (read port) 增 加 電 路 的 複 雜 度。 (5)已比對筆畫儲存單元 因為在辨識流程的前處理部分 中已經將手寫字的筆畫做過排序,所 以在進行搜尋樹搜尋時,一個模版字 筆畫可能對應到的手寫字筆畫範圍 就可以縮小,以縮短搜尋時間。這個 單元就是用來找出目前模版字筆畫 可能對應到的手寫字筆畫的範圍,並 儲存起來;如果範圍內的筆畫經過(7) 欲比對筆畫選擇單元選擇到則標記 起來,若搜尋樹再走到相同深度時就 不會重複選擇了。 下圖為這個單元的方塊圖。 (6)所有節點比對結果儲存單元 這個單元內儲存搜尋樹中已經 比較過的每個節點的結果,以供往樹 根(root)走時可以回復所有的狀態。下 圖是這個單元的方塊圖,圖中將三組 暫存器組成位移暫存器的原因與(4) 模版字儲存單元的原因相同。 (7)欲比對筆劃選擇單元 這個單元依據已比對筆畫單元 中儲存的可能對應範圍去選擇下一 個要比對的手寫字筆畫。 (8)比對單元 比對目前的模版字筆畫及選擇 到的手寫字筆畫是否對應成功,並計 算這兩個筆畫的對應分數。 (9)缺少筆劃計算單元 為了在使用者漏寫筆畫時仍然 能辨識出來,這個單元會計算漏寫的 筆 畫 的 重 要 性 給 予 不 同 程 度 的 分 數。 (10)計算總分數單元 當整個搜尋完成後計算(8)比對 單元和(9)缺少筆劃計算單元產生的 分數的合,作為手寫字對這個模版字 的比對分數。 (11)控制單元 這個單元的核心為一個有限狀 態機(finite state machine),並由此產 生整個晶片的控制信號。 (12)最長搜尋時間儲存單元 讀入一筆模 版字筆畫 選擇欲對應 手寫字筆畫 有無筆 畫可供 選擇 回到上一個 節點 執行比對 比對是 否成功 無 有 否 是 堆 疊 對應到的手 寫字號碼 比對的分數 對應的狀態 輸出 堆 疊 上一筆對應到的 手寫字筆畫 可選擇的手寫 字筆畫範圍 在此節點上 比對的次數 輸出 堆 疊 mux 輸出 模版字 筆畫資料 對應到的 手寫字筆畫 號碼
當手寫字的筆畫很多時其對應 的搜尋樹會很大,而搜尋時間會很 長,但通常並不需要搜尋完整個搜尋 樹。在發展演算法時我們做過分析, 當最大辨識時間在四千個時脈週期 以上時,對辨識率的提升很有限,因 此我們在這個單元中儲存最長搜尋 時間,當搜尋時間到達此最大值時就 強制宣告搜尋結束,以之前得到的最 佳比對分數作為這個模版字的比對 分數。 (13)排序單元 當一個模版字的搜尋完成後,依 據所得的分數在這個單元內做氣泡 式排序(bubble sort),以選出分數最低 的十個模版字。 三、結論與討論 這個年度我們承接上個年度在 軟體上發展的成果,以硬體實現了一 個 低 功 率 的 線 上 中 文 手 寫 辨 識 晶 片,並達成以下幾點目標: (1)節省記憶體 要將線上中文手寫辨識給硬體 化,我們必須注意到硬體和軟體有著 基本上的不同。首先我們必須儘量節 省記憶體的使用,我們把資料庫的儲 存儘量用到最少,只儲存筆劃和筆劃 間的關係,而把筆劃順序這個重要的 資訊藏在之中,而且用這種資料結 構,可以輕易的把一個字給分成數個 字根的形態來儲存。 (2)簡化辨識單元 因為硬體的動作比較規則,所以 在辨識時,我們必須儘量讓程式規 則,這樣在硬體化時才不會太過於複 雜。 (3)加速辨識速度 在處理待辨字時,我們讓前處理 的部分只作一次,亦即這次處理之 後,即可以用在所有字的辨識上,不 必因為特定字的辨識而作特別的處 理,可以減輕軟體的負擔,並且儘量 讓大量的運算在硬體方面處理。 (4)資料庫的建立容易 在建立資庫時,只需有一套輸入 字,利用一樣的方法,抽出我們所要 的特徵,再加以儲存即可,另外,對 於由字根所組成的字,我們也可以很 輕易的由字根來產生來這個字的真 正內容。 四、論文與技術報告
1. Tai-Ming Parng, Wen-Chung Kao, “Integrating Statistical and Structural Approaches to Handprinted Chinese Character Recognition.” 1996
2.Tai-Ming Parng, Ho-shin Yang, “A Font-Adaptive Approach to Printed Chinese Character Recognition.” 1996
3.Chi-Wei Lee, Zen Chen, “Handwritten Chinese Character Recognition Based on Automatically Generated Stroke Structural Sequence Codes.” 1995
4.Kuo-Sen Chou, Kuo-Chin Fan, Tzu-I J.Fan, Chang-Keng Lin, “Recognition of On-Line Chinese Character by Knowledge Model Based Approach.” Proceedings of 1993 Third National Workshop on Character Recognition, R.O.C.
5.Tai-Ming Parng, Chung-Yi Chen,”A Depth-First-Search Processor for On-Line Chinese Character Recognition” The 9
th
VLSI Design/CAD Symposium,pp. 207-210,Aug.1998. 6.Chung-Yi Chen, Tai-Ming Parng,”A
Depth-First-Search Processor On-Line Chinese Character Recognition” National Taiwan University,1998. 暫 存 器 暫 存 器 暫 存 器 ... 模版字號碼 比對分數 比對成功旗標 < < 寫入 寫入