
新加坡車牌辨識的終極大魔王關卡就是這種狀況了!雙排字的下面整排字元都是完全與背景沾連的狀況,以OCR辨識技術的SOP來說這是怎麼使用各種影像強化處理都無法切割出字元目標的!怎麼辦呢?我還是會回頭問我自己的眼睛!我是怎麼知道這幾個字是獨立目標的?
如果以CNN的觀點,這種沾連就不是問題,他們是不管目標邊界的!就是用各種大小的矩陣掃描全圖來找到「像是」某種東西的目標的!所以這種車牌跟一般車牌的辨識難度是完全一樣的!但是如我之前一再說的,我只要用CNN做一次全圖掃描,即使是只掃描一次的YOLO,計算量都會比OCR大上幾十倍!如果我把持不住改用CNN,我的計算量極低的技術優勢就全部破功了!
所以我必須回到OCR的基礎來想出解法!從另一個角度思考:我怎麼知道那個位置其實有一整排字沒被切割出來呢?就是必須先確認有SNC三個上排字的存在!三個清晰的字元如果是新加坡車牌的一部份,那就表示它們是雙排字車牌的上排!也必然應該有下排的四到五個字元的存在!而且字的大小與傾斜變形的程度也應該都跟上排三字一樣,他們在同一個平面上嘛!
有了這些用已知資訊構成的假設,我們是可以直接在SNC下方的小區域啟動局部的CNN掃描,一一找到2543E幾個字!但是我有更好的點子,就是找到2543E下方沾連的那條線,直接拿美工刀劃開,五個字元就可以用OCR的方法直接描繪出來了!

如上圖,SNC的存在可以讓我算出車牌的水平傾斜度,也可以估計概略的車牌整體寬度,就是左右各多出一個字的寬度嘛!以此寬度與傾斜度往SNC下方做橫線掃描,碰到我想找的那個邊界時,就是幾乎整個線段都是黑點!鎖定這個線段位置上下各一兩點,全部強制變成白點(禁航區)就完成開刀治療的過程了!
概念其實很簡單,但是要實作成功的過程呢?就必須有很精準的數學觀念與程式技巧了!這種案例為什麼很重要不能放棄?原因就是客戶不會想聽,也不會接受你解釋無法辨識的技術細節原因!因為任何人都可以輕鬆準確地用眼睛辨識這個車牌!如果我的AI軟體連這個都無法辨識,我的產品就糗大了!
當然這個比較屬於侵入式療法的技術必須小心使用,太早開刀會讓資料大亂的!必須是找不到車牌時才啟動的補救措施,不會隨便亂開刀的!也還需要更多這種案例來測試調整到很穩定!目前我手上的這種魔王題也不過兩三張而已!但是至少不會一碰到這種狀況就直接投降了!
限會員,要發表迴響,請先登入




