[libprotobuf ERROR D:\a\opencv-python\opencv-python\opencv\3rdparty\protobuf\src\google\protobuf\wire_format_lite.cc:581] String field 'opencv_tensorflow.FunctionDef.Node.ret' contains invalid UTF-8 data when parsing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes. Traceback (most recent call last): File "E:\my_python_code\Seg\main.py", line 5, in <module> model = cv2.dnn.readNet('saved_model.pb') cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\tensorflow\tf_io.cpp:42: error: (-2:Unspecified error) FAILED: ReadProtoFromBinaryFile(param_file, param). Failed to parse GraphDef file: saved_model.pb in function 'cv::dnn::ReadTFNetParamsFromBinaryFileOrDie'
时间: 2023-07-20 10:09:01 浏览: 241
这个错误是因为你读取的 TensorFlow 模型文件格式不正确导致的。可以尝试重新生成模型文件或者检查模型文件是否正确。此外,你也可以使用 TensorFlow 的 API 直接加载模型,这样可以避免使用 OpenCV 加载模型时出现的问题。以下是一个使用 TensorFlow API 加载模型的示例代码:
```python
import tensorflow as tf
model = tf.keras.models.load_model('saved_model.pb')
```
如果你的模型不是 Keras 模型,则可以使用 `tf.saved_model.load` 方法加载模型。
相关问题
C2227 “->GetArena”的左边必须指向类/结构/联合/泛型类型 (编译源文件 D:\OpenCv\OpenCV4.7.0\opencv-4.7.0\3rdparty\protobuf\src\google\protobuf\arenastring.cc)477
这个编译错误提示是由于在调用 `GetArena()` 函数时,左边的指针类型不是类/结构/联合/泛型类型。你可以检查一下相关的代码,看看是否有指针类型定义不正确或者使用方式不正确的情况。一般来说,这种错误提示会给出具体的行数,你可以在该行附近查找代码错误。另外,你可以尝试查看编译器的其他错误提示,以便更好地解决问题。
阅读全文