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

Method InitTracker

example/CarsCounting.cpp:174–225  ·  view source on GitHub ↗

\brief CarsCounting::InitTracker \param grayFrame

Source from the content-addressed store, hash-verified

172/// \param grayFrame
173///
174bool CarsCounting::InitTracker(cv::UMat frame)
175{
176 if (!m_trackerSettingsLoaded)
177 return false;
178
179 if (m_drawHeatMap)
180 {
181 if (frame.channels() == 3)
182 m_keyFrame = frame.getMat(cv::ACCESS_READ).clone();
183 else
184 cv::cvtColor(frame, m_keyFrame, cv::COLOR_GRAY2BGR);
185 m_heatMap = cv::Mat(m_keyFrame.size(), CV_32FC1, cv::Scalar::all(0));
186 }
187
188 const int minStaticTime = 5;
189
190 TrackerSettings settings;
191 settings.SetDistance(tracking::DistJaccard);
192 settings.m_kalmanType = tracking::KalmanLinear;
193 settings.m_filterGoal = tracking::FilterCenter;
194 settings.m_lostTrackType = tracking::TrackCSRT; // Use KCF tracker for collisions resolving. Used if m_filterGoal == tracking::FilterRect
195 settings.m_matchType = tracking::MatchHungrian;
196 settings.m_dt = 0.3f; // Delta time for Kalman filter
197 settings.m_accelNoiseMag = 0.2f; // Accel noise magnitude for Kalman filter
198 settings.m_distThres = 0.7f; // Distance threshold between region and object on two frames
199 settings.m_minAreaRadiusPix = frame.rows / 20.f;
200 settings.m_maximumAllowedLostTime = 2.; // Maximum allowed lost time
201
202 settings.AddNearTypes(TypeConverter::Str2Type("car"), TypeConverter::Str2Type("bus"), false);
203 settings.AddNearTypes(TypeConverter::Str2Type("car"), TypeConverter::Str2Type("truck"), false);
204 settings.AddNearTypes(TypeConverter::Str2Type("person"), TypeConverter::Str2Type("bicycle"), true);
205 settings.AddNearTypes(TypeConverter::Str2Type("person"), TypeConverter::Str2Type("motorbike"), true);
206
207 settings.m_useAbandonedDetection = false;
208 if (settings.m_useAbandonedDetection)
209 {
210 settings.m_minStaticTime = minStaticTime;
211 settings.m_maxStaticTime = 60;
212 settings.m_maximumAllowedLostTime = settings.m_minStaticTime; // Maximum allowed lost time
213 settings.m_maxTraceLength = 2 * settings.m_maximumAllowedLostTime; // Maximum trace length
214 }
215 else
216 {
217 settings.m_maximumAllowedLostTime = 10.; // Maximum allowed lost time
218 settings.m_maxTraceLength = 4.; // Maximum trace length
219 }
220
221 m_tracker = BaseTracker::CreateTracker(settings);
222
223 ReadGeobindings(frame.size());
224 return true;
225}
226
227///
228/// \brief CarsCounting::DrawData

Callers

nothing calls this directly

Calls 4

cloneMethod · 0.80
SetDistanceMethod · 0.80
AddNearTypesMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected