Trackingjs: Head tracking example code: usetrackingjs.html

<!doctype html>
<html>
<head>
<!-- Based on https://trackingjs.com/examples/face_camera.html -->

<meta charset="utf-8">
<title>Program that uses tracking.js to track face with camera</title>

<!-- Must download trackingjs files from https://trackingjs.com and put them where these 'script src=' statements will find them. -->
<script src="./trackingjs/build/tracking-min.js"></script>
<script src="./trackingjs/build/data/face-min.js"></script>

<style>
video, canvas {
  margin-left: 230px;
  margin-top: 120px;
  position: absolute;
}
</style>

<script>
/*
 * Simple program that uses trackingjs
 *
 * Must run on a remote server, and access via https not http. //*1 Setup, caveats
 * Must download trackingjs files from https://trackingjs.com and put them where above 'script src=' statements will find them. //*1
 */

window.onload = function() {
  let video = document.getElementById ('video');
  let canvas = document.getElementById ('canvas');
  let context = canvas.getContext ('2d');
  let tracker = new tracking.ObjectTracker(['face']);  //*2 Callback when finds head

  tracking.track ('#video', tracker, { camera: true });

  tracker.on ('track', function(event) { //*2
    context.clearRect (0, 0, canvas.width, canvas.height);
    for (let rect of event.data) { //*2
      // Print face coordinates
      document.getElementById ("result").textContent //*2
	= "Face at " + (rect.x + rect.width/2) + ", " + (rect.y + rect.height/2) //*2

      // Show face location on the video
      context.strokeStyle = '#a64ceb'; //*3 Also draw the result
      context.strokeRect (rect.x, rect.y, rect.width, rect.height); //*3

      // Display face coordinates on the video
      context.font = '11px Helvetica';
      context.fillStyle = "#fff";
      context.fillText ('x: ' + rect.x + 'px', rect.x + rect.width + 5, rect.y + 11);
      context.fillText ('y: ' + rect.y + 'px', rect.x + rect.width + 5, rect.y + 22);
    }
  });
};
</script>

</head>
<body>
<p>Use <a href="http://trackingjs.com">tracking.js</a> to detect Faces</p>

<div id="result">(no results yet)</div>

<video id="video" width="320" height="240" preload autoplay loop muted></video>
<canvas id="canvas" width="320" height="240"></canvas>

</body>
</html>
[download file]