Skip to content

Commit 68981f3

Browse files
committed
Bug fix and update docs
1 parent 53b908f commit 68981f3

21 files changed

+761
-1026
lines changed

docs/.doctrees/environment.pickle

609 Bytes
Binary file not shown.
3.03 KB
Binary file not shown.

docs/_modules/motrackers/centroid_kf_tracker.html

+56-47
Large diffs are not rendered by default.

docs/_modules/motrackers/detectors/detector.html

+24-41
Original file line numberDiff line numberDiff line change
@@ -172,16 +172,11 @@ <h1>Source code for motrackers.detectors.detector</h1><div class="highlight"><pr
172172
<span class="sd">&quot;&quot;&quot;</span>
173173
<span class="sd"> Abstract class for detector.</span>
174174

175-
<span class="sd"> Parameters</span>
176-
<span class="sd"> ----------</span>
177-
<span class="sd"> object_names : dict</span>
178-
<span class="sd"> Dictionary containing (key, value) as (class_id, class_name) for object detector.</span>
179-
<span class="sd"> confidence_threshold: float</span>
180-
<span class="sd"> Confidence threshold for object detection.</span>
181-
<span class="sd"> nms_threshold : float</span>
182-
<span class="sd"> Threshold for non-maximal suppression.</span>
183-
<span class="sd"> draw_bboxes : bool</span>
184-
<span class="sd"> If true, draw bounding boxes on the image is possible.</span>
175+
<span class="sd"> Args:</span>
176+
<span class="sd"> object_names (dict): Dictionary containing (key, value) as (class_id, class_name) for object detector.</span>
177+
<span class="sd"> confidence_threshold (float): Confidence threshold for object detection.</span>
178+
<span class="sd"> nms_threshold (float): Threshold for non-maximal suppression.</span>
179+
<span class="sd"> draw_bboxes (bool): If true, draw bounding boxes on the image is possible.</span>
185180
<span class="sd"> &quot;&quot;&quot;</span>
186181

187182
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">object_names</span><span class="p">,</span> <span class="n">confidence_threshold</span><span class="p">,</span> <span class="n">nms_threshold</span><span class="p">,</span> <span class="n">draw_bboxes</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
@@ -199,32 +194,26 @@ <h1>Source code for motrackers.detectors.detector</h1><div class="highlight"><pr
199194
<span class="sd">&quot;&quot;&quot;</span>
200195
<span class="sd"> Forward pass for the detector with input image.</span>
201196

202-
<span class="sd"> Parameters</span>
203-
<span class="sd"> ----------</span>
204-
<span class="sd"> image : numpy.ndarray</span>
197+
<span class="sd"> Args:</span>
198+
<span class="sd"> image (numpy.ndarray): Input image.</span>
205199

206-
<span class="sd"> Returns</span>
207-
<span class="sd"> -------</span>
208-
<span class="sd"> detections : numpy.ndarray</span>
200+
<span class="sd"> Returns:</span>
201+
<span class="sd"> numpy.ndarray: detections</span>
209202
<span class="sd"> &quot;&quot;&quot;</span>
210203
<span class="k">raise</span> <span class="bp">NotImplemented</span></div>
211204

212205
<div class="viewcode-block" id="Detector.detect"><a class="viewcode-back" href="../../../includeme/apidocuments.html#motrackers.detectors.detector.Detector.detect">[docs]</a> <span class="k">def</span> <span class="nf">detect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">image</span><span class="p">):</span>
213206
<span class="sd">&quot;&quot;&quot;</span>
214207
<span class="sd"> Detect objects in the input image.</span>
215208

216-
<span class="sd"> Parameters</span>
217-
<span class="sd"> ----------</span>
218-
<span class="sd"> image : numpy.ndarray</span>
219-
<span class="sd"> Input image.</span>
209+
<span class="sd"> Args:</span>
210+
<span class="sd"> image (numpy.ndarray): Input image.</span>
220211

