【发布时间】:2018-12-16 14:04:59
【问题描述】:
我在使用 TensorFlow 时遇到了一个奇怪的问题,我怀疑它有一个简单的解决方案。
我正在处理视频数据。为了创建训练数据,我使用ffmpeg 将视频帧提取为 PNG 文件,然后使用 LabelImg 创建边界框数据集。经过训练的网络可以很好地处理这些 PNG 文件。
但是,如果我使用 OpenCV 打开视频并将视频中的帧馈送到网络,则它根本不起作用。我使用 OpenCV VideoCapture 类,如:
video = cv2.VideoCapture(path_to_video)
status, frame = video.read()
output_dict = run_inference_for_single_image(frame, detection_graph)
请注意,run_inference_for_single_image 是 TensorFlow 库提供的函数,用于对打开并转换为 numpy 数组的 PNG 文件进行检测。
我得到了一些检测,但准确度几乎降为零。相反,如果我将相同的帧保存为 PNG 文件并将该文件输入网络,它会按预期工作。
为了避免将视频帧保存为 PNG 文件的步骤,我需要进行哪些更改?
【问题讨论】:
标签: python tensorflow image-processing png video-processing