This is the C++ code for object tracking with particle filtering algorithm with adaptive and hybrid techniques. The filtering algorithm is able to track the objects without training.
- C++ code for Object Tracking with multiple CPUs, which is verified on a cluster in CUNY High Performance Center.
- The code was written with MPI interface.
- hpc_mini, hpc_adaptive, hpc_local, hpc_hybrid refers to different information transfer algorithms between CPUs.
- The features of the targets can be defined for object tracking.
The code was tested on Mac and linux platorms.
- install OpenCV.
- install OpenMPI
- export TMPDIR=/tmp
- mpicxx main.cpp
pkg-config opencv --libs
-w - mpirun -np 128 ./a.out 1000 // np: the number of cpus, 128: use 128 CPUs, a.out: executed file, 1000: 1000 particles per CPU.
The matalb code in ./LabelingMatlabProgram/LabelingGT.m allow you to manually label the targets from a piece of video and save the labeled position of target in a txt file. The C++ program in ./PFTracking_adaptive and ./PFTracking_hybrid can read the txt file and compare it with the estimation position to calculate the accuracy (RMSE error).
The code is released under MIT License (see LICENSE file for details).