221-
<span class="sd"> Returns</span>
222-
<span class="sd"> -------</span>
223-
<span class="sd"> tuple :</span>
224-
<span class="sd"> Tuple containing the following elements</span>
225-
<span class="sd"> - bboxes : (numpy.ndarray) Bounding boxes with shape (n, 4) containing detected objects with each row as `(xmin, ymin, width, height)`.</span>
226-
<span class="sd"> - confidences : (numpy.ndarray) Confidence or detection probabilities if the detected objects with shape (n,).</span>
227-
<span class="sd"> - class_ids (numpy.ndarray) : Class_ids or label_ids of detected objects with shape (n, 4)</span>
212+
<span class="sd"> Returns:</span>
213+
<span class="sd"> tuple: Tuple containing the following elements:</span>
214+
<span class="sd"> - bboxes (numpy.ndarray): Bounding boxes with shape (n, 4) containing detected objects with each row as `(xmin, ymin, width, height)`.</span>
215+
<span class="sd"> - confidences (numpy.ndarray): Confidence or detection probabilities if the detected objects with shape (n,).</span>
216+
<span class="sd"> - class_ids (numpy.ndarray): Class_ids or label_ids of detected objects with shape (n, 4)</span>
228217

229218
<span class="sd"> &quot;&quot;&quot;</span>
230219
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">width</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">height</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
@@ -257,20 +246,14 @@ <h1>Source code for motrackers.detectors.detector</h1><div class="highlight"><pr
257246
<span class="sd">&quot;&quot;&quot;</span>
258247
<span class="sd"> Draw the bounding boxes about detected objects in the image.</span>
259248

260-
<span class="sd"> Parameters</span>
261-
<span class="sd"> ----------</span>
262-
<span class="sd"> image : numpy.ndarray</span>
263-
<span class="sd"> Image or video frame.</span>
264-
<span class="sd"> bboxes : numpy.ndarray</span>
265-
<span class="sd"> Bounding boxes pixel coordinates as (xmin, ymin, width, height)</span>
266-
<span class="sd"> confidences : numpy.ndarray</span>
267-
<span class="sd"> Detection confidence or detection probability.</span>
268-
<span class="sd"> class_ids : numpy.ndarray</span>
269-
<span class="sd"> Array containing class ids (aka label ids) of each detected object.</span>
270-
271-
<span class="sd"> Returns</span>
272-
<span class="sd"> -------</span>
273-
<span class="sd"> numpy.ndarray : image with the bounding boxes drawn on it.</span>
249+
<span class="sd"> Args:</span>
250+
<span class="sd"> image (numpy.ndarray): Image or video frame.</span>
251+
<span class="sd"> bboxes (numpy.ndarray): Bounding boxes pixel coordinates as (xmin, ymin, width, height)</span>
252+
<span class="sd"> confidences (numpy.ndarray): Detection confidence or detection probability.</span>
253+
<span class="sd"> class_ids (numpy.ndarray): Array containing class ids (aka label ids) of each detected object.</span>
254+
255+
<span class="sd"> Returns:</span>
256+
<span class="sd"> numpy.ndarray: image with the bounding boxes drawn on it.</span>
274257
<span class="sd"> &quot;&quot;&quot;</span>
275258

276259
<span class="k">for</span> <span class="n">bb</span><span class="p">,</span> <span class="n">conf</span><span class="p">,</span> <span class="n">cid</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">bboxes</span><span class="p">,</span> <span class="n">confidences</span><span class="p">,</span> <span class="n">class_ids</span><span class="p">):</span>

docs/_modules/motrackers/iou_tracker.html

+6-12
Original file line numberDiff line numberDiff line change
@@ -175,18 +175,12 @@ <h1>Source code for motrackers.iou_tracker</h1><div class="highlight"><pre>
175175
<span class="sd"> ----------</span>
176176
<span class="sd"> * Implementation of this algorithm is heavily based on https://github.com/bochinski/iou-tracker</span>
177177

178-
<span class="sd"> Parameters</span>
179-
<span class="sd"> ----------</span>
180-
<span class="sd"> max_lost : int</span>
181-
<span class="sd"> Maximum number of consecutive frames object was not detected.</span>
182-
<span class="sd"> tracker_output_format : str</span>
183-
<span class="sd"> Output format of the tracker.</span>
184-
<span class="sd"> min_detection_confidence : float</span>
185-
<span class="sd"> Threshold for minimum detection confidence.</span>
186-
<span class="sd"> max_detection_confidence : float</span>
187-
<span class="sd"> Threshold for max. detection confidence.</span>
188-
<span class="sd"> iou_threshold : float</span>
189-
<span class="sd"> Intersection over union minimum value.</span>
178+
<span class="sd"> Args:</span>
179+
<span class="sd"> max_lost (int): Maximum number of consecutive frames object was not detected.</span>
180+
<span class="sd"> tracker_output_format (str): Output format of the tracker.</span>
181+
<span class="sd"> min_detection_confidence (float): Threshold for minimum detection confidence.</span>
182+
<span class="sd"> max_detection_confidence (float): Threshold for max. detection confidence.</span>
183+
<span class="sd"> iou_threshold (float): Intersection over union minimum value.</span>
190184
<span class="sd"> &quot;&quot;&quot;</span>
191185

