在terminal中输入
$wolf@wolf:~/Downloads/git clonehttps://github.com/Tencent/ncnn
cd切换到NCNN目录
***这步很重要,这时候需要修改ncnn的root目录下的CMakeLists.txt文件,需要将倒数几行的add_subdirectory(examples),取消注释,这样就是默认编译example,在后续编译之后,会在build中找到相关文件CMakeLists.txt
add_subdirectory(examples)
add_subdirectory(src)
if(NOT ANDROID AND NOT IOS)
add_subdirectory(tools)
endif()
***另外,在root中的example中找到CMakeLists.txt文件
默认的内容是:
find_package(OpenCV QUIET COMPONENTS core highguiimgproc imgcodecs)
if(NOT OpenCV_FOUND)
find_package(OpenCV REQUIRED COMPONENTS corehighgui imgproc)
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../src)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/../src)
add_executable(squeezenet squeezenet.cpp)
target_link_libraries(squeezenet ncnn${OpenCV_LIBS})
add_executable(fasterrcnn fasterrcnn.cpp)
target_link_libraries(fasterrcnn ncnn${OpenCV_LIBS})
add_subdirectory(ssd)
如果后续我们需要测试自己的网络,就只需在ncnn的root目录下添加相应的cpp文件,且在CMakeLists.txt中添加如下内容,然后重新编译,即可生成相应可执行文件
add_executable(可执行文件名需要编译的cpp文件)
target_link_libraries(可执行文件名ncnn ${OpenCV_LIBS})
$wolf@wolf:~/Downloads/ncnnmkdir build
cd 切换进入build目录
$wolf@wolf:~/Downloads/ncnn/build cmake ..
$wolf@wolf:~/Downloads/ncnn/buildmake -j8
$wolf@wolf:~/Downloads/ncnn/buildmake install
这时,我们可以在build/example文件夹中找到,fasterrcnn和squeezenet两个可执行文件
最后将ncnn的root目录下的example中的
squeezenet_v1.1.bin
squeezenet_v1.1.param
synset_words.txt
三个文件拷贝到ncnn/build/example目录下运行
$wolf@wolf:~/Downloads/ncnn/build/example ./squeezenet test.jpeg即可运行