Π‘ΡΡΠ»ΠΊΠ° Π΄Π»Ρ ultralytics/trackers/bot_sort.py
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/trackers/bot_sort .py. ΠΡΠ»ΠΈ ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π΅, ΠΎΡΠΏΡΠ°Π²ΠΈΠ² Pull Request π οΈ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ π!
ultralytics.trackers.bot_sort.BOTrack
ΠΠ°Π·Ρ: STrack
Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° STrack Π΄Π»Ρ YOLOv8, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΡΡΠΈΠ±ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
shared_kalman |
KalmanFilterXYWH
|
ΠΠ±ΡΠΈΠΉ ΡΠΈΠ»ΡΡΡ ΠΠ°Π»ΠΌΠ°Π½Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² BOTrack. |
smooth_feat |
ndarray
|
Π‘Π³Π»Π°ΠΆΠ΅Π½Π½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ². |
curr_feat |
ndarray
|
Π’Π΅ΠΊΡΡΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ². |
features |
deque
|
ΠΠ΅ΠΊΠ° Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ |
alpha |
float
|
ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ². |
mean |
ndarray
|
Π‘ΡΠ΅Π΄Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΠ»ΡΡΡΠ° ΠΠ°Π»ΠΌΠ°Π½Π°. |
covariance |
ndarray
|
ΠΠΎΠ²Π°ΡΠΈΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° ΡΠΈΠ»ΡΡΡΠ° ΠΠ°Π»ΠΌΠ°Π½Π°. |
ΠΠ΅ΡΠΎΠ΄Ρ:
ΠΠΌΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
update_features |
ΠΠ±Π½ΠΎΠ²ΠΈ Π²Π΅ΠΊΡΠΎΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² ΠΈ ΡΠ³Π»Π°Π΄Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ. |
predict |
ΠΡΠ΅Π΄ΡΠΊΠ°ΠΆΠΈ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΈ ΠΊΠΎΠ²Π°ΡΠΈΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠ° ΠΠ°Π»ΠΌΠ°Π½Π°. |
re_activate |
Π Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΡΠ΅ΠΊ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ, ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, Π½ΠΎΠ²ΡΠΌ ID. |
update |
ΠΠ±Π½ΠΎΠ²ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ YOLOv8 Ρ Π½ΠΎΠ²ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΡΠ΅ΠΊΠ° ΠΈ ΠΊΠ°Π΄ΡΠ°. |
tlwh |
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ tlwh |
multi_predict |
ΠΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ²Π°ΡΠΈΠ°ΡΠΈΡ ΡΡΠ΅ΠΊΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠΈΠ»ΡΡΡ ΠΠ°Π»ΠΌΠ°Π½Π°. |
convert_coords |
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΌΠΊΠΈ tlwh Π² ΡΠΎΡΠΌΠ°Ρ xywh. |
tlwh_to_xywh |
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΠΌΠΊΡ Π² ΡΠΎΡΠΌΠ°Ρ xywh |
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
bo_track = BOTrack(tlwh, score, cls, feat) bo_track.predict() bo_track.update(new_track, frame_id)
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
|
tlwh
property
ΠΠΎΠ»ΡΡΠΈ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΌΠΊΠΈ (top left x, top left y, width, height)
.
__init__(tlwh, score, cls, feat=None, feat_history=50)
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ YOLOv8 Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ², Π°Π»ΡΡΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
convert_coords(tlwh)
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Top-Left-Width-Height Π² ΡΠΎΡΠΌΠ°Ρ X-Y-Width-Height.
multi_predict(stracks)
staticmethod
ΠΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ²Π°ΡΠΈΠ°ΡΠΈΡ ΡΡΠ΅ΠΊΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠΈΠ»ΡΡΡ ΠΠ°Π»ΠΌΠ°Π½Π°.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
predict()
ΠΡΠ΅Π΄ΡΠΊΠ°ΠΆΠΈ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΈ ΠΊΠΎΠ²Π°ΡΠΈΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠ° ΠΠ°Π»ΠΌΠ°Π½Π°.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
re_activate(new_track, frame_id, new_id=False)
Π Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΡΠ΅ΠΊ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π΅ΠΌΡ Π½ΠΎΠ²ΡΠΉ ID.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
tlwh_to_xywh(tlwh)
staticmethod
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΠΌΠΊΡ Π² ΡΠΎΡΠΌΠ°Ρ (center x, center y, width, height)
.
update(new_track, frame_id)
ΠΠ±Π½ΠΎΠ²ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ YOLOv8 Ρ Π½ΠΎΠ²ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΡΠ΅ΠΊΠ° ΠΈ ΠΊΠ°Π΄ΡΠ°.
update_features(feat)
ΠΠ±Π½ΠΎΠ²ΠΈ Π²Π΅ΠΊΡΠΎΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² ΠΈ ΡΠ³Π»Π°Π΄Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
ultralytics.trackers.bot_sort.BOTSORT
ΠΠ°Π·Ρ: BYTETracker
Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° BYTETracker Π΄Π»Ρ YOLOv8, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ReID ΠΈ GMC.
ΠΡΡΠΈΠ±ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
proximity_thresh |
float
|
ΠΠΎΡΠΎΠ³ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π±Π»ΠΈΠ·ΠΎΡΡΠΈ (IoU) ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ. |
appearance_thresh |
float
|
ΠΠΎΡΠΎΠ³ Π΄Π»Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΡ ΠΎΠ΄ΡΡΠ²Π° (Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΡ ReID) ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ. |
encoder |
object
|
ΠΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ ReID, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° None, Π΅ΡΠ»ΠΈ ReID Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½. |
gmc |
GMC
|
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° GMC Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . |
args |
object
|
Π Π°Π·Π±ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ. |
ΠΠ΅ΡΠΎΠ΄Ρ:
ΠΠΌΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
get_kalmanfilter |
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ KalmanFilterXYWH Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². |
init_track |
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉ ΡΡΠ΅ΠΊ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΡΠ΅Π½ΠΊΠ°ΠΌΠΈ ΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ. |
get_dists |
ΠΠΎΠ»ΡΡΠΈ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ IoU ΠΈ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) ReID. |
multi_predict |
ΠΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠΉ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ YOLOv8 . |
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
bot_sort = BOTSORT(args, frame_rate) bot_sort.init_track(dets, scores, cls, img) bot_sort.multi_predict(tracks)
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ»Π°ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² YOLOv8 ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ReID, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· args.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
|
__init__(args, frame_rate=30)
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ YOLOv8 Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ReID ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ GMC.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
get_dists(tracks, detections)
ΠΠΎΠ»ΡΡΠΈ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΡ IoU ΠΈ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) ReID.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
get_kalmanfilter()
init_track(dets, scores, cls, img=None)
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉ ΡΡΠ΅ΠΊ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΡΠ΅Π½ΠΊΠ°ΠΌΠΈ ΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/trackers/bot_sort.py
multi_predict(tracks)
ΠΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠΉ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ YOLOv8 .
Π‘ΠΎΠ·Π΄Π°Π½ΠΎ 2023-11-12, ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 2024-05-08
ΠΠ²ΡΠΎΡΡ: Burhan-Q (1), Glenn-jocher (3), Laughing-q (1)