黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

[轉(zhuǎn)]基于OpenCV的PHP圖像人臉識(shí)別技術(shù)

系統(tǒng) 3618 0

本文所介紹的技術(shù)不是原創(chuàng),而是從一個(gè)叫Robert Eisele的德國人那里學(xué)習(xí)來的。他寫了一個(gè)PHP擴(kuò)展openCV,只封裝了兩個(gè)函數(shù),叫face_detect和face_count。 openCV是一個(gè)開源的用C/C++開發(fā)的計(jì)算機(jī)圖形圖像庫,非常強(qiáng)大,研究資料很齊全。本文重點(diǎn)是介紹如何使用php來調(diào)用其中的局部的功能。人臉偵查技術(shù)只是openCV一個(gè)應(yīng)用分支。

OpenCV安裝之前必須依賴的包:(請(qǐng)先安裝好)

pkgconfig

libpng

zlib

libjpeg

libtiff

python

1.安裝
從源代碼編譯成一個(gè)動(dòng)態(tài)的so文件。

1.1.安裝 OpenCV (OpenCV 1.0.0)
下載地址:http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16948

#tar xvzf OpenCV-1.0.0.tar.gz
#cd opencv-1.0.0
#./configure
#make
#make install
#make check (檢查是否安裝全部正確)

提示: 不要指定安裝路徑,否則后面編譯facedetect會(huì)找不到OpenCV的路徑。


1.2 安裝facedetect
下載地址http://www.xarg.org/download/facedetect-1.0.0.tar.gz

#tar xzvf facedetect-1.0.0.tar.gz
#cd facedetect-1.0.0
#phpize && ./configure && make && make install


編譯完之后會(huì)提示facedetect.so 文件所在的位置。

最后確認(rèn)在php.ini加入
extension=facedetect.so,重啟apache.

