增加arm端输出结果
byteTrack-opencv 原链接为
https://github.com/hpc203/bytetrack-opencv-onnxruntime.git
运行时环境:
opencv4.9
cmake-3.21.4
eigen-3.3.9
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 原链接为
https://github.com/Vertical-Beach/ByteTrack-cpp?tab=readme-ov-file
该部分内容无需其他依赖,可在板卡上运行,但是最终只能生成库文件,并且测试文件依赖 google 测试框架,因此需要重新写测试文件。
该工程中, main.cpp 和 Makefile 为新增文件,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上运行及其结果验证
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
byteTrack
一、byteTrack-opencv
byteTrack-opencv 原链接为
运行时环境:
opencv4.9
cmake-3.21.4
eigen-3.3.9
Ubuntu-20.04
以及需要 bytetrack_s.onnx文件和测试文件 sample.mp4
利用 cmake 完成编译,运行在 Ubuntu 中,最终生成 demo.avi 视频文件。
需要知道 byteTrack 部分内容在板卡上的运行时间,板卡上安装 opencv 比较麻烦,因此需要将 byteTrack 中跟踪算法提取出来,由于该工程 byteTrack 数据结构与 opencv 绑定紧密,因此引入了两外一个工程:byteTrack-arm
在原来的 main.cpp 中增加了以下两个宏定义:
其中 SAVE_DETECTED_RESULT 用于保存该工程中,读取视频并推理后的结果,用于当作板卡上运行 byteTrack 时的输入文件。
READ_TRACK_RESULT 用于板卡上运行完成后,将结果接入到该工程,验证板卡上结果的正确性。
相应的,该工程在原来的基础上新增了两个函数:
二、byteTrack-arm
byteTrack-arm 原链接为
该部分内容无需其他依赖,可在板卡上运行,但是最终只能生成库文件,并且测试文件依赖 google 测试框架,因此需要重新写测试文件。
该工程中, main.cpp 和 Makefile 为新增文件,main 函数中,首先读取 byteTrack-opencv 工程中保存的推理后的结果: all_objects.csv 文件,并将 byteTrack 跟踪算法之后的结果保存至: output_stracks.csv文件中。
在 Makefile 中,修改:
CC 编译器,可用于切换可执行程序在板卡或 Ubuntu 上运行。
板卡上运行结果如下:
最终 byteTrack-arm 结果在 byteTrack-opencv 工程中验证正确。