利用古德微平台+树莓派实现人脸检测
大家好,我是重庆育才中学的沈菊颖老师,从2017年开始指导学生参加创客竞赛(全国中小学电脑制作活动中的项目),却一个帖子都没发过,鄙视自己。。。既然是第一次发帖,就想先感谢一下创客教育的先行者:吴俊杰老师、谢作如老师、北师大傅骞教授、金丛军老师…他们让我接触到了Arduino、掌控板、Appinventor和虚谷号。另外,还要感谢在做项目的过程中帮我解决无数问题的李亮(DFROBOT公司)等..
—————————————————————————————————————————————————————————————————————
进入正题。。
最近一个月,宅在家中,如果每天不学点什么会毫无成就感,于是我申请了一套人工智能套件(古德微公司漂流给我哒)。不得不说,利用古德微平台学习树莓派的每一天都是快乐的。
今早看到广东余老师发的贴子(链接如下),他用灯环亮灯数来表示颜值的高低,正好我之前用虚谷号做过人脸检测:获取颜值、判断表情、脸型、是否戴眼镜等,于是准备尝试一下。
https://www.jianshu.com/p/05401f1c35e9?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=weixin&from=groupmessage&isappinstalled=0
余老师画的流程图:
百度AI人脸检测使用说明文档:
https://ai.baidu.com/ai-doc/FACE/yk37c1u4t
一、硬件清单:树莓派及古德微扩展板,USB摄像头,按扭
二、相关平台:古德微平台、百度AI人脸识别应用(创建过程可参考余老师的帖子)
三、编写程序:
1.按钮按下,让USB摄像头拍摄照片,拍摄完关闭摄像头(输出调试信息是为了检查程序是否正常进行,摄像头是否已拍摄照片):
2.创建“获得颜值”函数(如果想判断表情、脸型、是否戴眼镜等方法类似,下面会做阐述),函数参数为requestUrl(网址如下):
https://aip.baidubce.com/rest/2.0/face/v3/detect
(1)拍摄的照片需要进行base64编码:
(2)对请求参数进行赋值:
如下图所示,我们需要把编码后的图片数据、编码方式和你想要获得的属性赋给请求参数(重点:红色箭头处想获取颜值这里就输入beauty,想判断脸型输入face_shape,想判断表情输入expression,想判断戴眼镜的情况输入glasses,想判断情绪输入emotion……):
(3)对地址进行赋值,创建request对象,为request对象添加请求参数和http头参数,然后通过request对象请求数据,将获取到的json数据转换成字典。其中,access_token的获取需要API Key和Secret Key(人脸识别应用里获取):
(4)逐层获取属性,得到我们所需要的数据。
先从最外层获取error_msg的值,如果为SUCCESS则表明我们已成功获取到数据,我们需要的数据都在result里,所以需要获取result里的内容(result里的内容如下图所示),result里提取face_list,提取face_list唯一的值,再从中提取我们所需要的属性(重点:红色箭头处想获取颜值这里就输入beauty,想判断脸型输入face_shape,想判断表情输入expression,想判断戴眼镜的情况输入glasses,想判断情绪输入emotion……)
颜值对应只有一个值,而情绪,表情等包含类型(type)和置信度(probability)两个值,所以需要单独提取:
(5)最后,主程序中调用函数即可。
完整程序如下:
四、程序执行结果(程序还判断了年龄、脸型、情绪等,仅作参考):
—————————————————————————————————————————————————————————————————————
第一次写帖子,如有叙述不当还请多多谅解。
最后,非常感谢古德微公司,感谢出教程的老师们,感谢帮助我解决问题的各位老师,向你们学习。。
好贴,学习中 乐活 发表于 2020-3-7 22:19
大家好,我是重庆育才中学的沈菊颖老师,从2017年开始指导学生参加创客竞赛(全国中小学电脑制作活动中的项 ...
我这个只是最简单的输出,大家可以在此基础上扩展。
友情提示,对摄像头假笑它不会认为你是在微笑哦
( ̄∇ ̄)……
页:
[1]