Rumah > pembangunan bahagian belakang > Tutorial Python > Tulis kod dalam Python untuk melaksanakan dok API pengecaman muka Baidu dan merealisasikan fungsi analisis ciri wajah

Tulis kod dalam Python untuk melaksanakan dok API pengecaman muka Baidu dan merealisasikan fungsi analisis ciri wajah

WBOY
Lepaskan: 2023-08-27 14:28:44
asal
1506 orang telah melayarinya

Tulis kod dalam Python untuk melaksanakan dok API pengecaman muka Baidu dan merealisasikan fungsi analisis ciri wajah

Tulis kod dalam Python untuk melaksanakan dok API pengecaman muka Baidu dan merealisasikan fungsi analisis ciri muka

Teknologi pengecaman muka ialah salah satu arahan penyelidikan yang popular dalam bidang penglihatan komputer. Ia digunakan dalam pengesahan muka, carian muka dan Ia mempunyai pelbagai aplikasi dalam bidang seperti analisis ciri muka. API Pengecaman Wajah Baidu ialah perkhidmatan kecerdasan buatan yang disediakan oleh Baidu yang boleh mengekstrak dan menganalisis ciri wajah. Artikel ini akan memperkenalkan cara menulis kod dalam Python, menyambung ke API pengecaman muka Baidu dan merealisasikan fungsi analisis ciri muka.

Pertama, kita perlu mendaftar akaun pada platform terbuka Baidu AI, mencipta aplikasi pengecaman muka dan mendapatkan Kunci API dan Kunci Rahsia. Kemudian, kami menggunakan modul permintaan Python untuk memanggil API pengecaman muka Baidu melalui permintaan HTTP.

Pertama, kita perlu mengimport modul permintaan dan modul base64. Antaranya, modul permintaan digunakan untuk menghantar permintaan HTTP, dan modul base64 digunakan untuk mengekod imej base64.

1

2

import requests

import base64

Salin selepas log masuk

Kemudian, kami mentakrifkan fungsi yang membaca imej dan menukarkannya kepada rentetan berkod base64.

1

2

3

4

5

def get_image_base64(image_path):

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

        image_data = f.read()

    base64_data = base64.b64encode(image_data)

    return base64_data.decode()

Salin selepas log masuk

Seterusnya, kami mentakrifkan fungsi untuk memanggil API pengecaman muka Baidu untuk mengekstrak dan menganalisis ciri wajah.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

def analyze_face(image_path, api_key, secret_key):

    # 获取图片的base64编码

    image_base64 = get_image_base64(image_path)

 

    # 构造HTTP请求头

    headers = {

        "Content-Type": "application/json"

    }

 

    # 构造HTTP请求体

    data = {

        "image": image_base64,

        "image_type": "BASE64",

        "face_field": "age,gender,beauty"

    }

 

    # 构造HTTP请求参数

    params = {

        "access_token": get_access_token(api_key, secret_key)

    }

 

    # 发送HTTP POST请求

    response = requests.post(

        "https://aip.baidubce.com/rest/2.0/face/v3/detect",

        params=params,

        headers=headers,

        json=data

    )

 

    # 解析HTTP响应

    result = response.json()

 

    # 处理人脸特征分析结果

    if "result" in result:

        face_list = result["result"]["face_list"]

        for face in face_list:

            age = face["age"]

            gender = face["gender"]["type"]

            beauty = face["beauty"]

            print("年龄:", age)

            print("性别:", "女性" if gender == "female" else "男性")

            print("颜值:", beauty)

    else:

        print("人脸特征分析失败")

Salin selepas log masuk

Dalam kod di atas, kami memanggil antara muka /detect bagi API Pengecaman Wajah Baidu, di mana parameter imej ialah pengekodan asas64 imej, parameter image_type ialah jenis imej dan parameter face_field ialah ciri muka yang perlu dianalisis. Dalam respons HTTP yang dikembalikan, kami boleh mendapatkan ciri muka seperti umur, jantina dan rupa.

Akhir sekali, kami mentakrifkan fungsi untuk mendapatkan akses_token yang diperlukan untuk mengakses API Pengecaman Wajah Baidu.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

def get_access_token(api_key, secret_key):

    # 构造HTTP请求参数

    params = {

        "grant_type": "client_credentials",

        "client_id": api_key,

        "client_secret": secret_key

    }

 

    # 发送HTTP GET请求

    response = requests.get(

        "https://aip.baidubce.com/oauth/2.0/token",

        params=params

    )

 

    # 解析HTTP响应

    result = response.json()

 

    # 处理获取access_token结果

    if "access_token" in result:

        access_token = result["access_token"]

        return access_token

    else:

        print("获取access_token失败")

Salin selepas log masuk

Dalam kod di atas, kami memanggil antara muka /oauth/2.0/token API pengecaman wajah Baidu, dengan parameter client_id ialah Kunci API dan parameter client_secret ialah Kunci Rahsia. Dalam respons HTTP yang dikembalikan, kami boleh mendapatkan access_token yang diperlukan untuk mengakses API Pengecaman Wajah Baidu.

Akhir sekali, kita boleh memanggil fungsi analyze_face untuk menganalisis ciri-ciri wajah sesuatu gambar.

1

2

3

4

5

6

7

8

9

# 替换为你的API Key和Secret Key

api_key = "your_api_key"

secret_key = "your_secret_key"

 

# 人脸特征分析的图片路径

image_path = "face.jpg"

 

# 调用analyze_face函数,分析人脸特征

analyze_face(image_path, api_key, secret_key)

Salin selepas log masuk

Dalam kod di atas, kami perlu menggantikan "kunci_api_anda" dan "kunci_rahsia_anda" dengan Kunci API dan Kunci Rahsia anda sendiri, dan menggantikan "face.jpg" dengan laluan imej muka anda sendiri.

Melalui kod di atas, kami dapat merealisasikan hubungan dengan API pengecaman muka Baidu dan merealisasikan fungsi analisis ciri wajah. Saya harap artikel ini dapat membantu semua orang untuk berjalan lancar semasa menulis kod pengecaman muka dalam Python.

Atas ialah kandungan terperinci Tulis kod dalam Python untuk melaksanakan dok API pengecaman muka Baidu dan merealisasikan fungsi analisis ciri wajah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan