目錄
1 安裝visual studio
2 安裝CMake
3 OpenCV源碼安裝
3.1 OpenCV源碼下載
3.2 OpenCV contrib源碼下載
3.3 安裝OpenCV
3.4 安裝OpenCV-crontrib
3.5?VS生成代碼
4 環(huán)境配置
5 TensorRT安裝
5.1?TensorRT安裝
5.2 Python下安裝TensorRT庫(kù)
最近在研究windows系統(tǒng)上部署安裝目標(biāo)檢測(cè)算法,需要用到OpenCV軟件,因?yàn)镺penCV可能是目前使用最廣泛的開源圖像處理工具了,尤其是在科研領(lǐng)域。于是,本篇博客主要詳細(xì)記錄一下如何在Windows 操作系統(tǒng)下,搭建Visual Studio 2022+OpenCV4.5.5+OpenCV contrib4.5.5的運(yùn)行環(huán)境。
1 安裝visual studio
安裝Visual Studio比較簡(jiǎn)單,首先去Visual Studio官網(wǎng)下載安裝包
下載 Visual Studio Tools - 免費(fèi)安裝 Windows、Mac、Linux
下載Community版本就可以了,其功能已經(jīng)夠用了。
下載結(jié)束后,我們雙擊下載的安裝包,開始安裝
然后稍微等待即可
安裝完成后會(huì)自動(dòng)彈出以下窗口,根據(jù)你要使用Visual Studio所做的事情選擇不同的功能集和工作負(fù)載,同時(shí)選擇安裝路徑(建議使用默認(rèn)安裝路徑)。在窗口的上方還有單個(gè)組件、語(yǔ)言包、安裝位置這些選項(xiàng),可以不用管,均為默認(rèn)值,最后點(diǎn)擊安裝
接著慢慢等待即可,此過程相對(duì)比較慢,會(huì)下載一些依賴包
?安裝完畢后,重啟電腦就可以了,到此就已經(jīng)成功安裝Visual Studio 2022軟件了。
2 安裝CMake
CMake是一個(gè)跨平臺(tái)的安裝(編譯)工具,可以用簡(jiǎn)單的語(yǔ)句來描述所有平臺(tái)的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件。只是CMake的組態(tài)檔取名為CMakeLists.txt。Cmake并不直接建構(gòu)出最終的軟件,而是產(chǎn)生標(biāo)準(zhǔn)的建構(gòu)檔(如Unix的Makefile或Windows Visual C++的projects/workspaces),然后再依一般的建構(gòu)方式使用。
首選下載CMake軟件安裝包,地址如下
Download | CMakehttps://cmake.org/download/我這里下載的是cmake-3.25.2-windows-x86_64.zip,(PS: 根據(jù)個(gè)人電腦windows系統(tǒng)位數(shù)下載對(duì)應(yīng)的版本)
?雙擊打開下載的文件,點(diǎn)擊“next”
勾選接受后點(diǎn)擊“next”
添加環(huán)境變量和快捷鍵,看下圖描述,然后點(diǎn)擊“next”
更改安裝位置(可以不更改,默認(rèn)即可),然后點(diǎn)擊“next”
點(diǎn)擊“Install”等待安裝,后出現(xiàn)右圖所示,點(diǎn)擊“Finish”安裝結(jié)束。
測(cè)試是否安裝成功,打開終端(win+R快捷鍵然后輸入cmd回車),輸入?cmake --version后,出現(xiàn)下載的版本號(hào)即代表安裝成功
3 OpenCV源碼安裝
3.1 OpenCV源碼下載
首先需要去OpenCV的官網(wǎng)下載源碼,本教程下載的是OpenCV-4.5.5版本的源碼
下載之后解壓到特定文件夾,我解壓到了D:\soft\opencv\opencv-4.5.5
3.2 OpenCV contrib源碼下載
之所以要下載OpenCV contrib源碼,是因?yàn)樽詮腛penCV 3.0之后,很多經(jīng)典的算法,比如sift和surf特征點(diǎn)檢測(cè)算法,由于專利原因,已經(jīng)不包含在OpenCV的源碼當(dāng)中了,需要下載OpenCV contrib包才能繼續(xù)使用。于是OpenCV contrib的官網(wǎng)下載源碼安裝包
GitHub - opencv/opencv_contrib: Repository for OpenCV's extra modulesRepository for OpenCV's extra modules. Contribute to opencv/opencv_contrib development by creating an account on GitHub.https://github.com/opencv/opencv_contribOpenCV contrib的版本記得要和OpenCV版本符合(例如下圖我們選擇的是4.5.5版本),還是要下載源碼。
下載完解壓,本文的路徑為D:\soft\opencv\opencv_contrib-4.5.5
3.3 安裝OpenCV
在安裝CMake軟件之后,就可以安裝OpenCV源碼了,具體步驟如下:
1 首先按下圖操作:
2?彈窗出來的配置,按照自己的開發(fā)環(huán)境配置即可(本文的環(huán)境是VS 2022,平臺(tái)是X64平臺(tái)),然后點(diǎn)擊"Finish"即可:
3 cmake的窗口開始打印信息
4 打印出來的信息中如果出現(xiàn)python、matlab相關(guān)的報(bào)錯(cuò),例如下圖,直接pass。(Python……ptsd,想到python就ptsd……想起某人愛用python造輪子……)
但是在編譯過程中正常都會(huì)出現(xiàn)下載不成功的現(xiàn)象,這一步很多博客都沒有寫清楚如何排查,導(dǎo)致很多新手在之后VisualStudio階段導(dǎo)包的時(shí)候出錯(cuò)。上一步完成之后,大部分情況下會(huì)報(bào)錯(cuò)。不出意外會(huì)看到如下的報(bào)錯(cuò)信息。
仔細(xì)閱讀之后,我們應(yīng)該查看一下CMakeDownloadLog.txt。使用Notepad++或者其他軟件打開CMakeDownloadLog.tx
通過查看CMakeDownloadLog.txt文件可以看出,是由于Cmake去下載相關(guān)的包沒有下載下來。所以根據(jù)紅框處的信息我們需要自行下載,方法:將鏈接輸入到瀏覽器,然后就會(huì)自動(dòng)下載。一些鏈接輸入到瀏覽器之后,顯示的是文本,需要另存為文本到本地,千萬(wàn)不要復(fù)制!??!
下載之后將這些包拷貝到.cache文件夾下,并且需要更改包的名字(cmake下載包之后將校驗(yàn)的hash碼重命名到了包中),下圖以ippcv包為例:
下載的包原名為:ippicv_2020_win_intel64_20191018_general.zip ? ? ? ??
復(fù)制到CmakeDownloadLog.txt中的.cache文件夾下,并改名為:
879741a7946b814455eee6c6ffde2984-ippicv_2020_win_intel64_20191018_general.zip
根據(jù)CMakeDonloadLog.txt文件中的提示信息,將所有下載失敗的安裝包都下載下來,復(fù)制到對(duì)應(yīng)的文件夾中,然后重新點(diǎn)擊configure
此時(shí)可以發(fā)現(xiàn),不再有報(bào)錯(cuò)信息了,?同時(shí)也可以查看CmakeDownLoadLog.txt,已經(jīng)不報(bào)錯(cuò)了:
3.4 安裝OpenCV-crontrib
在cmake的OPENCV_EXTRA_MODULES_PATH之中輸入之前下載的OpenCV-contrib的路徑,精確到modules,OPENCV_ENABLE_NONFREE一定要勾選上!
再次configure,不出意外的話,又看到一大堆報(bào)錯(cuò)信息,同樣是由于有些安裝包沒有下載下來,再次根據(jù)CMakeDownloadLog.txt文件中的提示信息,將沒有下載成功的安裝包下載下來,并復(fù)制到對(duì)應(yīng)的文件夾中,再次點(diǎn)擊configure即可。
3.5?VS生成代碼
找到build之后的OpenCV.sln文件,用visual studio2022打開。
右擊models下面的opencv_world,點(diǎn)擊屬性,如下圖所示
對(duì)鏈接器中的啟用增量鏈接進(jìn)行修改,選擇否
對(duì)CMakeTargets文件夾下的Install進(jìn)行重新生成即可,如下圖。這個(gè)時(shí)候要等上一段時(shí)間,可能是半個(gè)小時(shí),也可能是好幾個(gè)小時(shí),主要看電腦性能。跑完之后出現(xiàn)如下錯(cuò)誤不要慌,這個(gè)是不耽誤使用的,這個(gè)報(bào)錯(cuò)是python導(dǎo)致的。
以上咱們的opencv就算是編譯完成了。跑完Debug版之后建議也去跑個(gè)Release,這樣兩個(gè)環(huán)境下就都可以使用了。
4 環(huán)境配置
- 先配置系統(tǒng)環(huán)境變量,Windows控制臺(tái)搜索即可查詢到。
把之前install產(chǎn)出的bin的包的路徑填進(jìn)去,然后重啟電腦才會(huì)生效。?
- 然后創(chuàng)建一個(gè)空的"控制臺(tái)應(yīng)用"項(xiàng)目,就叫OpenCV-test
- 右鍵項(xiàng)目,更改屬性。編輯VC++目錄下的包含目錄(其實(shí)就是英文版本的include path)??????,然后把install之后的include文件夾路徑添加上去。注意,是install之后的include路徑,不要填錯(cuò)成了其他的include路徑。
- 然后我們編輯庫(kù)目錄(其實(shí)就是英文版的lib path),把install之后的lib目錄輸入進(jìn)去(再次強(qiáng)調(diào)是install之后的lib目錄)
- ?鏈接器->附加依賴項(xiàng)->編輯,輸入所有的xxxxx/install\x64\vc16\lib中 所有xxxd.lib文件名字
為了驗(yàn)證我們安裝OpenCV的效果,我們需要使用測(cè)試案例進(jìn)行測(cè)試,輸入以下代碼進(jìn)行測(cè)試,可以正常顯示圖片,則說明OpenCV安裝成功。
// OpenCV-test.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。
//
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat src = cv::imread("E:\\test.jpg");//圖片路徑
if (src.empty())
{
std::cout << "pic is empty!\n";
return -1;
}
cv::imshow("show", src);
cv::waitKey(0);
std::cout << "Hello World!\n";
}
5 TensorRT安裝
首先需要在電腦上安裝CUDA和cuDNN,這兩個(gè)軟件的安裝教程可以參考其它博客Cuda和cuDNN安裝教程(超級(jí)詳細(xì))_cuda安裝_jhsignal的博客-CSDN博客
5.1?TensorRT安裝
通過上面博主的教程大家應(yīng)該安裝好了CUDA和cuDNN,下面根據(jù)自己的CUDA版本號(hào)來找對(duì)應(yīng)的TensorRT的安裝包
TensorRT下載鏈接 Log in | NVIDIA Developer
我電腦上的cuda版本是11.5那么我下載的則是win系統(tǒng)下的TensorRT 8.5 GA,如下圖
下載完成后,將該TensorRT文件解壓后,如下圖所示
然后需要將TensorRT文件中的文件移動(dòng)到CUDA安裝文件夾中,如下:
將 TensorRT-8.5.1.7\include中頭文件 copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\include
將TensorRT-8.5.1.7\lib 中所有l(wèi)ib文件 copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\lib\x64
將TensorRT-8.5.1.7\lib 中所有dll文件copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\bin
5.2 Python下安裝TensorRT庫(kù)
找到剛剛解壓的TensorRT文件夾,里面有一個(gè)python文件夾,這里面含有不同版本python對(duì)應(yīng)的TensorRT安裝
在python環(huán)境中,將目錄切換到剛剛解壓的TensorRT文件夾,輸入pip install?tensorrt-8.5.1.7-cp39-none-win_amd64.whl,進(jìn)行安裝即可,根據(jù)自己的python版本來定。然后在python下導(dǎo)入tensorrt,看看是否可以正常導(dǎo)入并輸出版本號(hào),如下圖所示,說明安裝成功。
?文章來源地址http://www.zghlxwxcb.cn/news/detail-705374.html
?文章來源:http://www.zghlxwxcb.cn/news/detail-705374.html
?
到了這里,關(guān)于windows下安裝Visual Studio + CMake+OpenCV + OpenCV contrib+TensorRT的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!