之前提過如何安裝TensorFlow和Keras的環境
>>
[TensorFlow] Set up environment
現在要介紹車牌辨識
其實都是參考網路上的範例修改[1]
改成我自己習慣的模式
由於車牌數字不一定會是固定長度
如果使用傳統的one hot label進行loss值計算
在收斂上會有問題,因為模型不可能乖乖把空格固定放在最後幾個位置
因此Keras就提供了一種不管順序的CTC loss給我們使用[2]
和範例不同的地方有
1. 因為我的車牌影像尺寸較小(70x30),承受不住三組的(CNN*2+maxPool*1),會在第三次maxPool就變成負值
2. 讀影像時的維度方向(30x70)要做長寬轉換(70x30),由transpose跟reshape搭配使用
3. 因為我沒使用他的gen(),但CTC模型要求的四個輸入,需要人造其他三個給它
4. 在evaluate的地方,我沒有next()可以用,要改成隨機幾組給CTC算acc
訓練階段
測試階段