整理讀研期間用過、改進過、寫過的代碼
本人研究生期間一我的鼓搗目標檢測,接觸過一些開源代碼和本身寫的個別小工具,分享出來,若是你以爲有用,但願你點個贊,謝謝!python
1. faster rcnn
官方matlab版 這版代碼很差用,緣由有3:git
- 不支持新版cuda和cudnn,須要本身改caffe代碼。
- matcaffe調試不方便,每每不知所措的caffe就崩潰了,錯誤信息不許確。
- 不適合在企業裏使用,依賴於圖形界面
py-faster-rcnn 這版代碼用的廣,緣由:github
- 用python
- 用了end2end方式訓練和測試,方便訓練和部署
缺點:不支持新版cuda和cudnn以及較新版caffe。我作了改動來支持新版caffe+cuda+cudnn,還能夠支持在windows上訓練和測試。代碼地址:https://github.com/zchrissirhcz/py-faster-rcnn ,注意選擇rbg和rgb-windows兩個分支。算法
mxnet官方版的faster rcnn 在mxnet項目的github倉庫地址中便可找到。我主要從Deformable ConvNets裏抽取了windows下編譯cython模塊的腳本,方便在windows下使用,代碼:https://github.com/zchrissirhcz/incubator-mxnet/tree/rcnn-windows 。 (注意:mxnet比caffe幾乎省了一半的顯存,訓練時間也每每大量減小,另外它的example很是豐富和全面,建議新人使用mxnet。pytorch缺少本身官方的detection相關的代碼重現,噱頭過大,不推薦使用)windows
2. Piotr Dollar's Matlab Toolbox
這個是研究行人檢測用的工具箱。Dollar是這個領域的大佬,ICF、ACF算法和Caltech Pedestrian detection benchmark都用這個工具箱。框架
優勢: 用這個工具箱跑出來官方結果,直接貼論文裏用。 缺點: Dollar的matlab代碼過於緊湊,一開始很不習慣,包括很是多的縮寫須要靠猜想,以及多行代碼擠在一行。ide
一般須要下載這幾個代碼; Dollar's Toolbox Matlab evaluation/labeling code (3.2.1)工具
以及Caltech的行人數據集。學習
Caltech行人檢測主頁:http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/測試
行人檢測state-of-the-art算法列表:http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/files/algorithms.pdf
3. BSDS500邊緣檢測benchmark
這一個benchmark包括了分割和邊緣檢測兩項任務。我作過的是邊緣檢測的測評。
強烈建議使用RCF邊緣檢測算法的做者liuyun給出的輔助邊緣檢測評測繪圖的代碼:https://github.com/yun-liu/plot-edge-pr-curves ,以及我所提的一個issue中列舉的邊緣檢測評測步驟:https://github.com/yun-liu/rcf/issues/22
4. UnitBox人臉檢測
UnitBox是Face++發表的論文,提出用IoU Loss取代迴歸loss。官方做者沒有給出代碼實現。
網友復現過一個tensorflow版本的,通過測試可使用:https://github.com/zhimingluo/UnitBox_TF 須要準備widerface人臉數據集。
5. 交通標誌檢測相關
復現過一個Neural Computing 2016的一篇文章。主要是考慮算法的實現、可用性的問題,精度和流程可能和論文對不上。基於Caffe。
代碼見:https://github.com/zchrissirhcz/NC16_traffic_sign
6. 檢索-哈希 相關
用pycaffe重現了cvpr 2015年的一個workshop文章。精度徹底一致。
代碼:https://github.com/zchrissirhcz/py-caffe-cvprw15
7. 皮膚癌圖像分類
基於Caffe深度學習框架和VisualDL可視化工具,實現了一個baseline版本的分類器,AP值能排名top4.
代碼:https://github.com/zchrissirhcz/skin_lesion_classification
8. 復現一篇行人檢測的水文
ICIA2016的一篇文章,用一個古老的k-means改進算法進行聚類,來消除誤檢。
代碼:https://github.com/zchrissirhcz/dfp
9. 復現一篇自動調整學習率的文章
文章提出的方法是Cyclical-Learning-Rates。屢次重複實驗,我的以爲論文的精度沒法復現。基於Caffe和VisualDL。
代碼: https://github.com/zchrissirhcz/Cyclical-Learing-Rates
10. Pascal VOC數據集標註查看工具
是爲了作detection任務時可以查看人工標註框的位置,以及方面早些發現錯誤的標註。基於python+tkinter。
代碼:https://github.com/zchrissirhcz/imageset-viewer
11. Caffe用於移動端的輕量級推理框架
我在github上看到的,而後貢獻了在windows下進行構建的腳本。
代碼:https://github.com/zchrissirhcz/caffe-mobile
12. DSSD
是SSD的改進版代碼。可是做者沒有把代碼放到一個利於搜索的地方。我把它fork過來而且設定了默認顯示的爲DSSD分支。