ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。 ncnn 从设计之初深刻考虑手机端的部署和使用。 无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。
来做一个yolov7的ncnn模型测试,
首先要安装ncnn
在ncnn github上下载代码
git clone https://github.com/Tencent/ncnn
安装
cd ncnn
mkdir build
cd build
cmake ..
make –j16
make install
然后你的build文件夹下就会多了很多,
进入examples文件夹,里面会有很多模型,这里测试yolov7
毕竟用的时候不能都在examples下面运行,所以把yolov7代码拉出来,单独建立一个project.
配置CmakeLists
cmake_minimum_required(VERSION 3.23)
project(yolov7)
set(CMAKE_CXX_STANDARD 14)
string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra")
string(APPEND CMAKE_C_FLAGS " -Wall -Wextra")
# 调用opencv
find_package(OpenCV REQUIRED)
# 调用openmp
FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
message("OPENMP FOUND")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
# 包含ncnn的头文件
include_directories(github上下载的ncnn文件夹路径/build/install/include/ncnn)
# 包含ncnn的链接文件
link_directories(github上下载的ncnn文件夹路径/build/install/lib)
# 生成可执行文件
add_executable(yolov7 yolov7.cpp)
# 链接ncnn静态链接库
target_link_libraries(${PROJECT_NAME}
ncnn
${OpenCV_LIBS}
github上下载的ncnn文件夹路径/build/install/lib/libncnn.a)
下载训练好的权重文件,链接
下载yolov7-tiny.param 和 yolov7-tiny.bin
运行,
看效果