[英]Count number of faces using javascript
有沒有一種方法可以計算實時相機中的面部數量。
例如,我在網絡攝像頭前有三個人,我有2個頁面,分別是Success.html和error .html ,作為判斷重定向到Success或error頁面的基礎方法的一部分,條件是僅檢測到一張臉,應該將其發送給成功 ,否則,應該將其發送給錯誤 。
我正在使用tracking.js來檢測網頁中的人臉,目前我的代碼如下。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>tracking.js - face with camera</title>
<link rel="stylesheet" href="assets/demo.css">
<script src="js/tracking-min.js"></script>
<script src="js/data/face-min.js"></script>
<script src="js/dat.gui.min.js"></script>
<script src="assets/stats.min.js"></script>
<style>
video, canvas {
margin-left: 230px;
margin-top: 120px;
position: absolute;
}
</style>
</head>
<body>
<div class="demo-title">
<p>
<a href="http://trackingjs.com" target="_parent">tracking.js</a> -
get user's webcam and detect faces
</p>
</div>
<div class="demo-frame">
<div class="demo-container">
<video id="video" width="320" height="240" preload autoplay loop
muted></video>
<canvas id="canvas" width="320" height="240"></canvas>
</div>
</div>
<script>
window.onload = function() {
var video = document.getElementById('video');
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var tracker = new tracking.ObjectTracker('face');
tracker.setInitialScale(4);
tracker.setStepSize(2);
tracker.setEdgesDensity(0.1);
tracking.track('#video', tracker, {
camera : true
});
tracker.on('track', function(event) {
context.clearRect(0, 0, canvas.width, canvas.height);
event.data
.forEach(function(rect) {
console.log('face detected');
});
});
</script>
</body>
</html>
在我的控制台中,我可以打印, face detected
。
請讓我知道如何在此窗口中檢測多個面孔。
謝謝
從文檔中:
myTracker.on('track', function(event) {
if (event.data.length === 0) {
// No targets were detected in this frame.
} else {
event.data.forEach(function(data) {
// Plots the detected targets here.
});
}
});
似乎是event.data.length
為您提供了被跟蹤元素的數量。
在https://trackingjs.com/docs.html#trackers上添加文檔
myTracker.on('track', function(event) { if (event.data.length === 0) { // No targets were detected in this frame. } else { event.data.forEach(function(data) { // Plots the detected targets here. }); } });
使用event.data.length
來計算面孔的數量。
在您的代碼段上:
tracker.on('track', function(event) {
context.clearRect(0, 0, canvas.width, canvas.height);
// console log amount of elements found
console.log(event.data.length);
event.data.forEach(function(rect) {
console.log('face detected');
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.