summaryrefslogtreecommitdiffstats
path: root/ml/dlib/python_examples/correlation_tracker.py
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/python_examples/correlation_tracker.py')
-rwxr-xr-xml/dlib/python_examples/correlation_tracker.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/ml/dlib/python_examples/correlation_tracker.py b/ml/dlib/python_examples/correlation_tracker.py
new file mode 100755
index 000000000..4493a55b7
--- /dev/null
+++ b/ml/dlib/python_examples/correlation_tracker.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+# The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt
+#
+# This example shows how to use the correlation_tracker from the dlib Python
+# library. This object lets you track the position of an object as it moves
+# from frame to frame in a video sequence. To use it, you give the
+# correlation_tracker the bounding box of the object you want to track in the
+# current video frame. Then it will identify the location of the object in
+# subsequent frames.
+#
+# In this particular example, we are going to run on the
+# video sequence that comes with dlib, which can be found in the
+# examples/video_frames folder. This video shows a juice box sitting on a table
+# and someone is waving the camera around. The task is to track the position of
+# the juice box as the camera moves around.
+#
+#
+# COMPILING/INSTALLING THE DLIB PYTHON INTERFACE
+# You can install dlib using the command:
+# pip install dlib
+#
+# Alternatively, if you want to compile dlib yourself then go into the dlib
+# root folder and run:
+# python setup.py install
+# or
+# python setup.py install --yes USE_AVX_INSTRUCTIONS
+# if you have a CPU that supports AVX instructions, since this makes some
+# things run faster.
+#
+# Compiling dlib should work on any operating system so long as you have
+# CMake installed. On Ubuntu, this can be done easily by running the
+# command:
+# sudo apt-get install cmake
+#
+# Also note that this example requires scikit-image which can be installed
+# via the command:
+# pip install scikit-image
+# Or downloaded from http://scikit-image.org/download.html.
+
+import os
+import glob
+
+import dlib
+from skimage import io
+
+# Path to the video frames
+video_folder = os.path.join("..", "examples", "video_frames")
+
+# Create the correlation tracker - the object needs to be initialized
+# before it can be used
+tracker = dlib.correlation_tracker()
+
+win = dlib.image_window()
+# We will track the frames as we load them off of disk
+for k, f in enumerate(sorted(glob.glob(os.path.join(video_folder, "*.jpg")))):
+ print("Processing Frame {}".format(k))
+ img = io.imread(f)
+
+ # We need to initialize the tracker on the first frame
+ if k == 0:
+ # Start a track on the juice box. If you look at the first frame you
+ # will see that the juice box is contained within the bounding
+ # box (74, 67, 112, 153).
+ tracker.start_track(img, dlib.rectangle(74, 67, 112, 153))
+ else:
+ # Else we just attempt to track from the previous frame
+ tracker.update(img)
+
+ win.clear_overlay()
+ win.set_image(img)
+ win.add_overlay(tracker.get_position())
+ dlib.hit_enter_to_continue()