主要基于这几个轮子整合一下: SoTu, flask-keras-cnn-image-retrieval, ImageRetrieval
直接用 VGG-16 提取特征,计算相似度,没做任何优化,适合作为自己的 Baseline,然后加上自己的改进。
我自己这边的环境:
- python >= 3.6
- keras == 2.0.5
- flask == 1.1.1
后面默认你已经装好了环境。
$ git clone https://github.com/ackness/cnn-image-retrieval-sotu.git
$ cd cnn-image-retrieval-sotu
.
├── app
│ ├── __init__.py
│ ├── main
│ ├── static
│ └── templates
├── config.py
├── images # 数据集,推荐以软连接的形式放到这里
│ ├── holiday -> /path/to/holiday
│ └── ukbench -> /path/to/ukbench
├── model # 生成的 h5 模型
│ ├── holiday_feature.h5
│ └── uk_feature.h5
├── README.md
├── sotu.py
├── utils.py
└── vision # 模型定义
├── __init__.py
├── vgg16.py
└── vgg_based.py # 推断时候调用的模型,
$ python index.py -database <path-to-dataset> -index <name-for-output-index>
生成的是 h5 格式的文件,把它放到 model 中。
# 设置环境变量FLASK_APP和FLASK_ENV的值
$ export FLASK_APP=sotu.py
$ export FLASK_ENV=development
$ flask run -h 0.0.0.0 -p 8080
链接: https://pan.baidu.com/s/1tzCuoOj9_KNmRcYNNpbb9A
提取码: 4nub