前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github项目推荐 | DeepHash - 深度学习哈希开源库

Github项目推荐 | DeepHash - 深度学习哈希开源库

作者头像
AI研习社
发布2019-05-14 16:58:47
2.7K0
发布2019-05-14 16:58:47
举报
文章被收录于专栏:AI研习社

DeepHash - An Open-Source Package for Deep Learning to Hash (DeepHash)

DeepHash是一个轻量级的深度学习哈希库,它实现了最先进的深度哈希/量化算法。我们将根据我们发布的深度哈希论文列表不断地实现更具代表性的深度哈希模型。另外要特别提到的是,我们欢迎其他研究人员根据我们的框架为此工具包提供深度哈希模型。我们将会公布对本项目有贡献的人/团队的名单以表致谢。

Github项目链接:

https://github.com/thulab/DeepHash

实施的模型包括:

  • DQN: Deep Quantization Network for Efficient Image Retrieval(用于高效图像检索的深度量化网络), Yue Cao, Mingsheng Long, Jianmin Wang, Han Zhu, Qingfu Wen, AAAI Conference on Artificial Intelligence (AAAI), 2016
  • DHN: Deep Hashing Network for Efficient Similarity Retrieval(用于高效相似性检索的深度哈希网络), Han Zhu, Mingsheng Long, Jianmin Wang, Yue Cao, AAAI Conference on Artificial Intelligence (AAAI), 2016
  • DVSQ: Deep Visual-Semantic Quantization for Efficient Image Retrieval(用于高效图像检索的深度视觉语义量化), Yue Cao, Mingsheng Long, Jianmin Wang, Shichen Liu, IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017
  • DCH: Deep Cauchy Hashing for Hamming Space Retrieval(用于汉明空间检索的深度柯西哈希) ,Yue Cao, Mingsheng Long, Bin Liu, Jianmin Wang, IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018
  • DTQ: Deep Triplet Quantization(深度三元量化), Bin Liu, Yue Cao, Mingsheng Long, Jianmin Wang, Jingdong Wang, ACM Multimedia (ACMMM), 2018

注意:DTQ和DCH已更新,而DQN、DHN、DVSQ可能已过时,如有任何问题请随时与我们联系。我们欢迎他人的贡献!

要求

  • Python3:建议使用Anaconda,因为它已包含很多软件包:
代码语言:javascript
复制
conda create -n DeepHash python=3.6 anaconda
source activate DeepHash
  • 其他软件包
代码语言:javascript
复制
conda install -y tensorflow-gpu
conda install -y -c conda-forge opencv

要导入 ./DeepHash 中实现的包,我们需要将 ./DeepHash 的路径添加到环境变量中:

代码语言:javascript
复制
export PYTHONPATH=/path/to/project/DeepHash/DeepHash:$PYTHONPATH

数据准备

在 data/cifar10/train.txt 中,我们将会举一个例子来说明如何准备图像去训练数据。在 data/cifar10/train.txt和 data/cifar10/database.txt 中,可以在预测过程中处理测试和数据库映像列表。如果要添加其他数据集作为输入,则需要准备将 train.txt, test.txt 和 database.txt 作为CIFAR-10数据集。

更重要的是,我们已将整个cifar10数据集(包括图像和数据列表)放在发布页面中。你可以直接下载并解压缩到 data/cifar10 文件夹。

确保 /path/to/project/data/cifar10 的文件树看起来像这样:

代码语言:javascript
复制
.
|-- database.txt
|-- test
|-- test.txt
|-- train
`-- train.txt

如果你需要在NUSWIDE_81和COCO上运行,我们建议你按照 https://github.com/thuml/HashNet/tree/master/pytorch#datasets 的指示准备NUSWIDE_81和COCO图像。

对于DVSQ 模型,还需要语义标签的单词向量。 在这里,我们使用在GoogleNews Dataset上已经预先训练好的word2vec模型(例如:https://github.com/mmihaltz/word2vec-GoogleNews-vectors)来提取图像标签的单词嵌入,如:狗,猫等。

开始使用

预训练模型

你应该从此处或从发布页面手动下载Imagenet预先设置的AlexNet的模型文件,并将其解压缩到 /path/to/project/DeepHash/architecture/pretrained_model。

确保 /path/to/project/DeepHash/architecture 的文件树看起来像这样:

代码语言:javascript
复制
├── __init__.py
├── pretrained_model   
       └── reference_pretrain.npy

训练与测试

$method (DCH和DTQ) 的例子可以这样运行:

代码语言:javascript
复制
cd example/$method/
python train_val_script.py --gpus "0,1" --data-dir $PWD/../../data --"other parameters descirbe in train_val_script.py"

对于DVSQ,DQN和DHN,请参阅示例文件夹中的 train_val.sh 和 train_val_script.py。

引用

如果你觉得DeepHash对你的研究有用,请考虑引用以下文章:

代码语言:javascript
复制
@InProceedings{cite:AAAI16DQN,
  Author = {Yue Cao and Mingsheng Long and Jianmin Wang and Han Zhu and Qingfu Wen},
  Publisher = {AAAI},
  Title = {Deep Quantization Network for Efficient Image Retrieval},
  Year = {2016}
}

@InProceedings{cite:AAAI16DHN,
  Author = {Han Zhu and Mingsheng Long and Jianmin Wang and Yue Cao},
  Publisher = {AAAI},
  Title = {Deep Hashing Network for Efficient Similarity Retrieval},
  Year = {2016}
}

@InProceedings{cite:CVPR17DVSQ,
  Title={Deep visual-semantic quantization for efficient image retrieval},
  Author={Cao, Yue and Long, Mingsheng and Wang, Jianmin and Liu, Shichen},
  Booktitle={CVPR},
  Year={2017}
}

@InProceedings{cite:CVPR18DCH,
  Title={Deep Cauchy Hashing for Hamming Space Retrieval},
  Author={Cao, Yue and Long, Mingsheng and Bin, Liu and Wang, Jianmin},
  Booktitle={CVPR},
  Year={2018}
}

@article{liu2018deep,
  title={Deep triplet quantization},
  author={Liu, Bin and Cao, Yue and Long, Mingsheng and Wang, Jianmin and Wang, Jingdong},
  journal={MM, ACM},
  year={2018}
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 要求
  • 数据准备
  • 开始使用
    • 预训练模型
      • 训练与测试
      • 引用
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档