树莓派(古德微)百度AI项目应用(1)——颜值识别

今天跟大家分享利用树莓派(古德微平台)通过调用百度AI的人脸识别来测试颜值的案例。

应用场景:拍下一张照片,识别其颜值,通过Ws2812的灯珠数来表示颜值的高低。


颜值识别效果演示

一、实验器材:

树莓派,CSI摄像头(USB亦可),按键1个,Ws2812B(用于显示颜值的数值,案例中使用60位的灯环,采用12,24,60位均可),百度AI人脸识别应用

二、编程软件:古德微平台

三、过程实现

颜值识别的导图与流程图

STEP1.百度账号注册(略)

STEP2.百度AI应用的创建

百度AI的网址为:https://ai.baidu.com,打开网页之后,点击右上角的“控制台”进行登录百度AI的应用。

百度AI首页

百度智能云登录页面,输入您的百度账号进行登录(百度网盘,百度贴吧账号可登录),若无百度账号,可以注册一个。

登录百度AI

登录后,打开“人脸识别”的服务,位置如下:“产品服务”→“人工智能”→“人脸识别”。

人脸检测
创建人脸检测

打开页面之后,我们先来创建一个应用,填写好“应用名称”(必填)、“应用类型”(必选)、“接口选择”(默认)、“应用描述”(必填)。具体填写可以参照下图。完成后点击“立即创建”,完成人脸识别应用的创建。

创建应用的填写
创建完毕

创建完成之后,点击“返回应用创建列表”,可以查看我们刚刚创建好的人脸识别的应用。

应用列表

等下我们要用到的APIKey和SecretKey(默认是隐藏的,点击“显示”即可查看),现在我们点击“人脸识别应用”,并查看应用详情。

查看应用详情
展开应用详情

点击“展开”,查看API列表中人脸识别的请求地址,查看对应的版本号,我这里显示的是v3版本。(有部分可能是v2的,v2和v3的调用地址和请求的方法有所不同)

image.png

STEP3.数据准备

在这里,我们先不急着用摄像头来获取数据,只需要在网上搜索一张美女或者帅哥的大头照来作为要检测的图片即可。

初始化几个变量

将我们刚刚申请的百度人脸检测应用中的APIKey和SecretKey的数值,存到变量中;

Request_URL为请求的网址:https://aip.baidubce.com/rest/2.0/face/v3/detect

把备用的大头照(test.jpeg)存放在树莓派的/home/pi/imageTemp/,

STEP4.程序编写

1. 百度AI的获取过程

我们通过百度Ai人脸检测的帮助文档,查看Python的范例,大概可以了解,人脸检测应用调用方法和过程。

# encoding:utf-8

import requests
'''
人脸检测与属性分析
'''

request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"
params = "{\"image\":\"027d8308a2ec665acb1bdf63e513bcb9\",\"image_type\":\"FACE_TOKEN\",\"face_field\":\"faceshape,facetype\"}"
access_token = '[调用鉴权接口获取的token]'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/json'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())
参考流程图

(1)accessToken的获取

参照技术文档,(https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu

Python的示例代码:

# encoding:utf-8
import requests 

# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
    print(response.json())

返回的数据为Json文本,从中提取出access_Token,百度的数据返回样例如下:

{
  "refresh_token": "25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074",
  "expires_in": 2592000,
  "scope": "public wise_adapt",
  "session_key": "9mzdDZXu3dENdFZQurfg0Vz8slgSgvvOAUebNFzyzcpQ5EnbxbF+hfG9DQkpUVQdh4p6HbQcAiz5RmuBAja1JJGgIdJI",
  "access_token": "24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-8574074",
  "session_secret": "dfac94a3489fe9fca7c3221cbf7525ff"
}

根据百度AI提供样例完成古德微获取AccessToken的代码块。

AccessToken获取的代码块

后来发现在古德微平台上的“大数据”→“爬虫”当中直接有获取AccessToken的代码块。O_O

平台中已有的AccessToken代码块

拖进来,直接复制即可获取AccessToken……

使用平台的代码块,并换成自己的AK和SK

(2)带参请求数据

①请求网址:https://aip.baidubce.com/rest/2.0/face/v3/detect #此处是v3版本的地址

②请求参数:必选image,image_type(此处为BASE64),face_field(需要获取beauty颜值数据)。如下图所示:

请求参数

参考百度样例代码,STEP4.1已给出,不再累述。

③解析Json文本,获取所需的“颜值”数值。同样参照百度AI给出的Json返回示例

{   
  "face_num": 1,
  "face_list": [
        {
            "face_token": "35235asfas21421fakghktyfdgh68bio",
            "location": { 
                "left": 117,
                "top": 131,
                "width": 172,
                "height": 170,
                "rotation": 4
            },
            "face_probability": 1,
            "angle" :{
                 "yaw" : -0.34859421849251
                 "pitch" 1.9135693311691  
                 "roll" :2.3033397197723  
            }
            "landmark": [  
                {
                    "x": 161.74819946289,
                    "y": 163.30244445801
                },
                ...
            ],
            "landmark72": [ 
                {
                    "x": 115.86531066895,
                    "y": 170.0546875
                },
                ...
            ],
            "age": 29.298097610474,
            "beauty": 55.128883361816,
            "expression": {
                "type": "smile",
                "probability" : 0.5543018579483
            },
            "gender": {
                "type": "male",
                "probability": 0.99979132413864
            },
            "glasses": {
                "type": "sun",
                "probability": 0.99999964237213
            },
            "race": {
                "type": "yellow",
                "probability": 0.99999976158142
            },
            "face_shape": {
                "type": "triangle",
                "probability": 0.5543018579483
            }
            "quality": {
                "occlusion": {
                    "left_eye": 0,
                    "right_eye": 0,
                    "nose": 0,
                    "mouth": 0,
                    "left_cheek": 0.0064102564938366,
                    "right_cheek": 0.0057411273010075,
                    "chin": 0
                },
                "blur": 1.1886881756684e-10,
                "illumination": 141,
                "completeness": 1
            }
        }
    ]
}

根据参考案例,可以在古德微平台上写出对应的程序如下:

请求并返回颜值代码块

STEP5.项目应用

在STEP4的基础上,我们基本上已经知道了如何利用百度AI来获取颜值的过程,接下来事情就变得简单了。

1.图像的获取

拍摄图片,上传并返回颜值

PS:这里要注意的,摄像头在拍摄完成之后,一定关闭,以免下次再用的时候,会出现摄像头端口被占用的情况。

2.输出方式

如何显示我们的所得到的颜值?呈现的方式有很多种,在本案例中,采用了通过WS2812灯珠数目来表示颜值。此处采用了60位的灯环,注意处理好颜值与亮灯数的一个转换:颜值*灯珠数/100。

颜值以ws2812灯珠数呈现

四、项目的扩展与改变

除此之外,还可以有一下的颜值呈现方式,供大家参考如下:
  ①制作颜值转盘,利用舵机转动指针来实现;
  ②通过语音的方式来播报颜值;
  ③若您有热敏打印机,则可以将测试者的颜值数据打印来;
  ④若有树莓派的3.5寸屏,可以直接在屏幕上显示颜值;
  ⑤为了不伤自尊,可以把颜值结果发到测试者的邮箱。

或许您有更好玩的颜值呈现方式,可以自行去实现哦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • 在人脸识别属性返回功能以范围方面,较突出的是百度人脸识别与Face++,其次是云飞科技、科大讯飞、FaceCore...
    攸攸牧牧阅读 11,547评论 2 39
  • 首先认证授权: 在开始调用任何API之前需要先进行认证授权,具体的说明请参考: http://ai.baidu.c...
    才能我浪费阅读 1,877评论 0 0
  • 本文主要探讨人工智能相关技术在大微映画公司直播业务中的应用场景。 AI+直播应用场景一:直播内容审核 内容审核难点...
    shenciyou阅读 3,258评论 0 6
  • 今日体验: 早上给c6做保养 洗缸内积炭 全车检查检查 保证车辆安全出行 快过年了 一定坚守好岗位!
    酷酷的峰666阅读 118评论 0 0
  • 有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿意别人看到自...
    北大生阅读 226评论 1 4