关于opencv mobile库函数cmake调用问题,用于RKNN的demo推理
Posted: 2024-02-19 9:39
opencv mobile如果想要使用官方示例需要写一个cmake内容如下:
原来官方给出的RKNN推理中demo中的cmake他的内容则是:
我想要调用opencvmobile这个库中的函数就需要把两个cmake结合起来进行.sh编译但是我在demo中的CMAKE中修改成为如下后:
之后再./build-linux_RV1106.sh 后cmake中出现了错误如下提示:
类似这样重复定义的提示,我不知道该怎样修改demo中的cmake才能调用opencv mobile中的函数实现利用官方的捕捉视频帧不断循环的生成固定名字的图片在当前目录下,之后使用rknn的demo把这个不断覆盖的每一帧图片进行推理用循环不断去打印推理信息给串口,目前是无法修改cmake达到能调用opencvmobile中的函数,需要这方面的帮助,或者可以提供在demo中获取摄像头帧画面的方法用于推理的输入
Code: Select all
project(opencv-mobile-test)
cmake_minimum_required(VERSION 3.5)
set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_C_COMPILER "<SDK Directory>/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc")
SET(CMAKE_CXX_COMPILER "<SDK Directory>/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-g++")
set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/opencv-mobile-4.8.1-luckfox-pico/lib/cmake/opencv4")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(opencv-mobile-test main.cpp)
target_link_libraries(opencv-mobile-test ${OpenCV_LIBS})
Code: Select all
cmake_minimum_required(VERSION 3.4.1)
project(rknn_yolov5_demo)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--allow-shlib-undefined")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wl,--allow-shlib-undefined")
# install target and libraries
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/rknn_yolov5_demo_${CMAKE_SYSTEM_NAME})
set(CMAKE_SKIP_INSTALL_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
# rknn api
set(RKNN_API_PATH ${CMAKE_SOURCE_DIR}/../../../runtime/RV1106/${CMAKE_SYSTEM_NAME}/librknn_api)
set(RKNN_RT_LIB ${RKNN_API_PATH}/armhf/librknnmrt.so)
include_directories(${RKNN_API_PATH}/include)
include_directories(${CMAKE_SOURCE_DIR}/../../3rdparty)
# rknn_yolov5_demo
include_directories(${CMAKE_SOURCE_DIR}/include)
add_executable(rknn_yolov5_demo
src/main.cc
src/postprocess.cc
)
target_link_libraries(rknn_yolov5_demo
${RKNN_RT_LIB}
)
# install target and libraries
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/rknn_yolov5_demo_${CMAKE_SYSTEM_NAME})
install(TARGETS rknn_yolov5_demo DESTINATION ./)
install(PROGRAMS ${RKNN_RT_LIB} DESTINATION lib)
install(DIRECTORY model DESTINATION ./)
Code: Select all
cmake_minimum_required(VERSION 3.5)
project(rknn_yolov5_demo)
set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_C_COMPILER "/home/alientek/sdk_RV1106/luckfox-pico-main/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc")
SET(CMAKE_CXX_COMPILER "/home/alientek/sdk_RV1106/luckfox-pico-main/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-g++")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--allow-shlib-undefined")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wl,--allow-shlib-undefined")
# install target and libraries
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/rknn_yolov5_demo_${CMAKE_SYSTEM_NAME})
set(CMAKE_SKIP_INSTALL_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
# rknn api
set(RKNN_API_PATH ${CMAKE_SOURCE_DIR}/../../../runtime/RV1106/${CMAKE_SYSTEM_NAME}/librknn_api)
set(RKNN_RT_LIB ${RKNN_API_PATH}/armhf/librknnmrt.so)
include_directories(${RKNN_API_PATH}/include)
include_directories(${CMAKE_SOURCE_DIR}/../../3rdparty)
# rknn_yolov5_demo
include_directories(${CMAKE_SOURCE_DIR}/include)
#opencv api
set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/opencv-mobile-4.8.1-luckfox-pico/lib/cmake/opencv4")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(rknn_yolov5_demo
src/main.cc
src/postprocess.cc
)
target_link_libraries(rknn_yolov5_demo
${RKNN_RT_LIB}
${OpenCV_LIBS}
)
# install target and libraries
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/rknn_yolov5_demo_${CMAKE_SYSTEM_NAME})
install(TARGETS rknn_yolov5_demo DESTINATION ./)
install(PROGRAMS ${RKNN_RT_LIB} DESTINATION lib)
install(DIRECTORY model DESTINATION ./)
Code: Select all
/home/alientek/sdk_RV1106/luckfox-pico-main/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/../../../../arm-rockchip830-linux-uclibcgnueabihf/bin/ld.bfd: ../../src/opencv-mobile-4.8.1-luckfox-pico/lib/libopencv_highgui.a(highgui.cpp.o): in function `stbi_failure_reason':
highgui.cpp:(.text.stbi_failure_reason+0x0): multiple definition of `stbi_failure_reason'; CMakeFiles/rknn_yolov5_demo.dir/src/main.cc.o:main.cc:(.text+0x3c4): first defined here
/home/alientek/sdk_RV1106/luckfox-pico-main/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/../../../../arm-rockchip830-linux-uclibcgnueabihf/bin/ld.bfd: ../../src/opencv-mobile-4.8.1-luckfox-pico/lib/libopencv_highgui.a(highgui.cpp.o): in function `stbi_image_free':
highgui.cpp:(.text.stbi_image_free+0x0): multiple definition of `stbi_image_free'; CMakeFiles/rknn_yolov5_demo.dir/src/main.cc.o:main.cc:(.text+0x898): first defined here
/home/alientek/sdk_RV1106/luckfox-pico-main/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/../../../../arm-rockchip830-linux-uclibcgnueabihf/bin/ld.bfd: ../../src/opencv-mobile-4.8.1-luckfox-pico/lib/libopencv_highgui.a(highgui.cpp.o): in function `stbi_set_flip_vertically_on_load':
highgui.cpp:(.text.stbi_set_flip_vertically_on_load+0x0): multiple definition of `stbi_set_flip_vertically_on_load'; CMakeFiles/rknn_yolov5_demo.dir/src/main.cc.o:main.cc:(.text+0x8bc): first defined here
/home/alientek/sdk_RV1106/luckfox-pico-main/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/../../../../arm-rockchip830-linux-uclibcgnueabihf/bin/ld.bfd: ../../src/opencv-mobile-4.8.1-luckfox-pico/lib/libopencv_highgui.a(highgui.cpp.o): in function `stbi_is_hdr_from_memory':