我是编程新手,最近一直在尝试学习使用YOLOv5进行对象检测。我可以执行自定义对象的检测,但我正在努力记录检测到对象的帧。
我的目标是将我的模型检测到的帧与对象已经被帧注释的帧进行比较。就像在中一样,我使用VIA 3.0(http://www.robots.ox.ac.uk/~vgg/software/via/demo/via_video_annotator.html)用我的对象"X.mp4“注释帧,当相同的视频在我的模型中运行时,它会返回带有对象的帧,以便我进行比较。
理想情况下,我希望我的程序返回检测到物体的视频的帧和时间(分钟和秒)。
如果我的问题不清楚并且非常愚蠢,很抱歉。如前所述,我们非常感谢您的帮助。
谢谢
发布于 2021-06-02 04:36:51
当您为视频中的图像添加注释时,您可能从中提取了一些帧。您应该根据视频中这些帧的时间戳/帧数来命名这些帧,以便下一步检索更简单。
在进行推断时,您可以统计从第一帧开始的帧数(或获取时间戳),然后读取相应的带注释的图像。
例如,如果您注释的video.mp4
有30个帧(为了简单起见),并且每10个图像才注释一次,那么您最终应该得到这些图像:im_0.jpg
、im_10.jpg
、im_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
https://stackoverflow.com/questions/67791623
复制相似问题