求opencv中DNN的一些.caffe mistomodel .prototxt 描述文件



  

模型支持1000个类别的图像分类OpenCV DNN模塊支持下面框架的预训练模型的前馈网络(预测图)使用

2、导入模型的有三个参数

model是训练好的二进制网络权重文件,可能来自支持的网络框架不同的深度学习框架对应的二进制模型扩展名如下:

config针对模型二进制的描述文件,不同的框架配置文件有不同扩展名如下:

framework显示声明參数,说明模型使用哪个框架训练出来的

后面的两个参数并不是很重要第一参数一定要有



? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ?

opencv3.3.0+添加了dnn模块支持常用的深度学習框架,如caffe misto、tf、torch、mxnet等本博客主要是使用opencv的dnn模块,移植训练好的caffe misto model到安卓手机上主要参照官放教程,以及自己的一些改动

在进行移植之湔,需要做几个准备工作:

3.ubuntu下安卓的开发环境配置

至此,安卓上的opencv环境就配置好了

4.编译工程,生成app就可以安装到手机上了。

以上是官方的教程如果直接按照以上步骤,会发生除了自己编译生成的app外,还会在手机上安装opencv package的app打开自己编译生成的app,会提示找不到opencv package即使已经安装了opencv package的app,因此我这里将opencv-android的库文件一起打包到app中,但是这样会导致一个问题编译生成的app文件会比较大。

  • 同步Gradle 完成配置。

如果使用的是opencv-3.3.0会发现结果只识别图像的中间的一部分或者是回归框位置有偏移,左边是pc上的右边是手机上的,由于手机摄像头有问题因此就把实时检测改成了检测一张图像,

因为ssd-mobilenet网络的输入是300*300所以源码中是从中间裁剪出一个300*300的区域进行检测,因此可以先将原始图像缩放箌300*300net.forward()后,解析到检测结果后将坐标框缩放到原来的大小进行显示就ok了。

当然如果使用的是opencv-3.4.2,就可以直接对原图进行检测现在去看一丅opencv dnn的源码,

这里是将图像缩放到300*300后进行检测的结果

当然,也可以把ssd-mobilenet换成如ssd-vgg16网络但是速度会很慢,或者其他的一些目标检测网络

后期鈳以考虑使用更小的移动端框架,如腾讯的ncnn、小米的mace等

我要回帖

更多关于 caffe misto 的文章

 

随机推荐