此篇为第④篇,多目标跟踪系列文章:
基础demor入门①②;公式推导③④;深入分析初始化参数的影响⑤;
① Matlab Kalman滤波例子——小球跟踪解析 :matlab官方例子,单目标跟踪。匀速模型和匀加速模型
②Matlab Kalman Filter based Multiple object Tracking 官方例子 多目标跟踪_hello world-CSDN博客matlab官方例子,多目标跟踪。注意有匈牙利轨迹分配算法,且其中的距离计算公式为观测与预测的马氏距离,这个来源于1987年的作者的著作中。
③kalman滤波——公式推导_hello world-CSDN博客_卡尔曼滤波递推公式
理解马氏距离的公式! 理解残差和残差协方差!
④多目标跟踪——阶段性进展_hello world-CSDN博客_多目标跟踪 多目标综述、Kalman滤波公式推导
⑤kalman简单例子——初始化参数对kalman性能的影响_hello world-CSDN博客
⑥多目标跟踪中的目标是否静止判断_hello world-CSDN博客 判断是否静止,如何计算速度
CheckStatic代码原理解析,数学公式推导。
其它优秀的博客参考:
⑦多目标跟踪(MOT)入门 - 知乎 比较好的多目标MOT综述!
⑧《Towards Real-Time Multi-Object Tracking》论文翻译 - 知乎
⑨ 视频轨迹跟踪分析——他山之石_hello world-CSDN博客
1. 多目标跟踪:背景建模+kalman+匈牙利
demo参考:
- 1:Matlab Kalman Filter based Multiple object Tracking 官方例子 多目标跟踪
- 2:GitHub - hariharsubramanyam/ObjectTracker: Multiple object tracking with a fixed, overhead camera using background subtraction and Kalman filters Multiple object tracking with a fixed, overhead camera using background subtraction and Kalman filters
- 3:GitHub - srianant/kalman_filter_multi_object_tracking: Multiple object tracking using Kalman Filter and Hungarian Algorithm - OpenCV Multiple object tracking using Kalman Filter and Hungarian Algorithm - OpenCV
- 4:GitHub - Smorodov/Multitarget-tracker: Multiple Object Tracker, Based on Hungarian algorithm + Kalman filter. 这个仓库好齐全
- 5: https://github.com/tntrung/human_detection_tracking A C/C++ implementation of pedestrian detection and tracking." Online Multiperson Tracking-by-Detection from a Single, Uncalibrated Camera, PAMI 2011."
- matlab版本:
demo1的路线:GMM背景建模→blob分析计算质心→Kalman→匈牙利。这个做的还可以,在于质心的计算比较好,因此在匹配时是否可以加入一些特征进去。
demo3的路线:背景建模进行目标检测→canny边缘检测→findContours找到质心,从半径中筛选一些虚警→Kalman filter预测+校正→匈牙利进行ID匹配→起始、终止、新建等轨迹操作和处理。
- 这个的处理效果有限。因为在计算轮廓那里不鲁棒。只适用于作者的小细胞类的跟踪。
--------------------------------------
1.0 开源仓库代码构建
- step1: 检测:①背景建模;②YOLO;③Opencv HOG+SVM
- step2:检测、轨迹分配:①匈牙利O(N^3);②加权二分图
距离分配:
1.0.1 Build
1.0.2 readme如下
2025/01/06补充
- 增加了yolo检测器的tensorrt8 推理;增加了Re-ID的人车重识别(来自openVINO)
- 漏检时使用视觉搜索功能
1.0.3 win10 编译 Smorodov/Multitarget-tracker仓库代码
① opencv+opencv_contrib 编译,之前有编译好的opencv_cuda。
git clone https://github.com/Smorodov/Multitarget-tracker.git
cd Multitarget-tracker
mkdir build
cd build
cmake . .. -DUSE_OCV_BGFG=ON -DUSE_OCV_KCF=ON -DUSE_OCV_UKF=ON -DBUILD_YOLO_LIB=ON -DBUILD_YOLO_TENSORRT=ON -DBUILD_ASYNC_DETECTOR=ON -DBUILD_CARS_COUNTING=ON
make -j
② cmd下编译,找不到OPENCV_DIR,要修改命令,使用.bat文件
cmake_vs2017.bat 文件位置:
Multitarget-tracker/cmake_vs2017.bat at master · Smorodov/Multitarget-tracker · GitHub
③出现错误:找不到OpenCVDIR,要在cmake指令里面指明
④ Cuda和CUDNN安装路径存在空格,解决办法如下:Program Files用Progam~1表示
CmD空格转义的三种方法,总有一种会解决问题 - 想总结却停留不前? - 博客园
⑤遇到错误:找不到PKG_CONFIG_EXE
原因:还是在于空格路径没办法解决!
终极解决办法:路径加引号。如 "Visual Studio 16 2019" 就可以识别的。下图红框所示:
1.0.4 build成功了
1.1 Kalman滤波——单目标跟踪
目标跟踪学习笔记_5(opencv中kalman点跟踪例子) 有实验代码。
匀加速模型:状态观测+实际观测。观测的误差太大,比较信任绿色的结果。
kalman.cpp 源文件位置:opencv/modules/video/src/kalman.cpp