phptext.net PHPText.Net
PHPText.Net > 文章 > 技术 > 服务器

OpenCV+PHP Facedetect Extension 实现PHP人脸识别扩展

2013/07/09 00:42
7139人阅读
OpenCV是一个开源人脸识别软件,PHP Facedetect Extension是OpenCV的一个PHP扩展,这2个东西就能组成PHP的人脸识别功能

新项目会利用到人脸识别,而我是一介PHPER,PHP本身要来做人脸识别,做是可以做,但是效率不高,这个在搜索的时候发现过一个纯PHP的人脸识别项目  FACE DETECTION IN PURE PHP (WITHOUT OPENCV)  经过给的例子进行测试,效率和识别上不太理想。可能是特征文件只有一个的原因,效率呢是PHP本身的问题也没办法,不过这个一些对要求不太苛刻,且环境有限的项目来说还是一个不错的选择。


经过一番搜索,这里面见识比较多的就是OpenCV了,这个是一个开源的软件,应用领域很多,支持多种编程语言,而且到现在还在更新维护,是一个不错的项目。当然这么好的东西自然少不了PHP扩展  PHP Facedetect Extension 这个网站的站长也是个牛人哈哈,最初搜索到他的扩展还是在OpenCV 1.0的时候,现在网上还有各种网站在放那时候的文章了,超级过时了~不过也因为这些文章我才摸索到了OpenCV,才能深入到现在的地步。


目前的PHP扩展支持OpenCV 2.3.1版本,扩展作者上面这么写的,OpenCV在2.2以后就改用了cmake编译而不是最初的那种configure的方式。


编译OpenCV真是几经周折,各种搜索解决方案,最后出现在cmake的问题上,这个咱现在就进入主题吧。

网络的那些错误文章可以被消灭了~~~

由于OpenCV现在使用的cmake编译,所以我们先来安装cmake,通过网上的搜索的结果来看,编译OpenCV需要cmake 2.8以上的版本。目前在cmake官方可以下载到的最新版本 cmake 2.8.11.2。所以就安装这个吧,之前文章提到过这里重新说下。

wget  http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz

tar zxvf cmake-2.8.11.2.tar.gz

cd cmake-2.8.11.2

./bootstrap

make

make install

当然这里安装大家也尽量下载最新版本的 http://www.cmake.org/cmake/resources/software.html

有问题的话参考下 http://www.phptext.net/article_view.php?id=25


安装完成cmake,后我们开始安装OpenCV,这个重点了哦~~

wget http://nchc.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2

tar jxvf OpenCV-2.3.1a.tar.bz2

cd OpenCV-2.3.1a

cmake .

make

make install

这里cmake,make时间超长的,如果是在网上操作的要注意保证网速了哦。

这里网上有说cmake建立什么build之类的目录的,就不用了直接项目目录cmake .执行就可以。

cmake时候还会遇到很多的not found之类的,不用管它,如果因为这个卡了,错误无法继续的时候,请查看你的cmake时候是2.8以上,不行就更换最新的版本。这个地方纠结了一天,翻来覆去很多文章才解决的。  


好了,漫长等待完成后,就opencv~tab一下看看是不是安装完成了,完成我们就继续安装PHP扩展咯~~

PHP扩展就简单多了,还记得之前的文章《Linux 增加PHP扩展方法 phpize》 如果不会安装扩展就看看吧。其实很简单的。

将下载下来的文件夹,解压到目录,解压就写了,unzip之类的,我是直接图形界面了,服务器是直接解压后上传的。来看看安装的操作吧。

cd PHP-Facedetect-master

phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make

make install

cp module/facedetect.so /usr/local/php/lib/extensions/no-debug-non-zts-20060613/

到这里扩展就安装完成了,之后编辑php.ini文件加入extension=facedetect.so完成配置

之后重启服务(apache/nginx) 然后查看phpinfo里面是否包含了~~ facedetect


有了之后,就可以使用了~~这个扩展就扩展了2个方法~~

face_count //检测到脸型个数

face_detect //脸型数据x,y,width,height 用于裁剪标记用

这些方法后面会单开文章介绍说明,目前我也处于摸索阶段。


第一个DEMO案例就是 http://www.phptext.net/demo/php_opencv_facedetect_ext

可以识别自带的特征文件都能识别什么,这个回头会写个文章单独跟大家介绍的。


零零散散折腾了也有数天了,突破这个就是一个很大的成就了,接下来等待研究突破第二项技术就可以进入新站的设计研发阶段了~~ 


这次研究共参考了以下的网站资源,感谢这些站长博主提供的信息:

http://www.lwfree.cn/daima/16257_4.html
http://www.cnblogs.com/mophee/archive/2013/03/19/2969456.html
http://www.xarg.org/project/php-facedetect/
http://svay.com/blog/face-detection-in-pure-php-without-opencv/
http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html

同类推荐

OpenCV+PHP Facedetect Extension 实现PHP人脸识别扩展OpenCV+PHP Facedetect Extension 实现PHP人脸识别扩展
PHP 下 file_get_contents/curl/fopen/fsocket 提示 php_network_getaddresses: getaddrinfo failed: Name or service not knownPHP 下 file_get_contents/curl/fopen/fsocket 提示 php_network_getaddresses: getaddrinfo failed: Name or service not known
Libpuzzle with PHP 图片相似度比较扩展Libpuzzle with PHP 图片相似度比较扩展
cmake安装/更新cmake安装/更新
Linux 解压大型ZIP包 End-of-central-directory signature not foundLinux 解压大型ZIP包 End-of-central-directory signature not found
Windows Apache(xampp/wamp) 网站访问慢优化方法(打开HTML页面都慢)Windows Apache(xampp/wamp) 网站访问慢优化方法(打开HTML页面都慢)
PHP 安装扩展失败 PHP Warning:  PHP Startup: Invalid library (maybe not a PHP library) 'mbstring.so'  in Unknown on line 0  done 原因PHP 安装扩展失败 PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'mbstring.so' in Unknown on line 0 done 原因
Apache 本地虚拟机测试环境....模拟域名Apache 本地虚拟机测试环境....模拟域名
linux crontab: linux crontab: "/bin/vi" killed; signal 11 (no core dumped) 解决方法
windows 下 memcached 无法启动停止报错 failed to start service/failed stop servicewindows 下 memcached 无法启动停止报错 failed to start service/failed stop service