整理讀研期間用過、改進過、寫過的代碼


整理讀研期間用過、改進過、寫過的代碼

本人研究生期間一個人鼓搗目標檢測,接觸過一些開源代碼和自己寫的個別小工具,分享出來,如果你覺得有用,希望你點個贊,謝謝!

1. faster rcnn

官方matlab版
這版代碼不好用,原因有3:

  • 不支持新版cuda和cudnn,需要自己改caffe代碼。
  • matcaffe調試不方便,往往不知所措的caffe就崩潰了,錯誤信息不准確。
  • 不適合在企業里使用,依賴於圖形界面

py-faster-rcnn
這版代碼用的廣,原因:

  • 用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相關的代碼重現,噱頭過大,不推薦使用)

2. Piotr Dollar's Matlab Toolbox

這個是研究行人檢測用的工具箱。Dollar是這個領域的大佬,ICF、ACF算法和Caltech Pedestrian detection benchmark都用這個工具箱。

優點: 用這個工具箱跑出來官方結果,直接貼論文里用。
缺點: Dollar的matlab代碼過於緊湊,一開始很不習慣,包括非常多的縮寫需要靠猜測,以及多行代碼擠在一行。

通常需要下載這幾個代碼;
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分支。

代碼:https://github.com/zchrissirhcz/caffe-dssd


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM