Page 1 of 2

关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-01 3:22
by chenmodegaoyang
很感谢官方的支持推出了Yolov5物体识别推流的demo适配RV1106,但是在这个例子上我该如何修改才能进行人物识别并且只要在该视频画面内将该人物标注固定ID,并有固定的ID进行跟踪反馈坐标信息,这个能通过改判断语句实现吗,还是只能将Deepsort的模型ckpt.t7进行转化变为rknn放到板子上结合yolov5才能运行,如果有一些相关的有帮助的转化示例,还想请官方帮忙给一下链接或修改方法。

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-01 3:47
by Crocodile
chenmodegaoyang wrote: 2024-03-01 3:22 很感谢官方的支持推出了Yolov5物体识别推流的demo适配RV1106,但是在这个例子上我该如何修改才能进行人物识别并且只要在该视频画面内将该人物标注固定ID,并有固定的ID进行跟踪反馈坐标信息,这个能通过改判断语句实现吗,还是只能将Deepsort的模型ckpt.t7进行转化变为rknn放到板子上结合yolov5才能运行,如果有一些相关的有帮助的转化示例,还想请官方帮忙给一下链接或修改方法。
您好,进行人物识别的实现方式可以重新训练 Yolov5 模型转换为 RKNN 模型再进行部署,对类别数和类别进行修改。目前例程提供的模型使用的COCO数据集也有对人物的检测,您可以尝试屏蔽其他识别种类,只保留对人物的识别。
注意:yolov5 只能进行人物识别无法对人物标注ID

如果需要使用 Deepsort 对人物标注 ID 请尝试将 Deepsort 模型转换为 rknn 模型(确认算子兼容)移植流程可以参考 https://wiki.luckfox.com/zh/Luckfox-Pico/RKNN-example

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-01 6:32
by chenmodegaoyang
您好很感谢您的帮助,我在网上找到了有关这两个模型结合的在RK3588上跑通的案例https://gitcode.com/zhou-sx/yolov5_deepsort_rknn/tree/deepsort?utm_source=csdn_github_accelerator&isLogin=1,他这里有类似yolov5的官方给的检测的一些代码,我看到他主函数中运用了多线程的例子即一个线程处理yolov5识别,另一个用于跟踪算法,但是我想要将这个和官方的yolov5demortsp进行融合,即用yolov5的推流逻辑获取视频帧推理时加上这个deepsort的模型之后输出结果,但是不知道该如何修改这个逻辑

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-01 8:35
by Crocodile
chenmodegaoyang wrote: 2024-03-01 6:32 您好很感谢您的帮助,我在网上找到了有关这两个模型结合的在RK3588上跑通的案例https://gitcode.com/zhou-sx/yolov5_deepsort_rknn/tree/deepsort?utm_source=csdn_github_accelerator&isLogin=1,他这里有类似yolov5的官方给的检测的一些代码,我看到他主函数中运用了多线程的例子即一个线程处理yolov5识别,另一个用于跟踪算法,但是我想要将这个和官方的yolov5demortsp进行融合,即用yolov5的推流逻辑获取视频帧推理时加上这个deepsort的模型之后输出结果,但是不知道该如何修改这个逻辑
您好,近期我们会推出 rkmpi 库(yolov5 rtsp 推流例程主要使用的库)的使用指南,您可以结合 rkmpi 库的使用指南和 rknn 实例使用指南https://wiki.luckfox.com/zh/Luckfox-Pico/RKNN-example 进行开发,可以关注一下 wiki 的更新。

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-04 6:55
by chenmodegaoyang
Crocodile wrote: 2024-03-01 8:35
chenmodegaoyang wrote: 2024-03-01 6:32 您好很感谢您的帮助,我在网上找到了有关这两个模型结合的在RK3588上跑通的案例https://gitcode.com/zhou-sx/yolov5_deepsort_rknn/tree/deepsort?utm_source=csdn_github_accelerator&isLogin=1,他这里有类似yolov5的官方给的检测的一些代码,我看到他主函数中运用了多线程的例子即一个线程处理yolov5识别,另一个用于跟踪算法,但是我想要将这个和官方的yolov5demortsp进行融合,即用yolov5的推流逻辑获取视频帧推理时加上这个deepsort的模型之后输出结果,但是不知道该如何修改这个逻辑
您好,近期我们会推出 rkmpi 库(yolov5 rtsp 推流例程主要使用的库)的使用指南,您可以结合 rkmpi 库的使用指南和 rknn 实例使用指南https://wiki.luckfox.com/zh/Luckfox-Pico/RKNN-example 进行开发,可以关注一下 wiki 的更新。
您好我对上面网址的deepsort模型进行了编译赫尔修改尝试,我把原来yolov5demo中相关库和opencv/mobile库移到该项目目录下并添加上了cmake的路径但是遇到了有一个没有的库导致没办法进行修改,我想用这个代码去将两个模型都放入推理,并且运用rkmpi的逻辑去实现视频输入和推流,但是卡在了没有库这里make报错如下:

