VS2015 + OPENCV + CUDA 安裝流程


VS2015  https://blog.csdn.net/guxiaonuan/article/details/73775519?locationNum=2&fps=1

OPENCV https://blog.csdn.net/greenhandcgl/article/details/80505701

CUDA  https://blog.csdn.net/u013165921/article/details/77891913

CUDA其中有些地方需要修改: 

CUDA_SDK_PATH  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2

CUDA_BIN_PATH   %CUDA_PATH%\bin

CUDA_LIB_PATH  %CUDA_PATH%\lib\x64

CUDA_SDK_BIN_PATH  %CUDA_SDK_PATH%\bin

CUDA_SDK_LIB_PATH   %CUDA_SDK_PATH%\lib\x64

 

判斷是Debug編譯, 還是Release編譯。

判斷是32位, 還是64位。

  1. #include "json/json.h"  
  2. #ifdef _DEBUG  
  3. #ifndef _WIN64  
  4. #pragma comment(lib,"json/json_mtd.lib")  
  5. #else  
  6. #pragma comment(lib,"json/json_mtd_x64.lib")  
  7. #endif  
  8. #else  
  9. #ifndef _WIN64  
  10. #pragma comment(lib,"json/json_mt.lib")  
  11. #else  
  12. #pragma comment(lib,"json/json_mt_x64.lib")  
  13. #endif  
  14. #endif  
  15. using namespace Json;  

 

DEBUG 與 RELEASE的區別:

Debug選項稱為調試版本,顧名思義這個選項是調試的時候使用的。這個選項的配置中,所有代碼生成的優化都是關閉的,於是我們觸發斷點后可以通過即時/局部變量窗口來觀察對應的變量。 

Release選項稱為發布版本,這個選項的配置使得編譯器可以對我們的代碼進行低等級的,復雜的優化。優化后代碼可能會”面目全非“,導致單步調試變得不可行,我們也無法在變量窗口中看到變量,因為我們要觀察的變量可能被優化了。並且發布版本不會生成.PDB文件(.PDB文件讓調試器能知匯編指令與代碼行數之間的對應關系)

 

編譯流程:  https://blog.csdn.net/shadandeajian/article/details/80913481

更完整的流程: https://blog.csdn.net/sinat_35907936/article/details/82017127

預訓練權重下載: https://pjreddie.com/darknet/yolo/

編譯好后, 進入exe目錄, darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 dog.jpg

 

修改並打開工程文件:  darknet.vcxproj

 

VC++ 目錄: 

        包含目錄: D:\library\opencv\build\include;D:\library\opencv\build\include\opencv;D:\library\opencv\build\include\opencv2;$(CUDA_PATH)\include;$(IncludePath)

        庫目錄: D:\library\opencv\build\x64\vc14\lib;$(CUDA_PATH)\lib\x64;$(LibraryPath)

鏈接器:

       附加庫目錄: D:\library\opencv\build\x64\vc14\lib;%(AdditionalLibraryDirectories)

      輸入: 附加依賴項: opencv_world340d.lib  cublas.lib  cuda.lib   cudadevrt.lib

 

--------------------------------------------訓練模型-------------------------------------------------

# 構建自定義的數據集:

 

 

darknet.exe detector train mydata/my.data mydata/yolov3.cfg yolov3.weights

 

1. 使用voc_label.py 生成  VOCdevkit//VOC2007//labels//   與  2007_train.txt 等文件。

2. 將圖片jpg與標簽txt放置在一個文件夾。

 

darknet.exe detector test mydata/my.data mydata/yolov3.cfg backup/yolov3_final.weights -i 0 -thresh 0.25 data/iom/VOCdevkit/VOC2007/JPEGImages/1.jpg

 

停留在控制台:  項目——屬性——配置屬性——鏈接器——系統, 找到子系統選項,其下拉菜單,選擇控制台。

darknet.c    main -> main_

 

測試已有視屏:
./darknet detector demo cfg/voc.data cfg/yolo-voc.cfg final_voc.weights your_video_path.mp4
測試時會直接彈出一個窗口播放視屏,可以看是實時檢測視屏的效果。

測試攝像頭實時檢測場景:
./darknet detector demo cfg/voc.data cfg/yolo-voc.cfg final_voc.weights
和測試已有視屏類似,運行該命令后,會調用攝像頭,彈出一個窗口顯示攝像頭拍攝實時場景,並做實時檢測。

預測測試集:
./darknet detector valid cfg/voc.data cfg/yolo-voc.cfg final_voc.weights

統計測試集合測試效果:
./darknet detector recall cfg/voc.data cfg/yolo-voc.cfg final_voc.weights

 

 

使用Zbar掃描二維碼: 

1. Zbar官網提供的windows版 只支持32位, 因此64位的機器可以去github下載國外大牛寫的64位的Zbar:   https://github.com/lineCode/ZBarWin64-1

2. 下載好后在VS中配置,  VC++目錄 -> 包含目錄:  Zbar的include,  庫目錄: lib目錄,     鏈接器 -> 輸入: libzbar64-0.lib,  配置好后, 新建項目, 將Zbar64中的 libconv目錄下的 .lib .dll 復制到自己項目的.exe下;

3. 關於項目的更詳細文章, https://blog.csdn.net/zt_xcyk/article/details/78006223    https://blog.csdn.net/zhdnuli/article/details/50427717

 

--------------------------------linux跨平台----------------------------------------------- 

windows項目開發好后需要移植到linux平台:   Visual Studio 2015+VisualGDB5.3

https://blog.csdn.net/RichardWQJ/article/details/79872178

https://www.cnblogs.com/hbccdf/p/use_vs_and_visualgdb_develope_linux_app.html

 

linxu安裝: http://www.cnblogs.com/yaohong/p/7240387.html

改成橋接問題: https://blog.csdn.net/juliarjuliar/article/details/79455284

注意在配置網關時, 應與主機網關一致, 否則無法連接到外網

vi /etc/hosts
192.168.10.112 pc1. ..

 

安裝cmake:

下載 wget https://cmake.org/files/v3.3/cmake-3.3.2.tar.gz

安裝cmake    cd cmake-3.3.2

./bootstrap

gmake

make install

 

安裝gcc支持環境

yum -y install gcc

yum -y install gcc-c++

yum -y install gcc gcc-c++ kernel-devel

yum -y install gcc-gfortran

yum -y install subversion

yum -y install gtk*

pkg-config --version

yum -y install libpng-devel

yum -y install zlib-devel

yum -y install libjpeg-devel

yum -y install libtiff-devel

yum -y install libjasper-devel

yum -y install swig

sudo yum -y install libpng-devel libjpeg-turbo-devel jasper-devel openexr-devel libtiff-devel libwebp-devel libdc1394-devel libv4l-devel gstreamer-plugins-base-devel gtk2-devel tbb-devel eigen3-devel gstreamer1-libav gstreamer1-plugins-base-devel java-1.8.0-openjdk-devel python2-numpy ffmpeg-devel ffmpeg-libs.i686 ffmpeg libavdevice.i686 libpng-devel libjpeg-turbo-devel jasper-devel openexr-devel libtiff-devel libwebp-devel libdc1394-devel libv4l-devel gstreamer-plugins-base-devel gtk2-devel tbb-devel eigen3-devel gstreamer1-libav gstreamer1-plugins-base-devel gtk+extra-devel gtk+-devel.i686 cmake pkg-config libgtk libavcodec libavformat libswscale swig

 

cd opencv目錄

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX= /usr/local -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7/config/libpython2.7.so ..

  

cmake之后, 發現大量錯誤

安裝python 3.5 https://www.linuxidc.com/Linux/2016-04/129784.htm

安裝python 3.5后, 解決yum無法使用的辦法 https://blog.csdn.net/degrade/article/details/52814296

安裝 ccache https://blog.csdn.net/hanlizhong85/article/details/71038515

升級g++版本 http://blog.sina.com.cn/s/blog_64b11b380101f2yb.html

 

使用c++11編譯

g++ -std=c++11 -o test test.cpp 

 

安裝numpy    yum -y install numpy   如果因為python版本而出現錯誤  改成#! /usr/bin/python2.7

yum安裝還是不行 http://jaist.dl.sourceforge.net/project/numpy/NumPy/1.11.1/   cd 進該目錄 python setup.py install  重啟

 

cmake .. 時有些檢查Test通不過, 有可能是opencv沒刪干凈;    make unistall  find / -name "*opencv*" -exec rm -i {} \;   find / -name "*cv2.so*" -exec rm -i {} \;

 

sudo make

sudo make install

 

經過反復蛋疼的重裝, 勸各位還是用ubantu吧, 別用centos了.

 

linux 安裝opencv   https://blog.csdn.net/qq_36449541/article/details/78999581

卸載: https://blog.csdn.net/xulingqiang/article/details/52496701

 

g++ test.cpp && ./a.out   結果打印到控制台

https://pjreddie.com/darknet/yolo/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM