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

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

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

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

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