全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

学习笔记|如何移植NCNN

时间:2024-05-29 10:06

人气:

作者:admin

标签: 嵌入式  单片机  开发板 

导读:在计算机视觉和深度学习领域,NCNN(NeturalNetworkComputerVision)是一个轻量级的神经网络计算框架,被广泛应用于各类嵌入式设备和移动平台。今天,让我们一同跟随共创社团队的步伐,揭...
wKgZomZWi52AdVu_AAphknng1iU650.png

计算机视觉深度学习领域,NCNN(Netural Network Computer Vision)是一个轻量级的神经网络计算框架,被广泛应用于各类嵌入式设备和移动平台。今天,让我们一同跟随共创社团队的步伐,揭秘他们如何进行NCNN的交叉编译,并在ELF 1开发板上演绎实践,以此验证模型推理性能。

1、从GitHub下载NCNN源码:https://github.com/Tencent/ncnn

wKgZomZWe7CAPXLMAAJRJRvb628620.png

2、将ncnn-master.zip拷贝到开发环境的/home/elf/work目录下并解压:

elf@ubuntu:~/work$ unzip ncnn-master.zip

3、配置CMake:

elf@ubuntu:~/work$ cd ncnn-master/toolchains/ elf@ubuntu:~/work/ncnn-master/toolchains$ vi arm-poky-linux-gnueabi.cmake

将下面的内容添加到arm-poky-linux-gnueabi.cmake文件中:

set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_C_COMPILER "arm-poky-linux-gnueabi-gcc") set(CMAKE_CXX_COMPILER "arm-poky-linux-gnueabi-g++") set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_C_FLAGS "-march=armv7-a -mfloat-abi=hard --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi") set(CMAKE_CXX_FLAGS "-march=armv7-a -mfloat-abi=hard --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi") # cache flags set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")

4、编译:

elf@ubuntu:~/work/ncnn-master$ mkdir build elf@ubuntu:~/work/ncnn-master$ cd build/ elf@ubuntu:~/work/ncnn-master/build$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi elf@ubuntu:~/work/ncnn-master/build$ cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-poky-linux-gnueabi.cmake -DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Release .. elf@ubuntu:~/work/ncnn-master/build$ make

5、将编译完成得到的benchmark文件夹(build目录下)和项目文件夹下的benchmark文件夹打包并放到U盘里:

elf@ubuntu:~/work/ncnn-master/build$ tar cvjf benchmark.tar.bz2 benchmark/ ../benchmark/

6、将U盘插入到ELF 1开发板上,拷贝压缩包到/home/root路径下并解压:

root@ELF1:~# cp /run/media/sda1/benchmark.tar.bz2 . root@ELF1:~# tar xvf benchmark.tar.bz2

7、测试:

root@ELF1:~# cd benchmark/ root@ELF1:~/benchmark# ./benchncnn

wKgaomZWjTuAQrnIAAkm_a1VM98044.png

观察结果显示,绝大部分模型均已成功运行,其中所展示的数字指标代表了各自的执行耗时。需注意,数值越小,意味着推理过程的完成速度越快。

通过这次实践,共创社不仅展示了NCNN在嵌入式设备上的灵活性与强大性能,还向我们揭示了深度学习嵌入式技术落地的无限可能,更激励着每一位嵌入式探索者:无论面对何种挑战,只要勇于探索、精于实践,便能在嵌入式技术的海洋中乘风破浪,开辟出一片属于自己的天地。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信