TensorFlow.Keras和TensorRT的檢測效果對比
1. 背景說明
通過安裝在路口的交通用攝像頭采集的數(shù)據(jù),對特定路口進(jìn)行路況觀察,以便靈活調(diào)度警力。
觀察對象(檢測類別)
行人(person)
帶自行車的人(bicycle_person)
帶摩托車的人(bike_person)
汽車(car)
2. 數(shù)據(jù)集說明
數(shù)據(jù)類別:person、bicycle_person、bike_person、car
數(shù)據(jù)量:訓(xùn)練數(shù)據(jù)量:10501,驗(yàn)證數(shù)據(jù)量:2392,測試數(shù)據(jù)量:3639
:1920 x 1080 x 3
圖像類型:JPEG
示例圖

3. 網(wǎng)絡(luò)組成
ResNet + SSD
ResNet:在傳統(tǒng)的深度學(xué)習(xí)方案下,提出了殘差結(jié)構(gòu)的概念,以解決當(dāng)網(wǎng)絡(luò)深度足夠深以后帶來的網(wǎng)絡(luò)性能下降的問題。
常見的ResNet網(wǎng)絡(luò):ResNet18、ResNet50、ResNet101
網(wǎng)絡(luò)結(jié)構(gòu)

本次使用ResNet18和ResNet50
SSD:在VGG的深度網(wǎng)絡(luò)基礎(chǔ)上,對最后幾層進(jìn)行特征提取,達(dá)到目標(biāo)檢測的效果。
常見的SSD網(wǎng)絡(luò):SSD300、SSD512
網(wǎng)絡(luò)結(jié)構(gòu)

本次使用SSD512
4. 開發(fā)環(huán)境
TensorFlow.Keras的主要環(huán)境(用于訓(xùn)練和推理)
python==3.6.8
tensorflow-gpu==1.14.0
numpy==1.15.0
scipy==1.1.0
h5py==2.10.0
protobuf==3.10.0
TensorRT的主要環(huán)境(用于推理加速)
Jetson NANO使用Jetpack 4.4,tensorrt==7.1.3.0
Jetson NANO使用Jetpack 4.4,tensorflow-gpu==1.15.0
python==3.6.8
tensorflow-gpu==1.14.0
numpy==1.15.0
tensorrt==7.2.3.4
5. 使用方法
TensorFlow.Keras
模型準(zhǔn)備:將model中的h5模型復(fù)制到代碼路徑下
運(yùn)行代碼:進(jìn)入代碼路徑后,運(yùn)行Test.py即可
TensorRT
模型準(zhǔn)備:將model中的h5模型復(fù)制到代碼路徑下
模型轉(zhuǎn)換:進(jìn)入代碼路徑,運(yùn)行convert_H5_to_PB.py,將h5模型轉(zhuǎn)換成pb模型
運(yùn)行代碼:準(zhǔn)備好pb模型后,運(yùn)行TensorRT.py,程序會(huì)自動(dòng)生成用于推理的engine文件(中間包含了轉(zhuǎn)換uff模型的過程,uff模型沒有顯性導(dǎo)出)
6. 檢測結(jié)果對比
預(yù)覽效果



person & bicycle_person
精度(僅作參考,模型尚未訓(xùn)練到最佳狀態(tài))

時(shí)間

ResNet18+SSD512:TensorRT相比Tensorflow.Keras,檢測時(shí)間減少了47.8%
ResNet50+SSD512:TensorRT相比Tensorflow.Keras,檢測時(shí)間減少了38.3%
7. 參考鏈接
測試代碼鏈接:
視頻效果顯示:https://www.bilibili.com/video/BV1FM4y1C75E
工程參考: