oylz / DS

cpp deep_sort: C++ implementation of Simple Online Realtime Tracking with a Deep Association Metric
https://github.com/nwojke/deep_sort
GNU General Public License v3.0
250 stars 78 forks source link

Where to get facenet.pb, mobilenet.pb files ??? #9

Closed RonakDedhiya closed 5 years ago

RonakDedhiya commented 5 years ago

Hello, I was trying to use deep features and want to know which facenet and mobilenet model did u used. Which would be compatible with tensorflow version. If you have it, can you pass out the link?

oylz commented 5 years ago

@RonakDedhiya ok, thank you focusing DS, models as below(maybe I changed the filename): (1) facenet: https://drive.google.com/open?id=1EXPBSXwTaqrSC0OhUdXNmKSh9qJUQ55- from:https://github.com/davidsandberg/facenet

mobilenet: https://1drv.ms/u/s!AvkGtmrlCEhDhy1YqWPGTMl1ybee from:https://github.com/Zehaos/MobileNet

(2) when I runned DS yesteryear, I use tensorflow-1.4.0-rc0.

RonakDedhiya commented 5 years ago

when i tried using facenet model. Model is getting loaded but session get into some error: What eigen library version would be suitable to use? Sources suggest that some initialization is not done or size is exceeding limit which causing this error? Any Suggestions ??

node name:InceptionResnetV1/Bottleneck/BatchNorm/Reshape_1 node name:embeddings/Square node name:embeddings/Sum/reduction_indices node name:embeddings/Sum node name:embeddings/Maximum/y node name:embeddings/Maximum node name:embeddings/Rsqrt node name:embeddings session.run----rcs.size():1, ftm2-ftm1:1276216 begin==== ,0.012666,-0.024307,-0.018235,0.054043,0.014510,0.054372,-0.069407,0.040447,-0.043297,-0.026317,-0.042192,0.076982,-0.043722,-0.028249,0.040141,-0.046485,0.045378,0.030071,0.022885,-0.092012,-0.043738,0.037885,0.067773,-0.020175,0.014743,0.011296,0.054080,0.020241,-0.025313,-0.017755,-0.019522,0.003134,0.020840,-0.023381,0.010793,0.043542,-0.047592,0.000124,-0.112817,0.045167,0.003669,0.045575,0.045404,-0.089537,0.034387,-0.028690,0.071568,0.048034,-0.113509,-0.024765,0.067637,0.091971,0.088102,-0.027536,-0.051581,0.032378,-0.005507,0.118291,-0.011519,0.017051,-0.045119,0.017441,0.008524,-0.036602,-0.004113,0.064810,0.015924,0.006759,0.002600,-0.021543,0.083886,0.037567,-0.022661,-0.032561,0.016954,-0.025419,0.014042,0.001886,-0.001394,0.038865,0.030672,0.042601,0.011721,-0.029743,-0.004074,0.019295,-0.011598,0.042982,-0.018859,0.042705,0.016109,0.028036,0.047609,-0.129481,0.030479,0.018293,-0.012281,0.031982,-0.024046,-0.007123,0.045696,-0.039232,-0.010257,0.015022,0.044601,0.091538,0.075012,0.003670,0.02286DS: /home/aitoe/.cache/bazel/_bazel_aitoe/84ac4d8c70e16781a4920ba7d9cd7a15/external/eigen_archive/Eigen/src/Core/DenseCoeffsBase.h:425: Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator()(Eigen::Index) [with Derived = Eigen::Matrix<float, 1, 128, 1>; Eigen::DenseCoeffsBase<Derived, 1>::Scalar = float; Eigen::Index = long int]: Assertion `index >= 0 && index < size()' failed. 9,-0.029495,0.030450,-0.011528,-0.017425,-0.007744,0.022199,0.007393,0.035167,-0.012692,-0.000504,0.056904,-0.098226,-0.018546,0.007893,-0.037520,-0.012851,-0.029646,0.003403,0.022024Aborted (core dumped)

oylz commented 5 years ago

It seems like the returned vector size is not 128. may be the model of FaceNet has been changed at now. As you can think, FaceNet module updatime is:20180402, later than I used it.

you can printf the [len] variable whitch in:https://github.com/oylz/DS/blob/master/deepsort/FeatureGetter/FeatureGetter.cpp#L148 if it's not 128, Can be sure that the model has changed.

I should tell you, the FaceNet model is not good for tracking, as mine testing.

RonakDedhiya commented 5 years ago

yes, Length is not 128 but 512 and that the cause of problem. Can you recommend which models worked best for you ?? I tried using tt1.pb provided in repo but its not giving identical result as got from python deep-sort implementation. I was trying to run faceNet model so then i can write similar code for using reidentification model as in python deep-sort implementation.

oylz commented 5 years ago

I use deepsort model best(tt1.pb:which I translated from original checkpoint file in deepsort).In you case,Can you show detail data&result?

RonakDedhiya commented 5 years ago

Hello, thanks for quick reply. I have a surveillance scenario like tracking in ATMs. I have initially used deep sort python implementation and got some reasonable good performance on ATM scenario. but our requirement is to run in cpp code. I have few questions:

  1. How far this code implements deep-sort python implementation. ( whether deep association metric is implemented ? )
  2. We are using deep features , can i directly use person re-identification model instead of tt1.pb. What necessary changes would be required at higher level ?
  3. In deep-sort paper,cosine metric learning is used to get best nearest neightbour result. Does any knn implementation is used for feature selection?
  4. What are the hyperparameters in current code which i can use to get better result
oylz commented 5 years ago

1 all the codes are translated from original python version in a low level implemention,nearly close,very small difference. 2 of course, you can use any feature getter,remember the feature size is 128. 3 yes,as like [1],it cached 100 history features every id, calculate by cosine metric and select the best id. 4 no

RonakDedhiya commented 5 years ago

Thanks for quick response!!! I am currently closing the issue. Would raise issue if got stuck.