NCNN的编译使用

NCNN

项目地址:https://github.com/Tencent/ncnn

ubuntu 编译

mkdir -p build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchains/host.gcc.toolchain.cmake -DNCNN_BUILD_EXAMPLES=ON -DNCNN_SHARED_LIB=ON

make -j$(nproc)
make install # 默认是在build/install目录下

编译完会生成这样的文件
在这里插入图片描述
后面部署用的就是install中的include和lib文件,但是一般在端侧部署例如android上需要用NDK交叉编译,才能在android上运行。

测试

benchmark

这是测试各模型的推理性能的。
模型测试参数在<ncnn_root>/benchmark下面, 在benchncnn可执行程序中路径是固定的,所以把benchncnn可执行程序放到benchmark目录下面,然后执行benchncnn可执行程序即可。

cd benchmark/
ln -s ../build/benchmark/benchncnn
./benchncnn 

benchncnn用法

./benchncnn [loop count] [num threads] [powersave] [gpu device] [cooling down] [(key=value)...]
  param=model.param
  shape=[227,227,3],..

实际测试结果

loop_count = 4
num_threads = 8
powersave = 2
gpu_device = -1
cooling_down = 1
        squeezenet  min =    1.64  max =    1.67  avg =    1.65
   squeezenet_int8  min =    1.69  max =    1.73  avg =    1.71
         mobilenet  min =    1.89  max =    1.96  avg =    1.91
    mobilenet_int8  min =    1.79  max =    1.81  avg =    1.80
      mobilenet_v2  min =    2.04  max =    2.06  avg =    2.05
      mobilenet_v3  min =    1.65  max =    1.68  avg =    1.66
        shufflenet  min =    1.67  max =    1.74  avg =    1.71
     shufflenet_v2  min =    1.63  max =    1.67  avg =    1.65
           mnasnet  min =    1.79  max =    1.84  avg =    1.81
   proxylessnasnet  min =    2.10  max =    2.13  avg =    2.12
   efficientnet_b0  min =    4.31  max =    4.40  avg =    4.35
 efficientnetv2_b0  min =    4.36  max =    4.43  avg =    4.39
      regnety_400m  min =    4.28  max =    4.32  avg =    4.30
         blazeface  min =    0.54  max =    0.55  avg =    0.54
         googlenet  min =    7.14  max =    7.24  avg =    7.19
    googlenet_int8  min =    5.37  max =    5.42  avg =    5.40
          resnet18  min =    5.96  max =    6.73  avg =    6.39
     resnet18_int8  min =    4.39  max =    4.47  avg =    4.41
           alexnet  min =    6.28  max =    6.42  avg =    6.35
             vgg16  min =   39.90  max =   40.44  avg =   40.15
        vgg16_int8  min =   28.35  max =   28.46  avg =   28.42
          resnet50  min =   11.71  max =   11.98  avg =   11.82
     resnet50_int8  min =    9.71  max =    9.74  avg =    9.73
    squeezenet_ssd  min =    6.27  max =    6.54  avg =    6.38
squeezenet_ssd_int8  min =    5.96  max =    6.20  avg =    6.07
     mobilenet_ssd  min =    4.38  max =    4.43  avg =    4.40
mobilenet_ssd_int8  min =    3.94  max =    3.97  avg =    3.95
    mobilenet_yolo  min =   12.31  max =   12.86  avg =   12.56
mobilenetv2_yolov3  min =    8.06  max =    8.25  avg =    8.15
       yolov4-tiny  min =   15.50  max =   15.70  avg =   15.63
         nanodet_m  min =    3.72  max =    3.77  avg =    3.75
  yolo-fastest-1.1  min =    2.07  max =    2.11  avg =    2.09
    yolo-fastestv2  min =    1.98  max =    2.04  avg =    2.01
vision_transformer  min =   70.04  max =   71.21  avg =   70.80
        FastestDet  min =    2.09  max =    2.12  avg =    2.10

yolov7

yolov7 ncnn格式的模型下载链接https://github.com/nihui/ncnn-assets/tree/master/models
下载两个文件:

  • yolov7-tiny.param
  • yolov7-tiny.bin
    编译完成后examples的可执行文件在build/examples/, 把模型下载了放到同一个目录,(或者改原来的代码,或者用ln -s 建立软连接都行,只要代码的路径和模型的路径对得上就可以)。
./yolov7 /media/xp/data/image/sample/2.jpeg 

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值