opencv是图像处理的开源库,使用非常方便,所以一般在做图像处理时基本都是会使用的。tensorflow也有基于c++的接口,但是使用时需要进行编译tensorflowc++源码,编译起来比较繁琐。所以一般也不怎么使用。当然如果opencv可以直接调用tensorflow模型那是在好不过的。
一,训练模型的保存
这里需要说一下,模型一般都是比较大的,在部署时需要对模型进行压缩,使程序运行可以更可能的快。模型的压缩可以参考模型压缩,在压缩模型直接保存模型时一定要将图和参数一起保存,否则压缩会有问题的。
二,opencv读取模型
读取模型的主要代码如下
Net net = readNetFromTensorflow(tf_pb_file);
三,图像的预处理
主要代码如下:
Mat inputBlob = blobFromImage(src, 1.0/255. , Size(w, h), Scalar(), true, false);
其原函数如下:
blobFromImage(InputArray image,
double scalefactor=1.0,
const Size& size = Size(),
const Scalar& mean = Scalar(),
bool swapRB = false,
bool crop = false,
int ddepth = CV_32F)
image:将要输入神经网络的图片,未进行处理的图片
mean:需要将图