在cmake中的YOLOv3暗网(AlexeyAB)安装中包含OpenCV目录



我正在尝试将OpenCV链接到darknet目录。我正在使用Nvidia Jetson AGX Xavier(Ubuntu 18.04(。直到最近,OpenCV还是由JetPack安装在/usr/r目录中的。有了这种配置,暗网的实时检测(https://github.com/AlexeyAB/darknet)使用网络摄像头工作。

我不得不重新安装OpenCV,现在它的目录是home/user/OpenCV。由于缺少权限,我无法将其包含在上一个目录中。现在,每次我用命令启动暗网的实时检测

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -c 0

我收到这个错误日志:

./darknet: error while loading shared libraries: libopencv_highgui.so.3.3: cannot open shared object file: No such file or directory

当我重新编译darknet(cmake,make,install(时,我收到另一条错误消息:

Demo needs OpenCV for webcam images.

所以我认为,OpenCV没有包含在编译中,darknet也没有找到库。我测试了这个选项:

  • 在暗网的Makefile中包含OPENCV=1(仔细检查,完全确定这不是故障(
  • 我试图将OpenCV的路径导出到它以前的路径,例如使用export OpenCV_DIR=/usr/share/OpenCV

  • 我尝试链接路径,例如与LD_LIBRARY_path=$LD_LIBRRAY_path:/usr/local/lib或LD_LIBRARY_PATH=$LD_LIBRRAY_PATH:/usr/share

  • 我认为有可能在一些与cmake相关的文件中包含OpenCV路径。CmakeLists.txt文件中的行

set(PThreads_windows_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/pthreads CACHE PATH "Path where pthreads for windows can be located")
endif()
set(Stb_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/stb CACHE PATH "Path where Stb image library can be located")
set(CMAKE_DEBUG_POSTFIX d)
set(CMAKE_THREAD_PREFER_PTHREAD ON)
find_package(Threads REQUIRED)
if(MSVC)
find_package(PThreads_windows REQUIRED)
endif()
if(ENABLE_OPENCV) 
if(OpenCV_FOUND)
if(SELECT_OPENCV_MODULES)

我认为我应该在这里或其他地方包含OpenCV的新目录路径。我尝试使用find_package或set_path,但我不确定这是否是输入此选项的正确点。此外,我没有名为finOpencv.cmake.的文件

有人有一个想法吗,我如何"告诉"暗网OpenCV的位置?

如果您需要进一步的信息,我很乐意与您分享。

感谢您的帮助。谢谢

编辑:如果我在CMakeLists.txt中包含Find_Package(OpenCV(并重新编译,我会收到以下输出:

CMake Warning at CMakeLists.txt:96 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one.
Could not find a package configuration file provided by "OpenCV" with any
of the following names:
OpenCVConfig.cmake
opencv-config.cmake
Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
"OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
provides a separate development package or SDK, be sure it has been
installed.

编辑:如果我在CMakeLists.txt中包含Find_Package(OpenCV(并重新编译,我会收到这个输出

很好。作为暗网构建目录的下一步:

cmake . -DOpenCV_DIR=/usr/share/OpenCV

最新更新