自动识别人脸html5,基于HTML5的人脸识别技术

绍一个网站,演示了通过HTML5 + JavaScript技术实现的人脸识别,目前仅适用于Chrome浏览器,首先需要在地址栏输入about:flags,然后找到“启用MediaStream”这一项,然后点击“启用”后重新启动Chrome浏览器

侦测到人脸

然后打开下面地址:

http://neave.com/webcam/html5/face/

当你摇头晃脑的时候,那副眼镜会跟着移动并帮你戴上眼镜。

您可以查看网页原始码来了解具体的实现细节。

——————————————我是分界线——————————————

这是一篇国外的文章,介绍如何通过WebRTC,OpenCV和WebSocket技术实现在Web浏览器上的人脸识别,架构在Jetty之上。

实现的效果包括:

人脸检测结果

还能识别眼睛

眼睛检测结果

人脸识别的核心代码:

页面:

XML / HTML代码将内容复制到文本

< div >

< video id = “ live”宽度= “ 320” height = “ 240” 自动播放 样式= “ display:inline;” > 视频>

< canvas width = “ 320” id = “ canvas” height = “ 240” style = “ display:inline;” > canvas >

div >

var  video  = $(“#live”)。get()[0];

var  canvas  = $(“#canvas”);

var  ctx  =  canvas .get()[0] .getContext('2d');

navigator.webkitGetUserMedia(“ video”,

函数(流){

video.src  =  webkitURL .createObjectURL(stream);

},

函数(错误){

console.log(“无法获得视频流!”)

}

)

计时器 =  setInterval (

函数(){

ctx.drawImage(video,0,0,320,240);

},250);

脚本>

JavaScript代码将内容复制到

公共类 FaceDetection {

私有静态最终 字符串CASCADE_FILE = “ resources / haarcascade_frontalface_alt.xml ” ;

private int  minsize = 20;

private int 组= 0;

私人双倍 比例= 1.1;

/ **

*基于JavaCV的FaceDetection示例。

* /

公共字节[] convert(字节[] imageData) 引发 IOException {

//从提供的字节数组创建图像

IplImage originalImage = cvDecodeImage(cvMat(1,imageData.length,CV_8UC1,newBytePointer(imageData))));

//转换为灰度以进行识别

IplImage grayImage = IplImage.create(originalImage.width(),originalImage.height(),IPL_DEPTH_8U,1);

cvCvtColor(originalImage,grayImage,CV_BGR2GRAY);

//需要存储以在检测期间存储信息

CvMemStorage存储= CvMemStorage.create();

//用于分析的配置

CvHaarClassifierCascade级联= newCvHaarClassifierCascade(cvLoad(CASCADE_FILE));

//我们检测到人脸。

CvSeq faces = cvHaarDetectObjects(grayImage,级联,存储,比例,组,最小大小);

//我们遍历发现的面孔并在其周围绘制黄色矩形。

for  (int  i = 0; i

CvRect r = 新的 CvRect(cvGetSeqElem(faces,i));

cvRectangle(originalImage,cvPoint(rx(),ry()),

cvPoint(rx()+ r.width(),ry()+ r.height()),

CvScalar.YELLOW,1,CV_AA,0);

}

//将生成的图像转换回数组

ByteArrayOutputStream bout =  new  ByteArrayOutputStream();

BufferedImage imgb = originalImage.getBufferedImage();

ImageIO.write(imgb,  “ png” ,bout);

返回 bout.toByteArray();

}

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值