基于OpenCV的PHP图像人脸识别技术_php技巧

openCV是一个开源的用C/C++开发的计算机图形图像库,非常强大,研究资料很齐全。本文重点是介绍如何使用php来调用其中的局部的功能。人脸侦查技术只是openCV一个应用分支。
1.安装
从源代码编译成一个动态的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会找不到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
编译完之后会提示facedetect.so 文件所在的位置。
最后确认在php.ini加入
extension=facedetect.so,重启apache.
2.函数使用
在phpinfo()里检查是否有facedetect这个模块。
从openCV源代码/data/haarcascades/里头取出所有xml文件放在php的执行目录下
//检查有多少个脸型
var_dump(face_count(‘party.jpeg', haarcascade_frontalface_alt.xml'));
//返回脸型在图片中的位置参数,多个则返回数组
$arr = face_detect(‘party.jpeg', haarcascade_frontalface_alt2.xml');
print_r($arr);
3.应用
结合imagick可以将图片做一下应用。因为 face_detect只返回一个矩形参数,包含x,y坐标和w,h长宽参数。下面是我的一个应用demo

复制代码 代码如下:

<?php
if($_FILES){
$img = $_FILES['pic']['tmp_name'];
$arr = face_detect($img, ‘haarcascade_frontalface_alt2.xml');
//$arr1 = face_detect($img, 'haarcascade_frontalface_alt_tree.xml');
if(is_array($arr1)) $all =array_merge($arr,$arr1);
else $all = $arr;
$im = new Imagick($img);
//$draw =new ImagickDraw();
//$borderColor = new ImagickPixel('red');
//$draw->setFillAlpha(0.0);
//$draw->setStrokeColor ($borderColor);
//$draw->setStrokeWidth (1);
if(is_array($all)){
foreach ($all as $v){
$im_cl = $im->clone();
$im_cl->cropImage($v['w'],$v['h'],$v['x'],$v['y']);
$im_cl->swirlImage(60);
$im->compositeImage( $im_cl, Imagick::COMPOSITE_OVER , $v['x'], $v['y'] );
//$draw->rectangle($v['x'],$v['y'],$v['x']+$v['w'],$v['y']+$v['h']);
//$im->drawimage($draw);
}
}
header( “Content-Type: image/png” );
echo $im;
}else{
?>
<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8″ />
<form method=“POST” enctype=“multipart/form-data”>
人脸识别试验:只支持jpg,png<br>
上传一张图片 <input type=“file” name=“pic”>
<input type=“submit” value=“upload”>
</form>
<?
}
?>

参考资料:
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

时间: 2024-10-29 12:00:23

基于OpenCV的PHP图像人脸识别技术_php技巧的相关文章

C#实现基于ffmpeg加虹软的人脸识别

原文:C#实现基于ffmpeg加虹软的人脸识别 关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenCV和商业库虹软(中小型规模免费). 百度的人脸识别,才上线不久,文档不太完善,之前联系百度,官方也给了我基于Android的Example,但是不太符合我的需求,一是照片需要上传至百度服务器(这个是最大的问题),其次,人脸的定位需要自行去实现(捕获到人脸

JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js_javascript技巧

我一直对人工智能识别技术非常感兴趣,因为我无法想象这究竟是一种什么样的算法,什么样的分析过程.无论是声音识别.人脸识别或其它种识别,人们的外貌.说话的方式都是如此不同,一种图片你可以用不同的方式.从不同的角度拍摄,我不能理解这些识别技术是如何做到的.有个叫做"面具"的游戏也使用了这种识别技术,我想对于脸部识别技术也应该研究一下.Facebook使用了这种技术,在手势控制中也能用到它,所以,你网站上也会有应用的地方. 我找到的一个可以用于人脸识别的JavaScript程序包是Face D

人脸识别技术免费!突然发力的虹软为哪般?

如今人工智能逐步深入我们的生活,人脸识别技术尤其突出,刷脸门禁.刷脸开户.刷脸应用已然不是什么新鲜事儿了. 这也充分证明人脸识别技术应用已步入成熟期,而如何让所有想要该技术的中小企业都能低成本无门槛的使用成为应用最关键的一道门槛. 这不最近虹软突然发力,宣布免费提供人脸识别技术供开发者使用,而且即使今后的升级也将永远免费.在人工智能领域,没有一家公司像虹软这样让免费如此真实.干净.彻底.毫无疑问,这是一种长期的商业投资.很少有公司有能力并且愿意这样做.虹软一站式成熟的OEM商业模式决定了它可以这

广东医保基金安全监管再创新,推广人脸识别技术;eBay App 上线人工智能图片搜索技术

eBay App 上线人工智能图片搜索技术 Google 早前推出了 Google Lens 应用,是全新的 AI 驱动的图像搜索.用户只需拍摄一些东西,Google 那令人难以置信的高级算法就会尝试找出它是什么,并为您提供搜索结果.eBay 现在已经为其移动应用添加了类似(但不太先进)的功能,目的是为了加速 AI 布局. 用户只需按下应用程序顶部的相机按钮,然后选择新的"图像搜索"选项.经过这个操作之后您就可以拍摄照片,也可以从相册中选择一幅照片.然后,eBay 的机器学习服务器将尝

专访阅面科技童志军:FDDB、LFW双夺冠的人脸识别技术

人工智能领域有很多比赛,近年来,随着领域不断升温,在学术界之外,很多技术创业公司也开始参加各种大赛,来证明自己的技术实力.除了火热的各种机器人比赛之外,在深度学习.机器视觉等领域的算法比赛也逐渐被人关注.「人脸识别」作为机器视觉中重要的应用领域,肯定也少不了.说到人脸识别,首先,先介绍两个老牌的比赛: FDDB FDDB的全称为Face Detection Data Set and Benchmark,是由马萨诸塞大学计算机系维护的一套公开数据库,为来自全世界的研究者提供一个标准的人脸检测评测平

人脸识别技术在十大领域的创新应用

智能化安防技术随着科学技术的发展与进步在二十一世纪第二个十年已迈入了一个全新的领域.近年来,由于反恐和国家安全.社会安全的需要,安防行业的智能化技术也越来越受到重视,而身份识别正是安防的核心问题.在这种大背景下,具有非接触.非侵扰.友好.直观.快速.简便.可扩展性等优点的人脸识别技术在多种生物识别技术中脱颖而出. 本文将从十大领域,分析人脸识别在各行各业的应用方式. 平安城市/社区领域 经济的发展,造成城乡经济水平发展差距大,大量农村人口涌入城市,造成城市人口密集,且流动性大大提高,引发城市交通

当语音图像人脸识别在一起 从云知声说起

中介交易 SEO诊断 淘宝客 云主机 技术大厅 实现单个的语音.语义.人脸.图像识别并不难,难的是用户有场景需要将所有的识别技术结合在一起.如何实现?首先从云知声说起. 4月12日,云知声牵头的"全智能交互联盟"成立,除云知声外,首批进入该联盟的成员还包括语义理解技术公司"哦啦".图像识别技术公司"亮风台".人脸识别技术公司"Face++++". 云知声是国内专注语音识别及语言处理技术对移动互联网公司,为易信.乐视超级电视等产

Win10系统使用人脸识别技术及必备条件

  人脸识别,大家都听说过,但是有点陌生,因为它还没有广泛使用.Win10系统也能使用人脸识别技术,但有条件:具备摄像头的联想电脑和使用联想VeriFace专用软件.如何使用呢? 步骤 1.双击setup.exe安装程序,点击 下一步 开始联想VeriFace 软件安装; 2.仔细阅读联想VeriFace 软件安装协议,如果您同意该协议,点击 接受 继续安装; 3.默认安装到系统盘C盘,点击 下一步 系统开始复制文件; 4.点 完成 ,完成安装. 双击桌面图标打开软件; 点击"启动Verifac

Android 人脸识别技术是如何实现的?

问题描述 Android 人脸识别技术是如何实现的? 我是一名Android 新手,看到小米相册里出现了面孔识别选项,很感兴趣,不知人脸识别技术是怎么实现的?请求大神指点一二 解决方案 http://blog.csdn.net/jesse__zhong/article/details/24889709 解决方案二: Android中人脸识别技术Android中人脸识别技术Android中人脸识别技术