Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
92eb0ab
add override mark
ChaoII Sep 30, 2022
c34b67a
Merge branch 'develop' into develop
jiangjiajun Oct 5, 2022
5ac31e7
Merge branch 'develop' into develop
jiangjiajun Oct 6, 2022
dd64a46
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 8, 2022
ff5ee8f
Merge branch 'develop' of github.com:ChaoII/FastDeploy into develop
ChaoII Oct 8, 2022
38ce0cf
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 8, 2022
cff22b8
delete some
ChaoII Oct 9, 2022
d6215ad
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 9, 2022
db3c81e
recovery
ChaoII Oct 9, 2022
1d64e35
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 9, 2022
0251b22
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 10, 2022
2910b3f
recovery
ChaoII Oct 11, 2022
f2f95ad
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 11, 2022
c54af78
add tracking
ChaoII Oct 11, 2022
fff9af0
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 11, 2022
f8f6998
add tracking py_bind and example
ChaoII Oct 12, 2022
5b845b4
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 12, 2022
9f79627
add pptracking
ChaoII Oct 12, 2022
6b9a5c4
add pptracking
ChaoII Oct 12, 2022
1d134b0
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 12, 2022
d800402
iomanip head file
ChaoII Oct 13, 2022
d7b534e
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 13, 2022
c92e5d5
add opencv_video lib
ChaoII Oct 13, 2022
a0b7f67
add python libs package
ChaoII Oct 13, 2022
cef6dd5
Merge branch 'develop' into develop
jiangjiajun Oct 13, 2022
a4dedb8
complete comments
ChaoII Oct 13, 2022
d80be12
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 13, 2022
3da3d36
Merge branch 'develop' of github.com:ChaoII/FastDeploy into develop
ChaoII Oct 13, 2022
00fa281
Merge branch 'develop' into develop
jiangjiajun Oct 16, 2022
1902c3c
Merge branch 'develop' into develop
jiangjiajun Oct 17, 2022
e8c6f0b
Merge branch 'develop' into develop
jiangjiajun Oct 17, 2022
9552329
add jdeTracker_ member variable
ChaoII Oct 17, 2022
33ab3e6
Merge branch 'develop' of github.com:ChaoII/FastDeploy into develop
ChaoII Oct 17, 2022
0a18021
add 'FASTDEPLOY_DECL' macro
ChaoII Oct 18, 2022
e86411c
remove kwargs params
ChaoII Oct 18, 2022
c80dbd9
Merge branch 'develop' into develop
jiangjiajun Oct 20, 2022
6eb6a7a
Merge branch 'develop' into develop
jiangjiajun Oct 20, 2022
cb424cd
Merge branch 'develop' into develop
jiangjiajun Oct 20, 2022
c4bf265
Merge branch 'develop' into develop
jiangjiajun Oct 20, 2022
7dbd62a
[Doc]add pptracking doc
ChaoII Oct 21, 2022
5b93f1d
Merge branch 'develop' of github.com:ChaoII/FastDeploy into develop
ChaoII Oct 21, 2022
4e8db89
Merge branch 'develop' into develop
jiangjiajun Oct 21, 2022
9a3f1a4
[Doc]update pptracking docs
ChaoII Oct 21, 2022
5eaf19e
Merge branch 'develop' of github.com:ChaoII/FastDeploy into develop
ChaoII Oct 21, 2022
df0d551
delete 'ENABLE_PADDLE_FRONTEND' switch
ChaoII Oct 21, 2022
23f329d
add pptracking unit test
ChaoII Oct 21, 2022
a5f5544
update pptracking unit test
ChaoII Oct 22, 2022
20edce2
modify test video file path and remove trt test
ChaoII Oct 24, 2022
09d9a7f
update unit test model url
ChaoII Oct 24, 2022
2e09944
Merge branch 'develop' into develop
jiangjiajun Oct 25, 2022
b23bb44
remove 'FASTDEPLOY_DECL' macro
ChaoII Oct 25, 2022
0734229
Merge branch 'develop' of github.com:ChaoII/FastDeploy into develop
ChaoII Oct 25, 2022
edcdab6
Merge branch 'develop' into develop
jiangjiajun Oct 25, 2022
dd99333
fix build python packages about pptracking on win32
ChaoII Oct 25, 2022
faaa94e
Merge branch 'develop' of github.com:ChaoII/FastDeploy into develop
ChaoII Oct 25, 2022
bef7cc9
Merge branch 'develop' into develop
jiangjiajun Oct 25, 2022
25c1576
Merge branch 'develop' into develop
jiangjiajun Oct 26, 2022
778de0d
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into dev…
ChaoII Oct 26, 2022
e1b5cf4
update comment
ChaoII Oct 26, 2022
7001bee
Merge branch 'develop' into pptracking
jiangjiajun Oct 26, 2022
60ca6d4
add pptracking model explain
ChaoII Oct 26, 2022
4b4705b
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into ppt…
ChaoII Oct 26, 2022
470134f
Merge branch 'pptracking' of github.com:ChaoII/FastDeploy into pptrac…
ChaoII Oct 26, 2022
a2fe764
Merge branch 'develop' into pptracking
jiangjiajun Oct 28, 2022
8025d28
Merge branch 'develop' into pptracking
jiangjiajun Oct 28, 2022
aa23471
add tracking trail on vis_mot
ChaoII Oct 31, 2022
87c00ce
fix conflicts
ChaoII Oct 31, 2022
d02baa3
Merge branch 'develop' into pptracking
jiangjiajun Oct 31, 2022
ba7a848
Merge branch 'develop' into pptracking
jiangjiajun Oct 31, 2022
4fd8144
Merge branch 'develop' into pptracking
jiangjiajun Nov 1, 2022
cbd8ce1
add tracking trail
ChaoII Nov 1, 2022
4f5400f
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into ppt…
ChaoII Nov 1, 2022
10772b1
Merge branch 'develop' into pptracking
jiangjiajun Nov 2, 2022
08d3bdc
Merge branch 'develop' of github.com:PaddlePaddle/FastDeploy into ppt…
ChaoII Nov 2, 2022
08123fb
Merge branch 'pptracking' of github.com:ChaoII/FastDeploy into pptrac…
ChaoII Nov 2, 2022
62e5352
modify code for some suggestion
ChaoII Nov 2, 2022
875fb04
fix conflict
ChaoII Nov 2, 2022
893036e
remove unused import
ChaoII Nov 2, 2022
52c8063
fix import bug
ChaoII Nov 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion docs/api/vision_results/mot_result.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,3 @@ fastdeploy.vision.MOTResult
- **ids**(list of list(float)):成员变量,表示单帧画面中所有目标的id,其元素个数与`boxes`一致
- **scores**(list of float): 成员变量,表示单帧画面检测出来的所有目标置信度
- **class_ids**(list of int): 成员变量,表示单帧画面出来的所有目标类别

