如何解决ValueError: 'images' 必须有 3 或 4 维在科拉布
我在 Google Colab 中使用 tensorflow 进行对象检测。我正在尝试从网络摄像头获取视频。这是最后一个阶段。但是我在大陆下方收到错误。如何调整图片大小?
ValueError: in user code:
<ipython-input-49-1e7efe9130ee>:11 detect_fn *
image,shapes = detection_model.preprocess(image)
/usr/local/lib/python3.7/dist-packages/object_detection/meta_architectures/ssd_meta_arch.py:484 preprocess *
normalized_inputs,self._image_resizer_fn)
/usr/local/lib/python3.7/dist-packages/object_detection/utils/shape_utils.py:492 resize_images_and_return_shapes *
outputs = static_or_dynamic_map_fn(
/usr/local/lib/python3.7/dist-packages/object_detection/utils/shape_utils.py:246 static_or_dynamic_map_fn *
outputs = [fn(arg) for arg in tf.unstack(elems)]
/usr/local/lib/python3.7/dist-packages/object_detection/core/preprocessor.py:3241 resize_image *
new_image = tf.image.resize_images(
/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:201 wrapper **
return target(*args,**kwargs)
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/image_ops_impl.py:1468 resize_images
skip_resize_if_same=True)
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/image_ops_impl.py:1320 _resize_images_common
raise ValueError('\'images\' must have either 3 or 4 dimensions.')
ValueError: 'images' must have either 3 or 4 dimensions.
我该如何解决?
所有代码:
while True:
ret,frame = cap.read()
image_np = np.array(frame)
input_tensor = tf.convert_to_tensor(np.expand_dims(image_np,0),dtype=tf.float32)
detections = detect_fn(input_tensor)
num_detections = int(detections.pop('num_detections'))
detections = {key: value[0,:num_detections].numpy()
for key,value in detections.items()}
detections['num_detections'] = num_detections
# detection_classes should be ints.
detections['detection_classes'] = detections['detection_classes'].astype(np.int64)
label_id_offset = 1
image_np_with_detections = image_np.copy()
viz_utils.visualize_boxes_and_labels_on_image_array(
image_np_with_detections,detections['detection_boxes'],detections['detection_classes']+label_id_offset,detections['detection_scores'],category_index,use_normalized_coordinates=True,max_boxes_to_draw=5,min_score_thresh=.5,agnostic_mode=False)
cv2.imshow('object detection',cv2.resize(image_np_with_detections,(800,600)))
if cv2.waitKey(1) & 0xFF == ord('q'):
cap.release()
break
解决方法
验证您是否从以下行获取图像帧:
if ( metadata_exists( 'user',$user_id,$meta_key ) ) {
...
}
当我遇到相同的错误(尽管代码略有不同)时,我指向的是一个不存在的目录而不是图像。
,让我解释一下。这不是任何错误,只是在笔记本电脑的网络摄像头和访问它的编程之间存在延迟。只需重新启动您的笔记本电脑。它会正常工作。我遇到了同样的问题……只是重新启动就解决了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。