Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

  • QQ空间
  • 回复
  • 收藏

opencv读取深度学习模型支持depthwise方法

lijingle 深度学习 2020-10-16 14:02 2720人围观

opencv在进行深度学习推理时,对于常见的cnn模型例如resnet,vgg,densenet等模型,是可以很好的进行支持的,但是对于depthwise separable convolution卷积方法,opencv直接读取模型,会出现问题,例如mobilenet mnasnet等网络基本都是基于移动设备开发的网络,内置卷积方式都会有depthwise separable convolution方法。

对于分类网络,运行会报如下错误:

'terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(3.4.3) /home/pi/opencv-3.4.3/modules/dnn/src/dnn.cpp:412: error: (-2:Unspecified error) Can't create layer "conv2_1/dw" of type "ConvolutionDepthwise" in function 'getLayerInstance'
Aborted


正确的方式为:
#include <opencv2/dnn/all_layers.hpp>  // ConvolutionLayer
#include <opencv2/dnn/layer.details.hpp>  // CV_DNN_REGISTER_LAYER_CLASS
// ...
    CV_DNN_REGISTER_LAYER_CLASS(ConvolutionDepthwise, ConvolutionLayer);
    Net net = readNet(model, config, framework);
// ...

即将ConvolutionDepthwise注册到类,然后使用这种卷

路过

雷人

握手

鲜花

鸡蛋
我有话说......

TA还没有介绍自己。

电话咨询: 135xxxxxxx
关注微信