1. 程式人生 > >基於 facec++ Compare API 的人臉比對【張景航作業報告】

基於 facec++ Compare API 的人臉比對【張景航作業報告】

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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <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等語言有初步的認識,學會了簡單的呼叫介面,實現了一臉懵逼向小白的進化。雖然說是站在巨人的肩膀上,但是心中還是有著滿滿的成就感。