我正在使用 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的硬件性能不足还是可以对代码进行修改?
人工智能处理会减慢一切。
这会导致视频缓冲区膨胀,从而导致明显的延迟。
放弃 AI 处理作为测试。您可能会看到它的播放延迟更短。
要解决此问题,请在自己的线程中运行 AI 处理,并确保不要强制它处理每一帧。
流媒体本身就是一门艺术。这种延迟可能是由流媒体应用程序的一些缓冲造成的。 您应该查看流的文档,了解如何延迟延迟。 通常,平滑度、延迟和质量之间需要权衡。
我也有同样的问题,我被困住了,你有什么线索吗?