基于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同时支持GIF、png、JPEG
Oct 09 PHP
PHP base64+gzinflate压缩编码和解码代码
Oct 03 PHP
php 随机生成10位字符代码
Mar 26 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 PHP
PHP7内核之Reference详解
Mar 14 PHP
PHP命名空间用法实例分析
Sep 04 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 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
很实用的一个完整email发送程序
2006/10/09 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
php的memcache类分享(memcache队列)
2014/03/26 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
python算法演练_One Rule 算法(详解)
2017/05/17 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
材料专业毕业生求职信
2014/02/26 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
网络妈妈观后感
2015/06/08 职场文书
学校食堂管理制度
2015/08/04 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android
Python实现对齐打印 format函数的用法
2022/04/28 Python