[API] face.com 人臉辨識

Standard

今天早上看到了一則新聞 臉部辨識軟體 人肉搜索快準,主要是在說 face.com 這個網站推出了厲害的人臉辨識技術。連去它們的網站看了一下,有提供 API 耶 .. 也看了一些範例,它還可以辨識出多張臉、眼睛、鼻子等等。

有提供 PHP、AS3、C# 等語言的 library ~ 所以就抽空玩了一下~~

這是原圖

(為保護當事人,以黑槓做處理…並不是他們做了什麼壞事 XD)

註:不過很奇妙的是,盧廣仲竟然辨識不出來!電腦知道是假的?!

這是 Flash 版的範例 ~

把臉上加上一些線條,像小丑那樣 ..

CODE 來自:http://wonderfl.net/c/36Az
這邊我就不再重複列出囉 .. 請至上方網址取得 source code 後存成 FlashTest.as 再自行建立利用吧,也記得自行去下載 JSON 相關的類別喔 ..

再來是 PHP 版的,我的目的是把 OPEN醬 的圖合成到可以被辨識為人臉的臉上。

成果:

下面是我寫的 CODE,參考看看囉 ..

<?php
  require_once("FaceRestClient.php"); //這個library請自行去face.com網站上下載
  $face = new FaceRestClient("填入KEY", "填入SECRET");
  $result = $face->faces_detect("http://欲辨識照片的URL");

  header("content-type:image/jpeg"); // 送出JPG的header
  $source1=imagecreatefrompng("open.png");
  $dest=imagecreatetruecolor(500,375);
  $dest =ImageCreateFromJPEG('檔名.jpg'); // 利用ImageCreateFromJPEG函數讀取原始圖片
  imagealphablending($source1,FALSE);
  $targetImage=imagesavealpha($source1,TRUE);

  // ==========================
  $width = $result->{'photos'}[0]->{'width'};$height = $result->{'photos'}[0]->{'height'};$tags = $result->{'photos'}[0]->{'tags'};
  foreach($tags as $key=>$value) {
    $face_center[$key]['x'] = $value->{'center'}->{'x'} * $width/100;
    $face_center[$key]['y'] = $value->{'center'}->{'y'} * $height/100;
  }

  for ($i=0;$i<=count($face_center)-1;$i++){
    // 利用imagecopy函數複製原始圖片到建立的新圖片上
    imagecopy($dest,$source1,($face_center[$i]['x']-75),($face_center[$i]['y']-55),0,0,151,110); 
  }

  Imagepng($dest); // 輸出圖片
  imagedestroy($source1);
  imagedestroy($dest); //釋放之前暫存圖片的記憶體
?>

這就是 face.com 的初步測試,它網站上的範例還有幫既有照片換臉,臉是從 facebook 好友中選擇照片(聯外通取得),滿有趣的,有空再寫一個看看。

ps.似乎有限制每日最高使用量 :/
ps2.不知道這個能否做到即時移動 (in Flash)
ps3我沒有,其實上面兩個也沒有 .. 好吧 這是老梗 不好笑

2 thoughts on “[API] face.com 人臉辨識

  1. 最近我跟同學正在研究人臉辨識這塊

    想說將他的辨識功能結合到我們網站上,已經有下載他們的API了(語言是C#)
    可是不知從何下手

    能否給點意見或是提示呢? 非常感謝您的幫忙!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *