opencv - 如何将 Keras 模型转换为 Darknet 模型?
问题描述
我有一个项目使用 keras(tensorflow 后端)来训练数据并使用 opencv dnn(cv2.dnn)来检测对象。当我在使用 opencv dnn 模型的代码上使用 keras 模型时,出现错误: cv2.error: OpenCV(4.0.0) /io/opencv/modules/dnn/src/dnn.cpp:3644: error: (-2 :未指定的错误)无法确定文件的原始框架:函数'readNet'中的model_architecture.json,model_weights.h5
我正在寻找处理此错误的方法,并且已知 Keras 保存了模型权重 (.h5)、模型架构 (.json) ( https://jovianlin.io/saving-loading-keras-models/ ),但是暗网使用模型权重(.weights)和模型架构(.cfg)。我认为我必须将 keras 模型转换为暗网模型,但我不知道如何?那么,你能告诉我如何解决这个问题。谢谢!
解决方案
你需要:
将 keras 模型转换为 TensorFlow:https ://github.com/amir-abdi/keras_to_tensorflow
使用本手册将 TensorFlow 模型转换为 OpenCV 可读格式:https ://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API#troubleshooting
推荐阅读
- python - 如何在python中找到二维数组中元素的行和列?
- menu - 在 abp.io 框架中将菜单添加到角色中
- c++ - 使用 std::cout 和 printf 打印 nullptr
- c# - 如果更改了 IEnumerable 数据源,它会更改结果
- angular - 带有辅助路由的解析器
- rest - go lang net/http 请求模式
- firebase - firebase 错误:react js 权限缺失或权限不足
- python-3.x - 如何编写powershell的逻辑来检查环境PATH变量是否已安装(或设置)?
- reactjs - 无法使用 gatsby 创建新站点
- javascript - 对象加值后为空 Axios