設計中的手寫識別 輸入法 思路 上篇

2021-06-21 14:59:22 字數 2712 閱讀 4961

這次討論的是如何識別手寫的問題,

所謂一萬個人有一萬個王羲之,書法與人的靈魂一樣,都是很玄妙的東西

查詢了很多資料未果,於是,求人不如求己

手寫輸入體現在軟體上,最大的問題有如下幾個:

1.粗細

輸入者,可能拿筆,也可能拿手指,甚至可能拿鳥毛去畫,這是很難控制的,所以對所的影象的識別必須考慮筆畫的粗細問題.

2.拉伸

輸入者可能只在畫布的某個角落寫字,遇到特定人群,比如小屁孩和小姑娘,他們的天性都是小筆小書,很細膩的寫,相當於文字被縮小了,雖然形狀可能是一樣的

3.偏移

有些人寫字不喜歡居中,總是偏向一邊,這種情況時有發生,事實上,偏移幾乎總是存在的,幾乎沒人能夠寫絕對居中的文字.

4.扭曲

由於各種條件限制,這也是很難避免的情況,比如小學生寫8字總是睡著的,有些人寫字總是頭小屁股大等等

解決上面的問題,我設計下面四種演算法:

1.最近值法

比較兩個影象相同點的畫素差異數,累計差異最小的為最接近的圖形,對應的字元之一就是待選的字元

最近值可以應對大多數情況,相容性非常好,但是精度比較差,需要大量的筆跡訓練才能得到優秀的識別效果

2.邊界檢測

這種演算法是為了對付縮放設計的,只要框住點陣範圍,結合骨架計算就可以得出其對應滿屏的字元特徵,這個的演算法相對比較容易一些

2.連同連異

我暫且給這麼乙個名稱吧,因為大多數手寫識別並不公布他們的演算法,我就自己擬定乙個演算法名稱,畢竟我自己想出來的

這是針對偏移設計的演算法,偏移之後,大多數區域的還是相似甚至相同的,連續相同與便宜緊密關聯

同時,此演算法可以彌補最近值演算法精度上的不足,比如下面兩幅影象

注意第一幅右邊有一半是白色的,運用最近值演算法,此區域的匹配率是100%!而採用連同連異計算,得到的匹配率是50%,相對來說後者是更科學的.

作為我主打的演算法,呵呵,有必要做詳細一點的描述,我拿qq的手寫輸入法來說吧,qq手寫應該是方向識別(筆畫識別的),我們輸入正常輸入乙個中字

效果很好,正常識別出來,但是我把筆畫逆過來寫,看看結果

得到的結果完全風牛馬不相及,甚至莫名其妙的出現了個"奸"字,奇哉怪也了吧,所以筆畫或方向識別是有缺陷的,而且這種缺陷一旦放到文化程度較低的人群

就會被放大n倍,比如農民伯伯寫口字都是畫乙個圈的,而且怎麼畫都有,更悲催的,把一字從右向左寫,看下效果:

簡直就是,怎麼說呢,以前罵過的話又浮上心頭,什麼放烟花,包公車的,都想再罵過一遍了

應用我的demo試一下,首先是直接列印幼圓字型進行識別:

這個簡單,很多ocr軟體都可以識別列印字型,這裡識別率的匹配是100%!,同時由於最近值演算法的缺陷,次要的申等並沒有識別出來

在用手寫一遍,看看效果:

沒有識別出來,因為從來沒有訓練過這個字,因此訓練一下,再用類似的寫法書寫並識別:

識別良好,重新入一遍看:

實際執行過不錯,現在所缺乏的就是訓練了,一旦訓練一遍,類似的手寫都能夠優秀的識別出來,此外值得炫耀一下的是,訓練完全相同的寫法僅會加深對此寫法的偏好

訓練任何寫法都不會增加庫檔案的大小,只會修正庫檔案的特徵字段,demo在合適的時候上傳給大家,看下篇吧

3.筆畫識別

這就跟qq拼音之類的有點類似了,雖然有上面的缺點,但是其優點也正好針對扭曲問題提供了完美的解決方案,但是我的做法並不是去處理筆畫,以避免步qq的後塵

我只處理一點的筆畫特徵,比如第一筆或最長的一筆等,一筆下去始終兩點很容易得到並計算正切值,這些特徵就可以確定一類字元,應對扭曲的問題

設計一種新的檔案格式是針對以上所設計演算法的,我暫定名稱是標準點陣檔案standard lattice file(*.slf),被我老表名字的拼音首字母踩狗屎運撞上了,一模一樣

也許有人會說,坑爹的tx居然有這種漏洞,其實不是每個人都像我這樣整天找漏洞和缺陷的,也是我對這種東西比較敏感吧,追求完美讓我失去很多東西

具體下篇我會把dll和相關api,型別定義和呼叫約定發布上來,需要的ld可以拿去用用,我先睡一覺

電腦語音識別輸入法

如何轉換語音?語音識別技術,也被稱為自動語音識別automatic speech recognition,asr 其目標是將人類的語音中的詞彙內容轉換為計算機可讀的輸入,例如按鍵 二進位制編碼或者字串行。與說話人識別及說話人確認不同,後者嘗試識別或確認發出語音的說話人而非其中所包含的詞彙內容。語音識...

簡易手寫輸入法軟體的編寫

由於工作需要在無外網環境中實現手寫輸入法功能,在網上找了很多資料,大部分的手寫輸入法都不支援二次開發,在看了這一篇部落格以後,決定自己使用微軟現有的dll進行簡易輸入法的開發工作。首先使用微軟的inkcanvas控制項實現對使用者的墨跡進行收集,引用inkanalyzer類實現對墨跡的識別。this...

電腦手寫輸入法 5款好用的拼音輸入法軟體推薦

一款好用的輸入法不僅能讓我們更愉快的上網檢視資料而且還能加快我們的工作,讓我們的工作事半功倍。電腦哪種輸入法最好用?下面筆者分享一下2020年5款電腦輸入法軟體推薦。一 搜狗輸入法 目前搜狗輸入法是使用人數最多的一種。搜狗拼音輸入法是最老牌的智慧型拼音輸入法,由原搜狗公司推出的一款windows平台...