基于face_recognition 人脸识别系统安装实现
nanshan 2024-11-23 20:13 126 浏览 0 评论
目 录
第一章 系统说明:. 3
第二章 安装. 4
第三章 API 5
获取人脸图片编码. 5
获取人脸位置. 5
添加人脸数据. 6
两人脸特征码对比. 6
两张照片对比. 7
人脸特征码人脸库匹配. 7
照片人脸库匹配. 8
第四章 系统集成. 9
第五章 人脸系统使用说明. 10
运行. 10
配置. 10
数据库表. 11
- 系统说明:
本系统是基于face_recognition项目来开发的,使用django提供restful API接口。
环境要求:
ubuntu 16/17、python3、django、PIL、postgresql9.6
- 安装
在ubuntu中安装:
第一步安装python环境:
- python3 #查看python版本
- sudo apt-get install python3-pip
- sudo pip3 install django
- sudo pip3 install numpy #更新为最新的数学计算库
- sudo pip3 install psycopg2 #安装数据库包
- sudo pip3 install psycopg2-binary
第二步安装face_recognition:
- sudo apt-get upgrade #更新库
- sudo apt-get install build-essential cmake
- sudo apt-get install libgtk-3-dev
- sudo apt-get install libboost-all-dev
- sudo pip3 install dlib
- sudo pip3 install face_recognition
- face_recognition #测试是否安装成功 查看命令是否能够正常调用
说明:确保系统中有python3.5+版本。建议升级为3.6最新版本。
选择安装postgresql:
- sudo apt-get install postgresql
配置数据库:
- 数据库账号密码
- sudo su postgres #切换postgresql 系统用户
- psql #进入psql命令 注意分号,表示sql 语句完成
- ALTER USER postgres WITH PASSWORD 'postgres';
- 数据库IP访问
- cd /etc/postgresql/9.6/main #进入配置目录
- sudo vim pg_hba.conf
- #添加如下 开放外部访问
- host all all 0.0.0.0/0 md5
- #:wq 保存修改
- sudo vim posgresql.conf
- listen_addresses = '0.0.0.0'#修改监听ip
- #:wq 保存修改
- #重启postgresql
- sudo /etc/init.d/postgresql restart
- API
REQUEST
URI:/face/enCode
method: post
参数名
类型
是否必填
默认值
说明
img
string
是
base64图片编码
RESPONSE
参数名
类型
默认值
说明
code
int
状态码 1:成功,0:失败
value
string[]
人脸特征码数组
time
double
执行时间
REQUEST
URI:/face/locations
method: post
参数名
类型
是否必填
默认值
说明
img
string
是
base64图片编码
RESPONSE
参数名
类型
默认值
说明
code
int
状态码 1:成功,0:失败
value
json[]
位置组,包含截取的img64代码
time
double
执行时间
REQUEST
URI:/face/addFace
method: post
参数名
类型
是否必填
默认值
说明
img
string
是
base64图片编码
id
string
是
唯一值
name
string
是
姓名
code
string
是
人脸特征码
RESPONSE
参数名
类型
默认值
说明
code
int
状态码 1:成功,0:失败
msg
string
消息
time
double
执行时间
REQUEST
URI:/face/compare2code
method: post
参数名
类型
是否必填
默认值
说明
code1
string
是
人脸特征码
code2
string
是
人脸特征码
RESPONSE
参数名
类型
默认值
说明
code
int
状态码 1:成功,0:失败
value
int
是否匹配,1:匹配,0:不匹配
time
double
执行时间
两张照片对比
REQUEST
URI:/face/compare2img
method: post
参数名
类型
是否必填
默认值
说明
img1
string
是
base64图片编码
img2
string
是
base64图片编码
RESPONSE
参数名
类型
默认值
说明
code
int
状态码 1:成功,0:失败
value
int
是否匹配,1:匹配,0:不匹配
time
double
执行时间
REQUEST
URI:/face/verifyByCode
method: post
参数名
类型
是否必填
默认值
说明
code
string
是
人脸特征码
RESPONSE
参数名
类型
默认值
说明
code
int
状态码 1:成功,0:失败
value
int
是否匹配,1:匹配,0:不匹配
time
double
执行时间
照片人脸库匹配
REQUEST
URI:/face/verifyByImg
method: post
参数名
类型
是否必填
默认值
说明
img
string
是
base64图片编码
RESPONSE
参数名
类型
默认值
说明
code
int
状态码 1:成功,0:失败
value
int
是否匹配,1:匹配,0:不匹配
time
double
执行时间
- 系统集成
业务系统根据需求选择第三章中的对应接口来使用本系统。
调用方式如下时序图:
- 人脸系统使用说明
执行~/workspace/faceService/run.sh
人脸系统配置分为外部数据库配置、django配置、人脸相识值。
数据库配置:
文件:/faceService/faceService/settings.py
# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'face',
'USER':'postgres',
'PASSWORD':'postgres',
# 'HOST':'192.168.10.185',
'HOST':'127.0.0.1',
'POST':'5432'
}
}
django运行设置:
文件:/faceService/run.sh
python3 manage.py runserver 0.0.0.0:8000 #对应ip 和端口
人脸相识值:
文件:/faceService/app/FaceApi.py
# 最大相似度 越小越相似
max_distance=0.4
人脸表:face
字段
数据类型
说明
id
Character Varying( 50 )
主键,可以是身份证号,或业务系统数据id
name
Character Varying( 50 )
姓名
code
text
特征码
img
text
base64图片
- 上一篇:C语言中操作Excel文件的方法与实践
- 下一篇:安装kivy
相关推荐
- 超详细!Linux文件和目录的10项属性
-
公众号:老油条IT记文件和目录10项属性目录1:索引节点:inode2:文件类型3:链接数4:用户5:组6:文件大小7.8.9:时间戳10:文件名1.Linux文件#概述#1.linux里一切皆为文件...
- 如何恢复 Linux 系统下被删除的文件 ?
-
丢失数据是任何用户都可能经历的最令人不安和痛苦的经历之一。一旦珍贵数据被删除或丢失,就再也找不不回来通常会引发焦虑,让用户感到无助。值得庆幸的是,有几个工具可以用来恢复Linux机器上被删除的文件...
- Linux文件系统操作常用命令
-
在Linux系统中,有一些常用的文件系统操作命令,以下是这些命令的介绍和作用:#切换目录,其中./代表当前目录,../代表上一级目录cd#查看当前目录里的文件和文件夹ls#...
- Linux系统下使用lsof工具恢复rm命令删除的文件
-
rm(Remove)和lsof(ListOpenFiles)是Linux命令行工具,直接操作文件系统。rm用于删除文件和目录;lsof用于查看进程打开的文件、网络连接、设备等信息。rm删除的文...
- Linux文件管理知识:文本处理
-
Linux文件管理知识:文本处理上篇文章详细介绍了Linux系统中查找文件的工具或者命令程序的相关操作内容介绍。那么,今天呢,这篇文章围绕Linux系统中文本处理来阐述。众所周知,所有Linux操作系...
- Linux基础运维篇:Linux磁盘与文件系统管理(第012课)
-
一、磁盘基础认知1.磁盘是什么在Linux系统里,磁盘就像是一个巨大的仓库,专门用来存放各种数据。电脑里的文档、图片、程序等,都储存在磁盘上。磁盘有不同的类型,常见的有机械硬盘(HDD)和固态硬...
- Linux系统中其他值得关注的病毒/恶意软件示例
-
Linux系统中其他值得关注的病毒/恶意软件示例,结合其传播方式、危害特征及清除方法进行整理。一、经典病毒家族1.Slapper特征:利用Apache的SSL漏洞传播的蠕虫病毒,可创建僵尸网络供攻击者...
- Linux磁盘爆满紧急救援指南:5步清理释放50GB+小白也能轻松搞定
-
“服务器卡死?网站崩溃?当Linux系统弹出‘Nospaceleft’的红色警报,别慌!本文手把手教你从‘删库到跑路’进阶为‘磁盘清理大师’,5个关键步骤+30条救命命令,快速释放磁盘空间,拯救你...
- Linux常用文件操作命令
-
ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...
- linux怎么编辑文件内容
-
在Linux中,你可以使用多种方法来编辑文件内容。以下是几种常用的方法:使用文本编辑器:你可以使用命令行下的文本编辑器,如vi、vim或nano来编辑文件。例如,使用vim编辑一个名为example....
- linux学习笔记——常用命令-文件处理命令
-
ls目录处理命令:ls全名:list命令路径:/bin/ls执行权限:所有用户ls–ala--alll–long-i查看i节点ls–i查看i节点命令名称:mkdir命令英文原意:m...
- Win10新版19603推送:一键清理磁盘空间、首次集成Linux文件管理器
-
继上周四的Build19592后,微软今晨面向快速通道的Insider会员推送Windows10新预览版,操作系统版本号Build19603。除了一些常规修复,本次更新还带了不少新功能,一起来了...
- 很少有人知道可以这样删除文件
-
有时候我们在格式化硬盘分区或者删除一些文件的时候,会出现无法操作的情况,例如下面这种这个文件权限问题,系统为了保护一些文件而采取的安全措施,如果你能确定文件是可能删除的,那你只要赋予它管理员权限,...
- linux中磁盘满了?一招教你快速清理
-
创作背景:当天部署服务时,发现无法部署,后来经过日志排查后发现服务器磁盘满了,查询资料后进行了清理。话不多说,直接上解决方法。操作一:1.查看磁盘大小:df-h2.直接在最上层进行排序:du-a...
- Linux下乱码的文件名修改或删除
-
查看文件名#lstouch1?.txt#ll-itotal1469445217956913-rw-r--r--1oracleoinstall0Jan18...
你 发表评论:
欢迎- 一周热门
-
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
WindowsServer2022|配置NTP服务器的命令
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
解决Linux终端中“-bash: nano: command not found”问题
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)