前言
本文是基于EASY EAI Nano移植NCNN部署庫的方法與NCNN成功運(yùn)行yolov4的Demo所做的教程。
關(guān)于NCNN
NCNN是“騰訊優(yōu)圖實(shí)驗(yàn)室”首個開源項(xiàng)目,是一個為手機(jī)端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡(luò)前向計(jì)算框架。并在2017年7月正式開源。NCNN作為騰訊優(yōu)圖最“火”的開源項(xiàng)目之一,在設(shè)計(jì)之初便將手機(jī)端的特殊場景融入核心理念,是業(yè)界首個為移動端優(yōu)化的開源神經(jīng)網(wǎng)絡(luò)推斷庫。能實(shí)現(xiàn)無第三方依賴,跨平臺操作,在手機(jī)端CPU運(yùn)算速度在開源框架中處于領(lǐng)先水平?;谠撈脚_,開發(fā)者能夠輕松將深度學(xué)習(xí)算法移植到手機(jī)端,輸出高效的執(zhí)行,進(jìn)而產(chǎn)出人工智能APP,將AI技術(shù)帶到用戶指尖。
NCNN功能概述
- 支持卷積神經(jīng)網(wǎng)絡(luò),支持多輸入和多分支結(jié)構(gòu),可計(jì)算部分分支。
- 無任何第三方庫依賴,不依賴 BLAS/NNPACK 等計(jì)算框架。
- 純 C++ 實(shí)現(xiàn),跨平臺,支持 android ios 等。
- ARM NEON 匯編級良心優(yōu)化,計(jì)算速度極快。
- 精細(xì)的內(nèi)存管理和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),內(nèi)存占用極低。
-支持多核并行計(jì)算加速,ARM big.LITTLE cpu 調(diào)度優(yōu)化。
-支持基于全新低消耗的 vulkan api GPU 加速。
-可擴(kuò)展的模型設(shè)計(jì),支持 8bit 量化 和半精度浮點(diǎn)存儲,可導(dǎo)入caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir) 模型。
-支持直接內(nèi)存零拷貝引用加載網(wǎng)絡(luò)模型。
- 可注冊自定義層實(shí)現(xiàn)并擴(kuò)展。
*更多詳情參考官方Github:https://github.com/Tencent/ncnn
NCNN目前應(yīng)用在圖像分類、風(fēng)格遷移、目標(biāo)檢測、人臉檢測等案例中,并已被多款A(yù)PP使用。下面正式進(jìn)入到NCNN算法移植學(xué)習(xí)吧。
一、源碼包下載與編譯
1. 源碼下載放置到ubuntu
NCNN相關(guān)源碼可通過我們的百度網(wǎng)盤進(jìn)行下載(已配置好編譯腳本),下載鏈接為:
https://pan.baidu.com/s/1x_27sNJbjCujJZozBajq4g 提取碼:dfji
下載ncnn-master.tar.bz2源碼包并移植到虛擬機(jī)里面,執(zhí)行以下指令解壓源碼包:
$ tar xvf ncnn-master.tar.bz2
即可得到如下所示:
2. NCNN編譯
執(zhí)行以下指令編譯:
$ cd ncnn-master/ $ ./build-easyeai-nano.sh
編譯完成如下圖所示:
NCNN庫編譯完成,生成如下圖所示:
二、Yolov4基于NCNN運(yùn)
1. 例程下載放置到ubuntu
Yolov4基于NCNN運(yùn)行相關(guān)運(yùn)行Demo可以通過我們的百度網(wǎng)盤進(jìn)行下載(已配置好編譯腳本),下載鏈接為:
https://pan.baidu.com/s/1x_27sNJbjCujJZozBajq4g 提取碼:dfji
下載test_demo.tar.bz2源碼包并移植到虛擬機(jī)里面,執(zhí)行以下指令解壓源碼包:
$ tar xvf test_demo.tar.bz2
得到如下圖所示:
2. 編譯例程
執(zhí)行以下指令編譯例程:
$ cd test_demo/ $ ./build.sh
編譯成功后結(jié)果如下所示:
3. 在EASY EAI Nano執(zhí)行例程
在ubuntu推送可執(zhí)行程序文件到板卡的/userdata目錄:
$ adb push test-ncnn-demo-release/ /userdata
在EASY EAI Nano板卡執(zhí)行程序:
# cd /userdata/test-ncnn-demo-release/ # ./test-ncnn-demo test_img/test1.jpg
執(zhí)行結(jié)果如下圖所示:
在ubuntu執(zhí)行以下指令獲取識別成功的圖片:
$ adb pull /userdata/test-ncnn-demo-release/result.jpg .
最后查看實(shí)際的效果圖,到這一步就完成啦!
后續(xù)更多教程可關(guān)注我們的哦,不定時更新各種新品及活動
關(guān)于EASY EAI NANO更多詳細(xì)請前往官網(wǎng)了解
EASY EAI靈眸科技
-
人工智能
+關(guān)注
關(guān)注
1791文章
47279瀏覽量
238491 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97471
發(fā)布評論請先 登錄
相關(guān)推薦
評論