61 const std::vector<TrackedObjectPtr> &objects,
62 const std::vector<MrfTrackDataPtr> &tracks,
63 std::vector<std::pair<size_t, size_t>> *assignments,
64 std::vector<size_t> *unassigned_tracks,
65 std::vector<size_t> *unassigned_objects) {
67 unassigned_objects->clear();
68 unassigned_tracks->clear();
69 if (objects.empty() || tracks.empty()) {
70 unassigned_objects->resize(objects.size());
71 unassigned_tracks->resize(tracks.size());
72 std::iota(unassigned_objects->begin(), unassigned_objects->end(), 0);
73 std::iota(unassigned_tracks->begin(), unassigned_tracks->end(), 0);
86 association_mat->
Resize(tracks.size(), objects.size());
88 matcher->
Match(matcher_options, assignments, unassigned_tracks,
90 for (
size_t i = 0; i < assignments->size(); ++i) {
91 objects[assignments->at(i).second]->association_score =
92 (*association_mat)(assignments->at(i).first,
93 assignments->at(i).second) /
99 const std::vector<MrfTrackDataPtr> &tracks,
100 const std::vector<TrackedObjectPtr> &new_objects,
102 for (
size_t i = 0; i < tracks.size(); ++i) {
103 for (
size_t j = 0; j < new_objects.size(); ++j) {
104 (*association_mat)(i, j) =
void Match(const MrfTrackObjectMatcherOptions &options, const std::vector< TrackedObjectPtr > &objects, const std::vector< MrfTrackDataPtr > &tracks, std::vector< std::pair< size_t, size_t > > *assignments, std::vector< size_t > *unassigned_tracks, std::vector< size_t > *unassigned_objects)
Match detected objects to tracks
bool GetProtoFromFile(const std::string &file_name, google::protobuf::Message *message)
Parses the content of the file specified by the file_name as a representation of protobufs,...