2

我是编程新手,最近一直在尝试使用 YOLOv5 学习对象检测。我可以执行自定义对象的检测,但我正在努力记录检测到对象的帧。

我的目标是将我的模型检测到的帧与对象已经逐帧注释的帧进行比较。如中所示,我使用 VIA 3.0(http://www.robots.ox.ac.uk/~vgg/software/via/demo/via_video_annotator.html)用我的对象为“X.mp4”注释帧,以及何时相同的视频在我的模型中运行,它返回带有对象的帧,供我比较。

理想情况下,我希望我的程序返回检测到对象的视频帧和时间(以分钟和秒为单位)。

如果我的问题不清楚并且非常愚蠢,请道歉。如前所述,任何帮助表示赞赏。

谢谢

4

1 回答 1

0

当您从视频中注释图像时,您可能会从中提取一些帧。您应该根据视频中的时间戳/帧数来命名这些帧,以便接下来更容易检索。

在进行推理时,您可以计算自第一帧以来的帧数(或获取时间戳),然后读取相应的注释图像。

例如,如果您注释video.mp4了 30 帧(为简单起见)并且只注释了每 10 个图像,那么您最终应该得到这些图像:im_0.jpgim_10.jpgim_20.jpg以及它们相应的注释。

在推理期间,您阅读视频并计算帧数:

frame_count = 0

while(cap.isOpened()):  # Or whatever you use to read the video
  ret, frame = cap.read()
  if ret == True:
    # Get the annotated image name
    frame_name = f"im_{frame_count}.jpg"

    # Increment the frame count
    frame_count += 1
  else:
    break

于 2021-06-01T20:36:51.070 回答