Code: Select all

lientek@ubuntu:~/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/build$ make
[  5%] Building CXX object deepsort/CMakeFiles/deepsort.dir/src/deepsort.cpp.o
In file included from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/model.hpp:5,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/featuretensor.h:6,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/deepsort.h:8,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:7:
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/datatype.h:11:10: fatal error: /usr/local/include/Eigen/Core: 没有那个文件或目录
   11 | #include </usr/local/include/Eigen/Core>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Image
其中他的cmake是正常编译但是make的时候发现没有库,我不知道该用什么来替换或更改才能适配rv1106?想请官方帮助一下

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-04 7:32
by Crocodile
chenmodegaoyang wrote: 2024-03-04 6:55
Crocodile wrote: 2024-03-01 8:35
chenmodegaoyang wrote: 2024-03-01 6:32 您好很感谢您的帮助,我在网上找到了有关这两个模型结合的在RK3588上跑通的案例https://gitcode.com/zhou-sx/yolov5_deepsort_rknn/tree/deepsort?utm_source=csdn_github_accelerator&isLogin=1,他这里有类似yolov5的官方给的检测的一些代码,我看到他主函数中运用了多线程的例子即一个线程处理yolov5识别,另一个用于跟踪算法,但是我想要将这个和官方的yolov5demortsp进行融合,即用yolov5的推流逻辑获取视频帧推理时加上这个deepsort的模型之后输出结果,但是不知道该如何修改这个逻辑
您好,近期我们会推出 rkmpi 库(yolov5 rtsp 推流例程主要使用的库)的使用指南,您可以结合 rkmpi 库的使用指南和 rknn 实例使用指南https://wiki.luckfox.com/zh/Luckfox-Pico/RKNN-example 进行开发,可以关注一下 wiki 的更新。
您好我对上面网址的deepsort模型进行了编译赫尔修改尝试,我把原来yolov5demo中相关库和opencv/mobile库移到该项目目录下并添加上了cmake的路径但是遇到了有一个没有的库导致没办法进行修改,我想用这个代码去将两个模型都放入推理,并且运用rkmpi的逻辑去实现视频输入和推流,但是卡在了没有库这里make报错如下:

Code: Select all

lientek@ubuntu:~/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/build$ make
[  5%] Building CXX object deepsort/CMakeFiles/deepsort.dir/src/deepsort.cpp.o
In file included from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/model.hpp:5,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/featuretensor.h:6,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/deepsort.h:8,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:7:
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/datatype.h:11:10: fatal error: /usr/local/include/Eigen/Core: 没有那个文件或目录
   11 | #include </usr/local/include/Eigen/Core>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Image
其中他的cmake是正常编译但是make的时候发现没有库,我不知道该用什么来替换或更改才能适配rv1106?想请官方帮助一下
您好,根据您的打印信息可以推断出是缺少了 eigen 库。
这里有两种方式来获取库:
1.或者在 buildroot 上开启,重新编译根文件系统后在新的根文件系统上进行实验。
eigen_buildroot_01.jpg
buildroot_eigen_02.jpg
2.尝试获取 eigen 库的源码,进行交叉编译后的库文件移植到 Luckfox-pico 上。

注意: 请通过源码检查是否还有其他库文件的依赖;
在 Cmake 上需要链接上 eigen 库才能正常使用,请根据实际情况进行修改。

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-04 8:52
by chenmodegaoyang
Crocodile wrote: 2024-03-04 7:32
chenmodegaoyang wrote: 2024-03-04 6:55
Crocodile wrote: 2024-03-01 8:35

您好,近期我们会推出 rkmpi 库(yolov5 rtsp 推流例程主要使用的库)的使用指南,您可以结合 rkmpi 库的使用指南和 rknn 实例使用指南https://wiki.luckfox.com/zh/Luckfox-Pico/RKNN-example 进行开发,可以关注一下 wiki 的更新。
您好我对上面网址的deepsort模型进行了编译赫尔修改尝试,我把原来yolov5demo中相关库和opencv/mobile库移到该项目目录下并添加上了cmake的路径但是遇到了有一个没有的库导致没办法进行修改,我想用这个代码去将两个模型都放入推理,并且运用rkmpi的逻辑去实现视频输入和推流,但是卡在了没有库这里make报错如下:

