diff options
Diffstat (limited to '')
-rwxr-xr-x | ml/dlib/python_examples/correlation_tracker.py | 72 |
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() |