目录
目录README.md

byteTrack

一、byteTrack-opencv

byteTrack-opencv 原链接为

https://github.com/hpc203/bytetrack-opencv-onnxruntime.git

运行时环境:

  1. opencv4.9

  2. cmake-3.21.4

  3. eigen-3.3.9

  4. Ubuntu-20.04

以及需要 bytetrack_s.onnx文件和测试文件 sample.mp4

利用 cmake 完成编译,运行在 Ubuntu 中,最终生成 demo.avi 视频文件。

需要知道 byteTrack 部分内容在板卡上的运行时间,板卡上安装 opencv 比较麻烦,因此需要将 byteTrack 中跟踪算法提取出来,由于该工程 byteTrack 数据结构与 opencv 绑定紧密,因此引入了两外一个工程:byteTrack-arm

在原来的 main.cpp 中增加了以下两个宏定义:

#define SAVE_DETECTED_RESULT 1
#define READ_TRACK_RESULT 1

其中 SAVE_DETECTED_RESULT 用于保存该工程中,读取视频并推理后的结果,用于当作板卡上运行 byteTrack 时的输入文件。

READ_TRACK_RESULT 用于板卡上运行完成后,将结果接入到该工程,验证板卡上结果的正确性。

相应的,该工程在原来的基础上新增了两个函数:

void saveAllObjectsToCSV(const std::vector<std::vector<Object>>& all_objects, const std::string& filename);

void parseCSV(const string &filename, int frame_id, vector<STrack> &frame_tracks);

二、byteTrack-arm

byteTrack-arm 原链接为

https://github.com/Vertical-Beach/ByteTrack-cpp?tab=readme-ov-file

该部分内容无需其他依赖,可在板卡上运行,但是最终只能生成库文件,并且测试文件依赖 google 测试框架,因此需要重新写测试文件。

该工程中, main.cppMakefile 为新增文件,main 函数中,首先读取 byteTrack-opencv 工程中保存的推理后的结果: all_objects.csv 文件,并将 byteTrack 跟踪算法之后的结果保存至: output_stracks.csv文件中。

在 Makefile 中,修改:

CC := $(TOOLCHAIN_DIR)/bin/arm-linux-gnueabihf-g++
# CC := g++

CC 编译器,可用于切换可执行程序在板卡或 Ubuntu 上运行。

板卡上运行结果如下:

root@ft6678e-evm:~/xun# ./bytetrack-cpp 
Processed 1625 frames.
Total time: 12713 ms, Average time per frame: 7.82338 ms

最终 byteTrack-arm 结果在 byteTrack-opencv 工程中验证正确。

关于

byteTrack C++实现方式以及在arm上运行及其结果验证

61.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号