需要注意的几个问题:

1.需要在百度人脸识别云平台注册账号并登陆:https://login.bce.baidu.com/?account=

然后创建人脸检测应用,则会生成相应的APP_ID API_KEY SECRET_KEY,开发时要用到

# 定义常量
APP_ID = '*****'
API_KEY = '*****'
SECRET_KEY = '************'

2.读图像数据主要用到的两种格式,示例如下

image = "取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串"

# image = "http://n1.itc.cn/img8/wb/recom/2017/04/19/149256623627782055.JPEG"
# imageType = "URL"filepath = "D:\\Project\\FaceReg\\test.jpg"
with open(filepath, "rb") as fp:base64_data = base64.b64encode(fp.read())
image = str(base64_data, 'utf-8')
imageType = "BASE64"

3.可以定义人脸检测的最大检测人脸数,默认为1,最大为10

# 定义参数变量options = {}
options["face_field"] = "age"
options["max_face_num"] = 10
options["face_type"] = "LIVE"

4.画人脸检测框,cv2.rectangle()只能画标准的矩形框,不能画倾斜的,故使用cvline()一条条画,但一定要找准4个顶点。经多次尝试,可以画出很好的检测框。但里面有个参数解释不通,还需要后续继续搞明白。

下面贴下所有源码:

from aip import AipFace
import cv2
import matplotlib.pyplot as plt
import math
import base64# 定义常量
APP_ID = '*****'
API_KEY = '*******'
SECRET_KEY = '*******************************'#初始化AipFace对象
aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)#读取图片# image = "http://n1.itc.cn/img8/wb/recom/2017/04/19/149256623627782055.JPEG"
# imageType = "URL"filepath = "D:\\Project\\FaceReg\\test.jpg"
with open(filepath, "rb") as fp:base64_data = base64.b64encode(fp.read())
image = str(base64_data, 'utf-8')
imageType = "BASE64"# 定义参数变量options = {}
options["face_field"] = "age"
options["max_face_num"] = 10
options["face_type"] = "LIVE"# 调用人脸属性检测接口
result = aipFace.detect(image, imageType, options)print(result)
print(type(result))# 读取原图
# cap = cv2.VideoCapture(image)
# ret, img = cap.read()
img = cv2.imread(filepath)#解析位置信息
face_num = result['result']['face_num']for num in range(0,int(face_num)):print(num)location = result['result']['face_list'][num-1]['location']# print(location)# print(location['face_list'][0])Theta = location['rotation'] / 60 ### 注意:为啥是60度,自己多次测试的结果,必须得弄清楚rotation啥意思,相对于哪里的旋转角度A = (int(location['left']),int(location['top']))B = (int(location['left'])+int(location['width']*math.cos(Theta)),int(location['top'])+int(location['width']*math.sin(Theta)))AC_Len = math.sqrt(location['width']**2 + location['height']**2)AC_Theta = math.atan(location['height']/location['width'])+location['rotation']/60  ####或者是???C = (int(location['left']) + int(AC_Len*math.cos(AC_Theta)), int(location['top'])+int(AC_Len*math.sin(AC_Theta)))D = (int(location['left'])-int(location['height']*math.sin(Theta)), int(location['top']) + int(location['height']*math.cos(Theta)))cv2.line(img, A, B, (0, 0, 255), 2)cv2.line(img, B, C, (0, 0, 255), 2)cv2.line(img, C, D, (0, 0, 255), 2)cv2.line(img, D, A, (0, 0, 255), 2)# left_top = (int(location['left']),int(location['top']))# right_bottom = (left_top[0]+int(location['width']),left_top[1]+int(location['height']))# cv2.rectangle(img,left_top, right_bottom, (0,0,255),2)cv2.imshow('img', img)
cv2.waitKey(0)plt.imshow(img, 'gray')
plt.show()

最后给出程序运行结果:

