face-search
项目介绍
基于face_recognition+tensorflow的实现的人脸一对多搜索、提供web接口。
- python完成具体的人脸对比搜索服务
- Java完成人脸Api的调用并提供对外的web接口
项目地址:https://github.com/jamesluozhiwei/face-search
演示地址:https://ccccyc.cn/face/swagger-ui.html
环境需求
若需要部署项目,您需要以下环境:
- Java8
- mysql
- docker
- ubuntu(非必需)
- redis(非必需)
- nginx(非必需)
初始化数据库
创建数据库:db_face_search_service;
使用数据库文件db_face_search_service.sql初始化数据库。
部署Python人脸服务
提供两种方式:
1、安装python依赖运行脚本;
2、使用Docker构建;
修改face_encoding_data_service.py中的mysql数据库连接信息:
db_host = 'localhost' | 数据库地址 |
---|---|
db_user='root' | 数据库账户 |
db_password = '123456' | 数据库密码 |
db_name = 'db_face_search_service' | 数据库名 |
安装python依赖运行脚本
1、安装gcc(请自行百度);
2、安装cmake(请自行百度);
3、安装项目依赖:
请安装requirements.txt中的所有依赖
pip install -r requirement.txt
4、运行 app.py即可。
使用Docker运行(推荐)
使用Docker可以将环境隔离,不得不说,python需要安装的依赖有点多;
其它系统请自行查阅官网;
此处默认您已成功安装Docker;
使用Docker构建镜像:
进入到Dockerfile所在目录
docker build -t <username>/face-search-service:1 -f Dockerfile .
注意后面有个点 < username >
表示你的用户名,可以在DockerHub
上注册一个账户,后面可以push
自己的镜像上去;
运行镜像:
docker run -d --name face-search-service1 -p 5002:5002 --mount type=bind,source=<your local dir>,target=/usr/src/app/model jamesluozhiwei/face-search-service:1
命令中的< your local dir >
指你系统的一个目录,用于保存训练模型;
至此,您已经运行了人脸搜索的服务;
使用命令查看日志
docker logs face-search-service1
即可查看python 服务日志,如果没有异常信息则运行成功。
部署Java API服务
修改系统配置:
applicaiton.yml
-
修改数据库连接信息;
-
修改邮箱账户信息;
-
修改python提供的人脸服务地址;
-
修改redis连接信息;
示例:可以新建一个文件作为profile环境隔离: application-dev.yml
spring:
redis:
password: 123456
datasource:
url: jdbc:mysql://localhost:3306/db_face_search_service?useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: 123456
mail:
default-encoding: UTF-8
# 生产环境请使用465端口、本地可以使用25端口
port: 25
host: smtp.mxhichina.com
username: xxxxx@xxx.xxx
password: 123456
使用Idea
直接运行或者使用maven
打包成jar运行即可。
访问:http://localhost:8080/swagger-ui.html 查看到API。
使用手册
请确保您已打开文档演示地址:https://ccccyc.cn/face/swagger-ui.html
注册用户获取OpenKey
展开用户相关 | API
-
调用
发送注册邮箱验证码
填写邮箱,稍后系统会发送一个验证码至您的邮箱;
参数示例:1484699019@qq.com 请不要使用双引号,直接填写邮箱即可!!!
如果系统出现问题或未知异常可以通过示例邮箱联系本人。
-
调用
注册用户
将收到的邮箱验证码以及对应的邮箱地址填写到参数中;示例如下:
若注册成功,则会将openKey返回,可以查看
response
中的result
字段的值;请将其保存下来;如果您忘记了openKey可以调用忘记openKey
接口,系统会将您的openKey发送至您的邮箱。到此,您的
openKey
已获取完毕,请注意保存,每次使用人脸服务时需要该openKey
。
人脸注册
对于已知的人脸完成注册。
展开人脸相关 | API
。
调用人脸注册
接口。
示例如下
若注册成功则会返回SUCCESS
。
人脸搜索
查找一张未知的图片上的已注册的人脸。
展开人脸相关 | API
。
调用人脸搜索
接口。
示例如下
键 | 值 |
---|---|
openKey | 用户openKey |
img | 图片(支持base64或网络图片链接) |
调用该接口会返回一个数组:
会返回该图片上以及注册过的人脸的标签、该标签就是人脸注册时的personTag
。
注意:本文归作者所有,未经作者允许,不得转载