YOLO学习-3:ubuntu16.04+ yolov3(darknet)+GPU(nvidia 1080ti)+opencv2.4.11 摄像头测试实践
一 硬件條件:工作站 大版本主機 +4塊 invidia? 1080ti的gpu? 實際測試,只能用一個,不知道四個都用的話如何設置,有知道的請告訴一下。
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpgdetect后 -i 0?? 或-i 1 等數字是gpu編號
?
二 操作系統 ubuntu 16.04
?
三 根據gpu型號安裝對應版本的驅動程序/cuda版本/cudnn配置等,去nvidia官網或技術論壇
?
四/ yolov3安裝,參考官網darknet的安裝 https://pjreddie.com/darknet/yolo/
?
五/ 安裝opencv,如果是大于3.0的版本,編譯會出錯,好象是darknet源代碼中 image_opencv.cpp 中的mat類型轉image會報錯
?
六/基于五的解決方案是安裝darknet當年編寫時間前的opencv版本, 測試使用opencv2.4.11版本
------ 問題1: 官網給的版本安裝會報錯。找了一個熱心網友改得版本,親測可用。
???????? https://blog.csdn.net/ljl1015ljl/article/details/100749835
??????? 給出的百度網盤:鏈接: https://pan.baidu.com/s/19AaTZUMqCanJFHU2tAGetw 提取碼: ph4w
?????? ///以下是博客中內容
-
下載的opencv2.4.11源碼
-
然后按著網上教程 修改了opencv的源代碼
-
sudo apt-get install libopencv-dev
-
修改/data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp
將
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改為
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000) -
在usr/local下創建一個文件夾opencv2.4.11
不能直接創建,用root創建 不然沒權限
如果不創建的話,自己改一下下面cmake語句中安裝的位置 -
解析
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.4.11 -D WITH_CUDA=ON -D BUILD_PYTHON_SUPPORT=ON -D WITH_FFMPEG=OFF -D BUILD_EXAMPLES=ON -D BUILD_TIFF=ON ..
opencv-2.4.11/build/lib/libopencv_highgui.so.2.4.11: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0
這個錯誤 就是 后面編譯其他項目會遇到這個錯誤,然后重新編譯opencv 在cmake時,在后面加一句 -D BUILD_TIFF=ON ,這樣tiff就會在編譯opencv時自動編譯好 -
編譯 make -j8
-
sudo make install
-
在 sudo gedit ~/.bashrc 文件后面添加以下兩行
export PKG_CONFIG_PATH=/usr/local/opencv2.4.11/lib/pkgconfig export LD_LIBRARY_PATH=/usr/local/opencv2.4.11/lib然后保存修改 source ~/.bashrc
這樣 pkg-config --modversion opencv -
/以上是博客轉載內容
-----------??? 按照上述方法安裝好opencv2.4.11后,取darknet目錄 修改makefile文件? gpu=1 opencv=1 cuda=1等。
--------------?? 執行make一般能成功。
?
七 運行時可能會報錯
------------在ubuntu下編譯opencv程序后,執行報下面到錯誤:
error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory
解決方法:找到libopencv_開頭到庫的目錄,在/usr/local/lib下面,在/etc/ld.so.conf.d/下面新建一個opencv.conf,里面寫入/usr/local/lib,最后執行下sudo ldconfig -v即可。
???????????? https://blog.csdn.net/eric41050808/article/details/53673623
------------------ ./darknet: error while loading shared libraries: libcudart.so.8.0: cannot open shared object file:
libcudart.so.8.0 不能找到?
是庫文件路徑引發的問題,可以到/etc/ld.so.conf.d目錄下,修改其中任意一份conf文件,(可以自建conf,以方便識別)將lib所在目錄寫進去,然后在終端輸入 ldconfig 更新緩存。
本文該lib文件在/usr/local/cuda/lib64下,因此在/etc/ld.so.conf.d 創建了一個cuda.conf 文件,并加入/usr/local/cuda/lib64 內容,保存退出。
最后執行:sudo ldconfig 使文件生效
https://blog.csdn.net/qq_34570910/article/details/80841571
總結
以上是生活随笔為你收集整理的YOLO学习-3:ubuntu16.04+ yolov3(darknet)+GPU(nvidia 1080ti)+opencv2.4.11 摄像头测试实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SLAM学习--2D激光SLAM-圣经-
- 下一篇: ORB SLAM学习--跑自己数据集图片