当前位置:酷酷问答>生活百科>怎样用人脸识别技术实现明星脸检测

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

2024-11-10 14:34:34 编辑:zane 浏览量:508

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

的有关信息介绍如下:

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

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

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

选择“相似搜索”功能体验,上传一张你的靓照,系统会自动列出最像的10位明星,并且还有相似度分值哦~

小编传了一张自己的靓照,矮油,朴信惠、蒋欣、李小冉神马的……这就是伦家颜(chou)值(bu)爆(yao)表(lian)的证据呀!!!

当然啦,对于无所不能的程序猿来说,自己动手开发神马的一个才是硬道理呀。

首先,你要有一个EyeKey的开发者账号,并且创建一个华丽丽的应用。详细攻略请参见小编的另一篇经验贴——《免费人脸识别API接口如何接入使用》

8免费人脸识别API接口如何接入使用

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

检测人脸

选取明星照片,最好是正脸照片,图片不要超过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(), En

coding.Default);

//这里获取到检测结果在标签上显示出来

lblResult.Text = reader.ReadToEnd();

reader.Close();

接口调用过程中注意图片要以base64编码方式上传,返回的face_id需要记住。

创建people

利用刚才接口返回的face_id,在自己的应用中创建一个people,把face_id绑定到这个people上。这里需要调用 http://api.eyekey.com/People/people_create 接口,调用时我们为people_name赋值, people_name=范冰冰。

如果事先收集过很多的明星脸,那么可以对其他明星重复以上两步(检测人脸和创建people)。

创建明星人群

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

通过以上三步,我们初步建立了自己的明星脸库,接下来就是利用这个库完成相似明星脸的搜索了。

随便找一张人脸正面照,调用人脸检测的接口 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 就是返回当前明星名字。

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

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/life/117342.html
热门文章