这篇博客将介绍如何使用Python,dlib执行对象跟踪。即通过dlib的相关跟踪器来实时跟踪视频流中的对象。
与July的质心跟踪(Centroid Tracking)不同,dlib的对象跟踪算法可以利用从输入RGB图像收集的信息进行自我更新——该算法不需要为输入视频流中的每一帧计算一组边界框。并且dlib的相关跟踪算法非常健壮,能够实时运行。
然而,最大的缺点是如果视点发生实质性变化或要跟踪的对象被遮挡,相关跟踪器可能会变得“混乱”,并丢失希望跟踪的对象。
在这些场景中,可以重新运行(计算成本很高的)对象检测器,以重新确定跟踪对象的位置来优化。
追踪对象的方法有:
-
质心跟踪,这是一种简单但有效的方法,1)为图像中的每个对象分配唯一的ID,然后2)在视频流中移动时跟踪每个对象和相关ID。
这种目标跟踪算法的最大缺点是,必须在每个输入帧上运行单独的目标检测器——在大多数情况下,这种行为是不可取的,因为目标检测器(包括HOG+线性SVM、更快的R-CNN和SSD)的运行计算成本可能会很高。 -
执行一次目标检测(或每N帧一次),然后应用一种专用的跟踪算法,可以在后续帧中移动时保持对对象的跟踪,而无需执行对象检测。
方法2可行,