![](/img/trans.png)
[英]OpenCV functions lock when called by a Python script itself called by a C++ threaded program
[英]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.