GithubHelp home page GithubHelp logo

samuelmurray / tracking-by-detection Goto Github PK

View Code? Open in Web Editor NEW
344.0 344.0 96.0 14.76 MB

Multiple object tracking (MOT) algorithm implemented in C++

License: GNU General Public License v3.0

C++ 90.88% Makefile 4.91% Python 3.96% Shell 0.25%
multi-object-tracking tracking-by-detection

tracking-by-detection's Introduction

samuelmurray

Hi! I'm a software developer located in Stockholm, Sweden.

tracking-by-detection's People

Contributors

samuelmurray 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tracking-by-detection's Issues

Running the demo

Hi,

I could set the path with the pkg-config for the dependencies and also did a make compile in the cpp/ folder.

I am not sure where the executable is built and how to run a demo with the project (is there a demo?). Or is this just a library and I have to link it to my project?

Thanks!

Is there any threshold I could adjust with my own data?

Hi there,
Thank you for your great contribution. I run the detectAndtrack code, the result is not bad. But there still exists obviously missing tracking ID between Neighboring frames. So Is there any threshold I could adjust with my own data.
Many thanks.

Compile errors with g++7

I get the following error when attempting to compile with g++7 or 6:

/usr/include/c++/6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>

And this one when compiling with g++5

/usr/local/include/dlib/optimization/optimization_line_search.h:215:26: error: ‘__builtin_fpclassify’ is not a member of ‘std’
         if (temp == 0 || std::fpclassify(temp) == FP_SUBNORMAL)

Which version of g++ did you use to compile?

make this project more powerfull?

hi,professor:
your code very good! as we know, SORT is very fast, but its disadvantage is SwitchID too much, so , are you sitll work in MOT? can you make some improve on your project with some new papers method, follow tracking-by-detection paradigm,
thanks a lot!

Track demo produces weird values

I ran track demo with ./trackApp.out -s seqmap.txt -m det -f mot using the det.txt provided in the MOT16 data and some of the values in the output (e.g. MOT16-02) are off, like -nan values or pixel values bigger than the image size, as shown below.
216,84,-79658.6,-nan,0,-nan,1,-1,-1,-1,1

I am using dlib-19.8 with DLIB_ISO_CPP_ONLY set to ON, openCV-3.4

Please add some references to papers

I came here from the MOT challenge website interested in your tracker. Could you please add some references to publications in the readme so I can learn more about how it works?

cost = dlib::join_cols(cost, dlib::zeros_matrix<int>(cost.nc() - cost.nr(), 1));

when run demo, the bug is:
DLIB_ASSERT(a.nc() == b.nc() || a.size() == 0 || b.size() == 0,
"\tconst matrix_exp join_cols(const matrix_exp& a, const matrix_exp& b)"
<< "\n\tYou can only use join_cols() if both matrices have the same number of columns"
<< "\n\ta.nr(): " << a.nr()
<< "\n\tb.nr(): " << b.nr()
<< "\n\ta.nc(): " << a.nc()
<< "\n\tb.nc(): " << b.nc()
);
have you ever seen this bug?

Python equivalent

Would you provide me the python Keras equivalent of this code. I really do not like C++ and caffe.

make compile success but make detect or make track wrong??

make compile [use_caffe=true] [force_rebuild=true]

(compile) CXX src/detector/SSDDetector.cpp
(compile) CXX src/detector/RandomDetector.cpp
(compile) CXX src/detector/Detector.cpp
(compile) CXX src/examples/DetectDemo.cpp
(compile) CXX src/examples/TrackDemo.cpp
(compile) CXX src/examples/DetectAndTrackDemo.cpp
(compile) CXX src/util/Detection.cpp
(compile) CXX src/util/BoundingBox.cpp
(compile) CXX src/util/DetectionFileParser.cpp
(compile) CXX src/util/Tracking.cpp
(compile) CXX src/ImageTracker.cpp
(compile) CXX src/tracker/RandomTracker.cpp
(compile) CXX src/tracker/Tracker.cpp
(compile) CXX src/tracker/predictor/Predictor.cpp
(compile) CXX src/tracker/predictor/kalman/KalmanPredictor.cpp
(compile) CXX src/tracker/predictor/particle/Particle.cpp
(compile) CXX src/tracker/predictor/particle/ParticleFilter.cpp
(compile) CXX src/tracker/predictor/particle/ParticlePredictor.cpp
(compile) CXX src/tracker/predictor/StationaryPredictor.cpp
(compile) CXX src/tracker/PAOT.cpp
src/tracker/PAOT.cpp: In static member function ‘static PAOT::Association PAOT::associateDetectionsToPredictors(const std::vector&, const std::vector<std::shared_ptr >&, double (*)(const BoundingBox&, const BoundingBox&), double)’:
src/tracker/PAOT.cpp:71:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < detections.size(); ++i)
^
src/tracker/PAOT.cpp:95:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int d = 0; d < assignment.size(); ++d) {
^
src/tracker/PAOT.cpp:97:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (d < detections.size()) {
^
src/tracker/PAOT.cpp:100:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (assignment[d] < predictors.size()) {
^
(compile) CXX src/tracker/Affinity.cpp

but when i make detect:

make detect
(link) CXX detectApp.out
/usr/bin/ld: build/tracker/predictor/kalman/KalmanPredictor.o: undefined reference to symbol 'dgesvd_'
//usr/lib/liblapack.so.3: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
makefile:84: recipe for target 'detectApp.out' failed
make: *** [detectApp.out] Error 1

detectAndTrack usage

I'm attempting to use the detectAndTrack demo, but I'm having issues with the configuration files.
For the models part, I've put the caffe ssd model under tracking-by-detection/models, and my model_config.txt file looks like this.

<model-type>
deploy.prototxt
VGG_VOC0712_SSD_300x300_iter_120000.caffemodel
<r_mean,g_mean,b_mean>

For the seqmap.txt file, I don't know what to do since I don't have any detections to point to, I thought the point of detectAndTrack was to have SSD do the detections.

What should the configuration look like?

if it helps my images are stored as data/myimages/images/xxxxx.jpg

Any help would be very much appreciated.

run trackApp.out error

Hi,
I use
./trackApp.out -s seqmap.txt -m det -f mot
then, there is an error :Segmentation fault (core dumped)
before that, it prints Sequence: images, that means the problem is on auto durationFrameCount = track(sequencePathString, modelType, detectionFormat, frameInterval, doOverwriteResult);
I do not what the problem is, can you help me?
Thanks a lot!

Compile demo error

Hi, there!
I have set the path with .pc file in config/ folder. After i make compile and make detect, i got the executable file detetcApp.out, but then i got an error when ./detectApp.out like the following:

./detectApp.out: symbol lookup error: /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.so: undefined symbol: mkl_lapack_dgetrfnpi

which have been perplexing me for a long time. Actually, i cannot find the undefined symbol -- mkl_lapack_dgetrfnpi in my PC, and i am not sure whether it's the MKL error or some other code error or environment wrong.

My config is as follows:
Ubuntu 16.04
dlib -- 19.10.0
MKL -- Intel parallel_studio_xe_2017_update4
boost -- 1.67.0
caffe -- which is ok
cuda -- 8.0
opencv -- 3.2.0 with contrib

Thanks a lot!

CMakeLists.txt ?

The installation guide show that you are using cmake to maintain the project. But where is the CMakeLists.txt file ?

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.