![]() ![]() ![]() |
|
|
|
2024/05/10 05:00:09瀏覽809|回應0|推薦7 | |
這是一個車牌上緣略有陰影的案例,有點像辨識文件時,某些欄位的字偏高印到格線上了!所以辨識單據表格式的文件時,常常會先做「去格線」的處理,假設上例陰影產生的連線是一條表格線,擦掉這條線每個字就都清晰可辨了!但是當然它在原始影像上只有這一小段,很難判斷是不是應該清除的格線?所以之前碰到類似狀況,即使我的辨識程式很厲害這也會變成無法辨識的遺珠! 理論上使用CNN是可以不受這種雜訊的干擾,只要字元沒有因為視角產生太大的歪斜變形,地毯式搜索掃描(Convolution)下去,這些字元也一定可以被找出來的!但這樣盲目搜索的運算量是很大的,即使是CNN也會窮盡一切手段讓搜尋範圍縮小到最有可能找到目標的區域,所謂的RNN或YOLO等號稱神奇的演算法都是往這個減少運算提升速度的方向在研發的! 其實每種演算法都是各有利弊,如果CNN模式的演算法真能比我的OCR速度快,也能解決歪斜變形的幾何問題,我一定會引進CNN也就是YOLO的!但目前可以說我的OCR已經進化到可以處理車牌因為視角歪斜的變形了!YOLO還沒這麼厲害,我也持續擁有遠高於CNN的速度,所以我並沒有改弦易轍。 但是像上面的案例就很有趣了!車牌視角很正,我的OCR勉強可以切割出一個正確的字元6!我得到了一個高度可信的線索,知道它是一張車牌上的一個字!甚至因為剛好是個可以區別六或七碼字型的6,所以我可以確定這是一個七碼車牌!見微知著就是這個意思!但是OCR演算法的弱點讓我無法找到它的鄰居們!此時我就可以局部導入CNN的演算法搜索6字的左右,順藤摸瓜之下整個車牌的7個字就一一現形了! 上面這個案例也很類似,事實上因為目標較遠字元的畫素解析度不足,二值化後字元間距太小,RD與256等字就互相沾連了,只有A與9是可以正確切割被辨識為正確字元的!但是我們以A與9作為搜尋起點,也是很快就可以用CNN的技術正確挖出其他字元補齊所有車牌上應有的字元了! 這很像我愛看的警探影集,只要找到一個指紋,能萃取DNA的一滴血或一根毛髮,兇手是誰就無所遁形了!所以我常常批評的ML、DL與CNN也是我的好朋友,他們正在一一補強我的影像辨識技術!我的OCR在此例中其實只「看到」一個字!但是我的CNN朋友可以毫無問題而且很快地幫我找出完整車牌!所以我也CNN化了!所有技術都在我的AI產品中合流合作了! |
|
( 心情隨筆|工作職場 ) |