基于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 相关文章推荐
PHP 5.0对象模型深度探索之绑定
Sep 05 PHP
mysql 搜索之简单应用
Apr 27 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
一贴学会PHP 新手入门教程
Aug 03 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
PHP Undefined index报错的修复方法
Jul 17 PHP
浅析php中json_encode()和json_decode()
May 25 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
解决Laravel5.2 Auth认证退出失效的问题
Oct 14 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 21 PHP
php将字符串转换为数组实例讲解
May 05 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
FCKeditor的安装(PHP)
2007/01/13 PHP
php提高网站效率的技巧
2015/09/29 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Python探索之pLSA实现代码
2017/10/25 Python
python实现最长公共子序列
2018/05/22 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
求职信格式范本
2013/11/15 职场文书
小学语文国培感言
2014/03/04 职场文书
2014年学生会工作总结
2014/11/07 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
施工安全员岗位职责
2015/04/11 职场文书
项目战略合作意向书
2015/05/08 职场文书
小学六一主持词开场白
2015/05/28 职场文书
结婚主持人致辞
2015/07/28 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL
详解CSS3浏览器兼容
2022/12/24 HTML / CSS