基於 facec++ Compare API 的人臉比對【張景航作業報告】
阿新 • • 發佈:2018-11-06
1. 功能:輸入兩張圖片的圖片地址呼叫 face++ Compare API進行比對,得出相似度。
2. 缺點:未實現圖片地址合法性的檢測,且暫時不支援本地上傳圖片(只能先得到本地圖片的外鏈)。
3.主要組成:系統分為三個部分,分別是歡迎介面(z1),後端處理部分(z2),以及圖片地址的提示部分(z3)。
4.介面展示:
圖4.1 歡迎介面
圖4.2 比較結果介面
圖4.3 提示介面
5. 各部分程式碼:
z1.php:
<html> <head> <meta charset="utf-8"> <title>人臉比對</title> </head> <center> <body> <video autoplay muted loop> <source src="face.mp4"> <style> body{ margin:0; } video { position: fixed; right: 0; bottom: 0; min-width:100% ; min-height: 100%; width: auto; height: auto; z-index: -9999; } </style> </video> <br><br><br><br><br><br><br><br> <h1><font size="10" >歡迎進入人臉比對介面</font></h1> <font size="5">此功能基於 <a href="https://www.megvii.com/">Face++</a> Compare API 實現</font> <br><br><br><br><br><br><br><br> <form action="z2.php" method="post"> <font size="5" >請輸入第一張圖片的<a href="z3.php">圖片地址</a>:</font><br><br><input type="text" name="p1" style="width:300px;"><br><br> <font size="5" >請輸入第二張圖片的<a href="z3.php">圖片地址</a>:</font><br><br><input type="text" name="p2" style="width:300px;"><br><br> <input type="submit" value="開始比對" style="color: blue"> <input type="reset" value="重新輸入" style="color: blue"><br> </body> </center> </html>
z2.php:
<body style="background-image: url(backgroud.png);background-size:cover"</body>
<html>
<head>
<meta charset="utf-8">
<title>結果頁面</title>
</head>
<center>
<body>
<font color="#ff8c00" size="10">對比結果如下:</font>
<?php
$url1=$_POST["p1"];
$url2=$_POST["p2"];
if($url1==""||$url2=="") {
echo "<font size='10' color='#dc143c'>","ERROR!檢測到的圖片資訊不完整!";
// <meta http-equiv="refresh" content="10; url='z1.php'">
//<a href='z1,php'>點選跳轉</a>;
}
else {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-cn.faceplusplus.com/facepp/v3/compare",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array('api_key'=>"iqjWBJGbBkL88VXqNqUYaitc5ihekDr6",'api_secret'=>"iNpO5QCiVlSKdpaMCT47noBwVpLDzpo5",
'image_url1'=>$url1,'image_url2'=>$url2),
CURLOPT_HTTPHEADER => array("cache-control: no-cache",),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
// if ($err) {
// echo "cURL Error #:" . $err;
// } else {
$arr=json_decode($response,true);
echo "<font size='10' color='#ff8c00' >","兩張圖片的相似度為";
echo "<font size='10' color='#dc143c'>",$arr["confidence"];echo "%";echo "<br>";
echo "<img src=$url1 width=\"300\" height=\"500\">";echo " ";
echo "<img src=$url2 width=\"300\" height=\"500\">";
// }
}
?>
</body>
<center>
</html>
<!--<body>-->
<!--<script>-->
<!-- var t=10;//設定跳轉的時間-->
<!-- setInterval("refer()",1000); //啟動1秒定時-->
<!-- function refer(){-->
<!-- if(t==0){-->
<!-- location="http://www.baidu.com"; //#設定跳轉的連結地址-->
<!-- }-->
<!-- document.getElementById('show').innerHTML=""+t+"秒後跳轉到百度"; // 顯示倒計時-->
<!-- t--; // 計數器遞減-->
<!-- }-->
<!--</script>-->
<!--<span id="show"></span>-->
<!--</body>-->
<!--</html>-->
z3.php:
<title>圖片地址teach</title>
<center>
<p><font color="#d2691e" size="6">滑鼠右鍵點選圖片,選擇“複製圖片地址”</p><br>
<p><font color="#d2691e" size="6">本地圖片請先上傳到<a href="http://www.tietuku.com/contact">貼相簿</a>,(其他能產生外鏈的網站也可以)以獲得圖片地址</p><br>
<img src="teach.png" alt="圖片地址" height="800" width="500" />
</center>
6. 總結
第一次接觸網頁,對PHP,HTML等語言有初步的認識,學會了簡單的呼叫介面,實現了一臉懵逼向小白的進化。雖然說是站在巨人的肩膀上,但是心中還是有著滿滿的成就感。