溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript實現(xiàn)的人臉檢測方法是怎樣的

發(fā)布時間:2021-11-17 12:01:16 來源:億速云 閱讀:126 作者:柒染 欄目:web開發(fā)

這篇文章給大家介紹JavaScript實現(xiàn)的人臉檢測方法是怎樣的,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

我一直對視頻和圖片中的人臉標(biāo)記、檢測和人臉識別技術(shù)很感興趣。盡管我知道獲取邏輯和算法去開發(fā)人臉識別軟件或者插件已經(jīng)超出了我的想象。當(dāng)我知道Javascript庫可以識別微笑,眼睛和臉部結(jié)構(gòu)時,我得到啟發(fā)去寫一個教程。有許多的庫,這些庫要不就是純粹的基于Javascript的,要不就是基于java語言的。

今天,我們開始學(xué)習(xí)tracking.js,它是一個由Eduardo Lundgren開發(fā)的輕量級的javascript庫,它可以讓你做實時的人臉檢測,色彩追蹤和標(biāo)記好友的臉。在這個教程中,我們將會看到,我們?nèi)绾螐撵o態(tài)圖片中檢測臉,眼睛和嘴巴。

你可以看到一個教程提供可以用的例子,這個例子有技巧和提示以及更多的技術(shù)細節(jié)。

首先,我們需要建立一個工程,從github中下載這個工程并且抽取build文件夾,根據(jù)你的文件和目錄結(jié)構(gòu)放置build文件夾。在這個教程里,我用了如下的文件和目錄結(jié)構(gòu)。

文件夾結(jié)構(gòu)

Project Folder  │  │   index.html  │  ├───assets  │       face.jpg  │  └───js      │   tracking-min.js      │   tracking.js      │      └───data              eye-min.js              eye.js              face-min.js              face.js              mouth-min.js              mouth.js

你可以看到j(luò)s文件夾里有我們從tracking.js中抽取的javascript文件。下面是index.html的html代碼。

HTML代碼

<!doctype html> <html> <head>   <meta charset="utf-8">   <title>@tuts Face Detection Tutorial</title>      <script src="js/tracking-min.js"></script>   <script src="js/data/face-min.js"></script>   <script src="js/data/eye-min.js"></script>   <script src="js/data/mouth-min.js"></script>      <style>   .rect {      border: 2px solid #a64ceb;      left: -1000px;      position: absolute;      top: -1000px;    }       #img {      position: absolute;      top: 50%;      left: 50%;      margin: -173px 0 0 -300px;    }    </style> </head> <body> <div class="imgContainer">   <img id="img" src="assets/face.jpg" /> </div>    </body> </html>

在上面的HTML代碼中,我們引入4個javascript來自于tracking.js的文件,這些文件有助于我們從圖片中檢測人臉、眼睛和嘴巴。現(xiàn)在我們寫一段代碼來實現(xiàn)從靜態(tài)圖片中檢測人臉,眼睛和嘴巴。我故意選用這張圖片,因為這張圖片中有多張不同表情和姿勢臉。

JavaScript實現(xiàn)的人臉檢測方法是怎樣的

為了達成目標(biāo),我們需要修改html文件頭部的代碼。

HTML 代碼

<!doctype html> <html> <head>   <meta charset="utf-8">   <title>@tuts Face Detection Tutorial</title>      <script src="js/tracking-min.js"></script>   <script src="js/data/face-min.js"></script>   <script src="js/data/eye-min.js"></script>   <script src="js/data/mouth-min.js"></script>      <style>   .rect {      border: 2px solid #a64ceb;      left: -1000px;      position: absolute;      top: -1000px;    }       #img {      position: absolute;      top: 50%;      left: 50%;      margin: -173px 0 0 -300px;    }    </style> // tracking code.  <script>     window.onload = function() {        var img = document.getElementById('img');           var tracker = new tracking.ObjectTracker(['face', 'eye', 'mouth']); // Based on parameter it will return an array.        tracker.setStepSize(1.7);           tracking.track('#img', tracker);           tracker.on('track', function(event) {          event.data.forEach(function(rect) {            draw(rect.x, rect.y, rect.width, rect.height);          });        });           function draw(x, y, w, h) {          var rect = document.createElement('div');          document.querySelector('.imgContainer').appendChild(rect);          rect.classList.add('rect');          rect.style.width = w + 'px';          rect.style.height = h + 'px';          rect.style.left = (img.offsetLeft + x) + 'px';          rect.style.top = (img.offsetTop + y) + 'px';        };      };    </script>    </head> <body> <div class="imgContainer">   <img id="img" src="assets/face.jpg" /> </div>    </body> </html>

結(jié)果

JavaScript實現(xiàn)的人臉檢測方法是怎樣的

代碼說明.

  • tracking.ObjectTracker() 方法對你想要進行跟蹤的對象進行了分類,它可以接受一個數(shù)組作為參數(shù).

  • setStepSize() 指定的塊的步進大小.

  • 我們將要跟蹤的對象綁定上 &#8220;track&#8221; 事件, 對象一被跟蹤,很快正在跟蹤的對象就會觸發(fā)跟蹤事件.

  • 我們以對象數(shù)組的形式中獲取數(shù)據(jù),里面有每個對象(臉部,嘴部很眼部)的寬度,高度 , x 和 y 坐標(biāo);

注意:由于瀏覽器安全性的原因,這個程序需要運行在一樣的域或者禁用網(wǎng)絡(luò)安全的瀏覽器中。

關(guān)于JavaScript實現(xiàn)的人臉檢測方法是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI