首頁>技術>

目 錄

第一章 系統說明:. 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 restartAPI

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圖片

8
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 除了應付面試,程式設計師為什麼要學習資料結構與演算法