嵌入式开发板上部署目标检测模型mobilenetv2_ssdlite

项目地址

mobilenetv2_ssdlite_ncnn

目标

  • 在RK3308嵌入式开发板(Arm Linux)上使用ncnn部署mobilenetv2_ssdlite模型
  • 模型量化

细节

模型量化

https://github.com/Tencent/ncnn/tree/master/tools/quantize

优化图

https://github.com/Tencent/ncnn/wiki/use-ncnnoptimize-to-optimize-model

./ncnnoptimize mbv2_ssdlite/mobilenetv2_ssdlite_voc.param mbv2_ssdlite/mobilenetv2_ssdlite_voc.bin mbv2_ssdlite_nobn/mobilenetv2_ssdlite_voc.param mbv2_ssdlite_nobn/mobilenetv2_ssdlite_voc.bin 0

算子合并

  • batchnorm - scale
  • convolution - batchnorm
  • convolutiondepthwise - batchnorm
  • deconvolution - batchnorm
  • deconvolutiondepthwise - batchnorm
  • innerproduct - batchnorm
  • convolution - relu
  • convolutiondepthwise - relu
  • deconvolution - relu
  • deconvolutiondepthwise - relu
  • innerproduct - relu

消除空算子

  • innerproduct - dropout
  • flatten after global pooling

偏好更好的算子

  • replace convolution with innerproduct after global pooling
创建校准表文件

我们建议使用验证数据集进行校准,该数据集应超过5000张图像。

ncnn2table --param=mbv2_ssdlite_nobn/mobilenetv2_ssdlite_voc.param --bin=mbv2_ssdlite_nobn/mobilenetv2_ssdlite_voc.bin --images=../images/ --output=mbv2_ssdlite_nobn.table --mean=127.5,127.5,127.5 --norm=0.007843,0.007843,0.007843 --size=300,300 --thread=10
量化
ncnn2int8 mbv2_ssdlite_nobn/mobilenetv2_ssdlite_voc.param mbv2_ssdlite_nobn/mobilenetv2_ssdlite_voc.bin mbv2_ssdlite_int8/mobilenetv2_ssdlite_voc.param mbv2_ssdlite_int8/mobilenetv2_ssdlite_voc.bin mbv2_ssdlite_nobn.table

修改输入分辨率

  • 修改模型文件mobilenetv2_ssdlite_voc.param的分辨率为192x192,原分辨率为300x300

    Input                    data                     0 1 data 0=192 1=192 2=3
    
  • 修改mobilenetv2ssdlite.cpp中的输入图像的分辨率为192x192,原分辨率为300x300

        const int target_size = 192;
    
        int img_w = bgr.cols;
        int img_h = bgr.rows;
    
        ncnn::Mat in = ncnn::Mat::from_pixels_resize(bgr.data, ncnn::Mat::PIXEL_BGR, bgr.cols, bgr.rows, target_size, target_size);
    

加速效果

分辨率300 x 300

模型量化后,运行时间减少25%,加速效果明显,目标检测结果保持不变。
若要进一步提升速度,可考虑调整mobilenetv2的通道数,减小模型。
在这里插入图片描述

分辨率192 x 192

模型量化后,运行时间减少28%,加速效果明显,目标检测结果保持不变。
由于是直接修改分辨率,没有使用相应分辨率微调模型,导致检测的边界框不是很准确。
在这里插入图片描述

相关文章

https://blog.csdn.net/sinat_31425585/article/details/101607785

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值