22 changes: 12 additions & 10 deletions examples/vision/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,18 @@

本目录下提供了各类视觉模型的部署,主要涵盖以下任务类型

| 任务类型 | 说明 | 预测结果结构体 |
|:-------------- |:----------------------------------- |:-------------------------------------------------------------------------------- |
| Detection | 目标检测,输入图像,检测图像中物体位置,并返回检测框坐标及类别和置信度 | [DetectionResult](../../docs/api/vision_results/detection_result.md) |
| Segmentation | 语义分割,输入图像,给出图像中每个像素的分类及置信度 | [SegmentationResult](../../docs/api/vision_results/segmentation_result.md) |
| Classification | 图像分类,输入图像,给出图像的分类结果和置信度 | [ClassifyResult](../../docs/api/vision_results/classification_result.md) |
| FaceDetection | 人脸检测,输入图像,检测图像中人脸位置,并返回检测框坐标及人脸关键点 | [FaceDetectionResult](../../docs/api/vision_results/face_detection_result.md) |
| KeypointDetection | 关键点检测,输入图像,返回图像中人物行为的各个关键点坐标和置信度 | [KeyPointDetectionResult](../../docs/api/vision_results/keypointdetection_result.md) |
| FaceRecognition | 人脸识别,输入图像,返回可用于相似度计算的人脸特征的embedding | [FaceRecognitionResult](../../docs/api/vision_results/face_recognition_result.md) |
| Matting | 抠图,输入图像,返回图片的前景每个像素点的Alpha值 | [MattingResult](../../docs/api/vision_results/matting_result.md) |
| OCR | 文本框检测,分类,文本框内容识别,输入图像,返回文本框坐标,文本框的方向类别以及框内的文本内容 | [OCRResult](../../docs/api/vision_results/ocr_result.md) |
| 任务类型 | 说明 | 预测结果结构体 |
|:------------------|:------------------------------------------------|:-------------------------------------------------------------------------------------|
| Detection | 目标检测,输入图像,检测图像中物体位置,并返回检测框坐标及类别和置信度 | [DetectionResult](../../docs/api/vision_results/detection_result.md) |
| Segmentation | 语义分割,输入图像,给出图像中每个像素的分类及置信度 | [SegmentationResult](../../docs/api/vision_results/segmentation_result.md) |
| Classification | 图像分类,输入图像,给出图像的分类结果和置信度 | [ClassifyResult](../../docs/api/vision_results/classification_result.md) |
| FaceDetection | 人脸检测,输入图像,检测图像中人脸位置,并返回检测框坐标及人脸关键点 | [FaceDetectionResult](../../docs/api/vision_results/face_detection_result.md) |
| KeypointDetection | 关键点检测,输入图像,返回图像中人物行为的各个关键点坐标和置信度 | [KeyPointDetectionResult](../../docs/api/vision_results/keypointdetection_result.md) |
| FaceRecognition | 人脸识别,输入图像,返回可用于相似度计算的人脸特征的embedding | [FaceRecognitionResult](../../docs/api/vision_results/face_recognition_result.md) |
| Matting | 抠图,输入图像,返回图片的前景每个像素点的Alpha值 | [MattingResult](../../docs/api/vision_results/matting_result.md) |
| OCR | 文本框检测,分类,文本框内容识别,输入图像,返回文本框坐标,文本框的方向类别以及框内的文本内容 | [OCRResult](../../docs/api/vision_results/ocr_result.md) |
| MOT | 多目标跟踪,输入图像,检测图像中物体位置,并返回检测框坐标,对象id及类别置信度 | [MOTResult](../../docs/api/vision_results/mot_result.md) |

