人脸识别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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值