1. 程式人生 > >python之百度AI實現人臉識別

python之百度AI實現人臉識別

最近研究了下opencv,本來準備用c++寫一個人臉搜尋的demo,但是有些包下載不下來,所以轉到python,最近python很火,剛好可以研究一下。

首先配置完python一些列balabala就不贅述了,網上資料一大堆。

這裡有個坑就是,就算電腦裡有opencv,仍然需要用python重新下載一個,pip命令就可以使用。在cmd當中執行下面三個命令。包不大,很快就下載完。如果有error,重新下載一下就好。這裡我也下載了很多次,有的時候速度0kb的時候,ctrl+c然後重新下載即可。

pip install --upgrade setuptools
pip install numpy Matplotlib
pip install opencv-python

下載完成之後,在cmd當中輸入python→improt cv2回車,如果沒有什麼反應,說明配置成功。


接下來是人臉識別的測試程式碼,將程式碼複製,在任意編譯器中貼上即可。詳細見程式碼。

# -*- coding: UTF-8 -*-  

from aip import AipFace
import cv2
import matplotlib.pyplot as plt

# 定義常量
APP_ID = '這裡改成自己的id'
API_KEY = '這裡改成自己的AK'
SECRET_KEY = '這裡改成自己的SK'

# 初始化AipFace物件  
aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)

# 讀取圖片,圖片地址和名稱需要自己修改  
filePath = "psb.jpg"


def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

        # 定義引數變數


options = {
    'max_face_num': 1, # 影象數量
    'face_fields': "age,beauty,expression,faceshape",
}
# 呼叫人臉屬性檢測介面  
result = aipFace.detect(get_file_content(filePath), options)

# print(result)
# print(type(result))

# 解析位置資訊
location=result['result'][0]['location']
left_top=(location['left'],location['top'])
right_bottom=(left_top[0]+location['width'],left_top[1]+location['height'])

img=cv2.imread(filePath)
cv2.rectangle(img,left_top,right_bottom,(0,0,255),2)

cv2.imshow('img',img)
cv2.waitKey(0)
# plt.imshow(img,"gray")
# plt.show()

這樣就大功告成了。

執行一下結果。在cmd中輸入 python 名稱.py 即可執行。這裡我試了一下雙擊工程檔案,依然可以正常執行。

萌新,感謝大牛提供的教程。