参考资料

https://github.com/bsdnoobz/web-based-face-detect

http://opencv-code.com/projects/web-based-interface-for-face-detection-with-opencv/

http://www.cnblogs.com/findingsea/archive/2012/03/31/2427833.html

流程如下图

背景知识

php调用exe的返回

  1. <html>
  2.   <body>
  3.       <?php
  4.         system("F:\\xampp\\htdocs\\webcam2\\phptest.exe", $info);
  5.         echo $info;
  6.       ?>
  7.   </body>
  8. </html>

在线人脸检测

目录结构

  1. face-detect.exe
  2. haarcascade_frontalface_alt.xml
  3. shutter.mp3
  4. test.html
  5. test.php
  6. testphp.php
  7. webcam.js
  8. webcam.swf

  9. └─out

test.html

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3.  
  4. <html lang="en">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7. <title>JPEGCam Test Page</title>
  8. <meta name="generator" content="TextMate http://macromates.com/">
  9. <meta name="author" content="Joseph Huckaby">
  10. <!-- Date: 2008-03-15 -->
  11. </head>
  12. <body>
  13. <table><tr><td valign=top>
  14. <h1>JPEGCam Test Page</h1>
  15. <h3>Demonstrates a very simple, one-click capture &amp; upload implementation</h3>
  16.  
  17. <!-- First, include the JPEGCam JavaScript Library -->
  18. <script type="text/javascript" src="webcam.js"></script>
  19.  
  20. <!-- Configure a few settings -->
  21. <script language="JavaScript">
  22. webcam.set_api_url( 'test.php' );
  23. webcam.set_quality( 90 ); // JPEG quality (1 - 100)
  24. webcam.set_shutter_sound( true ); // play shutter click sound
  25. </script>
  26.  
  27. <!-- Next, write the movie to the page at 320x240 -->
  28. <script language="JavaScript">
  29. document.write( webcam.get_html(320, 240) );
  30. </script>
  31.  
  32. <!-- Some buttons for controlling things -->
  33. <br/><form>
  34. <input type=button value="Configure..." onClick="webcam.configure()">
  35. &nbsp;&nbsp;
  36. <input type=button value="Take Snapshot" onClick="webcam.snap()">
  37. </form>
  38. <img id="resultimg" src="" />
  39.  
  40. <script language="JavaScript">
  41. webcam.set_hook( 'onComplete', 'my_callback_function' );
  42. function my_callback_function(response) {
  43. // alert("sucess " + response);
  44. document.getElementById("resultimg").src=""+response;
  45. webcam.reset();
  46. }
  47. </script>
  48.  
  49. </body>
  50. </html>

test.php

  1. <?php
  2.  
  3. /* JPEGCam Test Script */
  4. /* Receives JPEG webcam submission and saves to local file. */
  5. /* Make sure your directory has permission to write files as your web server user! */
  6.  
  7. $filename = date('YmdHis') . '.jpg';
  8. $result = file_put_contents( $filename, file_get_contents('php://input') );
  9. $cmd = 'F://xampp//htdocs//face//face-detect//face-detect.exe --input="'.$filename.'" --outdir=out"';
  10. exec($cmd, $info);
  11. foreach ($info as $i => $line)
  12. {
  13. if (preg_match('/\d+,\s*([^\s]+)\s+\((\d+)x(\d+)\)/i', $line, $m))
  14.  
  15. {
  16. // print 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI'])."/".$m[1];
  17. // echo "<br>";
  18. // echo $m[2];
  19. // echo $m[3];
  20. }
  21. }
  22. $url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . '/' . $filename;
  23. print "$url\n";

实验结果

out目录里就有检测的脸了

source code download

http://pan.baidu.com/share/link?shareid=4035488383&uk=792406754

修改人脸检测自带的php文件

  1. <?php
  2. $file = 'uploads/'.date('YmdHis').'.jpg';;
  3. file_put_contents("$file", file_get_contents("php://input"));
  4. $cmd = 'F://xampp//htdocs//face//face-detect//face-detect.exe --input="'.$file.'" --outdir=uploads"';
  5. // $cmd = 'F://xampp//htdocs//face//face-detect//face-detect.exe --input=uploads//1.jpg --outdir=uploads';
  6. // $last = exec($cmd, &$out);
  7. $last = exec($cmd, $out);
  8. if (strpos($last, 'Error:') === false)
  9. {
  10. $res = array('success' => true);
  11. foreach ($out as $i => $line)
  12. {
  13. if (preg_match('/\d+,\s*([^\s]+)\s+\((\d+)x(\d+)\)/i', $line, $m))
  14. $res['images'][] = array('src' => $m[1], 'width' => $m[2], 'height' => $m[3]);
  15. }
  16. }
  17. else
  18. $res = array('success' => false, 'msg' => $last);
  19. header('Content-Type: application/json');
  20. echo json_encode($res);

效果

基于opencv的人脸检测的web应用的更多相关文章

  1. 基于OpenCv的人脸检测、识别系统学习制作笔记之一

    基于OpenCv从视频文件到摄像头的人脸检测 在OpenCv中读取视频文件和读取摄像头的的视频流然后在放在一个窗口中显示结果其实是类似的一个实现过程. 先创建一个指向CvCapture结构的指针 Cv ...

  2. 基于OpenCv的人脸检测、识别系统学习制作笔记之三

    1.在windows下编写人脸检测.识别系统.目前已完成:可利用摄像头提取图像,并将人脸检测出来,未进行识别. 2.在linux下进行编译在windows环境下已经能运行的代码. 为此进行了linux ...

  3. 基于Opencv的人脸检测及识别

    一.实验目的:我这里完成的是,将8张人脸图片(4组,每组两张)存入库中,选取1张图片,程序识别出与其匹配的另一张. 这里介绍分三个步骤完成该工作,①程序读取摄像头.拍照 ②程序从电脑文档中读取图片   ...

  4. 基于OpenCv的人脸检测、识别系统学习制作笔记之二

    在网上找到了一个博客,里面有大量内容适合初学者接触和了解人脸检测的博文,正好符合我目前的学习方面,故将链接放上来,后续将分类原博客的博文并加上学习笔记. 传送门: http://blog.sina.c ...

  5. 【AdaBoost算法】基于OpenCV实现人脸检测Demo

    一.关于检测算法 分类器训练: 通过正样本与负样本训练可得到分类器,opencv有编译好的训练Demo,按要求训练即可生成,这里我们直接使用其已经训练好的分类器检测: 检测过程: 检测过程很简单,可以 ...

  6. OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现

    # OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-环 ...

  7. 基于AdaBoost的人脸检测

    原地址:http://blog.csdn.net/celerychen2009/article/details/8839097 人脸检测和人脸识别都是属于典型的机器学习的方法,但是他们使用的方法却相差 ...

  8. 使用Dlib来运行基于CNN的人脸检测

    检测结果如下 这个示例程序需要使用较大的内存,请保证内存足够.本程序运行速度比较慢,远不及OpenCV中的人脸检测. 注释中提到的几个文件下载地址如下 http://dlib.net/face_det ...

  9. 基于 OpenCV 的人脸识别

    基于 OpenCV 的人脸识别 一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenC ...

随机推荐

  1. linux网络相关

    ethtool:http://www.ibm.com/developerworks/cn/linux/1304_wangjy_ethtools/ 网卡特性:http://blog.chinaunix. ...

  2. IMP导入数据 报错 IMP-00058 ORA-01691 IMP-00028

    查看导入日志,发现错误如下: oracle@sspt:/back/log> cat imp.HD_HDXX.log Connected to: Oracle Database 11g Enter ...

  3. CrazePony飞行器--通信部分介绍【转】

    转自:http://www.crazepony.com/wiki/comm-protocol.html 作者:nieyong 通信协议指的是遥控端和主控之间交互数据的封装,是一种自行约定的数据封装格式 ...

  4. ERP

    企业资源计划即 ERP (Enterprise Resource Planning),由美国 Gartner Group 公司于1990年提出.企业资源计划是 MRP II(企业制造资源计划)下一代的 ...

  5. View页面根据权限显示不同的内容

    1.View中根据权限显示相关操作按钮 @if (CoreTools.CheckAction(HttpContext.Current, "Delete"))        {    ...

  6. BZOJ 3172 单词(ac自动机)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3172 题意:给出n个单词.输出每个单词在所有单词中一共出现多少次? 思路:首先将所有单词 ...

  7. 安装cloudera

    1. 查看selinux状态 $ /usr/sbin/getenforce Enforcing $ /usr/sbin/sestatus SELinux status: enabled SELinux ...

  8. Gliffy Diagrams 好用的流程图工具

    很好用!加上百度脑图!good!

  9. ionic中登陆逻辑控制

    问题 登陆成功后从login.html调转到home.html,此时在home页面按back键又回到了login.html . 解决方案 登陆成功后,清除导航历史堆栈. 具体代码 menu.html ...

  10. splay入门

    在比较了网上的几份模板的速度之后,发现指针版明显快了很多,但是一敲起来....各种不习惯...所以还是学的hzwer 的数组版... bzoj3223:维护reverse操作就可以了 #include ...