Referência para ultralytics/trackers/bot_sort.py
Nota
Este ficheiro está disponível em https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/trackers/bot_sort .py. Se detectares um problema, por favor ajuda a corrigi-lo contribuindo com um Pull Request 🛠️. Obrigado 🙏!
ultralytics.trackers.bot_sort.BOTrack
Bases: STrack
Uma versão alargada da classe STrack para YOLOv8, adicionando funcionalidades de seguimento de objectos.
Atributos:
Nome | Tipo | Descrição |
---|---|---|
shared_kalman |
KalmanFilterXYWH
|
Um filtro Kalman partilhado para todas as instâncias do BOTrack. |
smooth_feat |
ndarray
|
Vetor de características suavizadas. |
curr_feat |
ndarray
|
Vetor de características atual. |
features |
deque
|
Um deque para armazenar vectores de características com um comprimento máximo definido por |
alpha |
float
|
Fator de suavização para a média móvel exponencial de características. |
mean |
ndarray
|
O estado médio do filtro de Kalman. |
covariance |
ndarray
|
A matriz de covariância do filtro de Kalman. |
Métodos:
Nome | Descrição |
---|---|
update_features |
Actualiza o vetor de características e suaviza-o utilizando a média móvel exponencial. |
predict |
Prevê a média e a covariância utilizando o filtro de Kalman. |
re_activate |
Reativa uma faixa com características atualizadas e, opcionalmente, um novo ID. |
update |
Actualiza a instância YOLOv8 com o novo ID da faixa e do fotograma. |
tlwh |
Propriedade que obtém a posição atual no formato tlwh |
multi_predict |
Prevê a média e a covariância de vários percursos de objectos utilizando o filtro de Kalman partilhado. |
convert_coords |
Converte as coordenadas da caixa delimitadora tlwh para o formato xywh. |
tlwh_to_xywh |
Converte a caixa delimitadora para o formato xywh |
Utilização
bo_track = BOTrack(tlwh, score, cls, feat) bo_track.prediz() bo_track.update(new_track, frame_id)
Código fonte em 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
Obtém a posição atual no formato de caixa delimitadora (top left x, top left y, width, height)
.
__init__(tlwh, score, cls, feat=None, feat_history=50)
Inicializa o objeto YOLOv8 com parâmetros temporais, como o historial de características, alfa e características actuais.
Código fonte em ultralytics/trackers/bot_sort.py
convert_coords(tlwh)
Converte as coordenadas da caixa delimitadora Top-Left-Width-Height para o formato X-Y-Width-Height.
multi_predict(stracks)
staticmethod
Prevê a média e a covariância de vários percursos de objectos utilizando o filtro de Kalman partilhado.
Código fonte em ultralytics/trackers/bot_sort.py
predict()
Prevê a média e a covariância utilizando o filtro de Kalman.
Código fonte em ultralytics/trackers/bot_sort.py
re_activate(new_track, frame_id, new_id=False)
Reativa uma faixa com características atualizadas e, opcionalmente, atribui um novo ID.
Código fonte em ultralytics/trackers/bot_sort.py
tlwh_to_xywh(tlwh)
staticmethod
Converte a caixa delimitadora para o formato (center x, center y, width, height)
.
update(new_track, frame_id)
Actualiza a instância YOLOv8 com o novo ID da faixa e do fotograma.
update_features(feat)
Actualiza o vetor de características e suaviza-o utilizando a média móvel exponencial.
Código fonte em ultralytics/trackers/bot_sort.py
ultralytics.trackers.bot_sort.BOTSORT
Bases: BYTETracker
Uma versão alargada da classe BYTETracker para YOLOv8, concebida para o seguimento de objectos com ReID e o algoritmo GMC.
Atributos:
Nome | Tipo | Descrição |
---|---|---|
proximity_thresh |
float
|
Limiar de proximidade espacial (IoU) entre trajectos e detecções. |
appearance_thresh |
float
|
Limiar para a semelhança de aparência (ReID embeddings) entre trajectos e detecções. |
encoder |
object
|
Objeto para tratar as incorporações ReID, definido como None se o ReID não estiver ativado. |
gmc |
GMC
|
Uma instância do algoritmo GMC para associação de dados. |
args |
object
|
Analisa os argumentos da linha de comando que contêm parâmetros de rastreamento. |
Métodos:
Nome | Descrição |
---|---|
get_kalmanfilter |
Devolve uma instância de KalmanFilterXYWH para seguimento de objectos. |
init_track |
Inicializa a pista com detecções, pontuações e classes. |
get_dists |
Obtém distâncias entre trajectos e detecções utilizando IoU e (opcionalmente) ReID. |
multi_predict |
Prevê e segue vários objectos com o modelo YOLOv8 . |
Utilização
bot_sort = BOTSORT(args, frame_rate) bot_sort.init_track(dets, scores, cls, img) bot_sort.multi_predict(tracks)
Nota
A classe foi concebida para funcionar com o modelo de deteção de objectos YOLOv8 e suporta ReID apenas se for activada através de args.
Código fonte em 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)
Inicializa o objeto YOLOv8 com o módulo ReID e o algoritmo GMC.
Código fonte em ultralytics/trackers/bot_sort.py
get_dists(tracks, detections)
Obtém as distâncias entre trajectos e detecções utilizando IoU e (opcionalmente) as incorporações ReID.
Código fonte em ultralytics/trackers/bot_sort.py
get_kalmanfilter()
init_track(dets, scores, cls, img=None)
Inicializa a pista com detecções, pontuações e classes.
Código fonte em ultralytics/trackers/bot_sort.py
multi_predict(tracks)
Criado em 2023-11-12, Atualizado em 2024-05-08
Autores: Burhan-Q (1), glenn-jocher (3), Laughing-q (1)