RK3399pro 使用TNN日记 2(Linux系统)
一、TNN的demo调试
1.下载链接
TNN模型下载链接 model
CSDN下载链接
百度网盘下载链接
提取码:a904
2.编译TNN
简单粗暴
(1) 进入到 TNN_PATH/scripts/
(2) 在终端中运行
./build_aarch64_linux.sh
一般都没有问题的,然后便已完成
(3) 进入到 TNN_PATH/examples/linux,
然后终端中执行 ./build_aarch64_linux.sh
会自动进行编译,然后进入到自动创建的 build目录下面,已经生成可执行文件“demo_arm_linux_facedetector”
(4) 阅读demo的代码可知,需要传参模型文件,可以在 TNN_PATH/model,运行“download_model.sh”下载(也可以在文章开头的链接可以下载)
(5) 至此,下载完demo,运行demo时候把地址传进去就可以了,确保环境没有问题
3.从摄像头获取数据图像并检测
说个建议:最好在PC端安装QT5 或者vscode进行代码测试,在PC端编译TNN和demo的方式和在ARM上一样,选择对应的build_*.sh就可以了。
正式开始:
(1) 首先修改CMakelist.txt,如下,在里面配置一些参数,然后可以使用qt打开这个cmake项目,方便调试
cmake_minimum_required(VERSION 3.1)
project(TNN-demo)
message(${
CMAKE_SOURCE_DIR})
#message(${TNN_LIB_PATH})
set(TNN_LIB_PATH "/home/firefly/TNN/TNN-master/scripts/build_aarch64_linux")
set(CMAKE_SYSTEM_NAME Linux)
set(TNN_OPENMP_ENABLE ON)
set(CMAKE_CXX_STANDARD 11)
set(TNN_ARM_ENABLE ON)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
#设置clang编译,也可以不加,使用G++编译就可以了
set(CMAKE_C_COMPILER "/usr/bin/clang") # 填写绝对路径
set(CMAKE_C_FLAGS "-Wall -std=c99")
set(CMAKE_C_FLAGS_DEBUG "-g")
set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG")
set(CMAKE_C_FLAGS_RELEASE "-O4 -DNDEBUG")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
set(CMAKE_CXX_COMPILER "/usr/bin/clang++") # 填写绝对路径
set(CMAKE_CXX_FLAGS "-Wall")
set(CMAKE_CXX_FLAGS_DEBUG "-g")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
#配置
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -std=c++11 -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++11 -pthread -fPIC")
#指定路径
set(TNNRoot ${
CMAKE_CURRENT_SOURCE_DIR}/../.