365体育备用网址报道24.2.3代码实现_365体育备用网址官网资讯

在基础接口中,我们曾讲到,当用户发送澳门k7娱乐场给公众账号的时刻,微信公众账号将收到一个澳门k7娱乐场消息,该消息中包含PicUrl和MediaId两项参数,分别表示澳门k7娱乐场链接和澳门k7娱乐场消息赤壁娱乐城id。
在这里,将直接把澳门k7娱乐场链接地址提交给Face++来处置。
Face++的类定义如下:

 1 class FacePlusPlus
 2 {
 3     private $api_server_url;
 4     private $auth_params;
 5 
 6     public function __construct()
 7     {
 8         $this->api_server_url = "http://apicn.faceplusplus.com/";
 9         $this->auth_params = array();
10            $this->auth_params['api_key'] = "";
11            $this->auth_params['api_secret'] = "";
12     }
13 
14     //人脸检测
15     public function face_detect($urls = null)
16     {
17         return $this->call("detection/detect", array("url"=>$urls));
18     }
19 
20     //人脸比较
21     public function recognition_compare($face_id1, $face_id2)
22     {
23         return $this->call("recognition/compare", array("face_id1"=>$face_id1, "face_id2"=>$face_id2));
24     }
25 
26     protected function call($method, $params = array())
27     {
28         $url = $this->api_server_url."$method?".http_build_query(array_merge($this->auth_params, $params));
29         $ch = curl_init();
30         curl_setopt($ch, CURLOPT_URL, $url);
31         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
32          $data = curl_exec($ch);
33         curl_close($ch);
34         $result = json_decode($data);
35         return $result;
36     }
37 }

上述代码定义了FacePlusPlus的类,在类中定义了2个成员$api_server_url和$auth_params,以及3个方法face_detect(),recognition_compare(),call();前两个方法分别定义了人脸检测接口和人脸比较接口的实现。
第3行~第4行:定义了2个成员变量$api_server_url和$auth_params。
第6行~第12行:类的构造函数,在构造函数中给成员属性定义了值,包括成员包括接口服务器的url、API Key和API Secret。
第14行~第18行:定义人脸检测接口的方法。
第20行~第24行:定义人脸比较接口的方法。
第26行~第36行:定义接口调用函数,内部使用cURL实现。
猎取澳门k7娱乐场识别结果的代码如下所示:

 1 function getImageInfo($url)
 2 {
 3     $faceObj = new FacePlusPlus();
 4     $detect = $faceObj->face_detect($url);
 5     $numbers = isset($detect->face)? count($detect->face):0;
 6     if (($detect->face[0]->attribute->gender->value != $detect->face[1]->attribute->gender->value) && $numbers == 2){
 7         $compare = $faceObj->recognition_compare($detect->face[0]->face_id,$detect->face[1]->face_id);
 8         $result = getCoupleComment($compare->component_similarity->eye, $compare->component_similarity->mouth, $compare->component_similarity->nose, $compare->component_similarity->eyebrow, $compare->similarity);
 9         return $result;
10     }else{
11         return "似乎不是一男一女,无法测验夫妻相";
12     }
13 }

在上述代码中,先使用人脸检测接口获得澳门k7娱乐场的识别结果,再推断结果中是否得到2个性别不同的人,如果返回结果不是2个人脸且性别不同,则提示无法测验夫妻相,否则将结果中的face_id进行比较,获得相似度的结果。
获得结果以后,我们需要对结果进行加工,以让功能更贴近实际情况,相应的代码如下:

 1 function getCoupleComment($eye, $mouth, $nose, $eyebrow, $similarity)
 2 {
 3     $index = round(($eye + $mouth + $nose + $eyebrow) / 4);
 4     if ($index < 40){
 5         $comment = "花好月圆";
 6     }else if ($index < 50){
 7         $comment = "相濡以沫";
 8     }else if ($index < 60){
 9         $comment = "情真意切";
10     }else if ($index < 70){
11         $comment = "郎才女貌";
12     }else if ($index < 80){
13         $comment  = "心心相印";
14     }else if ($index < 90){
15         $comment  = "浓情蜜意";
16     }else{
17         $comment = "海盟山誓";
18     }
19     return "【夫妻相指数】\n得分:".$index."\n评语:".$comment;
20 }

上述代码中,将猎取眼睛、嘴巴、眉毛、鼻子4个部分的相似值的平均值作为最终相似指数,并且依据指数大小,添加体现夫妻联系的评语。
这样,借助强大的Face++人脸识别接口,一个夫妻相功能就实现了。效果如图24-5所示。图中人脸通过处置。

图24-5 夫妻相测验

------分隔线----------------------------

公布评论 (108人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换澳门k7娱乐场
最新评论