qq_41747698
2021-08-04 11:56
采纳率: 73.9%
浏览 42

人工智能 python keras opencv函数在c++中调用

目前实现了一个基于keras的 实时 视频数字识别的函数+python脚本,现在由于项目需要将输出转C++,大概想实现c++输入opencv的矩阵图像,调用python函数后能够返回识别结果和识别的图像,大致查过c的popen和py initial可以实现但是不确定是否可行,因为有实时识别的需求据说api接口时间损耗比较大,而且调用起来很多文件找不到,不确定复杂的函数C++是否能调用。

现在比较纠结是否应该重新写个c++用python模型转tf实现,更方便一点。
如果有人知道的话可以给出具体一点的解决方法吗

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • 爱晚乏客游 2021-08-04 13:38
    已采纳

    opencv自带有dnn模块可以直接条用tensorflow的模型,但是不如tf那样方便,有些网络层和操作如果不支持的话就需要转换,举例来说如果sigmoi不支持就得换relu(当然opencv是支持sigmoid的),而且如果是keras保存的类似.h5模型,基本上不支持的,你需要先转成tf模型才行,而且最好在训练和导出模型的时候要将channel前置
    还有就是opencv版本最好用最新的版本,前面的版本对于深度学习支持一定是不如后面版本的,也就是说越新越好,如果你有显卡加速的需要,opencv还需要编译下cuda。

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • yang_guo123 2021-08-04 12:17

    你可以试试OpenCV的DNN库,里面有函数可以直接调用TensorFlow的网络模型

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题