Python TensorFlow视频帧与静态图像
我对TensorFlow有一个奇怪的问题,我怀疑它有一个简单的解决方案 我正在处理视频数据。为了创建训练数据,我使用Python TensorFlow视频帧与静态图像,python,tensorflow,image-processing,png,video-processing,Python,Tensorflow,Image Processing,Png,Video Processing,我对TensorFlow有一个奇怪的问题,我怀疑它有一个简单的解决方案 我正在处理视频数据。为了创建训练数据,我使用ffmpeg将视频帧提取到PNG文件,然后使用LabelImg创建边界框数据集。经过训练的网络在这些PNG文件上运行得非常好 但是,如果我使用OpenCV打开一个视频,并将视频中的帧馈送到网络,那么它根本不起作用。我使用OpenCV VideoCapture类,如: video = cv2.VideoCapture(path_to_video) status, frame = vi
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\u interference\u for_single\u image
是TensorFlow库提供的一个函数,用于在打开并转换为numpy数组的PNG文件上运行检测
我得到了一些检测结果,但准确度几乎降到了零。相反,如果我将同一帧保存为PNG文件并将该文件馈送到网络中,它将按预期工作
为了避免将视频帧保存为PNG文件的步骤,我需要做哪些更改?OpenCV具有加载彩色图像的奇怪行为。你可以用
im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
将其转换为RGB,然后再将其送入网络。太棒了!非常感谢。调用应为cv2.CVT颜色(大写字母“C”)。