Hard-Aware-Deeply-Cascaded-Embedding_release, "Hard Aware Deeply Cascaded Embedding"的完整代码

分享于 

6分钟阅读

GitHub

  繁體 雙語
Complete Code for "Hard-Aware-Deeply-Cascaded-Embedding"
  • 源代码名称:Hard-Aware-Deeply-Cascaded-Embedding_release
  • 源代码网址:http://www.github.com/PkuRainBow/Hard-Aware-Deeply-Cascaded-Embedding_release
  • Hard-Aware-Deeply-Cascaded-Embedding_release源代码文档
  • Hard-Aware-Deeply-Cascaded-Embedding_release源代码下载
  • Git URL:
    git://www.github.com/PkuRainBow/Hard-Aware-Deeply-Cascaded-Embedding_release.git
    Git Clone代码到本地:
    git clone http://www.github.com/PkuRainBow/Hard-Aware-Deeply-Cascaded-Embedding_release
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/PkuRainBow/Hard-Aware-Deeply-Cascaded-Embedding_release
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Hard-Aware-Deeply-Cascaded-Embedding [ICCV2017 (spotlight) ]

    ICCV2017 ( 聚光灯) 为我们的工作提供了的祝贺。

    以前有一个错误,以前关于初始学习速率的错误,应该将 0.001改为 0.01. HDC偏好更大的学习速率。

    这里的是经过训练的模型( 允许非商业用途,如有商业用途,请联系 yhyuan@pku.edu.cn 公司。)的链接

    Drop Stanford-Online-Products/CUB-200-2011/CARS196

    BaiduYunPan Stanford-Online-Products/CUB-200-2011/CARS196

    04/11/2017添加一些关于如何向caffe添加新层的技巧

    我发现很多人不知道如何在caffe框架中添加新的层。 下面是一个生动的explainations: 首先需要将"*。*cpp *.cu""添加到项目中。 然后你需要先编辑 caffe.proto.,你需要检查你所使用的最大 ID。 在这里,我们将以 caffe.proto 作为示例。 你可以在第 407行检查的可选 WindowDataParameter window_data_param = 129 ;。 所以你检查 lines(1169-1200) 以了解WindowDataParameter包含 13个参数。 因此,你需要将此行添加为可选的PairFastLossParameter pair_fast_loss_param = 143 ;为 129 + 13 = 142. 此外,还需要将以下行添加到spercify中,以获取新添加的层的参数。

    
     message PairFastLossParameter {
    
    
     optional float margin = 1 [default = 1.0];
    
    
     optional float hard_ratio = 2 [default = 1.0];
    
    
     optional float factor = 3 [default = 10];
    
    
     enum MODE {
    
    
     POS = 0;
    
    
     NEG = 1;
    
    
     BOTH = 2;
    
    
     }
    
    
     optional MODE mode = 4 [default = BOTH];
    
    
     }
    
    
    
    
    

    更新 03/30/2017 信息: 附加的模型对于最终测试没有很好的训练,因为存在一些小的。 我们将尽快发布所有最后的最佳型号 ! 我们修复了pair_fast_loss_layer梯度问题的Bug !

    信息: 为CARS196收费的为 0.000,原始版本被键入为 0.000 !

    这里知识库具有纸张"hard-aware-deeply-cascaded-embedding_release"的源代码。 本文在 arXiv 上可用。 对于丢失层实现,请查看文件夹 caffe_layers。

    引用这里工作

    如果你发现这里工作在你的研究中有用,请考虑引用:

    
    @article{yuan2016HDC,
    
    
     title={Hard-Aware Deeply Cascaded Embedding},
    
    
     author={Yuan, Yuhui and Yang, Kuiyuan and Zhang, Chao},
    
    
     journal={arXiv preprint arXiv:1611.05720},
    
    
     year={2016}
    
    
    }
    
    
    
    

    安装

    先决条件

    • caffe ( python 接口)
    • matplotlib,cPickle,numpy,LMDB
    • 假设你使用 Windows ( 如果你选择Linux或者 macOS,则可以将 *.bat 重写为 *.sh )

    数据集&模型

    • 从这里下载 pretrained GoogLeNet模型,。
    • 下载需要的数据集( 你可以从官方网站下载): ( 我们将在商店和consumer2shop发布结果)。
    • 你应该在训练Prototxt中更改图像的路径。

    用法

    过程数据: ( 你应该在文件夹/src_code/): 中

    
     python hdc_process.py -d stanford_products
    
    
     python hdc_process.py -d cub200
    
    
     python hdc_process.py -d cars196
    
    
     python hdc_process.py -d deepfashion
    
    
    
    

    火车模型: ( 目前我们仅支持HDC以方便你使用)

    
     python hdc_train.py -d stanford_products -c HDC
    
    
     python hdc_train.py -d cub200 -c HDC
    
    
     python hdc_train.py -d cars196 -c HDC
    
    
    
    

    在训练中可以更改图像路径,以训练带有边界框或者不为的模型。

    提取特征:

    
     python hdc_feature.py -d stanford_products -c HDC
    
    
     python hdc_feature.py -d cub200 -c HDC
    
    
     python hdc_feature.py -d cars196 -c HDC
    
    
    
    

    测试模型:

    
     python hdc_test.py -d stanford_products -c HDC
    
    
     python hdc_test.py -d cub200 -c HDC
    
    
     python hdc_test.py -d cars196 -c HDC
    
    
    
    

    提高空间空间

    为了获得比本文更好的结果,你可以简单地通过抽样。 为了方便,我们为 5000次采样。 实验中,通过采样 10,000次可以进一步提高性能。


    COM  cod  CAS  Complete  DEEP  Cascade  
    相关文章