Giter VIP home page Giter VIP logo

mmfinder's Introduction

MMFinder

一个美女图搜索应用的demo。

新增了ElasticSearch版本,配置简单,详细说明请查看:elasticsearch分支

环境

python3.6以上 + mongodb + SPTAG

安装依赖

安装Dlib

Mac or Linux

需要先安装好Cmake再通过pip安装即可。

pip3 install dlib

对于Windows

对于python3.6可以通过whl快速安装。

pip install https://pypi.python.org/packages/da/06/bd3e241c4eb0a662914b3b4875fc52dd176a9db0d4a2c915ac2ad8800e9e/dlib-19.7.0-cp36-cp36m-win_amd64.whl#md5=b7330a5b2d46420343fbed5df69e6a3f

其他版本可以参考网上教程。

安装Python依赖

cd MMFinder
pip3 install -r requirements.txt

数据准备

1. 准备数据

爬取MM图片数据。

如果没有美女图片,可以用我的数据,Google Drive下载链接:https://drive.google.com/file/d/1shZ3gx9nHPHUgylsZIrvWliwCh9TucAo/view?usp=sharing。解压密码:nladuo。

2. 过滤图片

只选出带一个脸的美女图,然后放到mongo里面

cd data_prprocess
python3 filter_images.py

特征工程

通过VGG-net对人脸图片特征提取,转换成dense-vector。

1. 下载VGG预训练模型

Google Drive:https://drive.google.com/file/d/1CPSeum3HpopfomUEK1gybeuIVoeJT_Eo/view?usp=sharing]
百度云链接:https://pan.baidu.com/s/1Dk40tW2lx1ezTda9IyIO9g 密码:0vc7

2. 使用VGG提取特征并构建数据集

cd data_prprocess
python3 feature_extraction.py

建立索引

1. 安装SPTAG,并启动Rpc服务

见:Docker下SPTAG的安装与测试

2. 对图片建立索引

cd index_construction
python3 export_SPTAG_indexbuilder_input.py

拷贝mm_index_input.txt到docker容器中

docker cp mm_index_input.txt 25042d741f07:/app/Release/

进入SPTAG的docker容器中,建立索引

docker attach 25042d741f07
./indexbuilder -d 2622 -v Float  -i ./mm_index_input.txt -o data/mm_index -a BKT -t 2

启动SPTAG搜索服务

python3 SPTAG_rpc_search_service.py

3. 搜索测试

对于mac用户,可以先安装imgcat,然后运行index_construction/search_test.py.

效果如下:

运行demo

运行演示网站

cd web_demo
python3 main.py

测试效果

打开http://localhost:3889

上传一张图片测试,效果如下: demo_result

Reference

LICENSE

MIT

mmfinder's People

Contributors

dependabot[bot] avatar nladuo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.