efficientnet-yolo3-tf2的實(shí)現(xiàn)

向AI轉(zhuǎn)型的程序員都關(guān)注了這個(gè)號(hào)??????
機(jī)器學(xué)習(xí)AI算法工程?? 公眾號(hào):datayx
這是一個(gè)efficientnet-yolo3-tf2的源碼,將yolov3的主干特征提取網(wǎng)絡(luò)修改成了efficientnet

性能情況

項(xiàng)目代碼?獲取方式:
關(guān)注微信公眾號(hào) datayx ?然后回復(fù)?目標(biāo)檢測(cè)?即可獲取。
所需環(huán)境
tensorflow-gpu==2.2.0
文件下載
訓(xùn)練所需的所有efficientnet權(quán)重可以在百度網(wǎng)盤下載
鏈接:?https://pan.baidu.com/s/1ItGrFVQQjvY7y73a6UDVqA
提取碼: s395
VOC數(shù)據(jù)集下載地址如下,里面已經(jīng)包括了訓(xùn)練集、測(cè)試集、驗(yàn)證集(與測(cè)試集一樣),無需再次劃分:
鏈接:?https://pan.baidu.com/s/19Mw2u_df_nBzsC2lg20fQA
提取碼: j5ge
訓(xùn)練步驟
a、訓(xùn)練VOC07+12數(shù)據(jù)集
數(shù)據(jù)集的準(zhǔn)備
本文使用VOC格式進(jìn)行訓(xùn)練,訓(xùn)練前需要下載好VOC07+12的數(shù)據(jù)集,解壓后放在根目錄數(shù)據(jù)集的處理
修改voc_annotation.py里面的annotation_mode=2,運(yùn)行voc_annotation.py生成根目錄下的2007_train.txt和2007_val.txt。開始網(wǎng)絡(luò)訓(xùn)練
train.py的默認(rèn)參數(shù)用于訓(xùn)練VOC數(shù)據(jù)集,直接運(yùn)行train.py即可開始訓(xùn)練。訓(xùn)練結(jié)果預(yù)測(cè)
訓(xùn)練結(jié)果預(yù)測(cè)需要用到兩個(gè)文件,分別是yolo.py和predict.py。我們首先需要去yolo.py里面修改model_path以及classes_path,這兩個(gè)參數(shù)必須要修改。
model_path指向訓(xùn)練好的權(quán)值文件,在logs文件夾里。
classes_path指向檢測(cè)類別所對(duì)應(yīng)的txt。
完成修改后就可以運(yùn)行predict.py進(jìn)行檢測(cè)了。運(yùn)行后輸入圖片路徑即可檢測(cè)。
b、訓(xùn)練自己的數(shù)據(jù)集
數(shù)據(jù)集的準(zhǔn)備
本文使用VOC格式進(jìn)行訓(xùn)練,訓(xùn)練前需要自己制作好數(shù)據(jù)集,
訓(xùn)練前將標(biāo)簽文件放在VOCdevkit文件夾下的VOC2007文件夾下的Annotation中。
訓(xùn)練前將圖片文件放在VOCdevkit文件夾下的VOC2007文件夾下的JPEGImages中。數(shù)據(jù)集的處理
在完成數(shù)據(jù)集的擺放之后,我們需要利用voc_annotation.py獲得訓(xùn)練用的2007_train.txt和2007_val.txt。
修改voc_annotation.py里面的參數(shù)。第一次訓(xùn)練可以僅修改classes_path,classes_path用于指向檢測(cè)類別所對(duì)應(yīng)的txt。
訓(xùn)練自己的數(shù)據(jù)集時(shí),可以自己建立一個(gè)cls_classes.txt,里面寫自己所需要區(qū)分的類別。
model_data/cls_classes.txt文件內(nèi)容為:

