Python调用face++API完成本地图片的人脸检测

2023-05-16

Python调用face++API完成本地图片的人脸检测

简单调用face++API对本地图片进行人脸检测,输出基本信息到csv文件。

注册face++账号

face++网址 https://www.faceplusplus.com.cn/

在这里插入图片描述
注册完成之后,查看自己的 API Key 和 API Secret
在这里插入图片描述

改写官网代码示例完成人脸信息采集

原代码示例网址 https://console.faceplusplus.com.cn/documents/6329752
选用原代码示例中的python代码对其进行符合人脸检测信息采集需求的修改,代码如下,具体代码解释见下节:

# -*- coding: utf-8 -*-
import urllib2
import time
import os
from pandas.core.frame import DataFrame
result = []
http_url='https://api-cn.faceplusplus.com/facepp/v3/detect'
key = "sJVodwPAjfbo18Vc2OCZjIUuM1u2BhWe"  #这里是你申请的API Key 
secret = "29dB1GxL9oXbv7P117CLa4ZyUdHzj1ad" #这里是你申请的API Secret
filedir = r"C:\Users\Desktop\face\data\images" #这里是你要检测图片文件夹的路径
writepath = "C:\\Users\\Desktop\\face\\data\\note.csv" #这里替换为你写入csv文件的路径
filelist = os.listdir(filedir)
for filename in filelist:
    filepath = os.path.join(filedir,filename) 
    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)

    http_body='\r\n'.join(data)
    #buld http request
    req=urllib2.Request(http_url)
    #header
    req.add_header('Content-Type', 'multipart/form-data; boundary=%s' % boundary)
    req.add_data(http_body)
         
   #这里提取图片的性别、年龄、人脸框位置,并输出该图片的绝对路径。
   #若提取其他属性,请修改以下代码,将result中加入所需属性并输出
    try:
        resp = urllib2.urlopen(req, timeout=5)
        qrcont = resp.read()
        dict = eval(qrcont)
        faces = dict['faces']
        for i in range(len(faces)):
            attribute = faces[i]['attributes']
            gender = attribute['gender']['value']
            age = attribute['age']['value']        
            face_rectangle = faces[i]['face_rectangle']
            width = face_rectangle['width']
            top = face_rectangle['top']
            left = face_rectangle['left']
            height = face_rectangle['height']
            result.append([filepath,gender,age,width,top,left,height])
            
    except urllib2.HTTPError as e:
        print e.read()
        
DataFrame(result).to_csv(writepath,header=['filepath','gender','age','width','top','left','heigth'])

返回变量

在本示例中,只提取了检测到人脸的性别、年龄、人脸框位置,而face++人脸检测API提供了十分全面的返回值,具体返回值课件参考官网文档 https://console.faceplusplus.com.cn/documents/4888373
这里,解释上述代码提取各变量的含义。

字段类型说明
genderString性别分析结果,Male为男性,Female为女性
ageInt年龄分析结果。返回值为一个非负整数
face_rectangleObject人脸矩形框的位置,包括以下属性
topInt矩形框左上角像素点的纵坐标
leftInt矩形框左上角像素点的横坐标
widthInt矩形框的宽度
heightInt矩形框的高度

代码结果

若路径filedir下有如下一张图片:
在这里插入图片描述
使用python2.7运行代码,可以得到一个绝对路径为writepath的csv文件如下
在这里插入图片描述
face++人脸检测API检测出5张人脸,并将人脸信息保存在了csv文件中。

注意事项

  1. 改进的示例代码使用python2编译
  2. filedir和writepath两个路径不要带有中文字符
  3. 需要事先安装urllib2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python调用face++API完成本地图片的人脸检测 的相关文章

随机推荐

  • 记录自己的日常学习生活

    大家好 xff0c 今天是我第一次写博客 xff0c 刚才看了很多大佬的博文 xff0c 突然就想写一下自己的生活 xff0c 记录自己的学习过程 xff0c 本人是一个地地道道的东本人 xff0c 性格算是活泼开朗吧 xff0c 现就读于
  • 自动驾驶之MultiPath++论文阅读笔记

    预测道路参与者的future behavior 摘要 将输入由dense image based encoding改为a sparse encoding of heterogeneous scene elements 即用polylines
  • 自动驾驶之多任务方法调研

    1 YOLOP github C 43 43 TRT TX2 我们提出了一种高效的多任务网络 xff0c 该网络可以联合处理自动驾驶中的目标检测 车 xff0c 没有红绿灯 可驾驶区域分割和车道检测三个关键任务 速度 xff1a TX2上2
  • 自动驾驶之去光晕调研

    中文版综述github 一 光晕类型 常见去光晕算法的光晕 去光晕算法的光晕之二 汇总 样式包括有 halos 色圈 streaks 条纹 bright lines 亮线 saturated blobs 深污点 color bleeding
  • 自动驾驶之3D点云聚类算法调研

    1 方法 总共分为4类 基于欧式距离的聚类Supervoxel 聚类深度 Depth 聚类Scanline Run 聚类 1 1 基于欧氏距离的聚类 思路 在点云上构造kd tree 然后在某个半径阈值 例如0 5m 则分割为一个实例 相似
  • 自动驾驶之夜间检测调研

    1 ExDark 第一个 公开 特定的提供 natural low light images for object的数据集 7363张 low light images 12 classes Low light image enhancem
  • 自动驾驶之行人轨迹预测数据集

    一 Real Data ETH Univ 43 Hotel 750 pedestrians exhibiting complex interactions UCY Zara01 Zara02 and Uni 780 pedestrians
  • 自动驾驶之单目3D目标检测TensorRT调研

    目前在github上只能找到2个项目 TensorRT CenterNet 3D tkDNN 两者都是使用CenterNet xff0c 但第1个基于TensorRT5 无法与当前最新的TensorRT6和TensorRT7兼容 经测试 x
  • 秋招之字节面试智力题

    1 倒水 只有两个无刻度的水桶 xff0c 一个可以装6L水 xff0c 一个可以装5L水 xff0c 如何在桶里装入3L的水 6L装满倒入5L xff0c 剩1L5L倒出 1L倒入5L6L装满倒入5L剩2L5L倒出 xff0c 2L倒入5
  • 数学专业外语之一: 基本概念与术语

    一 四则运算 加法 plus xff0c 1 43 2 one plus two减法 minus 3 2 three minus two乘法 times or multiplied by xff0c 3x2 three times two
  • 数学专业外语之二: 阅读理解与翻译初步

    一 比 率与比例 number xff1a 数 xff1b number axis xff1a number theory xff1a 数论 xff1b the number of xff1a 的数量quantity xff1a 量 xff
  • 从iphone一代看产品创新

    第一代iPhone2007年6月29日正式发售 xff0c 可能大多数人接触Iphone是从iphone4开始 xff0c 先展示一下iphone一代 xff0c 提醒一下这是2007年的一款手机 xff0c 当时市面所有手机都是键盘机 x
  • 自动驾驶之3D目标检测的SMOKE算法

    SMOKE Single Stage Monocular 3D Object Detection via Keypoint Estimation 论文github知乎 一 数据集 KITTI 1 1 输入 单张图像 xff1a 1242x3
  • 自动驾驶之车道线检测调研与实测

    一 LaneNet 论文代码 xff1a github python tensorflow 1 15 1 1 主要过程 inference xff0c 分上下两个分支 xff0c 如图 Enocder decoder stage 图像空间编
  • 推荐系统之AUC指标的一些理解

    以下是在一些整理的和自己的关于AUC的理解 1 AUC和GAUC的区别 auc反映的是整体样本间的一个排序能力 在计算广告领域 实际要衡量的是不同用户对不同广告之间的排序能力 因此实际应该更关注的是同一个用户对不同广告间的排序能力 GAUC
  • 逻辑回归相关问题整理

    1 写逻辑回归的logloss损失函数 对于样本 x x x xff0c 输出为 p x i
  • 如何防止softmax函数overflow和underflow?

    上溢出 xff1a c极其大的时候 xff0c 计算 e c e c e c 下溢出 xff1a 当c趋于负无穷的时候 xff0c 分母是一个极小的数 xff0c 导致下溢出 解决方法 令
  • 使用matplotlib绘图库的pyplot快速绘图

    使用matplotlib绘图库的pyplot快速绘图 matplotlib是Python最常用的绘图库 xff0c 在结果或数据可视化中常用pyplot实现快速绘图 xff0c 下面参考张若愚主编的Python科学计算 xff08 第2版
  • 经典的机器学习二分类算法——Logistic回归

    问题描述 对于维度为 m 43 1 m 43 1 特征为 x x 样本的二分类问题 有负类 Negative Class 记为 0 0 xff0c 正类 xff08 Positive Class xff09 记为 1
  • Python调用face++API完成本地图片的人脸检测

    Python调用face 43 43 API完成本地图片的人脸检测 简单调用face 43 43 API对本地图片进行人脸检测 xff0c 输出基本信息到csv文件 注册face 43 43 账号 face 43 43 网址 https w