ultralytics 8.2.74 add fuse_score=True BoT-SORT and ByteTrack arg (#14965)
Co-authored-by: UltralyticsAssistant <web@ultralytics.com> Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
This commit is contained in:
parent
8771f923c0
commit
9f59331854
6 changed files with 8 additions and 9 deletions
|
|
@ -14,6 +14,7 @@
|
||||||
49699333+dependabot[bot]@users.noreply.github.com: dependabot
|
49699333+dependabot[bot]@users.noreply.github.com: dependabot
|
||||||
52826299+Chayanonjackal@users.noreply.github.com: Chayanonjackal
|
52826299+Chayanonjackal@users.noreply.github.com: Chayanonjackal
|
||||||
53246858+hasanghaffari93@users.noreply.github.com: hasanghaffari93
|
53246858+hasanghaffari93@users.noreply.github.com: hasanghaffari93
|
||||||
|
60036186+mfloto@users.noreply.github.com: mfloto
|
||||||
61612323+Laughing-q@users.noreply.github.com: Laughing-q
|
61612323+Laughing-q@users.noreply.github.com: Laughing-q
|
||||||
62214284+Burhan-Q@users.noreply.github.com: Burhan-Q
|
62214284+Burhan-Q@users.noreply.github.com: Burhan-Q
|
||||||
68285002+Kayzwer@users.noreply.github.com: Kayzwer
|
68285002+Kayzwer@users.noreply.github.com: Kayzwer
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
||||||
|
|
||||||
__version__ = "8.2.73"
|
__version__ = "8.2.74"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ track_low_thresh: 0.1 # threshold for the second association
|
||||||
new_track_thresh: 0.6 # threshold for init new track if the detection does not match any tracks
|
new_track_thresh: 0.6 # threshold for init new track if the detection does not match any tracks
|
||||||
track_buffer: 30 # buffer to calculate the time when to remove tracks
|
track_buffer: 30 # buffer to calculate the time when to remove tracks
|
||||||
match_thresh: 0.8 # threshold for matching tracks
|
match_thresh: 0.8 # threshold for matching tracks
|
||||||
|
fuse_score: True # Whether to fuse confidence scores with the iou distances before matching
|
||||||
# min_box_area: 10 # threshold for min box areas(for tracker evaluation, not used for now)
|
# min_box_area: 10 # threshold for min box areas(for tracker evaluation, not used for now)
|
||||||
# mot20: False # for tracker evaluation(not used for now)
|
|
||||||
|
|
||||||
# BoT-SORT settings
|
# BoT-SORT settings
|
||||||
gmc_method: sparseOptFlow # method of global motion compensation
|
gmc_method: sparseOptFlow # method of global motion compensation
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,5 @@ track_low_thresh: 0.1 # threshold for the second association
|
||||||
new_track_thresh: 0.6 # threshold for init new track if the detection does not match any tracks
|
new_track_thresh: 0.6 # threshold for init new track if the detection does not match any tracks
|
||||||
track_buffer: 30 # buffer to calculate the time when to remove tracks
|
track_buffer: 30 # buffer to calculate the time when to remove tracks
|
||||||
match_thresh: 0.8 # threshold for matching tracks
|
match_thresh: 0.8 # threshold for matching tracks
|
||||||
|
fuse_score: True # Whether to fuse confidence scores with the iou distances before matching
|
||||||
# min_box_area: 10 # threshold for min box areas(for tracker evaluation, not used for now)
|
# min_box_area: 10 # threshold for min box areas(for tracker evaluation, not used for now)
|
||||||
# mot20: False # for tracker evaluation(not used for now)
|
|
||||||
|
|
|
||||||
|
|
@ -179,9 +179,8 @@ class BOTSORT(BYTETracker):
|
||||||
dists = matching.iou_distance(tracks, detections)
|
dists = matching.iou_distance(tracks, detections)
|
||||||
dists_mask = dists > self.proximity_thresh
|
dists_mask = dists > self.proximity_thresh
|
||||||
|
|
||||||
# TODO: mot20
|
if self.args.fuse_score:
|
||||||
# if not self.args.mot20:
|
dists = matching.fuse_score(dists, detections)
|
||||||
dists = matching.fuse_score(dists, detections)
|
|
||||||
|
|
||||||
if self.args.with_reid and self.encoder is not None:
|
if self.args.with_reid and self.encoder is not None:
|
||||||
emb_dists = matching.embedding_distance(tracks, detections) / 2.0
|
emb_dists = matching.embedding_distance(tracks, detections) / 2.0
|
||||||
|
|
|
||||||
|
|
@ -375,9 +375,8 @@ class BYTETracker:
|
||||||
def get_dists(self, tracks, detections):
|
def get_dists(self, tracks, detections):
|
||||||
"""Calculates the distance between tracks and detections using IoU and fuses scores."""
|
"""Calculates the distance between tracks and detections using IoU and fuses scores."""
|
||||||
dists = matching.iou_distance(tracks, detections)
|
dists = matching.iou_distance(tracks, detections)
|
||||||
# TODO: mot20
|
if self.args.fuse_score:
|
||||||
# if not self.args.mot20:
|
dists = matching.fuse_score(dists, detections)
|
||||||
dists = matching.fuse_score(dists, detections)
|
|
||||||
return dists
|
return dists
|
||||||
|
|
||||||
def multi_predict(self, tracks):
|
def multi_predict(self, tracks):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue