賈維斯的智慧工坊

  • Home
  • About
  • Note
  • Project
  • Experience
  • Service
  • Sitemap


MY | NOTES

  1. 首頁
  2. >
  3. 筆記
  4. >
  5. 人工智慧

[TensorFlow] Use CTC loss to predict plate numbers

使用 CTC loss 辨識車牌數字
Dec, 2017
之前提過如何安裝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

訓練階段

測試階段



Reference

[1] 使用深度学习来破解 captcha 验证码
[2] Keras CTC 官方文件

← Back to note