• 正文
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

學(xué)習(xí)筆記|如何移植NCNN

2024/05/29
1772
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

計(jì)算機(jī)視覺和深度學(xué)習(xí)領(lǐng)域,NCNN(Netural Network Computer Vision)是一個(gè)輕量級的神經(jīng)網(wǎng)絡(luò)計(jì)算框架,被廣泛應(yīng)用于各類嵌入式設(shè)備和移動平臺。今天,讓我們一同跟隨共創(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、測試:

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ù)落地的無限可能,更激勵著每一位嵌入式探索者:無論面對何種挑戰(zhàn),只要勇于探索、精于實(shí)踐,便能在嵌入式技術(shù)的海洋中乘風(fēng)破浪,開辟出一片屬于自己的天地。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
RT3215-32.768-12.5-TR 1 Raltron Electronics Corporation Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, ROHS COMPLIANT PACKAGE-2
$1.06 查看
BT121-A-V2-IAP 1 Silicon Laboratories Inc Telecom Circuit, 1-Func, MODULE-33

ECAD模型

下載ECAD模型
$26.57 查看
NC7SZ11P6X 1 Fairchild Semiconductor Corporation AND Gate, LVC/LCX/Z Series, 1-Func, 3-Input, CMOS, PDSO6, 1.25 MM, EIAJ, SC-88, SC-70, 6 PIN
$0.37 查看
飛凌嵌入式

飛凌嵌入式

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測等諸多領(lǐng)域。

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測等諸多領(lǐng)域。收起

查看更多

相關(guān)推薦