## FastDeploy API设计

视觉模型具有较有统一任务范式,在设计API时(包括C++/Python),FastDeploy将视觉模型的部署拆分为四个步骤
Expand Down
54 changes: 33 additions & 21 deletions examples/vision/tracking/pptracking/cpp/infer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -33,25 +33,29 @@ void CpuInfer(const std::string& model_dir, const std::string& video_file) {
}

fastdeploy::vision::MOTResult result;
fastdeploy::vision::tracking::TrailRecorder recorder;
// during each prediction, data is inserted into the recorder. As the number of predictions increases,
// the memory will continue to grow. You can cancel the insertion through 'UnbindRecorder'.
// int count = 0; // unbind condition
model.BindRecorder(&recorder);
cv::Mat frame;
int frame_id=0;
cv::VideoCapture capture(video_file);
// according to the time of prediction to calculate fps
float fps= 0.0f;
while (capture.read(frame)) {
if (frame.empty()) {
break;
break;
}
if (!model.Predict(&frame, &result)) {
std::cerr << "Failed to predict." << std::endl;
return;
std::cerr << "Failed to predict." << std::endl;
return;
}
// such as adding this code can cancel trail datat bind
// if(count++ == 10) model.UnbindRecorder();
// std::cout << result.Str() << std::endl;
cv::Mat out_img = fastdeploy::vision::VisMOT(frame, result, fps , frame_id);
cv::Mat out_img = fastdeploy::vision::VisMOT(frame, result, 0.0, &recorder);
cv::imshow("mot",out_img);
cv::waitKey(30);
frame_id++;
}
model.UnbindRecorder();
capture.release();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

在for循环后,显式调用一行model.UnBindRecorder(); 便于用户直接了解

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

添加显示调用

cv::destroyAllWindows();
}
Expand All @@ -72,25 +76,29 @@ void GpuInfer(const std::string& model_dir, const std::string& video_file) {
}

fastdeploy::vision::MOTResult result;
fastdeploy::vision::tracking::TrailRecorder trail_recorder;
// during each prediction, data is inserted into the recorder. As the number of predictions increases,
// the memory will continue to grow. You can cancel the insertion through 'UnbindRecorder'.
// int count = 0; // unbind condition
model.BindRecorder(&trail_recorder);
cv::Mat frame;
int frame_id=0;
cv::VideoCapture capture(video_file);
// according to the time of prediction to calculate fps
float fps= 0.0f;
while (capture.read(frame)) {
if (frame.empty()) {
break;
break;
}
if (!model.Predict(&frame, &result)) {
std::cerr << "Failed to predict." << std::endl;
return;
std::cerr << "Failed to predict." << std::endl;
return;
}
// such as adding this code can cancel trail datat bind
//if(count++ == 10) model.UnbindRecorder();
// std::cout << result.Str() << std::endl;
cv::Mat out_img = fastdeploy::vision::VisMOT(frame, result, fps , frame_id);
cv::Mat out_img = fastdeploy::vision::VisMOT(frame, result, 0.0, &trail_recorder);
cv::imshow("mot",out_img);
cv::waitKey(30);
frame_id++;
}
model.UnbindRecorder();
capture.release();
cv::destroyAllWindows();
}
Expand All @@ -112,11 +120,13 @@ void TrtInfer(const std::string& model_dir, const std::string& video_file) {
}

fastdeploy::vision::MOTResult result;
fastdeploy::vision::tracking::TrailRecorder recorder;
//during each prediction, data is inserted into the recorder. As the number of predictions increases,
//the memory will continue to grow. You can cancel the insertion through 'UnbindRecorder'.
// int count = 0; // unbind condition
model.BindRecorder(&recorder);
cv::Mat frame;
int frame_id=0;
cv::VideoCapture capture(video_file);
// according to the time of prediction to calculate fps
float fps= 0.0f;
while (capture.read(frame)) {
if (frame.empty()) {
break;
Expand All @@ -125,12 +135,14 @@ void TrtInfer(const std::string& model_dir, const std::string& video_file) {
std::cerr << "Failed to predict." << std::endl;
return;
}
// such as adding this code can cancel trail datat bind
// if(count++ == 10) model.UnbindRecorder();
// std::cout << result.Str() << std::endl;
cv::Mat out_img = fastdeploy::vision::VisMOT(frame, result, fps , frame_id);
cv::Mat out_img = fastdeploy::vision::VisMOT(frame, result, 0.0, &recorder);
cv::imshow("mot",out_img);
cv::waitKey(30);
frame_id++;
}
model.UnbindRecorder();
capture.release();
cv::destroyAllWindows();
}
Expand Down
21 changes: 13 additions & 8 deletions examples/vision/tracking/pptracking/python/infer.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

import fastdeploy as fd
import cv2
import time
import os


Expand Down Expand Up @@ -60,20 +59,26 @@ def build_option(args):
model = fd.vision.tracking.PPTracking(
model_file, params_file, config_file, runtime_option=runtime_option)

# 初始化轨迹记录器
recorder = fd.vision.tracking.TrailRecorder()
# 绑定记录器 注意:每次预测时,往trail_recorder里面插入数据,随着预测次数的增加,内存会不断地增长,
# 可以通过unbind_recorder()方法来解除绑定
model.bind_recorder(recorder)
# 预测图片分割结果
cap = cv2.VideoCapture(args.video)
frame_id = 0
# count = 0
while True:
start_time = time.time()
frame_id = frame_id+1
_, frame = cap.read()
if frame is None:
break
result = model.predict(frame)
end_time = time.time()
fps = 1.0/(end_time-start_time)
img = fd.vision.vis_mot(frame, result, fps, frame_id)
# count += 1
# if count == 10:
# model.unbind_recorder()
img = fd.vision.vis_mot(frame, result, 0.0, recorder)
cv2.imshow("video", img)
cv2.waitKey(30)
if cv2.waitKey(30) == ord("q"):
break
model.unbind_recorder()
cap.release()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

也显式调用一行model.unbind_trail_recorder()

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

添加显示调用

cv2.destroyAllWindows()
2 changes: 2 additions & 0 deletions fastdeploy/vision/common/result.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#pragma once
#include "fastdeploy/fastdeploy_model.h"
#include "opencv2/core/core.hpp"
#include <set>

namespace fastdeploy {
/** \brief All C++ FastDeploy Vision Models APIs are defined inside this namespace
Expand Down Expand Up @@ -171,6 +172,7 @@ struct FASTDEPLOY_DECL MOTResult : public BaseResult {
/** \brief The classify label id for all the tracking object
*/
std::vector<int> class_ids;

ResultType type = ResultType::MOT;
/// Clear MOT result
void Clear();
Expand Down
33 changes: 28 additions & 5 deletions fastdeploy/vision/tracking/pptracking/model.cc
Original file line number Diff line number Diff line change
Expand Up @@ -161,9 +161,7 @@ bool PPTracking::Initialize() {
return false;
}
// create JDETracker instance
std::unique_ptr<JDETracker> jdeTracker(new JDETracker);
jdeTracker_ = std::move(jdeTracker);

jdeTracker_ = std::unique_ptr<JDETracker>(new JDETracker);
return true;
}

Expand Down Expand Up @@ -245,7 +243,6 @@ bool PPTracking::Postprocess(std::vector<FDTensor>& infer_result, MOTResult *res
cv::Mat dets(bbox_shape[0], 6, CV_32FC1, bbox_data);
cv::Mat emb(bbox_shape[0], emb_shape[1], CV_32FC1, emb_data);


result->Clear();
std::vector<Track> tracks;
std::vector<int> valid;
Expand All @@ -264,7 +261,6 @@ bool PPTracking::Postprocess(std::vector<FDTensor>& infer_result, MOTResult *res
result->boxes.push_back(box);
result->ids.push_back(1);
result->scores.push_back(*dets.ptr<float>(0, 4));

} else {
std::vector<Track>::iterator titer;
for (titer = tracks.begin(); titer != tracks.end(); ++titer) {
Expand All @@ -285,9 +281,36 @@ bool PPTracking::Postprocess(std::vector<FDTensor>& infer_result, MOTResult *res
}
}
}
if (!is_record_trail_) return true;
int nums = result->boxes.size();
for (int i=0; i<nums; i++) {
float center_x = (result->boxes[i][0] + result->boxes[i][2]) / 2;
float center_y = (result->boxes[i][1] + result->boxes[i][3]) / 2;
int id = result->ids[i];
recorder_->Add(id,{int(center_x), int(center_y)});
}
return true;
}

void PPTracking::BindRecorder(TrailRecorder* recorder){

recorder_ = recorder;
is_record_trail_ = true;
}

void PPTracking::UnbindRecorder(){

is_record_trail_ = false;
std::map<int, std::vector<std::array<int, 2>>>::iterator iter;
for(iter = recorder_->records.begin(); iter != recorder_->records.end(); iter++){
iter->second.clear();
iter->second.shrink_to_fit();
}
recorder_->records.clear();
std::map<int, std::vector<std::array<int, 2>>>().swap(recorder_->records);
recorder_ = nullptr;
}

} // namespace tracking
} // namespace vision
} // namespace fastdeploy
27 changes: 27 additions & 0 deletions fastdeploy/vision/tracking/pptracking/model.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

#pragma once

