LzxHahaha / nudle

Content base image retrieval platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Content Base Image Retrieval Platform

DEMO

demo

demo

说明

项目分三个部分:

  • Saliency: CPP项目,用于编译出Saliency RC cut的动态链接库。代码来源于CmCode
  • front: 前端项目,使用React.js实现
  • server: python项目,使用FlaskOpenCV

基本环境安装

目前只在Windows下运行过

各个项目的运行方式在各个项目下的README.md中查看

Python

  1. 下载并安装Python 3.6 (64 bit)
  2. 在环境变量中新建PYTHON_DIR,值为python的安装目录
  3. PATH中添加%PYTHON_DIR%%PYTHON_DIR%\Scripts
  4. pip切换到豆瓣源
  5. 使用pip install <package_name>指令依次安装第三方依赖
    1. flask
    2. flask-cors
    3. pymongo
    4. pyparsing
  6. 以下依赖建议通过whl依次进行安装
    1. numpy+mkl
    2. matplotlib
    3. scipy
    4. scikit-image
    5. opencv+contrib
    6. tornado
    7. pycurl

建议版本为requirement.txt中的版本或更高

OpenCV

  1. 下载并解压OpenCV 3.2
  2. 在环境变量中新建OPENCV_DIR,值为OpenCV解压的目录
  3. PATH中添加%OPENCV_DIR%\build\x64\vc14\bin

Boost

  1. 安装Visual Studio 2015
  2. 下载并解压Boost 1.63.0
  3. 用VS自带的VS2015 x64 本机工具命令提示符编译Boost
$ cd /d <Boost dir>
$ bootstrap.bat
  1. 用文本编辑器打开生成的project-config.jam,在末尾添加
using python : 3.6 : <Python dir> : <Python dir>/include : <Python dir>/libs ;
  1. 开始编译Boost
$ bjam.exe toolset=msvc-14.0 address-model=64 --prefix=<Boost dir>/build --build-type=complete --with-python install
  1. 将生成的build/lib文件夹移动到<Boost dir>/lib,之后可以删除build文件夹以及上一步生成的bin.v2文件夹
  2. 在环境变量中新建BOOST_DIR,值为Boost解压的目录
  3. PATH中添加%BOOST_DIR%%BOOST_DIR%\lib

MongoDB

  1. 下载并安装MongoDB
  2. 安装MongoDB服务
mongod --dbpath <MongoDB data path> --logpath <MongoDB data path>\mongo.log --logappend --serviceName MongoDB --serviceDisplayName MongoDB  --install

其中的<MongoDB data path>为自定的路径,用于存放数据以及log

Node.js

  1. 下载并安装Node.js 最新版本
  2. 执行以下命令
$ npm config set registry https://registry.npm.taobao.org 
$ npm i -g babel-core babel-cli yarn webpack webpack-dev-server

Nginx(可选)

  1. 下载并安装Nginx
  2. 打开<Nginx path>/conf/nginx.conf,修改配置
server {
    listen 80;                                      # 可修改为其他端口     
    server_name cbir;
    charset utf-8;
    
    location ~* /static/.+\.(jpe?g|png|ico)$ {
        alias   <Server code path>/static;          # 静态图片路径
        gzip    on;
        expires 30d;
    }
    
    location ~* /static/.+\.js$ {
        alias   <Server code path>/static;          # 脚本文件路径
        gzip    on;
        expires 7d;
    }

    location / {
        proxy_pass http://localhost:<Python port>;           # Python port 为自定端口,默认5000
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass_header Set-Cookie;
    }
}

About

Content base image retrieval platform


Languages

Language:C++ 68.5%Language:JavaScript 15.5%Language:Python 11.4%Language:CSS 3.8%Language:HTML 0.8%Language:C 0.1%