Coder Social home page Coder Social logo

apennisi / jpdaf_tracking Goto Github PK

View Code? Open in Web Editor NEW
212.0 9.0 96.0 93.49 MB

A tracker based on joint probabilistic data association filtering.

License: GNU General Public License v3.0

CMake 1.47% C++ 98.53%
tracking jpda opencv eigen data-fusion fusion

jpdaf_tracking's Introduction

Joint Probabilistic Data Association Tracking (JPDAFTracker)

JPDAFTracker is a tracker based on joint probabilistic data association filtering.


Requirements

  • OpenCV
  • Eigen

How to build

JPDAFTracker works under Linux environments. I recommend a so-called out of source build which can be achieved by the following command sequence:

  • mkdir build
  • cd build
  • cmake ../
  • make -j<number-of-cores+1>

Params

[PD] #DETECTION PROBABILITY
1

[PG] #GATE PROBABILITY
0.4

[LOCAL_GSIGMA] #THRESHOLD OF GATING
15

[LOCAL_ASSOCIATION_COST] #ASSOCIATION COSTS
40

[GLOBAL_GSIGMA] #THRESHOLD OF GATING
0.1

[GLOBAL_ASSOCIATION_COST] #ASSOCIATION COSTS
50

[LAMBDA] #CONSTANT
2

[GAMMA] #G1,G2 INITIAL COVARIANCE P MATRIX
10 10

[R_MATRIX] #2x2 MEASUREMENT NOISE COVARIANCE MATRIX
100 0
0 100

[DT] #dt
0.4

[MIN_ACCPETANCE_RATE] #min rate for convalidating a track
10

[MAX_MISSED_RATE] #max rate for deleting a track
9

How to use

Go to the bin diretory and launch the program with the following command:

./jpdaf_tracker ../config/kalman_param.txt /path/to/the/detection_file.txt /path/to/the/image_folder 

jpdaf_tracking's People

Contributors

apennisi avatar nuzhny007 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jpdaf_tracking's Issues

The process of the associate algorithm?

Hello, I read your code and got one question: why there has two times associate in the code? first time is the local tracker, second time is the global tracker.

the result is actually bad

hi, I've run your code, but I find that many times it has not associate with previous time. Did you notice that

Is this used JDPA?

the algorithm looks like just used hungarian algorithm ,but not JDPA?

Frame rate drops as time passes

Hello,

as I stated in the title, tracker gets slower (computation time increases),while time passes. As time passes, there is increase of number of hypothesis although number of detection does not change as much. For more dense detections in my own datasets, I can observe the performance degradation rapidly. I tried to figure out the root problem but I am not able to succeed up to now. Let me share my debug prints for PETS09 datasets. In short, "Average time in second per track iteration is:" value increases.


PARAMS


[R_MATRIX]; 100 0
0 100
[TARGET_DELTA]: 10, 10
[DT]: 0.4
[LOCAL_ASSOCIATION_COST]: 40
[GLOBAL_ASSOCIATION_COST]: 50


#########################################################
image number: 0
num of detections: 3
init_ state ended:
Average time in second per track iteration is: 1.1164e-05
Average time in second per draw tracks iteration is: 0.206693
#########################################################
image number: 1
num of detections: 3
--------manage_new_tracks()1---------
--------manage_new_tracks() prevDetSize: 3
--------manage_new_tracks() deteSize: 3
--------manage_new_tracks()2---------
--------manage_new_tracks()3---------
manage_new_tracks() assignmentBin.rows: 3
manage_new_tracks() assignmentBin.cols: 3
manage_new_tracks() tracker->size(): 3

Average time in second per track iteration is: 0.000163129

Average time in second per draw tracks iteration is: 0.176309
#########################################################
image number: 2
num of detections: 5
localTrackers_.size(): 1
life_time == 0, initial_entropy: 6.062
life_time == 0, initial_entropy: 6.062
life_time == 0, initial_entropy: 6.062
Generate hypothesis q rows: 4
Generate hypothesis q cols: 4
hyp_num: 10
Tracks Size Before Compute Volume: 3
All the detections are not associated: 0.00699479
Track Size Before Global Association Start: 3
Detection Size: 5
GLOBAL ASSOCIATION STARTED:
ASSOCIATION ENDED: 7.1266e-05
q.total is less than or equal to zero:
Accumulated Time: 0.00706606
--------manage_new_tracks()1---------
--------manage_new_tracks() prevDetSize: 0
--------manage_new_tracks() deteSize: 1

