Example #1
0
<?php

require_once 'facepp_sdk.php';
########################
###     example      ###
########################
$facepp = new Facepp();
$facepp->api_key = '{your_key_here}';
$facepp->api_secret = '{your_secret_here}';
#detect local image
$params['img'] = '{image file path}';
$params['attribute'] = 'gender,age,race,smiling,glass,pose';
$response = $facepp->execute('/detection/detect', $params);
print_r($response);
#detect image by url
$params['url'] = 'http://www.faceplusplus.com.cn/wp-content/themes/faceplusplus/assets/img/demo/1.jpg';
$response = $facepp->execute('/detection/detect', $params);
print_r($response);
if ($response['http_code'] == 200) {
    #json decode
    $data = json_decode($response['body'], 1);
    #get face landmark
    foreach ($data['face'] as $face) {
        $response = $facepp->execute('/detection/landmark', array('face_id' => $face['face_id']));
        print_r($response);
    }
    #create person
    $response = $facepp->execute('/person/create', array('person_name' => 'unique_person_name'));
    print_r($response);
    #delete person
    $response = $facepp->execute('/person/delete', array('person_name' => 'unique_person_name'));
 public function async()
 {
     $respons = array('s' => 0);
     import("Org.Net.Faceset");
     import("Org.Net.Facepp");
     $facepp = new \Facepp();
     $faceset = new \Faceset('hehe');
     $data = I("img");
     $arr = array('data:image/jpg;base64,', 'data:image/png;base64,', 'data:image/jpeg;base64,');
     $rand = 'abcdefg';
     $file_name = time() . str_shuffle($rand);
     $data = str_replace($arr, '', $data);
     $img = base64_decode($data);
     $handle = file_put_contents("./wpic2/" . $file_name . ".jpg", $img);
     $size = filesize("./wpic2/" . $file_name . ".jpg");
     if ($size > 1024 * 1024 * 5) {
         $respons['s'] = 2;
         $respons['error'] = "图片太大了,不能超过5M";
         echo json_encode($respons);
         die;
     }
     if ($size > 1024 * 1024) {
         $image = new \Think\Image();
         $image->open("./wpic2/" . $file_name . ".jpg");
         $image->thumb(800, 800, \Think\Image::IMAGE_THUMB_FILLED)->save("./wpic2/" . $file_name . ".jpg");
     }
     $imageins = M('image');
     if ($handle) {
         $params['img'] = $_SERVER['DOCUMENT_ROOT'] . "/wpic2/{$file_name}.jpg";
         $params['attribute'] = 'gender,age,race,smiling';
         $rep = $facepp->execute('/detection/detect', $params);
         if (empty($rep['body'])) {
             $respons['s'] = 1;
             $respons['error'] = "图像无法识别";
             echo json_encode($respons);
             die;
         }
         $rs = json_decode($rep['body']);
         /*foreach($rs->face as $k=>$v){
                         $data = array(
                             'face_id' => $v->face_id,
                             'img_id' => $rs->img_id,
                             //'url' => $rs->url,
                             'pic_name' => $file_name.".jpg",
                         );
                         //写入数据库
                         $imageins->add($data);
         
         
         
                     }*/
         $fres = $faceset->search($rs->face[0]->face_id, 1);
     }
     $fres = json_decode($fres['body']);
     //print_r($fres->candidate);
     $fid = $fres->candidate[0]->face_id;
     $similarity = $fres->candidate[0]->similarity;
     $data = $imageins->where("face_id='{$fid}'")->find();
     $respons['img'] = $data['pic_name'];
     $respons['similarity'] = $similarity;
     echo json_encode($respons);
     // $facepp->execute('',array());
     //echo json_encode($rep);
 }