目 錄
第一章 系統說明:. 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-pipsudo pip3 install djangosudo pip3 install numpy #更新為最新的數學計算庫sudo pip3 install psycopg2 #安裝資料庫包sudo pip3 install psycopg2-binary第二步安裝face_recognition:
sudo apt-get upgrade #更新庫sudo apt-get install build-essential cmakesudo apt-get install libgtk-3-devsudo apt-get install libboost-all-devsudo pip3 install dlibsudo pip3 install face_recognitionface_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.conflisten_addresses = '0.0.0.0'#修改監聽ip#:wq 儲存修改#重啟postgresqlsudo /etc/init.d/postgresql restartAPIREQUEST
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圖片