Average time in second per track iteration is: 0.0024822

Average time in second per draw tracks iteration is: 0.166269
#########################################################
image number: 3
num of detections: 3
localTrackers_.size(): 1
Generate hypothesis q rows: 3
Generate hypothesis q cols: 4
hyp_num: 7
Tracks Size Before Compute Volume: 3
All the detections are not associated: 0.00567358
Track Size Before Global Association Start: 3
Detection Size: 3
GLOBAL ASSOCIATION STARTED:
ASSOCIATION ENDED: 3.1594e-05
q.total is less than or equal to zero:
Accumulated Time: 0.00570517
--------manage_new_tracks()1---------
--------manage_new_tracks() prevDetSize: 1
--------manage_new_tracks() deteSize: 0

Average time in second per track iteration is: 0.00329848

Average time in second per draw tracks iteration is: 0.160863
#########################################################
image number: 4
num of detections: 4
localTrackers_.size(): 1
Generate hypothesis q rows: 3
Generate hypothesis q cols: 4
hyp_num: 7
Tracks Size Before Compute Volume: 3
All the detections are not associated: 0.004824
Track Size Before Global Association Start: 3
Detection Size: 4
GLOBAL ASSOCIATION STARTED:
ASSOCIATION ENDED: 3.9157e-05
q.total is less than or equal to zero:
Accumulated Time: 0.00486316
--------manage_new_tracks()1---------
--------manage_new_tracks() prevDetSize: 0
--------manage_new_tracks() deteSize: 1
num Average time in second per track iteration is: 0.00361939
Average time in second per draw tracks iteration is: 0.15761
#########################################################
image number: 5
num of detections: 4
localTrackers_.size(): 1
Generate hypothesis q rows: 4
Generate hypothesis q cols: 4
hyp_num: 10
Tracks Size Before Compute Volume: 3
All the detections are not associated: 0.00475154
Track Size Before Global Association Start: 3
Detection Size: 4
GLOBAL ASSOCIATION STARTED:
ASSOCIATION ENDED: 5.9171e-05
q.total is less than or equal to zero:
Accumulated Time: 0.00481071
--------manage_new_tracks()1---------
--------manage_new_tracks() prevDetSize: 1
--------manage_new_tracks() deteSize: 0

Average time in second per track iteration is: 0.00382761

Average time in second per draw tracks iteration is: 0.155388
#########################################################
image number: 6
num of detections: 4
localTrackers_.size(): 1
Generate hypothesis q rows: 4
Generate hypothesis q cols: 4
hyp_num: 10
Tracks Size Before Compute Volume: 3
All the detections are not associated: 0.00526759
Track Size Before Global Association Start: 3
Detection Size: 4
GLOBAL ASSOCIATION STARTED:
ASSOCIATION ENDED: 3.8898e-05
q.total is less than or equal to zero:
Accumulated Time: 0.00530649
--------manage_new_tracks()1---------
--------manage_new_tracks() prevDetSize: 0
--------manage_new_tracks() deteSize: 0

Average time in second per track iteration is: 0.00404474

Average time in second per draw tracks iteration is: 0.154009
#########################################################
image number: 104
num of detections: 5
localTrackers_.size(): 4
entropy_sentinel: ACCEPT, life_time: 107
entropy_sentinel: ACCEPT, life_time: 105
entropy_sentinel: ACCEPT, life_time: 127
Generate hypothesis q rows: 3
Generate hypothesis q cols: 4
hyp_num: 9
Tracks Size Before Compute Volume: 3
entropy_sentinel: ACCEPT, life_time: 93
Generate hypothesis q rows: 2
Generate hypothesis q cols: 2
hyp_num: 3
Tracks Size Before Compute Volume: 1
entropy_sentinel: ACCEPT, life_time: 69
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
All the detections are not associated: 0.0138701
Track Size Before Global Association Start: 6
Detection Size: 5
GLOBAL ASSOCIATION STARTED:
ASSOCIATION ENDED: 8.6709e-05
q.total is less than or equal to zero:
Accumulated Time: 0.0139568
--------manage_new_tracks()1---------
--------manage_new_tracks() prevDetSize: 0
--------manage_new_tracks() deteSize: 0

