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
复制代码代码如下:
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{
?>
人脸识别试验:只支持jpg,png
上传一张图片
}
?>
参考资料:
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
千搜科技 人脸识别
相关推荐
这是一个基于OpenCV和Dlib库开发的员工人脸识别考勤系统的源码项目,名为"WorkAttendanceSystem-master"。这个系统利用了计算机视觉技术和人工智能算法来实现高效、准确的面部识别功能,用于员工的考勤管理。 **...
基于余弦相似度的人脸识别系统的实现 人脸识别是生物特征识别和人工智能领域的一个重要研究课题,基于余弦相似度的人脸识别系统的实现是其中的一种方法。该系统使用 PHP 语言并结合 OpenCV 计算机视觉库,利用计算...
在IT行业中,人脸识别技术是一种基于人的面部特征信息进行身份识别的生物识别技术。近年来,随着计算机视觉和深度学习的发展,人脸识别技术已经广泛应用于各种场景,如安全验证、社交媒体、人脸检索等。本教程将深入...
包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...
包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...
OpenCV识别出两张图片的人脸,并比较出两张人脸的相似度,并给出相似值。 包含完整的工程文件,可立即运行!!! 用facedetect功能将两张图片中的人脸检测出来 将人脸部分的图片剪切出来,存到两张只有人脸的图片...
为了解决这些问题,可以通过图像预处理技术,如灰度处理,来减少颜色和纹理的差异,增强人脸识别的准确性。 在实际应用中,如搭建基于Ubuntu的人脸搜索引擎,需要进行一系列的准备工作,包括安装必要的软件和库,如...
这个源代码项目为开发者提供了一个实战平台,学习如何将PHP与人脸识别技术结合,实现安全可靠的实时人脸识别系统。通过深入研究和理解源代码,开发者可以提升自己的PHP编程技能,了解人脸识别流程,以及如何在实际...
**基于人脸识别的考勤系统**是一种利用现代计算机视觉技术和生物识别技术实现的高效、安全的考勤解决方案。在本文中,我们将深入探讨该系统的核心组件、技术原理以及PHP在其中的作用。 **一、人脸识别技术** 人脸...
比如,配合AJAX技术,用户上传图片后,服务器端的PHP脚本可以立即进行图像处理并返回结果,实现诸如实时人脸识别、物体识别等功能。此外,还可以应用于视频流分析,通过获取摄像头的实时视频流,实现动态图像分析。 ...
在现代Web开发中,实时的图像处理和人脸识别技术正在变得越来越重要。Tracking.js 是一个强大的JavaScript库,它提供了丰富的计算机视觉功能,包括人脸识别。这个框架允许开发者在浏览器环境中实现高效且灵活的人脸...
这在人脸识别、行为分析、视频编码等领域非常有用。OpenCV还支持多线程和并行计算,通过OpenMP或者CUDA实现GPU加速,提升处理速度。 此外,OpenCV 3.4.1版本在安装和使用过程中没有网速限制,意味着用户可以快速...
在Laravel中实现人脸识别功能,首先需要集成一个第三方库来处理图像处理和识别任务。常见的选择有OpenCV、Face++、AWS Rekognition等。以Face++为例,我们需要在项目中安装其PHP SDK,通过Composer执行以下命令: `...
脸型分析是通过图像处理算法实现的,可能包括识别脸部轮廓、测量关键特征点(如眼睛、鼻梁、脸颊宽度等)来确定用户的脸型,如圆形、矩形、心形、椭圆形或瓜子脸等。然后,根据匹配的脸型,系统会显示适合的虚拟眼镜...
2. **刷脸支付技术**:这涉及到人脸识别算法,如OpenCV或Face++等库,用于捕捉、处理和比对人脸图像。开发者需要理解机器学习模型,特别是深度学习网络,如卷积神经网络(CNN),用于面部特征识别。 3. **客户关系...
这通常需要集成第三方的人脸识别库,如OpenCV或者Face++,并与SpringMVC的Controller进行交互,处理图像数据并调用人脸识别API。 4. **QQ登录集成** QQ登录功能允许用户使用QQ账号直接登录系统,提高了用户的便利...
5. 人脸识别:结合OpenCV的Haar级联分类器,可以实现基本的人脸检测功能。 6. 实时视频处理:通过PHP与OpenCV的结合,还可以处理来自摄像头的实时视频流,实现动态图像分析。 在实际开发中,需要注意的是,由于PHP...