192186
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>

docs/_modules/motrackers/kalman_tracker.html

+33-25
Original file line numberDiff line numberDiff line change
@@ -170,22 +170,14 @@ <h1>Source code for motrackers.kalman_tracker</h1><div class="highlight"><pre>
170170
<span class="sd">&quot;&quot;&quot;</span>
171171
<span class="sd"> Kalman Filter Implementation.</span>
172172

173-
<span class="sd"> Parameters</span>
174-
<span class="sd"> ----------</span>
175-
<span class="sd"> transition_matrix: numpy.ndarray</span>
176-
<span class="sd"> Transition matrix of shape (n, n).</span>
177-
<span class="sd"> measurement_matrix: numpy.ndarray</span>
178-
<span class="sd"> Measurement matrix of shape (m, n).</span>
179-
<span class="sd"> control_matrix: numpy.ndarray</span>
180-
<span class="sd"> Control matrix of shape (m, n).</span>
181-
<span class="sd"> process_noise_covariance: numpy.ndarray</span>
182-
<span class="sd"> Covariance matrix of shape (n, n).</span>
183-
<span class="sd"> measurement_noise_covariance: numpy.ndarray</span>
184-
<span class="sd"> Covariance matrix of shape (m, m).</span>
185-
<span class="sd"> prediction_covariance: numpy.ndarray</span>
186-
<span class="sd"> Predicted (a priori) estimate covariance of shape (n, n).</span>
187-
<span class="sd"> initial_state: numpy.ndarray</span>
188-
<span class="sd"> Initial state of shape (n,).</span>
173+
<span class="sd"> Args:</span>
174+
<span class="sd"> transition_matrix (numpy.ndarray): Transition matrix of shape ``(n, n)``.</span>
175+
<span class="sd"> measurement_matrix (numpy.ndarray): Measurement matrix of shape ``(m, n)``.</span>
176+
<span class="sd"> control_matrix (numpy.ndarray): Control matrix of shape ``(m, n)``.</span>
177+
<span class="sd"> process_noise_covariance (numpy.ndarray): Covariance matrix of shape ``(n, n)``.</span>
178+
<span class="sd"> measurement_noise_covariance (numpy.ndarray): Covariance matrix of shape ``(m, m)``.</span>
179+
<span class="sd"> prediction_covariance (numpy.ndarray): Predicted (a priori) estimate covariance of shape ``(n, n)``.</span>
180+
<span class="sd"> initial_state (numpy.ndarray): Initial state of shape ``(n,)``.</span>
189181

190182
<span class="sd"> &quot;&quot;&quot;</span>
191183

@@ -225,7 +217,7 @@ <h1>Source code for motrackers.kalman_tracker</h1><div class="highlight"><pre>
225217
<span class="sd"> u (float or int or numpy.ndarray): Control input. Default is `0`.</span>
226218

227219
<span class="sd"> Returns:</span>
228-
<span class="sd"> numpy.ndarray : State vector of shape (n,).</span>
220+
<span class="sd"> numpy.ndarray : State vector of shape `(n,)`.</span>
229221

230222
<span class="sd"> &quot;&quot;&quot;</span>
231223
<span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">transition_matrix</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">control_matrix</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
@@ -241,10 +233,7 @@ <h1>Source code for motrackers.kalman_tracker</h1><div class="highlight"><pre>
241233
<span class="sd"> Measurement update of Kalman Filter.</span>
242234

243235
<span class="sd"> Args:</span>
244-
<span class="sd"> z (numpy.ndarray): Measurement vector of the system with shape (m,).</span>
245-
246-
<span class="sd"> Returns:</span>
247-
236+
<span class="sd"> z (numpy.ndarray): Measurement vector of the system with shape ``(m,)``.</span>
248237
<span class="sd"> &quot;&quot;&quot;</span>
249238
<span class="n">y</span> <span class="o">=</span> <span class="n">z</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">measurement_matrix</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
250239

@@ -266,6 +255,15 @@ <h1>Source code for motrackers.kalman_tracker</h1><div class="highlight"><pre>
266255

267256

268257
<span class="k">def</span> <span class="nf">get_process_covariance_matrix</span><span class="p">(</span><span class="n">dt</span><span class="p">):</span>
258+
<span class="sd">&quot;&quot;&quot;</span>
259+
<span class="sd"> Generates a process noise covariance matrix for constant acceleration motion.</span>
260+
261+
<span class="sd"> Args:</span>
262+
<span class="sd"> dt (float): Timestep.</span>
263+
264+
<span class="sd"> Returns:</span>
265+
<span class="sd"> numpy.ndarray: Process covariance matrix of shape `(3, 3)`.</span>
266+
<span class="sd"> &quot;&quot;&quot;</span>
269267
<span class="c1"># a = np.array([</span>
270268
<span class="c1"># [0.25 * dt ** 4, 0.5 * dt ** 3, 0.5 * dt ** 2],</span>
271269
<span class="c1"># [0.5 * dt ** 3, dt ** 2, dt],</span>
@@ -281,8 +279,17 @@ <h1>Source code for motrackers.kalman_tracker</h1><div class="highlight"><pre>
281279

282280

283281
<span class="k">def</span> <span class="nf">get_transition_matrix</span><span class="p">(</span><span class="n">dt</span><span class="p">):</span>
284-
<span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mf">1.</span><span class="p">,</span> <span class="n">dt</span><span class="p">,</span> <span class="n">dt</span> <span class="o">*</span> <span class="n">dt</span> <span class="o">*</span> <span class="mf">0.5</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="n">dt</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">]])</span>
285-
<span class="k">return</span> <span class="n">a</span>
282+
<span class="sd">&quot;&quot;&quot;</span>
283+
<span class="sd"> Generate the transition matrix for constant acceleration motion.</span>
284+
285+
<span class="sd"> Args:</span>
286+
<span class="sd"> dt (float): Timestep.</span>
287+
288+
<span class="sd"> Returns:</span>
289+
<span class="sd"> numpy.ndarray: Transition matrix of shape ``(3, 3)``.</span>
290+
291+
<span class="sd"> &quot;&quot;&quot;</span>
292+
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mf">1.</span><span class="p">,</span> <span class="n">dt</span><span class="p">,</span> <span class="n">dt</span> <span class="o">*</span> <span class="n">dt</span> <span class="o">*</span> <span class="mf">0.5</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="n">dt</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">]])</span>
286293

287294

288295
<div class="viewcode-block" id="KFTrackerConstantAcceleration"><a class="viewcode-back" href="../../includeme/apidocuments.html#motrackers.kalman_tracker.KFTrackerConstantAcceleration">[docs]</a><span class="k">class</span> <span class="nc">KFTrackerConstantAcceleration</span><span class="p">(</span><span class="n">KalmanFilter</span><span class="p">):</span>
@@ -359,12 +366,13 @@ <h1>Source code for motrackers.kalman_tracker</h1><div class="highlight"><pre>
359366

360367
<div class="viewcode-block" id="KFTrackerSORT"><a class="viewcode-back" href="../../includeme/apidocuments.html#motrackers.kalman_tracker.KFTrackerSORT">[docs]</a><span class="k">class</span> <span class="nc">KFTrackerSORT</span><span class="p">(</span><span class="n">KalmanFilter</span><span class="p">):</span>
361368
<span class="sd">&quot;&quot;&quot;</span>
369+
<span class="sd"> Kalman filter for ``SORT``.</span>
362370

363371
<span class="sd"> Args:</span>
364-
<span class="sd"> bbox (numpy.ndarray): Bounding box coordinates as (xmid, ymid, area, aspect_ratio).</span>
372+
<span class="sd"> bbox (numpy.ndarray): Bounding box coordinates as ``(xmid, ymid, area, aspect_ratio)``.</span>
365373
<span class="sd"> time_step (float or int): Time step.</span>
366374
<span class="sd"> process_noise_scale (float): Scale (a.k.a covariance) of the process noise.</span>
367-
<span class="sd"> measurement_noise_scale (float): Scale (a.k.a covariance) of the measurement noise.</span>
375+
<span class="sd"> measurement_noise_scale (float): Scale (a.k.a. covariance) of the measurement noise.</span>
368376
<span class="sd"> &quot;&quot;&quot;</span>
369377
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bbox</span><span class="p">,</span> <span class="n">process_noise_scale</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span> <span class="n">measurement_noise_scale</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span> <span class="n">time_step</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
370378
<span class="k">assert</span> <span class="n">bbox</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mi">4</span><span class="p">,</span> <span class="n">bbox</span><span class="o">.</span><span class="n">shape</span>

0 commit comments

Comments
 (0)