调用百度AipFace做人脸检测相关推荐

  1. 【Python】调用百度云API人脸检测 Face Detect

    # encoding:utf-8 # !/usr/local/bin/python3# 百度云:驾驶行为分析 # 应用名称:驾驶行为分析测试import urllib3 from urllib.par ...

  2. vpa函数python_python 调用百度接口 做人脸识别

    操作步骤差不多,记得要在百度AIPI中的控制台中创建对应的工单 创建工单成功后 会生成两个key  这个两个key是要生成tokn 用 这里大家可以用 def函数 将token返回 供下面的接口使用 ...

  3. python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜

    https://ai.baidu.com/docs#/Face-Detect/top 这个是百度人脸识别api 参考博客:https://blog.csdn.net/qq_38412868/artic ...

  4. OpenCV调用手机摄像头与人脸检测

    文章目录 一.OpenCV机器视觉环境搭建 1. OpenCV下载 2. OpenCV安装 3. 安装测试 二.OpenCV调用摄像头及人脸检测 1. 调用电脑摄像头 2. 调用手机摄像头及人脸检测 ...

  5. dlib做人脸检测判断有没有检测到人脸

    dlib做人脸检测判断有没有检测到人脸 文章目录: 一.人脸检测 二.判断有没有检测到人脸 其实我用dlib 检测人脸只是用来做个触发条件,但是我不知道怎么判断有没有检测到人,因为从返回值只知道是一个 ...

  6. OpenCvSharp人脸检测(二) DNN加载Caffe模型做人脸检测

    更多视觉图像处理相关内容,可关注[OpenCV与AI深度学习]公众号获取! 本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCvSharp人脸检测(二) DNN加载Caf ...

  7. C# OpenCV人脸检测(三) DNN加载FaceDetectorYN模型做人脸检测

    点击下方卡片,关注"OpenCV与AI深度学习"公众号 视觉/图像重磅干货,第一时间送达 本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍C# OpenCV人 ...

  8. 基于python3,百度AI实现人脸检测,人脸识别

    我感觉百度是BAT三家里面AI能力最强的了,在图像和语音的处理上面是很强的,很全面.百度AI里面功能齐全,提供的语言也是很多.唯一不太好的是目前对python3不是很支持,还是支持python2.但也 ...

  9. C#窗口调用百度云实现人脸识别。(注意代码中添加的控件以及部分传值给函数,亲测百分百可用。)

    调用的dll库文件 代码模块 首先是连接开启电脑摄像头,拍照后保存照片到本地. 然后是调用百度云: 1.获取百度云access_token与百度云连接: 2.建立控制太应用:人脸识别: 3.人脸库的人 ...

最新文章

  1. 关闭页面不用提示的方法
  2. C# 利用WMI对象获取物理内存和可用内存大小
  3. linux系统UDP的socket通信编程
  4. php把数字转化字符串,php中把数字转化为字符串的方法有哪些?-PHP问题
  5. RHEL 8 - 记录用户会话操作
  6. 互联网时代: 从Uber的供需匹配看开发需求
  7. linux内核启动地址的确定
  8. Linux 常用系统工具与初始化配置
  9. MySQL中删除表中并不存在的数据不报错
  10. Linux下nand flash读写测试
  11. Android、iPhone和Java三个平台一致的加密方法
  12. Mysql大字段blob返回是数字_innodb使用大字段text,blob的一些优化建议(转)
  13. pandas读取csv文件UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 37: invalid contin
  14. 台式机怎样连接连接蓝牙耳机?搜索不到蓝牙耳机?
  15. 【POI2013】bzoj3426 Tower Defence Game
  16. JAVA12_12学习总结(JavaScript)
  17. 推荐系统论文阅读——Factorizing Personalized Markov Chains for Next-Basket Recommendation
  18. 树莓派3B+插入电源后状态灯只有红灯常亮,无法接入屏幕
  19. linux设备树笔记__dts基本概念及语法
  20. 中信银行面试前准备好多材料_面试准备帮助我在锁定期间获得了多个报价

热门文章

  1. 2022-2028全球与中国车载行车记录仪市场现状及未来发展趋势
  2. 固态存储行业领导者硅格半导体加入龙蜥社区,共同推动开源生态建设
  3. [Reprint] 常用素数
  4. [课设]烟台大学课程表app
  5. 毫末智行“AI DAY”即将来临,自动驾驶未来何解?
  6. 基于我国水资源现状GIS在其中有何作用
  7. Thinkpad T580 更换固态NVME 2242接口硬盘迁移系统
  8. 机房环控漏水监控系统如何检测机房漏水
  9. CentOS7防火墙设置
  10. 限时免费|8位支付大咖演讲PPT14份行业权威报告10篇支付干货