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

时间:2024-11-15 08:26:37

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

工具/原料

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

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

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,以上供大家参考。

© 手抄报圈