#include <map>
#include "fastdeploy/vision/common/processors/transform.h"
#include "fastdeploy/fastdeploy_model.h"
#include "fastdeploy/vision/common/result.h"
Expand All @@ -22,6 +23,21 @@
namespace fastdeploy {
namespace vision {
namespace tracking {
struct TrailRecorder{
std::map<int, std::vector<std::array<int, 2>>> records;
void Add(int id, const std::array<int, 2>& record);
};

inline void TrailRecorder::Add(int id, const std::array<int, 2>& record) {
auto iter = records.find(id);
if (iter != records.end()) {
auto trail = records[id];
trail.push_back(record);
records[id] = trail;
} else {
records[id] = {record};
}
}

class FASTDEPLOY_DECL PPTracking: public FastDeployModel {
public:
Expand Down Expand Up @@ -49,6 +65,14 @@ class FASTDEPLOY_DECL PPTracking: public FastDeployModel {
* \return true if the prediction successed, otherwise false
*/
virtual bool Predict(cv::Mat* img, MOTResult* result);
/** \brief bind tracking trail struct
*
* \param[in] recorder The MOT trail will record the trail of object
*/
void BindRecorder(TrailRecorder* recorder);
/** \brief cancel binding and clear trail information
*/
void UnbindRecorder();

private:
bool BuildPreprocessPipelineFromConfig();
Expand All @@ -65,8 +89,11 @@ class FASTDEPLOY_DECL PPTracking: public FastDeployModel {
float conf_thresh_;
float tracked_thresh_;
float min_box_area_;
bool is_record_trail_ = false;
std::unique_ptr<JDETracker> jdeTracker_;
TrailRecorder *recorder_ = nullptr;
};

} // namespace tracking
} // namespace vision
} // namespace fastdeploy
9 changes: 8 additions & 1 deletion fastdeploy/vision/tracking/pptracking/pptracking_pybind.cc
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@

namespace fastdeploy {
void BindPPTracking(pybind11::module &m) {

pybind11::class_<vision::tracking::TrailRecorder>(m, "TrailRecorder")
.def(pybind11::init<>())
.def_readwrite("records", &vision::tracking::TrailRecorder::records)
.def("add", &vision::tracking::TrailRecorder::Add);
pybind11::class_<vision::tracking::PPTracking, FastDeployModel>(
m, "PPTracking")
.def(pybind11::init<std::string, std::string, std::string, RuntimeOption,
Expand All @@ -26,6 +31,8 @@ void BindPPTracking(pybind11::module &m) {
vision::MOTResult *res = new vision::MOTResult();
self.Predict(&mat, res);
return res;
});
})
.def("bind_recorder", &vision::tracking::PPTracking::BindRecorder)
.def("unbind_recorder", &vision::tracking::PPTracking::UnbindRecorder);
}
} // namespace fastdeploy
4 changes: 2 additions & 2 deletions fastdeploy/vision/tracking/pptracking/trajectory.cc
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ void Trajectory::update(Trajectory *traj,
if (update_embedding_) update_embedding(traj->current_embedding);
}

void Trajectory::activate(int &cnt,int timestamp_) {
void Trajectory::activate(int &cnt, int timestamp_) {
id = next_id(cnt);
TKalmanFilter::init(cv::Mat(xyah));
length = 0;
Expand All @@ -130,7 +130,7 @@ void Trajectory::activate(int &cnt,int timestamp_) {
starttime = timestamp_;
}

void Trajectory::reactivate(Trajectory *traj,int &cnt, int timestamp_, bool newid) {
void Trajectory::reactivate(Trajectory *traj, int &cnt, int timestamp_, bool newid) {
TKalmanFilter::correct(cv::Mat(traj->xyah));
update_embedding(traj->current_embedding);
length = 0;
Expand Down
4 changes: 2 additions & 2 deletions fastdeploy/vision/tracking/pptracking/trajectory.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@ class FASTDEPLOY_DECL Trajectory : public TKalmanFilter {
virtual void update(Trajectory *traj,
int timestamp,
bool update_embedding = true);
virtual void activate(int& cnt, int timestamp);
virtual void reactivate(Trajectory *traj, int & cnt,int timestamp, bool newid = false);
virtual void activate(int &cnt, int timestamp);
virtual void reactivate(Trajectory *traj, int &cnt, int timestamp, bool newid = false);
virtual void mark_lost(void);
virtual void mark_removed(void);

Expand Down
Loading