1. 程式人生 > >【multi-digit】街景識別代碼到中文車牌識別的遷移

【multi-digit】街景識別代碼到中文車牌識別的遷移

dig num ger 組成 read png 位置 編碼的轉換 地址

背景論文:

Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks

(https://arxiv.org/abs/1312.6082)

英文車牌遷移參考:http://matthewearl.github.io/2016/05/06/cnn-anpr/

上述博文所描述過程大致為:

  1. 利用gen.py生成1000張訓練圖片,圖片組成為一個生成的車牌,加上隨機的背景,並且添加上高斯噪聲,旋轉等,並且使用0,1標註該車牌是否完全包含在圖片中(位置,大小等);
  2. 利用生成的1000張圖片進行訓練,此處可能需要進行的修改是(視tensorflow版本決定是不是需要修改)即添加logits和labels(如圖):技術分享圖片
  3. 窗口思想,利用滑動窗口在一幅尺寸較大的圖當中截取合適的部分來應對尺寸變換。

訓練結束後進行評估,此代碼結果跑了兩張從網上的圖片,似乎效果還不錯:

技術分享圖片技術分享圖片

既然效果還不錯,那可以試著遷移到中文車牌上了,

修改後的代碼地址:

代碼修改中所遇到的最主要問題是編碼問題!在Ubuntu下默認的編碼是ASCII,windows下默認編碼是gbk,所以在代碼修改過程中,

為了輸出中文,需要

  1. 對字符串進行utf-8編碼的轉換。
  2. 對中文的讀入和輸出也需要對字符串的編碼方式進行轉換。由於python3中不再對str支持decode和encode操作,所以將文件的讀入輸出由imread和imwrite修改成imencode和imdecode。

之後的訓練過程和之前並沒有什麽差別。具體修改見項目代碼。

【multi-digit】街景識別代碼到中文車牌識別的遷移