参考资料 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
|
存储特征向量的 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)
使用时间参数(如特征历史、alpha 和当前特征)初始化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)
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 嵌入的对象,如果未启用 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 对象检测模型配合使用,仅在通过 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)
使用 ReID 模块和 GMC 算法初始化YOLOv8 对象。
源代码 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)
用检测结果、分数和类别初始化轨道。