成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用HTML5進行人臉識別

開發 前端
其中的一個特性是getUserMedia( W3C規范 )。它是一個JavaScript API,可以讓你訪問(需要權限)用戶的網絡攝像頭和麥克風。

今天發現一篇文章寫的很有趣,叫你如何使用HTML5進行人臉識別。在網頁內進行人臉識別,很好很強大!

“現代Web”不斷發展出不少有趣的API,但你并不會在大多數項目中使用到所有的內容。例如我一直特別關注Canvas特性。它對游戲和繪圖意義重大 – 但是僅此而已。它并不是一個不好的特性,我只是不會經常用到它。每當看到一些開發中酷炫的新功能,我的大腦里都會思考它們可以產生哪些實際用途。顯然對你有價值的內容可能對我來說并不一定,但搞清楚我如何實際使用一個功能是我學習它的一部分。

其中的一個特性是getUserMedia( W3C規范 )。它是一個JavaScript API,可以讓你訪問(需要權限)用戶的網絡攝像頭和麥克風。 目前Opera和Chrome(我相信現在的版本18可以支持,但是你可能需要使用Canary。你還需要啟用它。這兒有一個說明。)一旦你啟用了getUserMedia,它使用起來相當簡單。這里有一個快速的訪問請求:

  1. //a video tag  
  2. var video = document.getElementById(‘monitor’);  
  3. //request it  
  4. navigator.webkitGetUserMedia(‘video’, gotStream, noStream);  
  5. function gotStream(stream) {  
  6. video.src = webkitURL.createObjectURL(stream);  
  7. video.onerror = function () {  
  8. stream.stop();  
  9. streamError();  
  10. };  
  11. }  
  12. function noStream() {  
  13. document.getElementById(‘errorMessage’).textContent = ‘No camera available.’;  
  14. }  
  15. function streamError() {  
  16. document.getElementById(‘errorMessage’).textContent = ‘Camera error.’;  

getUserMedia的***個參數是類型。根據規范,這應該是一個對象,你可以啟用音頻、視頻,或兩者兼而有之,像這樣:{audio:true, video:true}。然而在我的測試中,傳遞一個字符串“video”也可以正常工作。你將看到的演示基于另一個演示,所以代碼來自于一個較早的Chrome下的版本。第二個和第三個參數是操作成功和失敗的回調函數。

你可以看到操作成功的事件處理函數將視頻流分配給HTML5 Video標簽。最酷的是,一旦運行起來,你就可以使用Canvas API來拍照。對于這個演示,可以看看Greg Miernicki的Demo:http://miernicki.com/cam.html

如果這個Demo無法工作,可以按照下面的說明來開啟getUserMedia支持后再次進行嘗試。(雖然我打算分享一些屏幕截圖,所以如果你只是想繼續閱讀,那也沒關系。)

基于Greg的Demo,我突然想到可以用網絡攝像頭的照片做一些很酷的東西。我記得Face.com有一個非常酷的API來解析臉部的圖片。(我11月曾經在博客里寫了一個ColdFusion的例子。)然后我在想,是否我們能把Greg的Demo與Face.com的API結合起來做一些基本面部識別的Demo。

[[68839]]

這有這幾個重大問題。 *** – Face.com有一個很好的REST API,我們將如何從JavaScript應用程序里面來調用它?其次 – Face.com需要你可以上傳圖片,或給它一個網址。 我知道可以把一個Canvas圖片發送給服務器,并通過我的后臺上傳到Face.com,但有沒有辦法繞過服務器來把圖片發送給這個API?

***個實際上并不是問題。Face.com實現了CORS(跨域資源共享)。CORS系統基本上可以讓服務器暴露給其它域上文件的Ajax調用。這是一個偉大的功能,我希望更多的服務能夠使用它。

更復雜的問題則是如何把畫布上的數據發送到Face.com(注:還可以參考我的這篇文章《如何使用HTML5實現拍照上傳應用》)。我如何模擬文件上傳?這里有另一個很酷的新技巧 – Formdata。ColdFusion的研究員Sagar Ganatra關于這個話題有一篇很棒的博客。下面展示了我如何使用它:

  1. function snapshot() {  
  2. $(“#result“).html(“<p><i>Working hard for the money…</i></p>“);  
  3. canvas.width = video.videoWidth;  
  4. canvas.height = video.videoHeight;  
  5. canvas.getContext(’2d’).drawImage(video, 0, 0);  
  6. var data = canvas.toDataURL(‘image/jpeg’, 1.0);  
  7. newblob = dataURItoBlob(data);  
  8. var formdata = new FormData();  
  9. formdata.append(“api_key“, faceKey);  
  10. formdata.append(“api_secret“, faceSecret);  
  11. formdata.append(“filename“,”temp.jpg“);    
  12. formdata.append(“file“,newblob);  
  13. $.ajax({  
  14.     url: ‘http://api.face.com/faces/detect.json?attributes=age_est,gender,mood,smiling,glasses’,  
  15.       data: formdata,  
  16.     cache: false,  
  17.     contentType: false,  
  18.     processData: false,  
  19.     dataType:”json“,  
  20.     type: ‘POST’,  
  21.     success: function (data) {  
  22.         handleResult(data.photos[0]);  
  23.     }  
  24. });      

讓我們一行行來看這段代碼。首先 – 我需要從畫布對象獲取二進制數據。有幾種方法可以實現,但是我尤其想要一個二進制的Blob。請注意dataURIToBlob方法。這是幾周前我從StockOverflow上發現的。

我創建了一個新的formdata對象,然后簡單地設置了自己所需的值。你可以看到我發起了幾個API請求,但關鍵在于文件名和文件對象本身。

接下來你可以看到簡單的jQuery Ajax調用。Face.com有多種選擇,但我基本只要求它返回預測年齡、性別、情緒,是否面帶微笑以及戴著眼鏡。就是這些。我得到了一個很棒的JSON包,并且對它進行了格式化。

現在顯然API并不***。我獲得了使用API一些不同程度的結果。有時相當準確,有時相反。但是總體來說,這相當酷。這里有一些實際測試的圖片,看起來有點“可怕”。

識別結果:neutral(無表情)

識別結果:happy(開心)

識別結果:surprised(驚訝)

識別結果:sad(悲傷)

好了,準備自己親自來試試? 只需點擊下面的演示按鈕。如果需要源代碼,可以直接在頁面上查看! 這是100%的純客戶端代碼。

原文地址:http://www.html5cn.org/article-2554-1.html

 

 

 

責任編輯:張偉 來源: HTML5中國
相關推薦

2022-05-25 07:11:13

Python人臉識別代碼

2013-05-28 11:08:51

人臉識別html5

2018-05-08 14:25:22

Pythondlib人臉檢測

2021-03-29 15:13:23

深度學習人臉解鎖算法

2020-12-22 21:57:39

人臉識別AI人工智能

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來

2015-01-05 09:37:01

HTML5原生app拼積木方式

2011-04-22 15:02:19

HTML5Dojo

2024-06-05 08:14:26

SpringElasticsea人臉數據

2013-10-21 15:24:49

html5游戲

2011-05-13 17:36:05

HTML

2021-05-10 11:08:00

人工智能人臉識別

2021-10-29 10:10:28

人工智能AI人臉識別

2012-04-12 11:11:15

HTML5APIWEB

2017-01-03 18:09:33

HTML5本地存儲Web

2011-05-12 15:42:16

HTML5

2012-03-07 15:24:41

2011-05-13 17:41:40

2011-01-14 17:53:33

HTML5cssweb

2023-03-16 09:00:00

HTML5HTML語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日本在线观看 | 看片网站在线 | 国产sm主人调教女m视频 | 亚洲一区二区三区四区在线观看 | 日本一区二区高清不卡 | 97色在线视频 | 成人免费在线 | 国产1区2区3区 | 狠狠的干 | 99综合| 欧美精品三区 | 成人精品鲁一区一区二区 | 精品一区电影 | 久久久久久中文字幕 | 精品欧美一区二区中文字幕视频 | 成年人视频在线免费观看 | 日一区二区 | 91精品在线播放 | 中文字幕在线一区二区三区 | 国产精品一区二区三区在线 | 艹逼网 | 9999精品视频 | 免费观看黄网站 | 亚洲欧美一区二区三区视频 | 一区二区三区在线免费观看视频 | 日韩三区在线观看 | 欧美h视频 | 中文字幕成人 | 久久天堂网 | 亚洲精品久久区二区三区蜜桃臀 | 亚洲福利 | 两性午夜视频 | 欧美一区二区三区在线看 | 国产精品视频网站 | 日韩免费av | 亚洲国产成人精品久久久国产成人一区 | 久久久高清 | 国产精品不卡视频 | 99久久国产精| 色综合美女 | 国产精品美女久久久久久久久久久 |