1.實現(xiàn)ssd-keras實時目標檢測算法庆捺,并制作十張圖片的測試集柏锄。效果一般。ssd算法是繼faster-rcnn與yolo之后的又一力作缴川。來自UNC團隊2016年發(fā)表在ECCV上橘券。SSD最大的特點就是在較高的準確率下實現(xiàn)較好的檢測準確度额湘。并非為兩種模型:SSD300(300*300輸入圖片),SSD500(512*512輸入圖片)旁舰。當然輸入圖片的尺寸越大锋华,往往會得到更好的檢測準確率,但同時也帶來顯存開銷過大與設(shè)備性能要求較高等問題箭窜。在實際的上手操作中毯焕,測試效果一般。因為是直接在github上clone -recursive下來磺樱,并按照說明進行配置運行纳猫。而且還沒有整理好自己的數(shù)據(jù)集,故也就不需要訓練竹捉,驗證并fine-tine超參數(shù)等一系列操作芜辕。。同時也沒有什么好的想法去在SSD基礎(chǔ)卷積網(wǎng)絡結(jié)構(gòu)上做改進優(yōu)化的小點子-_-||块差。侵续。所以也沒什么好說的。憨闰。状蜗。因為訓練比較麻煩故用的是在voc07+12 SSD300訓練好的模型。并用了下voc2007測試集測試集簡單跑了下鹉动。簡單修改了下路徑函數(shù)實現(xiàn)了幾張本地圖片的檢測轧坎。。另外中間有一個小插曲泽示,因為題主用的顯卡是GTX1060缸血,只有6G顯存蜜氨,當時訓練報錯out of memory也是很郁悶。属百。嘗試簡單改小batch_size再次嘗試訓練還是out of memory于是就放棄了訓練记劝。。對了族扰,另外用ssd500測試的時候也出樣同種情況。定欧。當然git主不只提供了基于VOC的訓練模型渔呵,同時也提供COCO與ILSVRC的預 訓練模型。砍鸠。這主要根據(jù)自己的真實需求選擇不同的訓練模型扩氢,類別數(shù)依次遞增。當然也用到些基本技能:jupyter notebook遠程連接服務器:172.xx.xx.xx:端口號很方便爷辱。還有兩大神器:xshell(雖然不知道筆記本為啥不能免費試用從而轉(zhuǎn)戰(zhàn)了putty),winscp(好用的文件傳輸誰用誰知道)录豺。
2.接下來就準備簡單搞一下yolo了 ,目前檢測方面速度最快的算法之一饭弓。直接使用的官方y(tǒng)olo-darknet双饥。配置比較簡單,直接實現(xiàn)也沒什么好說的弟断。咏花。只是實時測試中yolo達到19fps,tiny-yolo達到75fps左右阀趴。yolo明顯比tiny-yolo識別精度要高一些昏翰。另外又簡單搞了下yolov3,確實有所提升yolov3達到27fps刘急。
3.另外又搞了下faster-rcnn基于tensflow的棚菊。這個就跟沒什么好說的了。叔汁。選用resnet101預訓練于VOC07+12的模型统求。在自制十張小數(shù)據(jù)集上小測一番,表現(xiàn)略高于前兩者攻柠,因為數(shù)據(jù)集特殊故可以肉眼看出球订。
最后吐槽一下,目標檢測近幾年真是發(fā)展迅猛瑰钮,從yolo系列的高速單步檢測到faster-rcnn系列基于候選區(qū)域的較高精度檢測冒滩。再到SSD的改進(提高了精度與達到了不錯的速度)。再有后者的基于FPN與Focal loss的Retinanet(特征金字塔浪谴,焦點損失)开睡。再有網(wǎng)絡結(jié)構(gòu)的改進之Resnext因苹,號稱真正改良了Resnet殘差網(wǎng)絡,通過增加path的方式減少了參數(shù)量提升了表現(xiàn)篇恒,優(yōu)于對寬度或深度做改變扶檐。再有就是Frcn,同樣號稱是檢測界的一項重大突破胁艰,同樣是減少參數(shù)量款筑,使得再次增加網(wǎng)絡深度成為可能,并在檢測中有著不俗的表現(xiàn)腾么。一入檢測深似海奈梳,學習永遠在路上。
最拋幾個常用關(guān)鍵字吧:
batch size 解虱;batch normalization攘须;filter size;SGD殴泰;BGD于宙;dropout;rule悍汛;softmax捞魁;卷積與全連接;thresholdre等员凝。