bonus-edge-proxy/ByteTrack-main/deploy/DeepStream/includes/STrack.h

64 lines
1.3 KiB
C
Raw Normal View History

2026-01-14 14:37:27 +08:00
#pragma once
#include <nvdstracker.h>
#include "KalmanFilter.h"
using namespace std;
enum TrackState {
New = 0, Tracked, Lost, Removed
};
class STrack {
public:
STrack(vector<float> tlwh_, float score, int label, NvMOTObjToTrack *associatedObjectIn);
~STrack();
vector<float> static tlbr_to_tlwh(vector<float> &tlbr);
void static multi_predict(vector<STrack *> &stracks, byte_kalman::KalmanFilter &kalman_filter);
void static_tlwh();
void static_tlbr();
vector<float> tlwh_to_xyah(vector<float> tlwh_tmp);
vector<float> to_xyah();
void mark_lost();
void mark_removed();
int next_id();
int end_frame();
void activate(byte_kalman::KalmanFilter &kalman_filter, int frame_id);
void re_activate(STrack &new_track, int frame_id, bool new_id = false);
void update(STrack &new_track, int frame_id);
public:
bool is_activated;
int track_id;
int state;
vector<float> original_tlwh;
vector<float> _tlwh;
vector<float> tlwh;
vector<float> tlbr;
int frame_id;
int tracklet_len;
int start_frame;
int label;
KAL_MEAN mean;
KAL_COVA covariance;
float score;
NvMOTObjToTrack *associatedObjectIn;
private:
byte_kalman::KalmanFilter kalman_filter;
};