【问题标题】:TensorFlow video frames versus still imagesTensorFlow 视频帧与静止图像
【发布时间】: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


    【解决方案1】:

    OpenCV 有这种奇怪的加载彩色图像in the BGR format 的行为。你可以使用

    im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
    

    在将它们输入网络之前将它们转换为 RGB。

    【讨论】:

    • 太棒了!谢谢你。调用应该是 cv2.cvtColor(大写“C”)。
    猜你喜欢
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    相关资源
    最近更新 更多