當前位置:網站首頁>基於卷積神經網絡的交通標志識別
基於卷積神經網絡的交通標志識別
2022-01-27 05:07:31 【newlw】
此項目來自優達學城-自動駕駛車輛課程項目,實現方法通過卷積神經網絡(LeNet)算法。
整個項目分為以下幾部分:
- 1.數據導入與分析
- 2.搭建卷積神經網絡模型實現
- 3.測試集上驗證識別效果
- 4.可視化顯示不同卷積層結果
1.數據導入與分析
本項目用到的交通標圖片來源於網站:German Traffic Sign Benchmarks
項目中用到的圖片壓縮包文件下載地址為,需要下載並解壓:
- https://sid.erda.dk/public/archives/daaeac0d7ce1152aea9b61d9f1e19370/GTSRB_Final_Training_Images.zip
- https://sid.erda.dk/public/archives/daaeac0d7ce1152aea9b61d9f1e19370/GTSRB_Final_Test_Images.zip
- https://sid.erda.dk/public/archives/daaeac0d7ce1152aea9b61d9f1e19370/GTSRB_Final_Test_GT.zip
訓練集數據文件夾結構
解壓 GTSRB_Final_Training_Images.zip 文件到指定比特置。得到文件夾結構:…\GTSRB\Final_Training\Images…
訓練集(Training)中圖片總共有 43 種交通標志,對應解壓後的…\Images 文件夾下的 43 個子文件夾。每一個文件夾內的圖片(.ppm 格式)對應一種類型的交通標志(例如 stop single),同時每一個文件夾內有一個.CSV 問價存儲記錄了圖片文件的相關信息。文件夾結構如下:
Training_Images
+ GTSRB
+ Final_Training
+ Images
+ 00000
+ 00000_00000.ppm
+ 00000_00001.ppm
...
+ GT-00000.csv
+ 00001
+ 00000_00000.ppm
+ 00000_00001.ppm
...
+ GT-00001.csv
...
注意:所有的圖片格式為 PPM 格式。需要借助 Python 的 matplotlib
與 pillow
庫進行圖片處理。如果想直接打開查看圖片可能需要借助其他軟件。
2.模型實現
LeNet-5 模型架構
這裏用到的時是 LeNet-5 模型。它是第一個成功應用於數字識別問題的卷積神經網絡。LeNet-5 模型結構圖如下:
來源: http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf
針對本項目,這裏用到的模型在在原始 LeNet 模型基礎上有調整:
輸入
輸入為 32x32x3(RGB - 3 通道)圖片
架構
第一層:
- 卷積,輸出節點矩陣為 28x28x6;
- 激活函數:ReLU;
- 池化,過濾器大小為 2x2,長寬步長為 2,輸出矩陣大小為 14x14x6
第二層:
- 卷積,輸出節點矩陣為 10x10x16;
- 激活函數:ReLU;
- 池化,過濾器大小為 2x2,長寬步長為 2,輸出矩陣大小為 5x5x16
- Flatten
第三層:
- 全連接(Fully Connected),輸出節點個數為 120;
- 激活函數:ReLU;
第四層:
- 全連接(Fully Connected),輸出節點個數為 84;
- 激活函數:ReLU;
第五層:
- 全連接(Fully Connected).輸出節點個數為 43
輸出
第二次全連接之後的 43 種交通標志分類
Layer | Shape |
---|---|
Input | 32x32x3 |
Convolution (valid, 5x5x6) | 28x28x6 |
Max Pooling (valid, 2x2) | 14x14x6 |
Activation (ReLU) | 14x14x6 |
Convolution (valid, 5x5x16) | 10x10x16 |
Max Pooling (valid, 2x2) | 5x5x16 |
Activation (ReLU) | 5x5x16 |
Flatten | 400 |
Dense | 120 |
Activation (ReLU) | 120 |
Dense | 43 |
Activation (Softmax) | 43 |
3.實現效果驗證分析
導入測試數據集之外新的圖片驗證識別准確率
測試集數據
測試圖片比特於文件夾 Test_Images/GTSRB/Final_Test 內
Test_Images
+GTSRB
+ Final_Test
+ Images
+ 00000.ppm
+ 00001.ppm
+ ...
+ GT-final_test.csv # 擴展的注釋,包括圖片分類id
+ GT-final_test.test.csv
GT-final_test.csv 文件是單獨下載,包含測試集圖片 label 信息
4.可視化
可視化顯示 CNN 神經網絡不同層的輸出
第一層:
第二層:
版權聲明
本文為[newlw]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270507308959.html
邊欄推薦
猜你喜歡
隨機推薦
- MySQL-5.7.36安裝遇到坑之後的整理,刻入骨髓的1045
- leader epoch
- 圖的著色問題
- Wireshark實驗四:UDP
- 面試面到自閉,職場反思,原來是我沒有掌握其中精髓
- 遞歸以及for循環裏async 和 await 的用法
- 大人重疾險想保終身重疾,買哪個產品最合適啊?
- php使用openssl_encrypt和openssl_decrypt進行AES加密解密
- CV in Transformer學習筆記(持續更新)
- ctf,show msic入門
- 網絡文件系統
- Js基礎_作用域
- 《滲透測試具體流程》
- flask入門教程(7) - 會話
- 【電子技術】什麼是循環冗餘碼CRC
- Endnote使用方法——檢查參考文獻
- Anconda 學習
- LeetCode 7.整數反轉
- 【ISO15765_UDS&OBD診斷】-02-Network layer網絡層介紹
- C 練習實例90
- 小程序雲開發——雲數據庫的增删查改(2)
- 五、OpenGL ES 三維圖形的初探
- 適合10歲小孩投保的保險產品都有什麼啊?少兒險可以買哪些險種?
- Material Design 3 全新的進階版本UI庫
- 登錄令牌JWT — JSON WEB TOKEN
- Leetcode 算法面試沖刺 實戰 五(數組與循環)(十二)
- 兩種方法,word文件轉換成PDF文件
- 有符號數(signed) 和 無符號數(unsigned)
- [機器學習算法面試題] 一.准確率Accuracy的局限性
- String類常用方法示例
- 各大直播平臺主播的收入計算方式是怎樣的?
- 工程師必須知道的幾個原則
- 細品事務機制(一)
- 邏輯樹分析方法:如何將複雜問題變簡單?
- DCGAN 源碼解析
- 李宏毅《機器學習》| 神經網絡訓練不起來怎麼辦(下)
- 2021年P氣瓶充裝考試及P氣瓶充裝試題及解析
- 2021年G2電站鍋爐司爐考試題庫及G2電站鍋爐司爐考試試卷
- Go 自定義日期時間格式解析解决方案 - 解决 `parsing time xx as xx: cannot parse xx as xx` 錯誤
- 『淺入淺出』MySQL 和 InnoDB