python3+face++ 人脸识别程序

本文介绍如何使用Python3结合Face++的人脸识别API,实现图像中人脸的检测与识别。通过步骤详解,包括安装库、获取API密钥、调用人脸检测和识别功能,帮助读者掌握这一技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#face.py
#上传图片进行识别
# -*- coding: utf-8 -*-
import urllib.request
import urllib.error
import time
escape_dict={'\a':r'\a','\b':r'\b','\c':r'\c','\f':r'\f','\n':r'\n','\r':r'\r','\t':r'\t','\v':r'\v','\'':r'\'','\"':r'\"','\0':r'\0','\1':r'\1','\2':r'\2','\3':r'\3','\4':r'\4','\5':r'\5','\6':r'\6','\7':r'\7','\8':r'\8','\9':r'\9'}

def raw(text):
    new_string=''
    for char in text:
        try:new_string+=escape_dict[char]
        except KeyError:new_string+=char
    return new_string

def up(filepath):
    http_url = 'https://api-cn.faceplusplus.com/facepp/v3/detect'
    key = 'j1eIBCbzSTcwoXFyHdrVn-3RURnwP3Nu'
    secret = 'w5RPm5a43r5DthilCgZiZFsBQxC0N8Si'
    filepath = raw(filepath)
    boundary = '----------%s' % hex(int(time.time() * 1000))
    data = []
    data.append('--%s' % boundary)
    data.append('Content-Disposition: form-data; name="%s"\r\n' % 'api_key')
    data.append(key)
    data.append('--%s' % boundary)
    data.append('Content-Disposition: form-data; name="%s"\r\n' % 'api_secret')
    data.append(secret)
    data.append('--%s' % boundary)
    fr = open(filepath, 'rb')
    data.append('Content-Disposition: form-data; name="%s"; filename=" "' % 'image_file')
    data.append('Content-Type: %s\r\n' % 'application/octet-stream')
    data.append(fr.read())
    fr.close()
    data.append('--%s' % boundary)
    data.append('Content-Disposition: form-data; name="%s"\r\n' % 'return_landmark')
    data.append('1')
    data.append('--%s' % boundary)
    data.append('Content-Disposition: form-data; name="%s"\r\n' % 'return_attributes')
    data.append("gender,age,smiling,headpose,facequality,blur,eyestatus,emotion,ethnicity,beauty,mouthstatus,eyegaze,skinstatus")
    data.append('--%s--\r\n' % boundary)

    for i, d in enumerate(data):
        if isinstance(d, str):
            data[i] = d.encode('utf-8')

    http_body = b'\r\n'.join(data)

    req = urllib.request.Request(url=http_url, data=http_body)

    req.add_header('Content-Type', 'multipart/form-data; boundary=%s' % boundary)

    try:
        resp = urllib.request.urlopen(req, timeout=5)
        #urllib.request.close()
        qrcont = resp.read()
        qrcont=qrcont.decode('utf-8')
        dictinfo = eval(qrcont)
        FACE=dictinfo['faces']

        result='\n'
        result=result+'共检测到'+str(len(FACE))+'张人脸'+'\n'

        num=1
        for i in FACE:

            result=result+"peo "+str(num)+'\n'
            num+=1
            sx=i['attributes']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值