python 簡單實現人臉檢測

2021-10-07 11:47:45 字數 2888 閱讀 8019

目錄

一、準備

二、實現

三、結果

四、**

python 3.7版本(其他版本也可以)

matplotlib  畫圖工具,安裝方式:pip install matplotlibpil 影象處理 ,安裝方式:pip install pillow

# client_id 為官網獲取的ak, client_secret 為官網獲取的sk

host = '官網獲取的ak】&client_secret=【官網獲取的sk】'

response = requests.get(host)

if response:

print(response.json())

詳細的介面文件說明見:

獲取到access token 後就能正常訪問人臉檢測介面了,請求url:

引數landmark、landmark72、 landmark150返回特徵點

詳細說明見官方文件:

最後利用matplotlib在影象上繪製特徵點

# post請求

def post_url(url, param):

response = requests.post(url, data=param, headers=headers)

return response.json()

# 獲取access token

def get_access_token():

host = ''

param =

response = post_url(host, param)

return response['access_token']

# 人臉檢測

def face_detect(file, access_token):

host = '' # 介面位址

url = host + "?access_token=" + access_token

with open(file, 'rb') as f:

img_base64 = base64.b64encode(f.read()) # 將影象進行base64轉換

param =

response = post_url(url, param)

print(response)

return response

# 繪製特徵點

def img_draw(file, arr):

image = image.open(file)

plt.figure("face")

plt.imshow(image)

x_arr =

y_arr =

for m in range(len(arr)):

point = arr[m]

x = point['x']

y = point['y']

plt.plot(x_arr, y_arr, 'r.')

plt.axis('off')

plt.show()

if __name__ == '__main__':

access_token = get_access_token() # 獲取access token

file_path = '7.jpg' # 影象路徑

face_list = img_info['result']['face_list']

face_num = img_info['result']['face_num']

data =

for i in range(face_num):

data = data + face_list[i]['landmark72'] # 獲取特徵點

img_draw(file_path, data) # 繪製影象

人臉檢測實現

使用的是谷歌人臉識別系統facenet裡面的mtcnn人臉檢測部分,這部分可用於人臉檢測和人臉對齊,輸出160 160大小的影象 解壓後放在tensorflow的資料夾下 開啟requirements.txt,我們可以看到我們需要安裝以下依賴 tensorflow 1.7 scipy scikit ...

人臉檢測python

我用的是python27。opencv340.匯入opencv庫 import cv2 載入opencv自帶的分類器 face patterns cv2.cascadeclassifier e opencv build etc haarcascades haarcascade frontalface...

python 人臉檢測

pip install opencv python 匯入cv模組 import cv2 def face detector 人臉識別 cap cv2.videocapture 0 告訴opencv使用人臉識別分類器 classfier cv2.cascadeclassifier haarcascad...