Rumah >pembangunan bahagian belakang >Tutorial Python >Gunakan Python untuk antara muka dengan Tencent Cloud untuk merealisasikan pengecaman muka masa nyata dan fungsi pengesanan hidup

Gunakan Python untuk antara muka dengan Tencent Cloud untuk merealisasikan pengecaman muka masa nyata dan fungsi pengesanan hidup

王林
王林asal
2023-07-05 18:04:411143semak imbas

Gunakan Python untuk antara muka dengan Tencent Cloud untuk mencapai pengecaman muka masa nyata dan fungsi pengesanan liveness

Abstrak: Dengan perkembangan pesat kecerdasan buatan dan penglihatan komputer, pengecaman muka telah digunakan secara meluas dalam pelbagai bidang. Artikel ini akan memperkenalkan cara menggunakan bahasa Python untuk antara muka dengan antara muka Tencent Cloud untuk mencapai pengecaman muka masa nyata dan fungsi pengesanan liveness. Dengan memanggil API pengecaman wajah yang disediakan oleh Tencent Cloud, kami boleh mengesan, mengecam dan mengecam badan secara langsung wajah dalam imej.

Kata kunci: Python, Tencent Cloud, pengecaman muka, pengesanan liveness, API

1. Pengenalan
Teknologi pengecaman muka telah digunakan secara meluas dalam pelbagai bidang seperti buka kunci muka dan pembayaran muka. Fungsi pengesanan liveness boleh mengelakkan serangan foto atau video, seterusnya memberikan keselamatan yang lebih tinggi. Tencent Cloud menyediakan satu siri pengecaman muka dan API pengesanan liveness untuk memudahkan pembangun menyepadukan dan menggunakannya dengan cepat. Artikel ini akan memperkenalkan cara menggunakan bahasa Python untuk menyambung dengan API pengecaman muka Tencent Cloud dan melaksanakan pengecaman muka masa nyata dan fungsi pengesanan liveness.

2. Persediaan dan penyediaan persekitaran

  1. Daftar akaun Tencent Cloud dan aktifkan perkhidmatan antara muka pengecaman.
  2. Pasang persekitaran pembangunan Python.
  3. Pasang permintaan perpustakaan permintaan Python dan laksanakan permintaan pemasangan pip arahan pada baris arahan.

3. Panggil Tencent Cloud Face Recognition API untuk pengesanan muka
Pertama, kami perlu mendapatkan kunci API yang disediakan oleh Tencent Cloud untuk mengesahkan permintaan kami. Kemudian, kita boleh menggunakan perpustakaan permintaan Python untuk menghantar permintaan HTTP dan menerima hasil yang dikembalikan oleh Tencent Cloud.

Contoh kod:

import requests
import json

url = "https://api.ai.qq.com/fcgi-bin/face/face_detectface"
app_id = "your_app_id"
app_key = "your_app_key"

image_path = "path_to_your_image"

# 将图像文件转换为字节流
image_data = open(image_path, "rb").read()

# 构建请求参数
payload = {
    "app_id": app_id,
    "time_stamp": str(int(time.time())),
    "nonce_str": str(random.randint(1, 10000)),
    "image": base64.b64encode(image_data).decode('utf-8'),
}

# 根据参数构建签名字符串
sign_str = "&".join([f"{k}={payload[k]}" for k in sorted(payload.keys())]) + f"&app_key={app_key}"
payload["sign"] = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()

# 发送POST请求
response = requests.post(url, data=payload)

# 解析返回结果
result = json.loads(response.text)

Dalam kod di atas, anda perlu menggantikan "id_aplikasi_anda" dan "kunci_aplikasi_anda" dengan nilai sepadan yang anda gunakan pada Tencent Cloud. "image_path" perlu digantikan dengan laluan fail imej yang anda ingin kesan. Dengan menghantar permintaan HTTP POST, kami boleh mendapatkan hasil pengesanan wajah yang dikembalikan oleh Tencent Cloud.

4. Gunakan Tencent Cloud API untuk pengesanan liveness
Sebelum melakukan pengesanan liveness, kita perlu melakukan pengesanan muka untuk mendapatkan maklumat lokasi dan titik utama muka. Kemudian jalankan pengesanan badan secara langsung berdasarkan API yang disediakan oleh Tencent Cloud.

Contoh kod:

def liveness_detection(image_path):
    face_result = detect_face(image_path)
    if not face_result["data"]["face_list"]:
        print("No face detected.")
        return

    image_data = open(image_path, "rb").read()
    image_base64 = base64.b64encode(image_data).decode("utf-8")

    url = "https://api.ai.qq.com/fcgi-bin/face/face_livedetectfour"
    app_id = "your_app_id"
    app_key = "your_app_key"

    payload = {
        "app_id": app_id,
        "time_stamp": str(int(time.time())),
        "nonce_str": str(random.randint(1, 10000)),
        "image": image_base64,
        "face_id": face_result["data"]["face_list"][0]["face_id"]
    }
    sign_str = "&".join([f"{k}={payload[k]}" for k in sorted(payload.keys())]) + f"&app_key={app_key}"
    payload["sign"] = hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper()

    response = requests.post(url, data=payload)
    result = json.loads(response.text)
    print(result)

Dalam kod di atas, anda perlu menggantikan "id_aplikasi_anda" dan "kunci_aplikasi_anda" dengan nilai sepadan yang anda gunakan pada Tencent Cloud. Melalui fungsi detect_face, kita boleh mendapatkan face_id wajah manusia, dan kemudian melakukan pengesanan liveness berdasarkan face_id.

5 Ringkasan dan Outlook
Artikel ini memperkenalkan cara menggunakan antara muka Python dan Tencent Cloud untuk melaksanakan fungsi pengecaman muka dan keaktifan. Dengan memanggil API yang disediakan oleh Tencent Cloud, kami boleh mengesan dan mengenal pasti wajah dalam imej, dan juga melaksanakan fungsi pengesanan langsung. Pada masa hadapan, dengan pembangunan berterusan teknologi pengecaman muka, kita boleh mengaplikasikannya dalam lebih banyak bidang dan membawa lebih banyak kemudahan dan keselamatan kepada kehidupan orang ramai.

Atas ialah kandungan terperinci Gunakan Python untuk antara muka dengan Tencent Cloud untuk merealisasikan pengecaman muka masa nyata dan fungsi pengesanan hidup. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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