多语言展示
当前在线:1245今日阅读:181今日分享:30

怎样用人脸识别技术实现明星脸检测

我们经常可以看到一些明星脸检测的软件,上传一张照片,然后告诉你长得像哪个明星。这其实是人脸识别中1:N技术的一种应用。本篇经验将告诉大家如何直接在线体验明星脸功能,如何自己开发明星脸应用。
工具/原料
1

电脑一台(如果自己开发请安装开发工具),开发语言不限

2

如自己开发请自备明星数据库一个

3

EyeKey生物识别云平台

自己不开发,就想体验明星脸
1

如果不准备自己开发,只是想在线体验明星脸功能。则只需访问EyeKey生物识别云平台官网 www.eyekey.com。点击技术体验——人脸识别,进入“体验中心”。

2

选择“相似搜索”功能体验,上传一张你的靓照,系统会自动列出最像的10位明星,并且还有相似度分值哦~小编传了一张自己的靓照,矮油,朴信惠、蒋欣、李小冉神马的……这就是伦家颜(chou)值(bu)爆(yao)表(lian)的证据呀!!!

就是要自己开发,看这里!
1

当然啦,对于无所不能的程序猿来说,自己动手开发神马的一个才是硬道理呀。首先,你要有一个EyeKey的开发者账号,并且创建一个华丽丽的应用。详细攻略请参见小编的另一篇经验贴——《免费人脸识别API接口如何接入使用》

2

创建应用成功后,就可以着手开发(要认真看接口文档哦~)。既然是明星脸测试,那么,首先,你得有明星的脸。于是我们需要创建一个明星图片库,方法步骤如下——

3

检测人脸       选取明星照片,最好是正脸照片,图片不要超过3兆,太大会访问接口失败,从中选取一个明星照片,在创建的应用程序中调用 http://api.eyekey.com/face/Check/checking接口,主要代码如下(c#)://这里是提交接口需要的参数,注意img是经过base64编码的string postString = 'app_id=' + appid + '&app_key=' + appkey + '&img=' + HttpUtility.UrlEncode(base64string);                //接口访问地址string url = http://api.eyekey.com/face/Check/checking;byte[] data = Encoding.ASCII.GetBytes(postString);HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);req.Method = 'POST';req.ContentType = 'application/x-www-form-urlencoded';req.ContentLength = data.Length;using (Stream reqStream = req.GetRequestStream()){   //提交数据   reqStream.Write(data, 0, data.Length);}HttpWebResponse res = (HttpWebResponse)req.GetResponse();StreamReader reader = new StreamReader(res.GetResponseStream(), Encoding.Default);               //这里获取到检测结果在标签上显示出来lblResult.Text = reader.ReadToEnd();reader.Close();接口调用过程中注意图片要以base64编码方式上传,返回的face_id需要记住。

4

创建people       利用刚才接口返回的face_id,在自己的应用中创建一个people,把face_id绑定到这个people上。这里需要调用 http://api.eyekey.com/People/people_create 接口,调用时我们为people_name赋值, people_name=范冰冰。如果事先收集过很多的明星脸,那么可以对其他明星重复以上两步(检测人脸和创建people)。

5

创建明星人群       在创建people的时候系统会为创建成功的明星分配people_id,现在调用 http://api.eyekey.com/Crowd/crowd_create 接口把这些people_id都加入到明星群crowd中,为crowd赋值  crowd = starcrowd

6

通过以上三步,我们初步建立了自己的明星脸库,接下来就是利用这个库完成相似明星脸的搜索了。随便找一张人脸正面照,调用人脸检测的接口 http://api.eyekey.com/face/Check/checking,获取到face_id,然后调用 http://api.eyekey.com/face/Match/match_identify 传入刚刚获取的 face_id,之前创建的明星脸人群 starcrowd,接口返回的结果中:similarity是相似度的分数,满分100,分数越高越像;people_id是身份标示,这里可以忽略了;people_name 就是返回当前明星名字。

7

以上就是明星脸应用,即人脸1:N识别应用的思路和步骤,没有详细列出代码和界面,每次的接口调用需要传入最开始创建应用时获取的app_id、app_key,以上供大家参考。

注意事项
1

对于颜值爆表的你来说,一切都不是问题

2

如果觉得经验有用,请点赞;如果有疑问欢迎留言。

3

你也可以加人脸识别技术群153946991,和其他技术牛一起讨论。

推荐信息