Code: Select all

lientek@ubuntu:~/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/build$ make
[  5%] Building CXX object deepsort/CMakeFiles/deepsort.dir/src/deepsort.cpp.o
In file included from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/model.hpp:5,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/featuretensor.h:6,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/deepsort.h:8,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:7:
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/datatype.h:11:10: fatal error: /usr/local/include/Eigen/Core: 没有那个文件或目录
   11 | #include </usr/local/include/Eigen/Core>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Image
其中他的cmake是正常编译但是make的时候发现没有库,我不知道该用什么来替换或更改才能适配rv1106?想请官方帮助一下
您好,根据您的打印信息可以推断出是缺少了 eigen 库。
这里有两种方式来获取库:
1.或者在 buildroot 上开启,重新编译根文件系统后在新的根文件系统上进行实验。
eigen_buildroot_01.jpg
buildroot_eigen_02.jpg
2.尝试获取 eigen 库的源码,进行交叉编译后的库文件移植到 Luckfox-pico 上。

注意: 请通过源码检查是否还有其他库文件的依赖;
在 Cmake 上需要链接上 eigen 库才能正常使用,请根据实际情况进行修改。
感谢您的帮助成功解决了上述缺Eigen库,但是貌似还缺少这个queue库和mutex等库,导致仍然有报错产生没办法继续进行报错如下:

Code: Select all