2.函數(shù)使用
在phpinfo()里檢查是否有facedetect這個(gè)模塊。
從openCV源代碼/data/haarcascades/里頭取出所有xml文件放在php的執(zhí)行目錄下

  1. //檢查有多少個(gè)臉型
  2. var_dump(face_count( 'party.jpeg' ,haarcascade_frontalface_alt.xml'));
  3. //返回臉型在圖片中的位置參數(shù),多個(gè)則返回?cái)?shù)組
  4. $arr =face_detect( 'party.jpeg' ,haarcascade_frontalface_alt2.xml');
  5. print_r( $arr );



3.應(yīng)用
結(jié)合imagick可以將圖片做一下應(yīng)用。因?yàn)?face_detect只返回一個(gè)矩形參數(shù),包含x,y坐標(biāo)和w,h長寬參數(shù)。下面是我的一個(gè)應(yīng)用demo

imagick 擴(kuò)展需要安裝 ImageMagick 和 imagick 擴(kuò)展,請(qǐng)參考:

ImageMagick官網(wǎng): http://www.imagemagick.org

imagick擴(kuò)展下載: http://pecl.php.net/package/imagick

  1. <?php
  2. if ( $_FILES ){
  3. $img = $_FILES [ 'pic' ][ 'tmp_name' ];
  4. $arr =face_detect( $img , 'haarcascade_frontalface_alt2.xml' );
  5. //$arr1=face_detect($img,'haarcascade_frontalface_alt_tree.xml');
  6. if ( is_array ( $arr1 )) $all = array_merge ( $arr , $arr1 );
  7. else $all = $arr ;
  8. $im = new Imagick( $img );
  9. //$draw=newImagickDraw();
  10. //$borderColor=newImagickPixel('red');
  11. //$draw->setFillAlpha(0.0);
  12. //$draw->setStrokeColor($borderColor);
  13. //$draw->setStrokeWidth(1);
  14. if ( is_array ( $all )){
  15. foreach ( $all as $v ){
  16. $im_cl = $im ->clone();
  17. $im_cl ->cropImage( $v [ 'w' ], $v [ 'h' ], $v [ 'x' ], $v [ 'y' ]);
  18. $im_cl ->swirlImage(60);
  19. $im ->compositeImage( $im_cl ,Imagick::COMPOSITE_OVER, $v [ 'x' ], $v [ 'y' ]);
  20. //$draw->rectangle($v['x'],$v['y'],$v['x']+$v['w'],$v['y']+$v['h']);
  21. //$im->drawimage($draw);
  22. }
  23. }
  24. header( "Content-Type:image/png" );
  25. echo $im ;
  26. } else {
  27. ?>
  28. <metahttp-equiv= "Content-Type" content= "text/html;charset=utf-8" />
  29. <formmethod= "POST" enctype= "multipart/form-data" >
  30. 人臉識(shí)別試驗(yàn):只支持jpg,png<br>
  31. 上傳一張圖片<inputtype= "file" name= "pic" >
  32. <inputtype= "submit" value= "upload" >
  33. </form>
  34. <?
  35. }
  36. ?>






參考資料:
http://www.xarg.org/2008/07/face-detection-with-php/
http://www.opencv.org.cn/index.php/首頁
http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/index.html

以上文章來源: http://blog.csdn.net/zhongmao/archive/2009/01/11/3753377.aspx

使用測(cè)試

安裝測(cè)試了一下,如果越是高清的大圖,效果越明顯,感覺不錯(cuò)

一 安裝
1 安裝opencv
http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16948
下載opencv-1.1pre1.tar.gz(1.0版本沒有安裝成功)
#tar zxvf opencv-1.1pre1.tar.gz
# cd opencv-1.1.0/
# /.configure
#make
#make install

2 安裝facedetect
#wget http://www.xarg.org/download/facedetect-1.0.0.tar.gz
#tar xzvf facedetect-1.0.0.tar.gz
#cd facedetect-1.0.0
#/usr/local/php/bin/phpize
#./configure –with-php-config=/usr/local/php/bin/php-config
#make
#make install

#vi /usr/local/php/etc/php.ini
// 增加extension=facedetect.so

3 重啟web服務(wù)器,在phpinfo()里查看是否有facedetect這個(gè)模塊

二 簡單測(cè)試
從openCV源代碼/data/haarcascades/里頭取出所有xml文件放在php的執(zhí)行目錄下

//檢查有多少個(gè)臉型
var_dump(face_count(’test.jpg’, ‘haarcascade_frontalface_alt.xml’));

//返回臉型在圖片中的位置參數(shù),多個(gè)則返回?cái)?shù)組
$arr = face_detect(’test.jpg’, ‘haarcascade_frontalface_alt2.xml’);

print_r($arr);

三 測(cè)試代碼
<?
if(empty($_POST)) {
?>
<form name=”form” id=”form” method=”POST” enctype=”multipart/form-data” action=”">
上傳圖片:<input type=”file” name=”pic” size=”20″><input type=”submit” name=”submit” value=”上傳”>
</form>
<?
} else {
$img = $_FILES['pic']['tmp_name'];

$arr = face_detect($img, ‘haarcascade_frontalface_alt2.xml’);

if(is_array($arr1)) {
$all = array_merge($arr,$arr1);
} else {
$all = $arr;
}
$allowtype = 1;
switch($_FILES['pic']['type']){
case ‘image/pjpeg’: $fix_pic.= “.jpg”; break;
case ‘image/jpeg’: $fix_pic.= “.jpg”; break;
case ‘image/x-png’: $fix_pic.= “.png”; break;
case ‘image/png’: $fix_pic.= “.png”; break;
default: $allowtype = 0; break;
}

if($allowtype == 0) {
echo “文件格式錯(cuò)誤:只運(yùn)行jpg或png圖片”;exit;
}

$tmp_name = time();
$src_pic = “/usr/website/nginx/face/haarcascades/upload/”.$tmp_name.$fix_pic;
move_uploaded_file($_FILES['pic']['tmp_name'], $src_pic);

$pic_src = $pic_dst = array();
if(is_array($all)){
foreach ($all as $k => $v){
$tmp_name_new = $tmp_name.”_”.$k;
$x = $v['x'];
$y = $v['y'];
$w = $v['w'];
$h = $v['h'];
$dst_pic = “/usr/website/nginx/face/haarcascades/upload/”.$tmp_name_new.$fix_pic;
// echo $src_pic.”<br>”;
// echo $dst_pic.”<br>”;
$cmd = “/usr/bin/convert -crop “.$w.”x”.$h.”+”.$x.”+”.$y.” “.$src_pic.” “.$dst_pic;
// echo $cmd.”<br>”;
echo `$cmd`;
$pic_src[] = “upload/”.$tmp_name.$fix_pic;
$pic_dst[] = “upload/”.$tmp_name_new.$fix_pic;
}
}

foreach($pic_src as $key => $value) {
echo “<img src=’”.$value.”‘> => <img src=’”.$pic_dst[$key].”‘><br>”;
}
}
?>

以上文章來源: http://www.sysbus.com/?p=124

[轉(zhuǎn)]基于OpenCV的PHP圖像人臉識(shí)別技術(shù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論