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