编译
CMakeLists.txt文件配置
CMakeLists.txt文件参考内容如下:
cmake_minimum_required(VERSION 3.5.2) project(samplepostprocess) set(MX_SDK_HOME "$ENV{MX_SDK_HOME}") add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0 -Dgoogle=mindxsdk_private) set(PLUGIN_NAME "samplepostprocess") set(TARGET_LIBRARY ${PLUGIN_NAME}) set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) include_directories(${MX_SDK_HOME}/include) include_directories(${MX_SDK_HOME}/opensource/include) include_directories(${MX_SDK_HOME}/opensource/include/gstreamer-1.0) include_directories(${MX_SDK_HOME}/opensource/include/glib-2.0) include_directories(${MX_SDK_HOME}/opensource/lib/glib-2.0/include) link_directories(${MX_SDK_HOME}/opensource/lib) link_directories(${MX_SDK_HOME}/lib) add_compile_options(-std=c++14 -fPIC -fstack-protector-all -pie -Wno-deprecated-declarations) add_compile_options("-DPLUGIN_NAME=${PLUGIN_NAME}") add_definitions(-DENABLE_DVPP_INTERFACE) add_library(${TARGET_LIBRARY} SHARED SamplePostProcess.cpp SamplePostProcess.h) target_link_libraries(${TARGET_LIBRARY} glib-2.0 gstreamer-1.0 gobject-2.0 gstbase-1.0 gmodule-2.0 glog) target_link_libraries(${TARGET_LIBRARY} plugintoolkit mxpidatatype mxbase) install(TARGETS ${TARGET_LIBRARY} LIBRARY DESTINATION ${MX_SDK_HOME}/lib/modelpostprocessors)
对于新增后处理的CMakeLists.txt文件,用户只需修改生成的后处理名和生成动态库的目标文件即可,沿用原有的其他配置。以开发一个ResNet-50后处理为例,示例操作如下:
其中,“samplepostprocess”和“SamplePostProcess.cpp”分别代表生成的后处理动态库名和生成后处理的目标文件,其他的配置沿用原有的后处理。
命令行编译
命令行编译主要根据“CMakeLists.txt”文件的配置,进行插件的编译和生成。以下步骤中{sdk_install_path}为Vision SDK软件包的安装路径。
- 新建并进入“SamplePostProcess”目录。
cd {sdk_install_path}/samples/ mkdir SamplePostProcess cd SamplePostProcess
- 将后处理动态库头文件、源文件和“CMakeLists.txt”文件存放至“SamplePostProcess”目录。
- 新建并进入“build”目录。
mkdir build cd build
- 创建Makefile文件,避免污染项目的CMakeLists。
cmake ..
- 根据生成的Makefile文件编译项目。
make -j
- 将生成后处理的.so文件拷贝至“{sdk_install_path}/lib/modelpostprocessors”目录下。
make install

如需使用生成的.so文件,需要将该文件的权限修改为440。
父主题: 自定义模型后处理开发