2574| 2
|
利用古德微平台+树莓派实现人脸检测 |
大家好,我是重庆育才中学的沈菊颖老师,从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)最后,主程序中调用函数即可。 完整程序如下: 四、程序执行结果(程序还判断了年龄、脸型、情绪等,仅作参考): ————————————————————————————————————————————————————————————————————— 第一次写帖子,如有叙述不当还请多多谅解。 最后,非常感谢古德微公司,感谢出教程的老师们,感谢帮助我解决问题的各位老师,向你们学习。。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed