欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 编程语言 > php >内容正文

php

网页实现人脸识别php,奇思妙想-ag凯发k8国际

发布时间:2024/10/8 php 0 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 网页实现人脸识别php,奇思妙想-用html5进行人脸识别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

今天发现一篇文章写的很有趣,叫你如何使用html5进行人脸识别。在网页内进行人脸识别,很好很强大!

“现代web”不断发展出不少有趣的api,但你并不会在大多数项目中使用到所有的内容。例如我一直特别关注canvas特性。它对游戏和绘图意义重大 – 但是仅此而已。它并不是一个不好的特性,我只是不会经常用到它。每当看到一些开发中酷炫的新功能,我的大脑里都会思考它们可以产生哪些实际用途。显然对你有价值的内容可能对我来说并不一定,但搞清楚我如何实际使用一个功能是我学习它的一部分。

其中的一个特性是getusermedia(

//a video tag

var video = document.getelementbyid(‘monitor’);

//request it

navigator.webkitgetusermedia(‘video’, gotstream, nostream);

function gotstream(stream) {

video.src = webkiturl.createobject;

video.onerror = function () {

stream.stop();

streamerror();

};

}

function nostream() {

document.getelementbyid(‘errormessage’).textcontent = ‘no camera available.’;

}

function streamerror() {

document.getelementbyid(‘errormessage’).textcontent = ‘camera error.’;

}

getusermedia的第一个参数是类型。根据规范,这应该是一个对象,你可以启用音频、视频,或两者兼而有之,像这样:{audio:true, video:true}。然而在我的测试中,传递一个字符串“video”也可以正常工作。你将看到的演示基于另一个演示,所以代码来自于一个较早的chrome下的版本。第二个和第三个参数是操作成功和失败的回调函数。

你可以看到操作成功的事件处理函数将视频流分配给html5 video标签。最酷的是,一旦运行起来,你就可以使用canvas api来拍照。对于这个演示,可以看看greg miernicki的demo:

如果这个demo无法工作,可以按照下面的说明来开启getusermedia支持后再次进行尝试。(虽然我打算分享一些屏幕截图,所以如果你只是想继续阅读,那也没关系。)

基于greg的demo,我突然想到可以用网络摄像头的照片做一些很酷的东西。我记得

这有这几个重大问题。 第一 – face.com有一个很好的rest api,我们将如何从javascript应用程序里面来调用它?其次 – face.com需要你可以上传图片,或给它一个网址。 我知道可以把一个canvas图片发送给服务器,并通过我的后台上传到face.com,但有没有办法绕过服务器来把图片发送给这个api?

第一个实际上并不是问题。face.com实现了

更复杂的问题则是如何把画布上的数据发送到face.com(注:还可以参考我的这篇文章《

function snapshot() {

$(“#result“).html(“

working hard for the money…“);

canvas.width = video.videowidth;

canvas.height = video.videoheight;

canvas.getcontext(’2d’).drawimage(video, 0, 0);

var data = canvas.todata;

newblob = datauritoblob(data);

var formdata = new formdata();

formdata.append(“api_key“, facekey);

formdata.append(“api_secret“, facesecret);

formdata.append(“filename“,”temp.jpg“);

formdata.append(“file“,newblob);

$.ajax({

url: ‘http://api.face.com/faces/detect.json?attributes=age_est,gender,mood,smiling,glasses’,

data: formdata,

cache: false,

contenttype: false,

processdata: false,

datatype:”json“,

type: ‘post’,

success: function (data) {

handleresult(data.photos[0]);

}

});

}

让我们一行行来看这段代码。首先 – 我需要从画布对象获取二进制数据。有几种方法可以实现,但是我尤其想要一个二进制的blob。请注意datauritoblob方法。这是几周前我从

我创建了一个新的formdata对象,然后简单地设置了自己所需的值。你可以看到我发起了几个api请求,但关键在于文件名和文件对象本身。

接下来你可以看到简单的jquery ajax调用。face.com有多种选择,但我基本只要求它返回预测年龄、性别、情绪,是否面带微笑以及戴着眼镜。就是这些。我得到了一个很棒的json包,并且对它进行了格式化。

现在显然api并不完美。我获得了使用api一些不同程度的结果。有时相当准确,有时相反。但是总体来说,这相当酷。这里有一些实际测试的图片,看起来有点“可怕”。

识别结果:neutral(无表情)

识别结果:happy(开心)

识别结果:surprised(惊讶)

识别结果:sad(悲伤)

好了,准备自己亲自来试试? 只需点击下面的演示按钮。如果需要源代码,可以直接在页面上查看! 这是100%的纯客户端代码。

总结

以上是ag凯发k8国际为你收集整理的网页实现人脸识别php,奇思妙想-用html5进行人脸识别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图