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


Posted in PHP onOctober 11, 2009

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

PHP 相关文章推荐
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
php预定义常量
Dec 25 PHP
让PHP支持页面回退的两种方法
Jan 10 PHP
php编写一个简单的路由类
Apr 13 PHP
带密匙的php加密解密示例分享
Jan 29 PHP
PHP防止注入攻击实例分析
Nov 03 PHP
PHP获取当前相对于域名目录的方法
Jun 26 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
详解PHP序列化和反序列化原理
Jan 15 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 PHP
详解PHP设计模式之依赖注入模式
May 25 PHP
PHP 身份验证方面的函数
Oct 11 #PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 #PHP
关于页面优化和伪静态
Oct 11 #PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 #PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 #PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 #PHP
PHP 日期时间函数的高级应用技巧
Oct 10 #PHP
You might like
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
jquery 学习之二 属性(类)
2010/11/25 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
javascript实现下雨效果
2017/03/27 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
python时间日期操作方法实例小结
2020/02/06 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
python爬取youtube视频的示例代码
2021/03/03 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
英智兴达软件测试笔试题
2016/10/12 面试题
高中生活自我鉴定
2014/01/18 职场文书
教育学习自我评价
2014/02/03 职场文书
北京奥运会口号
2014/06/21 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
公司辞职信模板
2015/05/13 职场文书
表彰大会新闻稿
2015/07/17 职场文书
Python 中面向接口编程
2022/05/20 Python