yolov3:ncnn之int8量化

2 篇文章 0 订阅
2 篇文章 0 订阅

笔者将yolov3基于darknet2ncnn在Android移植过程中发现yolov3的模型过大,导致加载不了,为了解决这个问题,笔者想到了int8量化操作,经过int8量化操作后,其模型由200M变为60多M,能顺利加载且精度基本没变,速度也有所提升。
下面将量化步骤和大家分享下:
1、下载合并darknet自定义层的ncnn:
https://github.com/xiangweizeng/ncnn
2、在tools文件夹下的CMakeLists.txt打开add_subdirectory(quantize)
在这里插入图片描述
3、编译ncnn

4、将darknet2ncnn下转换得到的 yolov3.bin和yolov3.param拷贝上面ncnn目录下build/tools路径下

5、运行

./ncnnoptimize yolov3.param yolov3.bin yolov3_new.param yolov3_new.bin 0

得到yolov3_new.bin和yolov3_new.param
在这里插入图片描述
6、将第五步得到的两个文件拷贝到quantize文件夹下,运行

./ncnn2table --param=yolov3_new.param --bin=yolov3_new.bin --images=/home/lw/work/darknet/VOCdevkit/VOC0302/JPEGImages/ --output=yolov3.table --mean=0.0,0.0,0.0 --norm=0.003922,0.003922,0.003922 --size=416,416 

在这里插入图片描述
在这里插入图片描述
–images是训练的图片路径这一步时间比较长,耐心等待。

出现下面图的内容时,恭喜你成功了
在这里插入图片描述
7、运行

./ncnn2int8 yolov3_new.param yolov3_new.bin yolov3-int8.param yolov3-int8.bin yolov3.table 

得到 yolov3-int8.param和yolov3-int8.bin
在这里插入图片描述
8、将yolov3-int8.param和yolov3-int8.bin代入到darknet2ncnn工程下,运行得到结果:
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值