人臉識別FACE基於百度PHP-SDK

up.php

上傳圖片並重命名保存至img文件夾

調用jpg.exe(傳入路徑,處理大容量圖片,縮小文件大小)

跳轉人臉識別界面。

<?php
//設置文件路徑
header('Content-Type:text/html;charset=GB2312');
$wenjiansrc="img/";
//設置文件名
error_reporting(0);
 
?>
<?php

if ($_POST['fatie'])
{
	if(is_uploaded_file($_FILES['sfile']['tmp_name']))
{
//初始化上傳數據
$file=$_FILES["sfile"];
$name=$file["name"];
$type=$file["type"];
$tmp_name=$file["tmp_name"];
$size=$file["size"];
$error=$file["error"];
 
switch ($type){ 
case 'image/pjpeg':$oktype=true; 
break;  
case 'image/jpeg':$oktype=true; 
break; 
case 'image/gif':$oktype=true; 
break; 
case 'image/png':$oktype=true; 
break; 

case 'text/plain':$oktype=true; 
break; 
case 'application/octet-stream':$oktype=true; 
break; 
case 'application/x-shockwave-flash':$oktype=true; 
break; 
}
 
if($oktype)
{move_uploaded_file($tmp_name,$wenjiansrc.$name);//移動文件 
$date=date('Ymdhis');
$filetype = pathinfo($name, PATHINFO_EXTENSION);//獲取後綴名
$newpath=$date.'.'.$filetype;
$destination=$wenjiansrc.$name; 
rename($destination,$wenjiansrc.$newpath);//重命名
echo  $wenjiansrc.$newpath;
//上傳圖片並跳轉界面
sleep(10);
exec('start C:\wamp\www\scb\jpg.exe '.$wenjiansrc.$newpath);
sleep(10);
echo "<meta http-equiv='refresh' content='5;url=http://106.12.13.133/scb/wj.php?filename=".$wenjiansrc.$newpath."'>";
}
}
 

 
 
}
?>

 
<form action="" method="post"name="myform" enctype="multipart/form-data"onsubmit="">
 <input type="file" name="sfile" />
 
<input type="submit" name="fatie" value="確認上傳"/></span></p>

</form>
 
</body>
</html>

wj.php

調用人臉識別,人臉檢測接口

解析數據。調用php gd庫繪製71個臉部特徵點,和任務信息文本

<?php
header('Content-Type:text/html;charset=GB2312');
//error_reporting(0);
require_once 'AipFace.php';

// 你的 APPID AK SK
const APP_ID = '11635999';
const API_KEY = '7Ci11DT5VmibtTvsivvw5LG1';
const SECRET_KEY = 'qHKu29rrtKLkIfnsL1oDsfyDvdO7vST6';

$client = new AipFace(APP_ID, API_KEY, SECRET_KEY);


$image ="http://106.12.13.133/scb/".$_GET['filename'];
//$image = file_get_contents('1.jpg');
$imageType="URL";
// 調用人臉檢測
//$client->detect($image, $imageType);

// 如果有可選參數
$options = array();
$options["face_field"] = "beauty,glasses,landmark,gender,expression,age";
$options["max_face_num"] = 2;
$options["face_type"] = "LIVE";

// 帶參數調用人臉檢測
//print_r($client->detect($image, $imageType, $options));
 $SSS=$client->detect($image, $imageType, $options);
  //print("<pre>"); // 格式化輸出數組 
 // print_r($SSS); 
 // print("</pre>"); 
//echo $SSS['result']['face_list'][0]['landmark'][0]['x'];
/*
$str="";
for($x=0; $x<=71; $x++)
{
$str=$str."\r\n[".$x."]";
$str=$str."\r\nx=".floor($SSS['result']['face_list'][0]['landmark72'][$x]['x']);
$str=$str."\r\ny=".floor($SSS['result']['face_list'][0]['landmark72'][$x]['y']);

}
//寫出ini文件
file_put_contents("test.ini",$str);
*/

//調用gdi
//$im=imagecreatetruecolor(800,600); 
 $im = imagecreatefromjpeg($_GET['filename']); 
//默認是黑色背景,修改爲白色  

 //1.創建畫布,默認的背景是黑色  
$red=imagecolorallocate($im,255,0,0); 
$black=imagecolorallocate($im,0,0,0); 
$lv=imagecolorallocate($im,0,238,51); 
$lan=imagecolorallocate($im,150,152,183); 

//imagerectangle($im,1,51,111,511,$red); 



for($i=0; $i<=71; $i++)
{ 
$x=floor($SSS['result']['face_list'][0]['landmark72'][$i]['x']);
$y=floor($SSS['result']['face_list'][0]['landmark72'][$i]['y']);
imagerectangle($im,$x,$y,$x+5,$y+5,$lv); 
//imagerectangle($im,1,51,111,511,$red); 
}
//繪製信息面板male男female女
$text1=$SSS['result']['face_list'][0]['gender']['type'];
//none無表情smile 微笑 laugh 大笑
$text2=$SSS['result']['face_list'][0]['expression']['type'];
$text3=$SSS['result']['face_list'][0]['beauty'];
$text4=$SSS['result']['face_list'][0]['age'];
$text5=$SSS['result']['face_list'][0]['glasses']['type'];
 
if($text1=='male')
{
//imagestring($im,16,10,50,"Gender:".$text1,$lan);
imagefttext($im, 13, 0, 10, 50, $lan, './a.ttf',iconv('GB2312','UTF-8','性別:♂男'));

}
else{//imagestring($im,16,10,50,"Gender:".$text1,$red);
imagefttext($im, 13, 0, 10, 50, $red, './a.ttf',iconv('GB2312','UTF-8','性別:♀女'));

}

 //imagestring($im,16,10,70,"表情:".$text2,$red);
imagefttext($im, 13, 0, 10, 70, $red, './a.ttf',iconv('GB2312','UTF-8','表情:'.$text2));

// imagestring($im,16,10,90,"顏值:".$text3,$red);
imagefttext($im, 13, 0, 10, 90, $red, './a.ttf',iconv('GB2312','UTF-8','顏值:'.$text3));

// imagestring($im,16,10,110,"年齡".$text4,$red);
imagefttext($im, 13, 0, 10, 110, $red, './a.ttf',iconv('GB2312','UTF-8','年齡:'.$text4));

 //imagestring($im,16,10,130,"眼鏡:".$text5,$red);
imagefttext($im, 13, 0, 10, 130, $red, './a.ttf',iconv('GB2312','UTF-8','眼鏡:'.$text5));

//imagefttext($im, 13, 0, 10, 55, $red, './a.ttf',iconv('GB2312','UTF-8','中文水印'));
//圖像,size,角度,x,y,顏色,字體

header("content-type:image/png");  
  imagepng($im);
  imagedestory($im); 


?>

代碼包:https://pan.baidu.com/s/1Y31q3lRsxDN2uepAavLCAA

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章