MCPcopy Create free account
hub / github.com/OpenPTrack/open_ptrack_v2 / createDistanceMatrix

Method createDistanceMatrix

tracking/src/skeleton_tracker.cpp:201–246  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

199}
200
201void
202SkeletonTracker::createDistanceMatrix()
203{
204 distance_matrix_ = cv::Mat_<double>(tracks_.size(), detections_.size());
205 int track = 0;
206 for(std::list<SkeletonTrack*>::const_iterator it = tracks_.begin(),
207 end = tracks_.end(); it != end; it++)
208 {
209 SkeletonTrack* t = *it;
210 int measure = 0;
211 for(std::vector<open_ptrack::detection::SkeletonDetection>::iterator
212 dit = detections_.begin(), dend = detections_.end(); dit != dend; dit++)
213 {
214 double detector_likelihood;
215
216 // Compute detector likelihood:
217 if (detector_likelihood_)
218 {
219 detector_likelihood = dit->getConfidence();
220 // detector_likelihood = log((dit->getConfidence() + 3) / 6);
221 }
222 else
223 {
224 detector_likelihood = 0;
225 }
226
227 // Compute motion likelihood:
228 double motion_likelihood = t->getMahalanobisDistance(
229 dit->getWorldCentroid()(0),
230 dit->getWorldCentroid()(1),
231 dit->getSource()->getTime());
232
233 // Compute joint likelihood and put it in the distance matrix:
234
235 distance_matrix_(track, measure++) =
236 likelihood_weights_[0] * detector_likelihood +
237 likelihood_weights_[1] * motion_likelihood;
238
239 // Remove NaN and inf:
240 if (std::isnan(distance_matrix_(track, measure-1))
241 or (not std::isfinite(distance_matrix_(track, measure-1))))
242 distance_matrix_(track, measure-1) = 2*gate_distance_;
243 }
244 track++;
245 }
246}
247
248void
249SkeletonTracker::updateDetectedTracks()

Callers

nothing calls this directly

Calls 8

getWorldCentroidMethod · 0.80
getTimeMethod · 0.80
getSourceMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
getConfidenceMethod · 0.45

Tested by

no test coverage detected