字體:小 中 大 |
|
|
|
| 2026/07/30 08:20:14瀏覽177|回應0|推薦1 | |
圖一 60個手寫的8字影像 我的手寫辨識研究才剛開始,當然還談不上甚麼成果,但是每天沉浸在艱澀枯燥的大量程式碼之中,總是偶爾需要跳出來喝杯茶宏觀檢視一下工作內容的!我不介意洩漏一些我的商業機密,反正大多數人都還是迷信機器學習那一套,如果有人模仿我跟著我走?也算是我的學術成就了!少幾個人陷入機器學習的陷阱就是作功德了! 我會想寫這些文章的重點是我想分享思考解決問題的過程!讓大家知道我真的是一個務實做研究的科學家!而不只是個唯利是圖的商人!我也可以藉機整理一下我的思緒與策略!有時候寫著寫著就發現自己的邏輯錯誤與漏洞了!就跟研究生常常要寫研究報告整理與檢討研究內容一樣!很有幫助的! 面對從來沒做過的手寫辨識新議題,我的第一個策略方針是放棄建立統一的量化評量系統!譬如辨識印刷字體的文字時,我們一定會建立標準字型的字模陣列做為比對是甚麼字的基準!但是手寫字太自由了,不可能建立出有意義的標準字模的!所以字模是一定不會做的! 不用字模當然就是要利用字元的特徵來辨識了!譬如前文提到的封閉區塊或明顯的線段,或是形狀缺口等特徵!但是要用這些特徵的量化權重來判斷是甚麼字?也很麻煩,因為手寫的變化大,模糊空間也大,所以要定義某個特徵權重值多大以上是某字?以下就是某字?還是會非常含糊,甚至必須啟動機器學習的資料統計?那就跟機器學習使用者陷入一樣的泥潦之中了! 所以我目前的方向是先逐一建立0到9,十個數字個別的獨立特徵辨識流程!就是為每個字量身訂做專屬的特徵辨識邏輯!使用這些訂做的邏輯時要能排除誤認為其他字的可能性!如果某些邏輯有誤認為其他字的可能時,就暫時擱置不用!簡單說,就是先替每個字建立出一個一定不會錯的保守快篩機制! 我的目標是至少能從原始資料中快篩辨識出七八成的資料,再集中火力針對那兩三成不太能確定唯一答案的案例,建立量化的判斷標準!這部分就會有點像是導入機器學習的統計概念了!這樣不但可以節省辨識時間,也避免了很多容易交叉誤認的機率!就像考試制度是用於選材的,如果有簡單的其他資訊與方式可以確定必定會及格的人,讓他直接錄取,就不必非要他參加考試浪費選材的資源了!
圖二 某個手寫8字的辨識結果
圖三 快篩辨識8字的結果 譬如圖一是60個8字的影像,我先用封閉區塊、簡單線段及是否有缺口等特徵的位置與是否存在為基礎,建立僅約數十行的程式,辨識「一定是8」的影像!圖二就其中一例!圖三則是我目前怒力的成果,60個字有58個可以確定是8,另外兩個雖無法確定是8,但是也確定不會被快篩階段誤認為其他數字,他們就是會進入第二階段作進一步辨識的少數資料了!如圖四:
圖四 我的快篩機制目前無法確認是8的兩個案例 當然這九個獨立的快篩流程發展過程中是會互相衝突的!譬如我做到9的辨識流程時,上面被辨識成8的案例也可能被辨識成9,我就要設法排除它們的交集,讓所有獨立流程都只能確認自己鎖定的那個目標,不會誤認其他字的案例是自己要找的這個數字!這就是我目前的進度。 其實我認為人眼的辨識過程應該也是這樣的!那些可以用簡單的邏輯經驗一目瞭然的數字目標當然很快會被定案!然後我們才會將注意力集中到不是很容易分辨的字元!即使這不是獲得最高辨識率的方式,但應該是最合理使用算力資源的方式!目前我辨識一個字元的時間僅需兩三個毫秒,我希望真能大功告成時,辨識一組八碼的統一編號可以控制在100毫秒以內!如果搞到必須使用GPU來加速?那就算是失敗了! 我是一開始就不想陷入算力浩劫陷阱的人!一旦選擇了某個階段必須使用暴力運算處理問題時,我就會跟機器學習派一樣無法脫身了,那就寧願不作!因為即使成功也必須付出研發與系統成本遽增爆量的困境,成本太高又賣不出去時就會陷入巨大虧損了!風險太高的計劃我是絕對不想嘗試的! |
|
| ( 心情隨筆|工作職場 ) |