Average time in second per track iteration is: 0.0115828

Average time in second per draw tracks iteration is: 0.144938
#########################################################
image number: 793
num of detections: 7
localTrackers_.size(): 24
life_time == 0, initial_entropy: 6.062
life_time == 0, initial_entropy: 6.062
life_time == 0, initial_entropy: 6.062
entropy_sentinel: ACCEPT, life_time: 511
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
entropy_sentinel: ACCEPT, life_time: 357
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
entropy_sentinel: ACCEPT, life_time: 294
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
entropy_sentinel: DISCARD, nodetections: 279
life_time == 0, initial_entropy: 6.062
life_time == 0, initial_entropy: 6.062
life_time == 0, initial_entropy: 6.062
entropy_sentinel: ACCEPT, life_time: 267
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
life_time == 0, initial_entropy: 6.062
life_time == 0, initial_entropy: 6.062
entropy_sentinel: ACCEPT, life_time: 213
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
entropy_sentinel: ACCEPT, life_time: 250
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
entropy_sentinel: DISCARD, nodetections: 135
entropy_sentinel: DISCARD, nodetections: 185
entropy_sentinel: ACCEPT, life_time: 187
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
entropy_sentinel: ACCEPT, life_time: 113
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
entropy_sentinel: ACCEPT, life_time: 165
Generate hypothesis q rows: 1
Generate hypothesis q cols: 2
hyp_num: 2
Tracks Size Before Compute Volume: 1
entropy_sentinel: ACCEPT, life_time: 105
Generate hypothesis q rows: 2
Generate hypothesis q cols: 2
hyp_num: 3
Tracks Size Before Compute Volume: 1
life_time == 0, initial_entropy: 6.062
entropy_sentinel: ACCEPT, life_time: 54
Generate hypothesis q rows: 2
Generate hypothesis q cols: 2
hyp_num: 3
Tracks Size Before Compute Volume: 1
life_time == 0, initial_entropy: 6.062
All the detections are not associated: 0.0372968
Track Size Before Global Association Start: 24
Detection Size: 7
GLOBAL ASSOCIATION STARTED:
ASSOCIATION ENDED: 0.000416706
ASSIGN ALL THE NOT ASSOCIATED TRACKS STARTED:
ASSIGN ALL THE NOT ASSOCIATED TRACKS ENDED: 2.106e-05
GENERATE HYPOTHESIS STARTED:
Generate hypothesis q rows: 1
Generate hypothesis q cols: 25
GENERATE HYPOTHESIS ENDED: 0.00309006
COMPUTE JOINT PROBABILITY STARTED
hyp_num: 4
Tracks Size Before Compute Volume: 24
COMPUTE JOINT PROBABILITY ENDED: 0.0001155
KALMAN PREDICT STEP STARTED:
KALMAN PREDICT STEP ENDED: 3.379e-05
UPDATE AND CORRECT STARTED:
UPDATE AND CORRECT ENDED: 4.9075e-05
Accumulated Time: 0.041023
--------manage_new_tracks()1---------
--------manage_new_tracks() prevDetSize: 0
--------manage_new_tracks() deteSize: 0

Average time in second per track iteration is: 0.0248247

Average time in second per draw tracks iteration is: 0.144375

formula error

Hello, I read your code and the paper about JPDAF, and I found there has a different about the covariance update between the code and paper
The code is in the kalman.cpp
114 Pk = Pk + beta(i) * (a * a.transpose() - x_filter * x_filter.transpose());
I compare this formula with the paper, and I think the brackets should not at the end of this formula, I consider this formula should be like this:
Pk = Pk + beta(i) * (a * a.transpose()) - x_filter * x_filter.transpose();
In this way, the final formula is consistent with the paper.

Getting too many errors on compilation

Hi!
I tried to compile to code with the instructions given, but it gave too many errors.
I tried correcting few errors, but more and more keep coming.

I have added the logs.
Any help shall be usefull.

Thanks

