Skip to content

lenient preset

Recall: relaxes every threshold (conf 0.15, max_det 1500, looser NMS/association/track-init).

Use it with -c lenient, or start from a local copy with geotrax config copy. Generated from lenient.yaml.

Changed keys

Key default lenient
ultralytics.conf 0.25 0.15
ultralytics.iou 0.7 0.8
ultralytics.max_det 1000 1500
tracker.botsort.track_high_thresh 0.25 0.2
tracker.botsort.new_track_thresh 0.25 0.1
tracker.botsort.track_buffer 30 45
tracker.botsort.match_thresh 0.8 0.9
Full diff against default.yaml
--- default.yaml
+++ lenient.yaml
@@ -1,3 +1,20 @@
-# geo-trax pipeline configuration (default.yaml) — the single, self-contained config for
-# the entire pipeline. There are no linked sub-config files; every setting lives here.
+# geo-trax pipeline configuration — "lenient" preset (lenient.yaml).
+#
+# A recall-oriented preset: every detection and tracking threshold is relaxed so the pipeline
+# keeps as much as possible — lower confidence, a higher detection cap, more permissive NMS,
+# lower BoT-SORT track-initiation thresholds, looser association, and a longer track buffer.
+# Maximises recall — catches more vehicles including low-visibility, occluded, or closely spaced
+# ones — at the cost of more false positives. Useful for exploratory or crowded scenes.
+#
+# Note: for NMS iou and the tracker's match_thresh, a HIGHER value is the more permissive one
+# (iou is the overlap needed to suppress a box; match_thresh is a 1-IoU cost ceiling).
+#
+# Differs from default.yaml:
+#   ultralytics.conf:                  0.25 -> 0.15
+#   ultralytics.max_det:               1000 -> 1500
+#   ultralytics.iou:                   0.7  -> 0.8
+#   tracker.botsort.track_high_thresh: 0.25 -> 0.2
+#   tracker.botsort.new_track_thresh:  0.25 -> 0.1
+#   tracker.botsort.match_thresh:      0.8  -> 0.9
+#   tracker.botsort.track_buffer:      30   -> 45
 #
@@ -5,7 +22,7 @@
 # Instead, work with a local copy:
-#   geotrax config show           # show where this file lives and which presets are available
-#   geotrax config show default   # print this file's full contents to the terminal
-#   geotrax config copy           # copy the presets into the current directory as <name>_copy.yaml
+#   geotrax config show            # show where this file lives and which presets are available
+#   geotrax config show lenient    # print this file's full contents to the terminal
+#   geotrax config copy            # copy the presets into the current directory as <name>_copy.yaml
 # Then pass your edited copy to any command with -c, e.g.:
-#   geotrax extract video.mp4 -c default_copy.yaml
+#   geotrax extract video.mp4 -c lenient_copy.yaml
 #
@@ -283,5 +300,5 @@
   # Detection / inference
-  conf: 0.25          # (float) object confidence threshold for detection; [0.0, 1.0] — CLI: --conf
-  iou: 0.7            # (float) IoU threshold for NMS; [0.0, 1.0]
-  max_det: 1000       # (int) maximum number of detections per image; [1, inf)
+  conf: 0.15          # (float) object confidence threshold for detection; [0.0, 1.0] — CLI: --conf
+  iou: 0.8            # (float) IoU threshold for NMS; [0.0, 1.0] — raised (recall preset): more permissive NMS, keeps more overlapping/adjacent boxes
+  max_det: 1500       # (int) maximum number of detections per image; [1, inf)
   classes: [0,1,2,3]  # (int | list[int]) filter by class id(s); 0=car, 1=bus, 2=truck, 3=motorcycle — CLI: --classes
@@ -415,7 +432,7 @@
     tracker_type: botsort    # Tracker backend; botsort enables GMC and optional ReID; [botsort, bytetrack, ocsort, deepocsort, fasttrack, tracktrack]
-    track_high_thresh: 0.25  # Detection confidence threshold for first-stage (high-confidence) association; [0.0, 1.0]
+    track_high_thresh: 0.2   # Detection confidence threshold for first-stage (high-confidence) association; [0.0, 1.0] — lowered (recall preset) to match conf=0.15
     track_low_thresh: 0.1    # Detection confidence threshold for second-stage (low-confidence) recovery; [0.0, 1.0]
-    new_track_thresh: 0.25   # Minimum confidence to initialise a new track; higher reduces false track initiations; [0.0, 1.0]
-    track_buffer: 30         # Frames to keep a lost track alive before deletion; higher tolerates longer occlusions; [1, inf)
-    match_thresh: 0.8        # Max association cost (1 - IoU) for track-detection matching; higher = looser (accepts lower-IoU matches); [0.0, 1.0]
+    new_track_thresh: 0.1    # Minimum confidence to initialise a new track; higher reduces false track initiations; [0.0, 1.0] — lowered (recall preset) so low-conf detections start tracks
+    track_buffer: 45         # Frames to keep a lost track alive before deletion; higher tolerates longer occlusions; [1, inf) — raised (recall preset) for crowded/occluded scenes
+    match_thresh: 0.9        # Max association cost (1 - IoU) for track-detection matching; higher = looser (accepts lower-IoU matches); [0.0, 1.0] — raised (recall preset): hold tracks through larger displacement
     fuse_score: true         # Fuse detection confidence with the IoU cost matrix; improves weak-detection robustness; [true, false]