首页 > 解决方案 > 如何将 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 模型转换为暗网模型,但我不知道如何?那么,你能告诉我如何解决这个问题。谢谢!

标签: opencv

解决方案


你需要:

  1. 将 keras 模型转换为 TensorFlow:https ://github.com/amir-abdi/keras_to_tensorflow

  2. 使用本手册将 TensorFlow 模型转换为 OpenCV 可读格式:https ://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API#troubleshooting


推荐阅读