
在計(jì)算機(jī)視覺和深度學(xué)習(xí)領(lǐng)域,NCNN(Netural Network Computer Vision)是一個(gè)輕量級(jí)的神經(jīng)網(wǎng)絡(luò)計(jì)算框架,被廣泛應(yīng)用于各類嵌入式設(shè)備和移動(dòng)平臺(tái)。今天,讓我們一同跟隨共創(chuàng)社團(tuán)隊(duì)的步伐,揭秘他們?nèi)绾芜M(jìn)行NCNN的交叉編譯,并在ELF 1開發(fā)板上演繹實(shí)踐,以此驗(yàn)證模型推理性能。
1、從GitHub下載NCNN源碼:https://github.com/Tencent/ncnn

2、將ncnn-master.zip拷貝到開發(fā)環(huán)境的/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
將下面的內(nèi)容添加到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目錄下)和項(xiàng)目文件夾下的benchmark文件夾打包并放到U盤里:
elf@ubuntu:~/work/ncnn-master/build$ tar cvjf benchmark.tar.bz2 benchmark/ ../benchmark/
6、將U盤插入到ELF 1開發(fā)板上,拷貝壓縮包到/home/root路徑下并解壓:
root@ELF1:~# cp /run/media/sda1/benchmark.tar.bz2 . root@ELF1:~# tar xvf benchmark.tar.bz2
7、測(cè)試:
root@ELF1:~# cd benchmark/ root@ELF1:~/benchmark# ./benchncnn

觀察結(jié)果顯示,絕大部分模型均已成功運(yùn)行,其中所展示的數(shù)字指標(biāo)代表了各自的執(zhí)行耗時(shí)。需注意,數(shù)值越小,意味著推理過程的完成速度越快。
通過這次實(shí)踐,共創(chuàng)社不僅展示了NCNN在嵌入式設(shè)備上的靈活性與強(qiáng)大性能,還向我們揭示了深度學(xué)習(xí)嵌入式技術(shù)落地的無限可能,更激勵(lì)著每一位嵌入式探索者:無論面對(duì)何種挑戰(zhàn),只要勇于探索、精于實(shí)踐,便能在嵌入式技術(shù)的海洋中乘風(fēng)破浪,開辟出一片屬于自己的天地。
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650652 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19676瀏覽量
317702 -
移植
+關(guān)注
關(guān)注
1文章
401瀏覽量
28702 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5683瀏覽量
104881
發(fā)布評(píng)論請(qǐng)先 登錄
入門級(jí)i.MX6UL板卡的神經(jīng)網(wǎng)絡(luò)框架ncnn的移植與測(cè)試-米爾MYD-Y6ULX-V2開發(fā)板

飛凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN?
將ucosii移植到stm32F107的學(xué)習(xí)筆記
三分鐘學(xué)習(xí)NCNN算法移植
【EASY EAI Nano開源套件試用體驗(yàn)】NCNN移植+大坑
【觸覺智能Purple Pi開發(fā)板試用】移植ncnn神經(jīng)網(wǎng)絡(luò)推理框架
手工優(yōu)化ncnn模型結(jié)構(gòu)

基于RV1126開發(fā)板移植NCNN部署庫方法

評(píng)論