修改voc_annotation.py中的classes_path,使其對(duì)應(yīng)cls_classes.txt,并運(yùn)行voc_annotation.py。
開始網(wǎng)絡(luò)訓(xùn)練
訓(xùn)練的參數(shù)較多,均在train.py中,大家可以在下載庫后仔細(xì)看注釋,其中最重要的部分依然是train.py里的classes_path。
classes_path用于指向檢測(cè)類別所對(duì)應(yīng)的txt,這個(gè)txt和voc_annotation.py里面的txt一樣!訓(xùn)練自己的數(shù)據(jù)集必須要修改!
修改完classes_path后就可以運(yùn)行train.py開始訓(xùn)練了,在訓(xùn)練多個(gè)epoch后,權(quán)值會(huì)生成在logs文件夾中。訓(xùn)練結(jié)果預(yù)測(cè)
訓(xùn)練結(jié)果預(yù)測(cè)需要用到兩個(gè)文件,分別是yolo.py和predict.py。在yolo.py里面修改model_path以及classes_path。
model_path指向訓(xùn)練好的權(quán)值文件,在logs文件夾里。
classes_path指向檢測(cè)類別所對(duì)應(yīng)的txt。
完成修改后就可以運(yùn)行predict.py進(jìn)行檢測(cè)了。運(yùn)行后輸入圖片路徑即可檢測(cè)。
預(yù)測(cè)步驟
a、使用預(yù)訓(xùn)練權(quán)重
下載完庫后解壓,在百度網(wǎng)盤下載權(quán)值,放入model_data,運(yùn)行predict.py,輸入
img/street.jpg
在predict.py里面進(jìn)行設(shè)置可以進(jìn)行fps測(cè)試和video視頻檢測(cè)。
b、使用自己訓(xùn)練的權(quán)重
按照訓(xùn)練步驟訓(xùn)練。
在yolo.py文件里面,在如下部分修改model_path和classes_path使其對(duì)應(yīng)訓(xùn)練好的文件;model_path對(duì)應(yīng)logs文件夾下面的權(quán)值文件,classes_path是model_path對(duì)應(yīng)分的類。


