MCPcopy Create free account
hub / github.com/Smorodov/Multitarget-tracker / InitTracker

Method InitTracker

example/examples.h:836–889  ·  view source on GitHub ↗

\brief InitTracker \param frame \return

Source from the content-addressed store, hash-verified

834 /// \return
835 ///
836 bool InitTracker(cv::UMat frame) override
837 {
838 if (!m_trackerSettingsLoaded)
839 {
840 bool useDeepSORT = true;
841 if (useDeepSORT)
842 {
843#ifdef _WIN32
844 std::string pathToModel = "../../data/";
845#else
846 std::string pathToModel = "../data/";
847#endif
848
849 m_trackerSettings.m_embeddings.emplace_back(pathToModel + "reid/osnet_x0_25_msmt17.onnx", pathToModel + "reid/osnet_x0_25_msmt17.onnx",
850 cv::Size(128, 256),
851 std::vector<objtype_t>{ TypeConverter::Str2Type("person"), TypeConverter::Str2Type("car"), TypeConverter::Str2Type("bus"), TypeConverter::Str2Type("truck"), TypeConverter::Str2Type("vehicle") });
852
853 std::array<track_t, tracking::DistsCount> distType{
854 0.f, // DistCenters
855 0.f, // DistRects
856 0.5f, // DistJaccard
857 0.f, // DistHist
858 0.5f, // DistFeatureCos
859 0.f // DistMahalanobis
860 };
861 if (!m_trackerSettings.SetDistances(distType))
862 m_logger->error("SetDistances failed! Absolutly summ must be equal 1");
863 }
864 else
865 {
866 m_trackerSettings.SetDistance(tracking::DistCenters);
867 }
868
869 //m_trackerSettings.SetDistance(tracking::DistCenters);
870 m_trackerSettings.m_kalmanType = tracking::KalmanLinear;
871 m_trackerSettings.m_filterGoal = tracking::FilterCenter;
872 m_trackerSettings.m_lostTrackType = tracking::TrackKCF; // Use visual objects tracker for collisions resolving. Used if m_filterGoal == tracking::FilterRect
873 m_trackerSettings.m_matchType = tracking::MatchHungrian;
874 m_trackerSettings.m_dt = 0.3f; // Delta time for Kalman filter
875 m_trackerSettings.m_accelNoiseMag = 0.2f; // Accel noise magnitude for Kalman filter
876 m_trackerSettings.m_distThres = 0.8f; // Distance threshold between region and object on two frames
877 m_trackerSettings.m_minAreaRadiusPix = frame.rows / 20.f;
878 m_trackerSettings.m_maximumAllowedLostTime = 2.; // Maximum allowed skipped frames
879 m_trackerSettings.m_maxTraceLength = 5.; // Maximum trace length
880 }
881 //m_trackerSettings.AddNearTypes(TypeConverter::Str2Type("car"), TypeConverter::Str2Type("bus"), false);
882 //m_trackerSettings.AddNearTypes(TypeConverter::Str2Type("car"), TypeConverter::Str2Type("truck"), false);
883 //m_trackerSettings.AddNearTypes(TypeConverter::Str2Type("person"), TypeConverter::Str2Type("bicycle"), true);
884 //m_trackerSettings.AddNearTypes(TypeConverter::Str2Type("person"), TypeConverter::Str2Type("motorbike"), true);
885
886 m_tracker = BaseTracker::CreateTracker(m_trackerSettings);
887
888 return true;
889 }
890
891 ///
892 /// \brief DrawData

Callers

nothing calls this directly

Calls 2

SetDistancesMethod · 0.80
SetDistanceMethod · 0.80

Tested by

no test coverage detected