新项目会利用到人脸识别,而我是一介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
安装完成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 用于裁剪标记用
这些方法后面会单开文章介绍说明,目前我也处于摸索阶段。
可以识别自带的特征文件都能识别什么,这个回头会写个文章单独跟大家介绍的。
零零散散折腾了也有数天了,突破这个就是一个很大的成就了,接下来等待研究突破第二项技术就可以进入新站的设计研发阶段了~~
这次研究共参考了以下的网站资源,感谢这些站长博主提供的信息: