繁体   English   中英

分析从 Python 代码调用的 C++ OpenCV 函数

[英]Profiling C++ OpenCV functions being called from Python code

我正在使用 OpenCV 4.0.0 使用 cv2 模块中的 Python 绑定进行图像处理。 我使用了 cProfile 库,它告诉我(显然)我直接调用的 OpenCV 函数占用的时间最多,但无法深入了解,因为它们是从编译库调用 C++ 函数。 我想分析 OpenCV 代码以确定哪些函数占用了大部分执行时间。

我尝试了此处描述的内置 OpenCV 分析,但收到警告

[ WARN:0] Trace: Total skipped events: 2117

并且没有 OpenCVTrace.txt。 我已经在 pypi 上尝试了包装 google-perftools 的“yep ”模块,但是我得到了这里描述的错误行为,并且建议的修复对我不起作用。 我试过 ltrace 和 latrace,但两者似乎都坏了。 我不确定接下来我可以尝试什么,或者这是否是一项可能的任务。

对于某些背景,此代码适用于我在大学的高级设计项目。 我正在使用在 Zynq-7000 SOC 的 ARM 处理器上运行的 OpenCV 实现面部检测/识别,然后使用 FPGA 结构加速瓶颈。 这当然取决于能够通过分析来识别热点。

我使用perf工具取得了成功,它让我知道哪些函数占用的时间最多。 特别是在我的 Pynq 板上,可执行文件位于 /usr/lib/linux-tools-4.15.0-20 中,默认情况下不在 PATH 中。 我还使用FlameGraph对调用图进行了出色的可视化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM