OpenCV+YOLOv8 中的 Esp32-Cam 流是如此滞后

问题描述 投票:0回答:3

我正在使用 ESP32-Cam WebServer 并在 python OpenCV+YOLOv8 中捕获凸轮流。
它有效,但有明显的滞后。
相机拍摄后大约有 2 秒的延迟。

这是我的代码:

import cv2
from ultralytics import YOLO

model = YOLO('yolov8n.pt')
cap = cv2.VideoCapture("http://ip")


while cap.isOpened():
    success,frame = cap.read()


    if success:
        results = model(frame)

        annotated_frame = results[0].plot()

        cv2.imshow("YOLOv8 Inference",annotated_frame)


        if cv2.waitKey(1) & 0xFF ==ord("q"):
            break
    else:
        break
    
cap.release()
cv2.destroyAllWindows()

这是因为ESP32的硬件性能不足还是可以对代码进行修改?

python opencv esp32 lag yolov8
3个回答
2
投票

人工智能处理会减慢一切。

这会导致视频缓冲区膨胀,从而导致明显的延迟。

放弃 AI 处理作为测试。您可能会看到它的播放延迟更短。

要解决此问题,请在自己的线程中运行 AI 处理,并确保不要强制它处理每一帧。


0
投票

流媒体本身就是一门艺术。这种延迟可能是由流媒体应用程序的一些缓冲造成的。 您应该查看流的文档,了解如何延迟延迟。 通常,平滑度、延迟和质量之间需要权衡。


0
投票

我也有同样的问题,我被困住了,你有什么线索吗?

© www.soinside.com 2019 - 2024. All rights reserved.