参考 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
YOLOv8 用 STrack クラスの拡張版で、オブジェクト追跡機能を追加。
属性:
名称 | タイプ | 説明 |
---|---|---|
shared_kalman |
KalmanFilterXYWH
|
BOTrackの全インスタンスで共有されるカルマンフィルター。 |
smooth_feat |
ndarray
|
平滑化された特徴ベクトル。 |
curr_feat |
ndarray
|
現在の特徴ベクトル。 |
features |
deque
|
で定義される最大長を持つ特徴ベクトルを格納するdeque。 |
alpha |
float
|
指数移動平均の平滑化係数。 |
mean |
ndarray
|
カルマンフィルターの平均状態。 |
covariance |
ndarray
|
カルマンフィルターの共分散行列。 |
方法:
名称 | 説明 |
---|---|
update_features |
特徴ベクトルを更新し、指数移動平均を使って平滑化する。 |
predict |
カルマンフィルターを用いて平均と共分散を予測する。 |
re_activate |
更新された機能と、オプションで新しいIDを持つトラックを再アクティブ化する。 |
update |
新しいトラックとフレームIDで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)
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
update(new_track, frame_id)
新しいトラックとフレームIDでYOLOv8 インスタンスを更新する。
update_features(feat)
特徴ベクトルを更新し、指数移動平均を使って平滑化する。
ソースコード ultralytics/trackers/bot_sort.py
ultralytics.trackers.bot_sort.BOTSORT
ベース: BYTETracker
YOLOv8 用の BYTETracker クラスの拡張版で,ReID と GMC アルゴリズムによるオブジェクト追跡用に設計されています.
属性:
名称 | タイプ | 説明 |
---|---|---|
proximity_thresh |
float
|
トラックと検出の空間的近接度(IoU)のしきい値。 |
appearance_thresh |
float
|
トラックと検出の間の外観類似度(ReID埋め込み)のしきい値。 |
encoder |
object
|
ReIDが有効でない場合はNoneに設定される。 |
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 オブジェクト検出モデルで動作するように設計されており、argsで有効にした場合のみReIDをサポートします。
ソースコード 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)
検出、スコア、クラスでトラックを初期化する。