我正在使用ESP 32-Cam WebServer并在python OpenCV+ YOLOv 8中捕获凸轮流。
这是有效的,但有很大的滞后。
延迟大约是相机捕获后的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()
这是由于ESP 32的硬件性能不足,还是可以对代码进行任何修改?
2条答案
按热度按时间bfnvny8b1#
人工智能的处理会让一切变慢。
这会导致视频缓冲区膨胀,从而导致明显的延迟。
放弃AI处理作为测试。你可能会看到它播放更少的延迟。
要解决这个问题,请在自己的线程中运行AI处理,并确保您不会强制它处理每一帧。
hgc7kmma2#
流媒体本身就是一门艺术。这种延迟可能是由流媒体应用程序的一些缓冲造成的。您应该查看流的文档,了解如何延迟延迟。通常在平滑度、延迟和质量之间有一个折衷。