您的位置:首页 > 编程语言 > Python开发

如何使用百度云人脸识别服务(V3版接口python语言)(三)再识SDK

2018-08-13 15:19 246 查看
版权声明:个人博客网站:www.youboyu.cn https://blog.csdn.net/qq_40821981/article/details/81630552

初始化完了你的对象

我们现在就可以正式开始使用百度云人脸识别服务了

接着来看SDK技术文档

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

imageType = "BASE64"

""" 调用人脸检测 """
client.detect(image, imageType);

""" 如果有可选参数 """
options = {}
options["face_field"] = "age"
options["max_face_num"] = 2
options["face_type"] = "LIVE"

""" 带参数调用人脸检测 """
client.detect(image, imageType, options)

插句题外话,在这里我们需要注意下,先前提到了百度云人脸识别接口有三个版本,这个代码的版本使用的是最新接口(V3接口)。

回到正题,看第一部分代码

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

imageType = "BASE64"

赋值中的内容已经把这两个变量标识的十分清楚了,image的作用无非就是存储图像数据,V3接口中,百度云提供了三种图片类型供用户选择



可以看得到,image参数的类型是String,说明中明确指出了,你上传数据的方式是根据参数image_type参数来决定的

image_type提供了三种类型,分别是①BASE64 ②URL③FACE_TOKEN

BASE64:图片的base64值,base64编码后的图片数据,需urlencode,编码后的图片大小不超过2M;

URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长)

FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个

相对来说 BASE64 类型的用的是最多的,最后一种类型。。。没用过

就难易程度来说,肯定是URL方式最容易了,你可以直接填写一个在线图片链接,比如http://youboyu.cn/wp-content/uploads/2018/08/eee.jpg 这样

啧啧 不会有人告我吧。。。。害怕害怕

就代码示例我们可以了解到imageType参数中传递的是图片上传的类型,若使用BASE64类型就填写”BASE64” ,是URL就填写”URL”,这些点还是挺明确的

来来来,看下一块代码,上一部分代码我们已经将我们所需要的值传递给了参数,接下来我们就可以向百度云的服务器post请求,get数据了

对于“人脸检测”功能来说,你可以带额外参数地向服务器进行请求,也可以不带参数,直接将image和image_type两个参数提交请求

不带任何额外参数的

""" 调用人脸检测 """
client.detect(image, imageType);

需要带额外参数的

""" 如果有可选参数 """
options = {}
options["face_field"] = "age"
options["max_face_num"] = 2
options["face_type"] = "LIVE"

""" 带参数调用人脸检测 """
client.detect(image, imageType, options)

可以观察到client.detect()这个函数即为面部检测函数,内部可填入三个参数,image,imageType,options。这三个参数你也已经在上面的代码中赋值好了

带额外参数与不带额外参数的代码,无非就是给options参数赋值并将其一同提交服务器。

为了一劳永逸,我们直接来看带参数的



人脸检测 提供三个可选参数 参数文档里以表明,就懒得打出来了

在”face_field”我们可以选择我们需要百度云服务器回传的信息,如年龄(age),美貌评分(beauty),表情(expression)等等

若想选择这些参数也很容易,只需将其所表示的英文名称赋值于options[“face_field”]就可以了,比如我想检测出我上传的图片的人是啥人种,年龄大致多少,性别是啥子,就可以这么写

options["face_field"] = "race,age,gender"

各个可选择的参数的意义。文档中也已表明,大家可以按需求选择。



至于max_face_num 和 face_type 这两个参数大家也可以照葫芦画瓢地选择

就此,我们已经完全的分析完了实例代码,下一篇我们将尝试使用URL类型传输图像参数,实现人脸检测


提一下,本人个人网站www.youboyu.cn 该文章系列也会在那更新哦

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: