function kalmanFilterForTracking
主要分三步完成。
➢ Step1: showDetections();这个函数主要完成将目标从背景中提取出来,并
加以标注,为后面的跟踪奠定基础。
其主要有以下三个函数构成并完成功能:
getDefaultParameters 获取目标检测的基本参数(包括目标小球的运
动模型、初始位置、初始误差估计、运动噪声、测量噪声以及目标小
球提取的分割阈值)
createUtilities 以类的方式读取待检测视频,为后面检测移动的物
体作准备。
detectObject 将每帧图像由RGB格式转化为灰度,将第一小球目标从图
像背景中分离出来
➢ step2: 对被检测出的目标小球运动进行卡尔曼滤波,形成持续跟踪。
1.首次发现一个球时,初始化卡尔曼滤波器,完成对卡尔曼滤波器的基本参
数设置,主要由以下两个函数完成:
computeInitialLocation 计算小球被检测出来时的初始位置,作为卡尔曼
滤波器的初始位置参数;
configureKalmanFilter 初始化目标小球的运动模型、初始位置、初始误
差估计、运动噪声、测量噪声等卡尔曼滤波器的基本参数。
2.初始化卡尔曼滤波器后,若本帧图像中可正常提取出目标小球(即不丢
失小球),则可获得目标小球位置的量测信息,那么就可采用卡尔曼滤波对
目标运动进行最优估计,进而修正目标运动位置(也就是小球的跟踪位置),
并对目标小球标记“已修正”,基本功能主要由以下两个函数完成。
predict(kalmanFilter) 基于上一帧目标小球的状态估计信息以及卡尔曼
滤波器参数,结合基于本帧图像信息提取的目标状态量测信息,采用
卡尔曼滤波方法对本帧时刻目标小球的状态信息(位置)进行最优估
计。
correct(kalmanFilter, detectedLocation)采用卡尔曼滤波方法预测估计出
本帧时刻目标小球的位置信息后,对图像中目标小球的跟踪位置进行
修正。
如是循环,直到完成对全部图像的跟踪。
3.若本帧图像中无法提取出目标小球(即丢失小球),也就无法获得目标小
球位置的量测信息,只能采用卡尔曼滤波对目标运动进行一步预测,期望在