整理读研期间用过、改进过、写过的代码

整理读研期间用过、改进过、写过的代码

本人研究生期间一个人鼓捣目标检测,接触过一些开源代码和自己写的个别小工具,分享出来,如果你觉得有用,希望你点个赞,谢谢!

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

posted @ 2018-05-30 18:24  ChrisZZ  阅读(2047)  评论(1编辑  收藏  举报