在Yocto项目中,构建了我在Raspbian操作系统上运行的项目。当我运行可执行文件时,与在Raspbian操作系统上运行的可执行文件相比,我得到了一半的FPS。
我使用的库:
- OpenCV
- Tensorflow Lite、Flatbuffer、Libedgetpu
我在Raspbian上使用Libedgetpu1 std,Tensorflow lite 2.4.0,在Yocto上使用Libedgetpu 2.5.0,Tensorflow lite 2.5.0。
考虑到问题在于库的版本或配置不相同,我遵循了以下步骤:
我在Yocto项目的运行时直接运行了我在Raspbian中构建的可执行文件。(我已经将所需的库版本设置为raspbian中可用的相同库版本,以便在运行时工作。(
但我的FPS仍然很低。以下是我如何计算我得到一半的FPS:
我正在使用TFLite的解释器调用函数。我在进入和退出功能时设置了一个计时器,我通过它计算FPS。我可以这样举例:
Timer_Begin();
m_tf_interpreter->Invoke();
Timer_End();
不知怎么的,我认为解释器调用函数在Yocto端运行得较慢。我检查了Raspbian和Yocto的内核版本、CPU速度、/boot/config.txt内容、USB功耗。然而,我在任何地方都抓不到任何东西。
注意:使用RPI4和Coral TPU(插入USB 2.0(。
我们采访了@Paulo Neves。他推荐Perf评测,我也推荐了。在性能评测中,我注意到CPU运行缓慢。尽管频率相同。
当我检查";scaling_调速器";,我看到它在";省电";模式当我从";省电";至";性能";来自虚拟内核的模式。
此外,如果您想永久更改调控器,您需要创建一个内核配置片段。