運(yùn)行predict.py,輸入
img/street.jpg在predict.py里面進(jìn)行設(shè)置可以進(jìn)行fps測(cè)試和video視頻檢測(cè)。
評(píng)估步驟
a、評(píng)估VOC07+12的測(cè)試集
本文使用VOC格式進(jìn)行評(píng)估。VOC07+12已經(jīng)劃分好了測(cè)試集,無需利用voc_annotation.py生成ImageSets文件夾下的txt。
在yolo.py里面修改model_path以及classes_path。model_path指向訓(xùn)練好的權(quán)值文件,在logs文件夾里。classes_path指向檢測(cè)類別所對(duì)應(yīng)的txt。
運(yùn)行g(shù)et_map.py即可獲得評(píng)估結(jié)果,評(píng)估結(jié)果會(huì)保存在map_out文件夾中。
b、評(píng)估自己的數(shù)據(jù)集
本文使用VOC格式進(jìn)行評(píng)估。
如果在訓(xùn)練前已經(jīng)運(yùn)行過voc_annotation.py文件,代碼會(huì)自動(dòng)將數(shù)據(jù)集劃分成訓(xùn)練集、驗(yàn)證集和測(cè)試集。如果想要修改測(cè)試集的比例,可以修改voc_annotation.py文件下的trainval_percent。trainval_percent用于指定(訓(xùn)練集+驗(yàn)證集)與測(cè)試集的比例,默認(rèn)情況下 (訓(xùn)練集+驗(yàn)證集):測(cè)試集 = 9:1。train_percent用于指定(訓(xùn)練集+驗(yàn)證集)中訓(xùn)練集與驗(yàn)證集的比例,默認(rèn)情況下 訓(xùn)練集:驗(yàn)證集 = 9:1。
利用voc_annotation.py劃分測(cè)試集后,前往get_map.py文件修改classes_path,classes_path用于指向檢測(cè)類別所對(duì)應(yīng)的txt,這個(gè)txt和訓(xùn)練時(shí)的txt一樣。評(píng)估自己的數(shù)據(jù)集必須要修改。
在yolo.py里面修改model_path以及classes_path。model_path指向訓(xùn)練好的權(quán)值文件,在logs文件夾里。classes_path指向檢測(cè)類別所對(duì)應(yīng)的txt。
運(yùn)行g(shù)et_map.py即可獲得評(píng)估結(jié)果,評(píng)估結(jié)果會(huì)保存在map_out文件夾中。
機(jī)器學(xué)習(xí)算法AI大數(shù)據(jù)技術(shù)
?搜索公眾號(hào)添加:?datanlp
長按圖片,識(shí)別二維碼
閱讀過本文的人還看了以下文章:
TensorFlow 2.0深度學(xué)習(xí)案例實(shí)戰(zhàn)
基于40萬表格數(shù)據(jù)集TableBank,用MaskRCNN做表格檢測(cè)
《基于深度學(xué)習(xí)的自然語言處理》中/英PDF
Deep Learning 中文版初版-周志華團(tuán)隊(duì)
【全套視頻課】最全的目標(biāo)檢測(cè)算法系列講解,通俗易懂!
《美團(tuán)機(jī)器學(xué)習(xí)實(shí)踐》_美團(tuán)算法團(tuán)隊(duì).pdf
《深度學(xué)習(xí)入門:基于Python的理論與實(shí)現(xiàn)》高清中文PDF+源碼
《深度學(xué)習(xí):基于Keras的Python實(shí)踐》PDF和代碼
python就業(yè)班學(xué)習(xí)視頻,從入門到實(shí)戰(zhàn)項(xiàng)目
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個(gè)項(xiàng)目玩轉(zhuǎn)深度學(xué)習(xí):基于TensorFlow的實(shí)踐詳解》完整版PDF+附書代碼
《深度學(xué)習(xí)之pytorch》pdf+附書源碼
PyTorch深度學(xué)習(xí)快速實(shí)戰(zhàn)入門《pytorch-handbook》
【下載】豆瓣評(píng)分8.1,《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》PDF+完整源碼
汽車行業(yè)完整知識(shí)圖譜項(xiàng)目實(shí)戰(zhàn)視頻(全23課)
李沐大神開源《動(dòng)手學(xué)深度學(xué)習(xí)》,加州伯克利深度學(xué)習(xí)(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計(jì)學(xué)習(xí)方法》最新資源全套!
《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》最新2018版中英PDF+源碼
將機(jī)器學(xué)習(xí)模型部署為REST API
FashionAI服裝屬性標(biāo)簽圖像識(shí)別Top1-5方案分享
重要開源!CNN-RNN-CTC 實(shí)現(xiàn)手寫漢字識(shí)別
同樣是機(jī)器學(xué)習(xí)算法工程師,你的面試為什么過不了?
前海征信大數(shù)據(jù)算法:風(fēng)險(xiǎn)概率預(yù)測(cè)
【Keras】完整實(shí)現(xiàn)‘交通標(biāo)志’分類、‘票據(jù)’分類兩個(gè)項(xiàng)目,讓你掌握深度學(xué)習(xí)圖像分類
VGG16遷移學(xué)習(xí),實(shí)現(xiàn)醫(yī)學(xué)圖像識(shí)別分類工程項(xiàng)目
特征工程(二) :文本數(shù)據(jù)的展開、過濾和分塊
如何利用全新的決策樹集成級(jí)聯(lián)結(jié)構(gòu)gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
全球AI挑戰(zhàn)-場(chǎng)景分類的比賽源碼(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在線識(shí)別手寫中文網(wǎng)站
中科院Kaggle全球文本匹配競(jìng)賽華人第1名團(tuán)隊(duì)-深度學(xué)習(xí)與特征工程
不斷更新資源
深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、python
?搜索公眾號(hào)添加:?datayx??