-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenCV: /opt/ros/kinetic (found version "3.3.1")
-- Performing Test COMPILER_SUPPORTS_CXX11
-- Performing Test COMPILER_SUPPORTS_CXX11 - Success
-- Performing Test COMPILER_SUPPORTS_CXX0X
-- Performing Test COMPILER_SUPPORTS_CXX0X - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sagar/Downloads/jpdaf_tracking-master/build
sagar@sagar-HP-Pavilion-Notebook:~/Downloads/jpdaf_tracking-master/build$ make -j5
Scanning dependencies of target jpdaf_tracker
[ 10%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/tracker.cpp.o
[ 20%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/imagemanager.cpp.o
[ 40%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/main.cpp.o
[ 40%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/track.cpp.o
[ 50%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/local_tracker.cpp.o
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:38:6: error: #elif with no expression
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:65:6: error: #elif with no expression
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:31:0:
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:54:36: error: ‘string’ in namespace ‘std’ does not name a type
explicit ImageManager(const std::string& dir);
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:62:8: error: ‘string’ in namespace ‘std’ does not name a type
std::string getNext(const int& speed);
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:70:28: error: ‘string’ is not a member of ‘std’
void sorting(std::vectorstd::string& data) const;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:70:28: error: ‘string’ is not a member of ‘std’
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:70:39: error: template argument 1 is invalid
void sorting(std::vectorstd::string& data) const;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:70:39: error: template argument 2 is invalid
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:71:15: error: ‘string’ is not a member of ‘std’
std::vectorstd::string getAllFilesInFolder(const std::string& path) const;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:71:15: error: ‘string’ is not a member of ‘std’
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:71:26: error: template argument 1 is invalid
std::vectorstd::string getAllFilesInFolder(const std::string& path) const;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:71:26: error: template argument 2 is invalid
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:71:59: error: ‘string’ in namespace ‘std’ does not name a type
std::vectorstd::string getAllFilesInFolder(const std::string& path) const;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:72:3: error: ‘size_t’ does not name a type
size_t currentFrameIndex;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:73:15: error: ‘string’ is not a member of ‘std’
std::vectorstd::string fileNames;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:73:15: error: ‘string’ is not a member of ‘std’
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:73:26: error: template argument 1 is invalid
std::vectorstd::string fileNames;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:73:26: error: template argument 2 is invalid
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:32:0:
/home/sagar/Downloads/jpdaf_tracking-master/src/natural_less.h: In function ‘int strcmp_natural(const char*, const char*)’:
/home/sagar/Downloads/jpdaf_tracking-master/src/natural_less.h:36:34: error: ‘numeric_limits’ is not a member of ‘std’
if (lengthA - lengthB >= std::numeric_limits::max())
^
/home/sagar/Downloads/jpdaf_tracking-master/src/natural_less.h:36:54: error: expected primary-expression before ‘int’
if (lengthA - lengthB >= std::numeric_limits::max())
^
/home/sagar/Downloads/jpdaf_tracking-master/src/natural_less.h:36:54: error: expected ‘)’ before ‘int’
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp: At global scope:
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:43:26: error: prototype for ‘std::vector<std::__cxx11::basic_string > ImageManager::getAllFilesInFolder(const string&) const’ does not match any in class ‘ImageManager’
std::vectorstd::string ImageManager::getAllFilesInFolder(const std::string& path) const
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:31:0:
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:71:28: error: candidate is: int ImageManager::getAllFilesInFolder(const int&) const
std::vectorstd::string getAllFilesInFolder(const std::string& path) const;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:85:1: error: prototype for ‘ImageManager::ImageManager(const string&)’ does not match any in class ‘ImageManager’
ImageManager::ImageManager(const std::string& dir)
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:31:0:
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:45:7: error: candidates are: constexpr ImageManager::ImageManager(ImageManager&&)
class ImageManager
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:45:7: error: constexpr ImageManager::ImageManager(const ImageManager&)
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:54:12: error: ImageManager::ImageManager(const int&)
explicit ImageManager(const std::string& dir);
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:94:6: error: prototype for ‘void ImageManager::sorting(std::vector<std::__cxx11::basic_string >&) const’ does not match any in class ‘ImageManager’
void ImageManager::sorting(std::vectorstd::string& data) const
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:31:0:
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.h:70:8: error: candidate is: void ImageManager::sorting(int&) const
void sorting(std::vectorstd::string& data) const;
^
/home/sagar/Downloads/jpdaf_tracking-master/src/imagemanager.cpp:99:51: error: no ‘std::__cxx11::string ImageManager::getNext(const int&)’ member function declared in class ‘ImageManager’
std::string ImageManager::getNext(const int& speed)
^
CMakeFiles/jpdaf_tracker.dir/build.make:86: recipe for target 'CMakeFiles/jpdaf_tracker.dir/src/imagemanager.cpp.o' failed
make[2]: *** [CMakeFiles/jpdaf_tracker.dir/src/imagemanager.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/track.cpp:1:0:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h: In member function ‘const cv::Mat& JPDAFTracker::Track::S_cv() const’:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h:93:15: warning: reference to local variable ‘Scv’ returned [-Wreturn-local-addr]
cv::Mat Scv;
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/track.cpp:1:0:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h: In member function ‘const Vector4f& JPDAFTracker::Track::getUpdate() const’:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h:154:28: warning: returning reference to temporary [-Wreturn-local-addr]
return KF->getUpdate();
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.h:34:0,
from /home/sagar/Downloads/jpdaf_tracking-master/src/main.cpp:2:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h: In member function ‘const cv::Mat& JPDAFTracker::Track::S_cv() const’:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h:93:15: warning: reference to local variable ‘Scv’ returned [-Wreturn-local-addr]
cv::Mat Scv;
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.h:34:0,
from /home/sagar/Downloads/jpdaf_tracking-master/src/main.cpp:2:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h: In member function ‘const Vector4f& JPDAFTracker::Track::getUpdate() const’:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h:154:28: warning: returning reference to temporary [-Wreturn-local-addr]
return KF->getUpdate();
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.h:34:0,
from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.cpp:1:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h: In member function ‘const cv::Mat& JPDAFTracker::Track::S_cv() const’:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h:93:15: warning: reference to local variable ‘Scv’ returned [-Wreturn-local-addr]
cv::Mat Scv;
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.h:34:0,
from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.cpp:1:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h: In member function ‘const Vector4f& JPDAFTracker::Track::getUpdate() const’:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h:154:28: warning: returning reference to temporary [-Wreturn-local-addr]
return KF->getUpdate();
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.h:34:0,
from /home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.h:4,
from /home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:1:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h: In member function ‘const cv::Mat& JPDAFTracker::Track::S_cv() const’:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h:93:15: warning: reference to local variable ‘Scv’ returned [-Wreturn-local-addr]
cv::Mat Scv;
^
In file included from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.h:34:0,
from /home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.h:4,
from /home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:1:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h: In member function ‘const Vector4f& JPDAFTracker::Track::getUpdate() const’:
/home/sagar/Downloads/jpdaf_tracking-master/src/track.h:154:28: warning: returning reference to temporary [-Wreturn-local-addr]
return KF->getUpdate();
^
/home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp: In member function ‘virtual void JPDAFTracker::LocalTracker::delete_tracks()’:
/home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:90:10: error: use of ‘auto’ in lambda parameter declaration only available with -std=c++14 or -std=gnu++14
[](auto& currentTrack) { return !currentTrack->isAlive() && currentTrack->getId() != -1; }),
^
/home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp: In lambda function:
/home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:90:52: error: base operand of ‘->’ is not a pointer
[](auto& currentTrack) { return !currentTrack->isAlive() && currentTrack->getId() != -1; }),
^
/home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:90:79: error: base operand of ‘->’ is not a pointer
[](auto& currentTrack) { return !currentTrack->isAlive() && currentTrack->getId() != -1; }),
^
In file included from /usr/include/c++/5/bits/stl_algobase.h:71:0,
from /usr/include/c++/5/memory:62,
from /home/sagar/Downloads/jpdaf_tracking-master/src/track.h:34,
from /home/sagar/Downloads/jpdaf_tracking-master/src/tracker.h:34,
from /home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.h:4,
from /home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:1:
/usr/include/c++/5/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_pred<_Predicate>::operator()(_Iterator) [with _Iterator = __gnu_cxx::__normal_iterator<std::shared_ptrJPDAFTracker::Track, std::vector<std::shared_ptrJPDAFTracker::Track > >; _Predicate = JPDAFTracker::LocalTracker::delete_tracks()::<lambda(int&)>]’:
/usr/include/c++/5/bits/stl_algo.h:866:20: required from ‘_ForwardIterator std::__remove_if(_ForwardIterator, _ForwardIterator, _Predicate) [with _ForwardIterator = __gnu_cxx::__normal_iterator<std::shared_ptrJPDAFTracker::Track
, std::vector<std::shared_ptrJPDAFTracker::Track > >; _Predicate = __gnu_cxx::__ops::_Iter_pred<JPDAFTracker::LocalTracker::delete_tracks()::<lambda(int&)> >]’
/usr/include/c++/5/bits/stl_algo.h:936:30: required from ‘_FIter std::remove_if(_FIter, _FIter, _Predicate) [with _FIter = __gnu_cxx::__normal_iterator<std::shared_ptrJPDAFTracker::Track, std::vector<std::shared_ptrJPDAFTracker::Track > >; _Predicate = JPDAFTracker::LocalTracker::delete_tracks()::<lambda(int&)>]’
/home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:90:97: required from here
/usr/include/c++/5/bits/predefined_ops.h:234:30: error: no match for call to ‘(JPDAFTracker::LocalTracker::delete_tracks()::<lambda(int&)>) (std::shared_ptrJPDAFTracker::Track&)’
{ return bool(_M_pred(
__it)); }
^
/usr/include/c++/5/bits/predefined_ops.h:234:30: note: candidate: void (*)(int&)
/usr/include/c++/5/bits/predefined_ops.h:234:30: note: candidate expects 2 arguments, 2 provided
/home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:90:28: note: candidate: JPDAFTracker::LocalTracker::delete_tracks()::<lambda(int&)>
[](auto& currentTrack) { return !currentTrack->isAlive() && currentTrack->getId() != -1; }),
^
/home/sagar/Downloads/jpdaf_tracking-master/src/local_tracker.cpp:90:28: note: no known conversion for argument 1 from ‘std::shared_ptrJPDAFTracker::Track’ to ‘int&’
CMakeFiles/jpdaf_tracker.dir/build.make:158: recipe for target 'CMakeFiles/jpdaf_tracker.dir/src/local_tracker.cpp.o' failed
make[2]: *** [CMakeFiles/jpdaf_tracker.dir/src/local_tracker.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/jpdaf_tracker.dir/all' failed
make[1]: *** [CMakeFiles/jpdaf_tracker.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Request for Information

Would you be able to help clarify some questions about the algorithm?

DT is the change in time when calculating velocity correct? So each velocity would be (x - x_{t-1})/DT. DT seems to remain constant. Does this assume that the time interval between state changes are constant?

Is there a paper based on this repository that may help me better understand what is going on and maybe clear up the above question as well? Thank you for creating this repo and for any assistance you can provide.

Could you please give some refs?

I am interested in your project. There are many formulas in your code and I wonder whether you can give some references on it?

terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid Aborted (core dumped)

hello, thanks for your work!
I have met the problem below when running ./jpdaf_tracker, and I don't know how to solve it, has anyone ever had a similar problem?



(base) sql@lenovo:~/algo/track/jpdaf_tracking/build$ cmake ..
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenCV: /usr/local (found version "4.5.5") 
-- Looking for C++ include filesystem
-- Looking for C++ include filesystem - found
Founded filesystem header
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sql/algo/track/jpdaf_tracking/build
(base) sql@lenovo:~/algo/track/jpdaf_tracking/build$ make -j20
Scanning dependencies of target jpdaf_tracker
[ 11%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/hungarianAlg.cpp.o
[ 33%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/local_tracker.cpp.o
[ 33%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/main.cpp.o
[ 44%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/track.cpp.o
[ 55%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/global_tracker.cpp.o
[ 66%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/kalman.cpp.o
[ 77%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/tracker_param.cpp.o
[ 88%] Building CXX object CMakeFiles/jpdaf_tracker.dir/src/tracker.cpp.o
[100%] Linking CXX executable jpdaf_tracker
[100%] Built target jpdaf_tracker
(base) sql@lenovo:~/algo/track/jpdaf_tracking/build$ ./jpdaf_tracker 
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Aborted (core dumped)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.