【问题标题】:Opencv: same capture code gives low FPS on a high-end laptop and high FPS on a TX1Opencv:相同的捕获代码在高端笔记本电脑上提供低 FPS,在 TX1 上提供高 FPS
【发布时间】:2018-11-02 04:22:23
【问题描述】:

从最近的戴尔 XPS 9560 的内部网络摄像头 (1280x720 @ 30fps) 拍摄时,我意外地获得了非常低的 FPS (~16 fps)。

这是我正在使用的简单代码(python3,OpenCV 3.4.0)

import cv2, time

cam = cv2.VideoCapture(0)
n_frames = 0
execution_time = 0

while True:

    t_start = time.time()
    rv, frame = cam.read()
    n_frames+=1

    if rv:
        #also tried to comment imshow. Same FPS.
        cv2.imshow('window', frame)
        if cv2.waitKey(1) >= 0:
            break
        pass
    else:
        print('Cannot read Frame')

    t_end = time.time()

    execution_time += (t_end-t_start)*1000

    if execution_time > 10000:
        print ('avg FPS in 10 seconds: %.2f' % (n_frames*1000/execution_time))
        n_frames = 0
        execution_time = 0

我尝试用 C++ 编写相同的简单程序并得到相同的结果,相同的 ~16 FPS。

有时,C++ 和 Python 程序都可以在更短的时间内生成更高的 FPS。

通过使用 i7z 监控 CPU 使用率,我可以看到所有 4 个内核在大部分时间都以非常低的频率运行,接近最低频率,偶尔出现峰值似乎对平均 FPS 影响不大。

然后我将完全相同的代码传输到 Jetson TX1。对于那些不知道的人,它是一个基于 ARM 的片上系统,运行专用的 Ubuntu 16.10。它连接到 USB 2.0 摄像头,1920x1080 @ 25fps。

不用说,我达到了预期的 25 FPS。

谁能解释这种行为?是否与操作系统级别的差异有关?

在任何情况下如何获得完整的 FPS?

感谢您的帮助

编辑:VTT 发表评论后,我将相同的外部(假设为 30 fps)USB 摄像头连接到两个系统,我在两个系统上都获得了 15 FPS。这指向蹩脚的相机/ USB总线。我将需要拆卸 jetson 设备内部摄像头并将其连接到笔记本电脑以仔细检查这是否与摄像头相关。

【问题讨论】:

  • 如何将相同的 USB 2.0 摄像头连接到 Dell XPS 9560 并检查结果?也许问题是糟糕的内部摄像头?
  • 嗯,这是个好主意...我已经连接了一个罗技 USB 外接摄像头,只是为了尝试另一个,但仍然得到相同的结果。但是,是的,它也可能很糟糕!即使不容易尝试,我必须拆除基于jetson的设备,相机是内部安装的......将外部罗技连接到jetson设备可能会更快。如果速度很快,我已经重现了罗技相机的问题。
  • Ehi,刚刚试过:同一台罗技 C525 相机,连接在笔记本电脑和 jetson 上,尽管是 30fps 相机(名义上,由 v4l2-ctl 拍摄),但我在两者上都以 15 fps 的速度拍摄系统!现在,我真的需要将内置的 jetson 摄像头连接到笔记本电脑上!

标签: c++ opencv camera frame-rate nvidia-jetson


【解决方案1】:

我出于沮丧放弃了这个问题,只是几天前我在追另一个问题时发现了它的答案......我只需要打开灯就能找到答案!

事实证明,我的相机在光线不足的情况下会自动降低其 FPS。仔细想想,当曝光时间需要长于 1/30 秒时,它肯定会发生。

因此,最终看起来 30fps 应该是“最大 fps=30”。但它可以而且会低于这个值。在我看来这很烦人,可惜我不得不以艰苦的方式学习它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-27
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    相关资源
    最近更新 更多