接着上一篇ubuntu下利用Dlib实现目标跟踪(上),本文继续介绍Dlib的目标跟踪功能。
用dlib来实现多多目标跟踪也是很容易的,就是多声明几个dlib.correlation_tracker()类就好了,将上一篇ubuntu下利用Dlib实现目标跟踪(上)中的代码加以修改,就可以达到多目标跟踪的效果了。
先贴代码,看效果:
import os
import glob
import cv2
import dlib
# Path to the video frames
video_folder = os.path.join("..", "examples", "video_frames2")
# Create the correlation tracker - the object needs to be initialized before it can be used
tracker1 = dlib.correlation_tracker()
tracker2 = dlib.correlation_tracker()
tracker3 = dlib.correlation_tracker()
selection = None
track_window = None
drag_start = None
def onmouse(event, x, y, flags, param):
global selection,track_window,drag_start
if event == cv2.EVENT_LBUTTONDOWN:
drag_start = (x, y)
track_window = None
if drag_start:
xmin = min(x, drag_start[0])
ymin = min(y, drag_start[1])
xmax = max(x, drag_start[0])
ymax = max(y, drag_start[1])
selection = (xmin, ymin, xmax, ymax)