\brief CTracker::CTracker Manage tracks: create, remove, update. \param settings
| 54 | /// \param settings |
| 55 | /// |
| 56 | CTracker::CTracker(const TrackerSettings& settings) |
| 57 | : m_settings(settings) |
| 58 | { |
| 59 | m_SPCalculator.reset(); |
| 60 | SPSettings spSettings = { settings.m_distThres, 12 }; |
| 61 | switch (m_settings.m_matchType) |
| 62 | { |
| 63 | case tracking::MatchHungrian: |
| 64 | m_SPCalculator = std::make_unique<SPHungrian>(spSettings); |
| 65 | break; |
| 66 | case tracking::MatchBipart: |
| 67 | m_SPCalculator = std::make_unique<SPBipart>(spSettings); |
| 68 | break; |
| 69 | case tracking::MatchLAPJV: |
| 70 | m_SPCalculator = std::make_unique<SPLAPJV>(spSettings); |
| 71 | break; |
| 72 | } |
| 73 | assert(m_SPCalculator); |
| 74 | |
| 75 | for (const auto& embParam : settings.m_embeddings) |
| 76 | { |
| 77 | std::shared_ptr<EmbeddingsCalculator> embCalc = std::make_shared<EmbeddingsCalculator>(); |
| 78 | if (!embCalc->Initialize(embParam.m_embeddingCfgName, embParam.m_embeddingWeightsName, embParam.m_inputLayer)) |
| 79 | { |
| 80 | std::cerr << "EmbeddingsCalculator initialization error: " << embParam.m_embeddingCfgName << ", " << embParam.m_embeddingWeightsName << std::endl; |
| 81 | } |
| 82 | else |
| 83 | { |
| 84 | for (auto objType : embParam.m_objectTypes) |
| 85 | { |
| 86 | m_embCalculators.try_emplace((objtype_t)objType, embCalc); |
| 87 | } |
| 88 | } |
| 89 | } |
| 90 | } |
| 91 | |
| 92 | /// |
| 93 | /// \brief CanGrayFrameToTrack |
nothing calls this directly
no test coverage detected