基于計算機視覺的手寫字符輸入
手寫字符輸入方法已廣泛應用于移動電話、掌上電腦等移動設備,其目的在于增強用戶體驗、提高輸入效率和減小設備體積。但該方法需要在顯示屏上覆蓋一個電容式或電阻式觸摸屏才能進行接觸式輸入,這無疑增加了設備成本。目前,移動設備普遍都配有攝像頭,如果用戶使用發光筆在空中不接觸屏幕手寫字符,運用計算機視覺的理論和方法實現輸入,則可以降低設備成本、延長設備使用壽命。近幾年已經有相關方面的研究,參考文獻[1]提出了一種虛擬手寫字符的方法,通過檢測指尖的運動軌跡來恢復字符圖像,但該方法對手指書寫的抬筆、落筆檢測比較困難,使得手指陰影影響較大,恢復出來的字符圖像凌亂,正確識別率低。
本文采用普通教學用的激光筆通過單色屏幕以正常速度寫字,同時攝像頭記錄光斑的移動過程,利用一系列的光斑恢復出一幅完整的字符圖像,最后對該字符進行識別。該方法簡便快捷、識別率高,且無機械磨損,系統整體流程框圖如圖1所示。其中,光斑是波長約為650 nm的紅色光斑,視頻圖像的采集速度為25 s/s,每幀圖像為320×240的RGB圖像。
1光斑檢測與軌跡恢復
實際應用的移動設備和移動投影設備的背景不是白色或黑色,因此通常本文僅討論白色和黑色背景下的光斑檢測及軌跡恢復,不需要建立復雜的背景模型。
1.1光斑檢測
光點或光斑檢測近幾年已有不同的方法出現,參考文獻[2]結合激光點的顏色特征、運動信息和形狀特征來定位激光點的位置。參考文獻[3]利用擬合算法精確定位光斑位置,但該方法還需要降維處理,算法復雜度較高。本文采用根據激光筆發出的紅色或是綠色來提取RGB圖像的特定分量方法,將其轉化成灰度圖像,然后利用灰度重心法找出光斑的中心位置,最后以光斑的中心位置為基礎恢復出光斑。
本文使用紅色激光筆,激光投射在屏幕上后形成一個非常亮的紅色光斑。因此,提取圖像的R分量,將RGB圖像轉化成灰度圖像。實驗發現,在白色背景和黑色背景中不同光照條件下,光斑的灰度值分布在255附近。文中只對灰度級大于180的像素作了灰度分布描述,其結果如圖2、圖3所示。
圖2、圖3中像素灰度值的比例在255附近陡增,這是由于激光光斑的強度遠高于自然光。而圖中每個灰度級像素個數的比例也不相同。由此可以看出,同一種背景在不同光照條件下光斑像素灰度的分布是不同的,不同背景在同一種光照條件下光斑像素灰度分布也是不同的。
傳統的重心法是先將圖像二值化后再找光斑的中心,由此丟失了光斑灰度分布細節。本文采用灰度重心法,可以認為是以灰度為權值的加權重心法[4]。灰度圖像I(i,j)中目標S的灰度重心(x0,y0)為:
式中T為區分背景與光斑的閾值。
在不同背景下,根據圖像灰度的分布情況確定閾值選取權值M(i,j)。圖4所示為選取閾值T前后光斑圖像灰度分布。
圖4中橫、縱坐標表示含有光斑圖像的大小,圖4(a)中背景也參與灰度重心的計算,由于光斑像素個數較少,計算結果不夠準確;圖4(b)中取閾值T后,大部分背景灰度值都為零,大大提高了計算結果的準確度。
光斑的大小對后續的軌跡恢復和字符識別會產生影響,如果檢測出來的光斑太小,則在恢復軌跡時會產生斷斷續續的不連續點;如果檢測出來的光斑太大,恢復出字符圖像的筆跡比較粗,則不利于后續的字符識別。以灰度重心為圓心,r為半徑做圓,即為恢復出來的光斑,為了保證字符的識別率,再結合國家標準字符相關規定,實驗中r采用10個像素的光斑半徑。
1.2 軌跡恢復
本文運用的軌跡方法是把每幀圖像中確定的光斑迭在一起或連接起來組成一個字符,然后利用八連通區域標記方法去除噪聲。首先,將得到的光斑圖像轉化為二維矩陣,然后把所有的二維矩陣中相對應的值進行“或”運算,得到字符圖像的二維矩陣,再將該矩陣轉化為二值圖像,得到字符圖像,其效果如圖5所示。
在輸入字符時,可能有噪聲干擾或者由于激光筆操作不當產生類似于噪聲的單獨的點或短線。為了保證字符識別的準確性,需要對恢復出軌跡的二值化圖像進行八連通區域標記,并計算標記區域像素為1的個數。當像素為1的個數小于某個給定值n時,則認為該區域為噪聲刪除。當標記區域的像素個數大于給定值n時,則認為是字符區域。圖6所示表明了光斑半徑與光斑區域像素個數的關系。
實驗中采用的光斑半徑為10個像素,在圖6對應的光斑區域的像素個數n為300。實驗過程中出現的類似噪聲的光斑區域往往不是一個單獨的斑點,而是一條短線或者幾個光斑組成的區域,因此結合實驗過程中出現的噪聲區域的大小和圖6中的關系曲線,本實驗中取n的值為700。
利用二階和三階規范化中心矩導出的7個不變矩組,結合拓撲結構的8個特征,能比較準確地識別出大寫英文字符和阿拉伯數字,識別率達98%。可見,本文所用的非接觸式手寫字符輸入方法是可行的。
相對于觸摸屏輸入法,非接觸手寫字符輸入法不僅提高了輸入效率,而且降低了設備的要求,同時達到無機械磨損,對一些移動設備和多媒體教學系統有較大的應用前景。本文的設計雖能夠比較準確地識別出手寫字符,但仍需要做進一步地研究和改進。本文只選了單色簡單背景進行實驗,對于復雜變化背景還需進一步研究;對于正常書寫速度輸入的字符有較高的識別率,但對于快速輸入或者輸入比較潦草的字符識別還存在一定的困難;文中使用了單色背景屏,如果用發光筆直接對著攝像頭書寫,其效果如何還需進一步研究和驗證。
評論