海思3559a從零開始做計算機視覺3

第三天

nnie移植失敗了

暫時先放着吧,既然硬核跑不了,先試一下軟核,使用ncnn框架來部署目標檢測模型


1、交叉編譯opencv
在這裏插入圖片描述
在這裏插入圖片描述
Target Root選擇交叉編譯工具鏈的bin目錄就行

其餘的默認

然後開始編譯,肯定會出錯

undefined reference to `pthread_mutexattr_destroy`

修改編譯目錄下的 CMakeCache.txt 文件,找到 CMAKE_EE_LINKER_FLAGS:STRING 項
將
//Flags used by the linker.
 CMAKE_EXE_LINKER_FLAGS:STRING=' '
 修改爲
 //Flags used by the linker.
 CMAKE_EXE_LINKER_FLAGS:STRING= -pthread -lrt -ldl

然後編譯就行了

2、交叉編譯ncnn

編譯ncnn之前需要交叉編譯protobuf,所以先下載protobuf

https://github.com/google/protobuf/releases/tag/v2.5.0 ,進入下載頁面點擊protobuf-2.5.0.tar.gz

版本無所謂

sudo apt-get install curl libtool

#編譯PC版本
cd protobuf-3.2.0
./autoconf.sh
./configure --prefix=/usr/local/PC/protobuf-3.2.0

#編譯arm版本
cd protobuf-3.2.0
./autoconf.sh
./configure --build=i686-pc-linux --host=arm-linux \
    --with-protoc=/usr/local/PC/protobuf-3.2.0/bin/protoc \
    --prefix=/usr/local/TegraX1/protobuf-3.2.0

編譯arm版本的時候需要指定pc上的protoc

在編譯ncnn的時候,使用cmake指定protobuf的路徑。

3、運行mobileNet-SSD
在這裏插入圖片描述
使用ncnn在cpu平臺部署mobileNet-SSD和resnet18-SSD,很明顯mobileNet的速度比resnet更快,這也驗證了之前寫的,depthwise的卷積更加適合cpu平臺,因爲卷積操作在cpu上都需要進行im2col這樣的操作,但是1*1卷積在內存上不需要進行內存重拍,所以速度快。 在gpu上,resnet18-SSD比mobileNet-SSD更快,效果也會更好。

4、在3559a上運行
在3559a上運行速度簡直太慢了。。。。
啊。。。。。
單核單線程只有2fps。。。。
看來NNIE是逃不了了。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章