In file included from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/featuretensor.h:8,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/deepsort.h:8,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:7:
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/include/rknn_fp.h:18:36: error: ‘std::queue’ has not been declared
   18 |     float cal_NPU_performance(std::queue<float> &, float &, float);
      |                                    ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/include/rknn_fp.h:18:41: error: expected ‘,’ or ‘...’ before ‘<’ token
   18 |     float cal_NPU_performance(std::queue<float> &, float &, float);
      |                                         ^
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:13:8: error: ‘queue’ does not name a type
   13 | extern queue<imageout_idx> queueDetOut;  // output queue
      |        ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:14:8: error: ‘queue’ does not name a type
   14 | extern queue<imageout_idx> queueOutput;     // output queue 目标追踪输出队列
      |        ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:20:8: error: ‘mutex’ does not name a type
   20 | extern mutex mtxQueueOutput;
      |        ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:21:8: error: ‘mutex’ does not name a type
   21 | extern mutex mtxQueueDetOut;
      |        ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp: In member function ‘int DeepSort::track_process()’:
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:213:7: error: ‘queueDetOut’ was not declared in this scope
  213 |   if (queueDetOut.empty()) {
      |       ^~~~~~~~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:225:27: error: ‘queueDetOut’ was not declared in this scope
  225 |         int curFrameIdx = queueDetOut.front().dets.id;
      |                           ^~~~~~~~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:232:9: error: ‘mtxQueueOutput’ was not declared in this scope
  232 |         mtxQueueOutput.lock();
      |         ^~~~~~~~~~~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:234:9: error: ‘queueOutput’ was not declared in this scope
  234 |         queueOutput.push(queueDetOut.front());
      |         ^~~~~~~~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:237:9: error: ‘mtxQueueDetOut’ was not declared in this scope
  237 |         mtxQueueDetOut.lock();
      |         ^~~~~~~~~~~~~~
make[2]: *** [deepsort/CMakeFiles/deepsort.dir/build.make:76:deepsort/CMakeFiles/deepsort.dir/src/deepsort.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:126:deepsort/CMakeFiles/deepsort.dir/all] 错误 2
Image
我不知道该从哪里下载或者修改才能避免报错

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-04 9:40
by Crocodile
chenmodegaoyang wrote: 2024-03-04 8:52
Crocodile wrote: 2024-03-04 7:32
chenmodegaoyang wrote: 2024-03-04 6:55

您好我对上面网址的deepsort模型进行了编译赫尔修改尝试,我把原来yolov5demo中相关库和opencv/mobile库移到该项目目录下并添加上了cmake的路径但是遇到了有一个没有的库导致没办法进行修改,我想用这个代码去将两个模型都放入推理,并且运用rkmpi的逻辑去实现视频输入和推流,但是卡在了没有库这里make报错如下:

Code: Select all

lientek@ubuntu:~/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/build$ make
[  5%] Building CXX object deepsort/CMakeFiles/deepsort.dir/src/deepsort.cpp.o
In file included from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/model.hpp:5,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/featuretensor.h:6,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/deepsort.h:8,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:7:
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/datatype.h:11:10: fatal error: /usr/local/include/Eigen/Core: 没有那个文件或目录
   11 | #include </usr/local/include/Eigen/Core>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Image
其中他的cmake是正常编译但是make的时候发现没有库,我不知道该用什么来替换或更改才能适配rv1106?想请官方帮助一下
您好,根据您的打印信息可以推断出是缺少了 eigen 库。
这里有两种方式来获取库:
1.或者在 buildroot 上开启,重新编译根文件系统后在新的根文件系统上进行实验。
eigen_buildroot_01.jpg
buildroot_eigen_02.jpg
2.尝试获取 eigen 库的源码,进行交叉编译后的库文件移植到 Luckfox-pico 上。

注意: 请通过源码检查是否还有其他库文件的依赖;
在 Cmake 上需要链接上 eigen 库才能正常使用,请根据实际情况进行修改。
感谢您的帮助成功解决了上述缺Eigen库,但是貌似还缺少这个queue库和mutex等库,导致仍然有报错产生没办法继续进行报错如下:

Code: Select all

In file included from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/featuretensor.h:8,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/include/deepsort.h:8,
                 from /home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:7:
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/include/rknn_fp.h:18:36: error: ‘std::queue’ has not been declared
   18 |     float cal_NPU_performance(std::queue<float> &, float &, float);
      |                                    ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/include/rknn_fp.h:18:41: error: expected ‘,’ or ‘...’ before ‘<’ token
   18 |     float cal_NPU_performance(std::queue<float> &, float &, float);
      |                                         ^
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:13:8: error: ‘queue’ does not name a type
   13 | extern queue<imageout_idx> queueDetOut;  // output queue
      |        ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:14:8: error: ‘queue’ does not name a type
   14 | extern queue<imageout_idx> queueOutput;     // output queue 目标追踪输出队列
      |        ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:20:8: error: ‘mutex’ does not name a type
   20 | extern mutex mtxQueueOutput;
      |        ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:21:8: error: ‘mutex’ does not name a type
   21 | extern mutex mtxQueueDetOut;
      |        ^~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp: In member function ‘int DeepSort::track_process()’:
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:213:7: error: ‘queueDetOut’ was not declared in this scope
  213 |   if (queueDetOut.empty()) {
      |       ^~~~~~~~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:225:27: error: ‘queueDetOut’ was not declared in this scope
  225 |         int curFrameIdx = queueDetOut.front().dets.id;
      |                           ^~~~~~~~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:232:9: error: ‘mtxQueueOutput’ was not declared in this scope
  232 |         mtxQueueOutput.lock();
      |         ^~~~~~~~~~~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:234:9: error: ‘queueOutput’ was not declared in this scope
  234 |         queueOutput.push(queueDetOut.front());
      |         ^~~~~~~~~~~
/home/alientek/RV1106_ai_demo/yolov5_Deepsort_rknn-deepsort/deepsort/src/deepsort.cpp:237:9: error: ‘mtxQueueDetOut’ was not declared in this scope
  237 |         mtxQueueDetOut.lock();
      |         ^~~~~~~~~~~~~~
make[2]: *** [deepsort/CMakeFiles/deepsort.dir/build.make:76:deepsort/CMakeFiles/deepsort.dir/src/deepsort.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:126:deepsort/CMakeFiles/deepsort.dir/all] 错误 2
Image
我不知道该从哪里下载或者修改才能避免报错
您好,queue 和 mutex 是 C++ std(标准模板库)中的内容,请检查是否添加了相应的头文件,经过测试 luckfox-pico 是具备的

Code: Select all

#include <mutex>
#include <queue>

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-04 10:23
by chenmodegaoyang
您好在这些报错的文件中添加include头文件就解决了,但是opencv我想用适配RV1106的opencv mobile 我记得Videowriter并不支持我就注释掉了相关函数,但是opencv mobile的示例中的VideoCapture在这里却无法调用了显示如下报错,我的根文件目录下cmake如下所示:

Code: Select all

cmake_minimum_required(VERSION 3.0.0)
project(yolov5_deepsort VERSION 0.1.0)

add_subdirectory(deepsort)

set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib/cmake/opencv4")  # 填入OpenCVConfig.cmake
find_package(OpenCV 4 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

set(
    include_libs  
    "${PROJECT_SOURCE_DIR}/include"
    "${PROJECT_SOURCE_DIR}/yolov5/include"
    "${PROJECT_SOURCE_DIR}/deepsort/include"
    ${PROJECT_SOURCE_DIR}/3rdparty/librknn_api/include
    ${PROJECT_SOURCE_DIR}/3rdparty/rga/include
    ${PROJECT_SOURCE_DIR}/3rdparty
    ${PROJECT_SOURCE_DIR}/3rdparty/opencv/opencv-linux-aarch64/include
    ${PROJECT_SOURCE_DIR}/lib
)

include_directories(${include_libs})

aux_source_directory(${PROJECT_SOURCE_DIR}/yolov5/src YOLO_SRC_DIR)
aux_source_directory(${PROJECT_SOURCE_DIR}/src YOLO_SRC_DIR)
add_executable(yolov5_deepsort yolov5_deepsort.cpp ${YOLO_SRC_DIR})

# 添加动态链接库
set(
    dynamic_libs  pthread
    ${PROJECT_SOURCE_DIR}/3rdparty/librknn_api/aarch64/librknnrt.so
    ${PROJECT_SOURCE_DIR}/3rdparty/rga/lib/librga.so
)

# 开启调试选项
add_definitions("-g")

target_link_libraries(yolov5_deepsort ${OpenCV_LIBS})
target_link_libraries(yolov5_deepsort ${dynamic_libs} deepsort)
报错如下:
Image
这个是因为这个文件夹下没有lib的原因吗?该如何修改才能和示例一样可以调用

Re: 关于RV1106 Pico max上yolov5和Deepsort实现物体跟踪请求

Posted: 2024-03-04 10:52
by Crocodile
chenmodegaoyang wrote: 2024-03-04 10:23 您好在这些报错的文件中添加include头文件就解决了,但是opencv我想用适配RV1106的opencv mobile 我记得Videowriter并不支持我就注释掉了相关函数,但是opencv mobile的示例中的VideoCapture在这里却无法调用了显示如下报错,我的根文件目录下cmake如下所示:

Code: Select all

cmake_minimum_required(VERSION 3.0.0)
project(yolov5_deepsort VERSION 0.1.0)

add_subdirectory(deepsort)

set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib/cmake/opencv4")  # 填入OpenCVConfig.cmake
find_package(OpenCV 4 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

set(
    include_libs  
    "${PROJECT_SOURCE_DIR}/include"
    "${PROJECT_SOURCE_DIR}/yolov5/include"
    "${PROJECT_SOURCE_DIR}/deepsort/include"
    ${PROJECT_SOURCE_DIR}/3rdparty/librknn_api/include
    ${PROJECT_SOURCE_DIR}/3rdparty/rga/include
    ${PROJECT_SOURCE_DIR}/3rdparty
    ${PROJECT_SOURCE_DIR}/3rdparty/opencv/opencv-linux-aarch64/include
    ${PROJECT_SOURCE_DIR}/lib
)

include_directories(${include_libs})

aux_source_directory(${PROJECT_SOURCE_DIR}/yolov5/src YOLO_SRC_DIR)
aux_source_directory(${PROJECT_SOURCE_DIR}/src YOLO_SRC_DIR)
add_executable(yolov5_deepsort yolov5_deepsort.cpp ${YOLO_SRC_DIR})

# 添加动态链接库
set(
    dynamic_libs  pthread
    ${PROJECT_SOURCE_DIR}/3rdparty/librknn_api/aarch64/librknnrt.so
    ${PROJECT_SOURCE_DIR}/3rdparty/rga/lib/librga.so
)

# 开启调试选项
add_definitions("-g")

target_link_libraries(yolov5_deepsort ${OpenCV_LIBS})
target_link_libraries(yolov5_deepsort ${dynamic_libs} deepsort)
报错如下:
Image
这个是因为这个文件夹下没有lib的原因吗?该如何修改才能和示例一样可以调用

您好,我注意到您同时使用了 opencv-mobile 和 3rdparty/opencv 库,这两个库在函数使用上用法很接近,可能会导致编译器错误理解您需要调用的库,建议只保留 opencv-mobile,3rdparty 中的 opencv 可能对 glibc 有依赖导致无法正常运行。

其次,请注意 luckfox-pico 使用的系统是 armhf-uclibc 而不是 aarch64,在进行动态链接库的选择中请注意。比较明显的错误就是

Code: Select all

${PROJECT_SOURCE_DIR}/3rdparty/opencv/opencv-linux-aarch64/include

Code: Select all

${PROJECT_SOURCE_DIR}/3rdparty/librknn_api/aarch64/librknnrt.so
您都选择了在 aarch64 文件夹中的库,与 luckfox-pico 对应的 rknn 动态链接库 librknnmrt.so 不匹配,请注意修改,避免影响后续的开发。