Referencia para ultralytics/trackers/bot_sort.py
Nota
Este archivo está disponible en https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/trackers/bot_sort .py. Si detectas algún problema, por favor, ayuda a solucionarlo contribuyendo con una Pull Request 🛠️. ¡Gracias 🙏!
ultralytics.trackers.bot_sort.BOTrack
Bases: STrack
Una versión ampliada de la clase STrack para YOLOv8, que añade funciones de seguimiento de objetos.
Atributos:
Nombre | Tipo | Descripción |
---|---|---|
shared_kalman |
KalmanFilterXYWH
|
Un filtro Kalman compartido para todas las instancias de BOTrack. |
smooth_feat |
ndarray
|
Vector de características suavizado. |
curr_feat |
ndarray
|
Vector de características actual. |
features |
deque
|
Un deque para almacenar vectores de características con una longitud máxima definida por |
alpha |
float
|
Factor de suavizado de la media móvil exponencial de las características. |
mean |
ndarray
|
El estado medio del filtro de Kalman. |
covariance |
ndarray
|
La matriz de covarianza del filtro de Kalman. |
Métodos:
Nombre | Descripción |
---|---|
update_features |
Actualiza el vector de características y suavízalo utilizando la media móvil exponencial. |
predict |
Predice la media y la covarianza mediante el filtro de Kalman. |
re_activate |
Reactiva una pista con características actualizadas y, opcionalmente, un nuevo ID. |
update |
Actualiza la instancia YOLOv8 con la nueva pista y el nuevo ID de fotograma. |
tlwh |
Propiedad que obtiene la posición actual en formato tlwh |
multi_predict |
Predice la media y la covarianza de varias pistas de objetos utilizando el filtro de Kalman compartido. |
convert_coords |
Convierte las coordenadas del cuadro delimitador tlwh al formato xywh. |
tlwh_to_xywh |
Convertir cuadro delimitador a formato xywh |
Utilización
bo_pista = BOTpista(tlwh, puntuación, cls, hazaña) bo_pista.predecir() bo_pista.actualizar(nueva_pista, id_fotograma)
Código fuente en 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
Obtener la posición actual en formato de cuadro delimitador (top left x, top left y, width, height)
.
__init__(tlwh, score, cls, feat=None, feat_history=50)
Inicializa el objeto YOLOv8 con parámetros temporales, como el historial de rasgos, el alfa y los rasgos actuales.
Código fuente en ultralytics/trackers/bot_sort.py
convert_coords(tlwh)
Convierte las coordenadas del cuadro delimitador Superior-Izquierda-Ancho-Alto al formato X-Y-Ancho-Alto.
multi_predict(stracks)
staticmethod
Predice la media y la covarianza de varias pistas de objetos utilizando el filtro de Kalman compartido.
Código fuente en ultralytics/trackers/bot_sort.py
predict()
Predice la media y la covarianza mediante el filtro de Kalman.
Código fuente en ultralytics/trackers/bot_sort.py
re_activate(new_track, frame_id, new_id=False)
Reactiva una pista con características actualizadas y, opcionalmente, asigna un nuevo ID.
Código fuente en ultralytics/trackers/bot_sort.py
tlwh_to_xywh(tlwh)
staticmethod
Convertir cuadro delimitador a formato (center x, center y, width, height)
.
update(new_track, frame_id)
Actualiza la instancia YOLOv8 con la nueva pista y el nuevo ID de fotograma.
update_features(feat)
Actualiza el vector de características y suavízalo utilizando la media móvil exponencial.
Código fuente en ultralytics/trackers/bot_sort.py
ultralytics.trackers.bot_sort.BOTSORT
Bases: BYTETracker
Una versión ampliada de la clase BYTETracker para YOLOv8, diseñada para el seguimiento de objetos con el algoritmo ReID y GMC.
Atributos:
Nombre | Tipo | Descripción |
---|---|---|
proximity_thresh |
float
|
Umbral de proximidad espacial (IoU) entre huellas y detecciones. |
appearance_thresh |
float
|
Umbral de similitud de aspecto (incrustaciones ReID) entre huellas y detecciones. |
encoder |
object
|
Objeto para manejar las incrustaciones ReID, establecido a Ninguno si ReID no está activado. |
gmc |
GMC
|
Una instancia del algoritmo GMC para la asociación de datos. |
args |
object
|
Argumentos de línea de comandos analizados que contienen parámetros de seguimiento. |
Métodos:
Nombre | Descripción |
---|---|
get_kalmanfilter |
Devuelve una instancia de KalmanFilterXYWH para el seguimiento de objetos. |
init_track |
Inicializa la pista con detecciones, puntuaciones y clases. |
get_dists |
Obtén distancias entre rastros y detecciones utilizando IoU y (opcionalmente) ReID. |
multi_predict |
Predecir y seguir múltiples objetos con el modelo YOLOv8 . |
Utilización
bot_sort = BOTSORT(args, frame_rate) bot_sort.init_pista(dets, puntuaciones, cls, img) bot_sort.multi_predecir(pistas)
Nota
La clase está diseñada para trabajar con el modelo de detección de objetos YOLOv8 y sólo es compatible con ReID si se activa mediante args.
Código fuente en 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 el objeto YOLOv8 con el módulo ReID y el algoritmo GMC.
Código fuente en ultralytics/trackers/bot_sort.py
get_dists(tracks, detections)
Obtén distancias entre huellas y detecciones utilizando incrustaciones IoU y (opcionalmente) ReID.
Código fuente en ultralytics/trackers/bot_sort.py
get_kalmanfilter()
init_track(dets, scores, cls, img=None)
Inicializa la pista con detecciones, puntuaciones y clases.