安裝過程中自己踩過一些坑,特此將配置流程記錄下來,希望對后人有所幫助。
由于寫下此文是一時(shí)興起,因此配置過程中沒有留下截圖,本文圖極少,見諒。
在配置環(huán)境前請一定留意darknet的readme文件,由于版本更新,可能導(dǎo)致按網(wǎng)上找到文章的版本配置的環(huán)境并不適合你下載的darknet,導(dǎo)致不明原因的報(bào)錯(cuò)。
我安裝版本的環(huán)境需求:
CMake >= 3.8
CUDA 10.0
OpenCV >= 2.4
cuDNN >= 7.0 for CUDA 10.0
GPU with CC >= 3.0
on LinuxGCC or Clang, on WindowsMSVC 2015/2017/2019
一、硬件
cpu:i7-7700
gpu:gtx1070
二、前期準(zhǔn)備
準(zhǔn)備工作如下:
(1)win10安裝ubuntu18雙系統(tǒng)
(2)安裝顯卡驅(qū)動(dòng)
(3)安裝cuda10.0
(4)安裝cudnn7.6
1、win10安裝ubuntu18雙系統(tǒng)
易踩的坑:
(1)需要注意自己電腦的啟動(dòng)模式,啟動(dòng)模式有uefi與Legacy兩種???
(2)系統(tǒng)語言最好選擇英文。第一次安裝我選擇中文,后可能是顯卡驅(qū)動(dòng)出錯(cuò)在登陸界面反復(fù)橫跳無法進(jìn)入桌面,參照網(wǎng)上方法進(jìn)入tty,結(jié)果中文顯示全部為 ■ ,最后沒辦法解決只能重裝系統(tǒng)。
(3)分區(qū)參考:我總共為ubuntu留了200G空間,其中“/” 20480M,“swap” 16384M,“eif” 512M(引導(dǎo)ubuntu啟動(dòng)),“/home” 剩余空間
(4)Device for boot loader installation(安裝引導(dǎo)啟動(dòng)器的設(shè)備)務(wù)必選擇efi分區(qū)的盤符,否則ubuntu可能無法啟動(dòng)
雙系統(tǒng)安裝過程對于新手較為繁瑣,在此不再贅述,推薦一篇詳細(xì)教程:uefi啟動(dòng)方式詳細(xì)安裝教程
雙系統(tǒng)卸載ubuntu(針對UEFI啟動(dòng)方式)
流程:首先將windows置為首選項(xiàng),并刪除ubuntu的啟動(dòng)項(xiàng),再刪除ubuntu占用分區(qū)。
千萬不要直接刪除分區(qū),會(huì)導(dǎo)致win也無法啟動(dòng)
可以參考這篇文章
(1)下載easyUEFI
(2)將win的啟動(dòng)項(xiàng)置為首位(這一步也可以通過bios調(diào)整)
(3)刪除ubuntu啟動(dòng)項(xiàng)
? 可以通過重啟電腦,看啟動(dòng)的是不是windows檢驗(yàn)前面的設(shè)置是否成功,前面的設(shè)置成功后才能進(jìn)行接下來的操作
(4)磁盤管理器中刪除ubuntu占用磁盤空間,其中efi占用分區(qū)不能直接刪除,方法如下
???????? Step 1 首先win+R打開運(yùn)行,輸入Diskpart
???????? Step 2 輸入list disk,顯示磁盤
???????? Step 3 輸入要?jiǎng)h除EFI分區(qū)所在的硬盤,具體在哪個(gè)盤可以在磁盤管理器中確認(rèn),我的在磁盤0中,輸入select disk 0進(jìn)入磁盤0?
???????? Step 4 輸入list partition,列出磁盤0中的所有分區(qū)
? ? ? ?? Step 5 通過大小和類型確認(rèn)你需要?jiǎng)h除的分區(qū),efi占用分區(qū)類型為系統(tǒng),我發(fā)現(xiàn)分區(qū)8為efi占用分區(qū),輸入select partition 8,選中分區(qū)8
????????? Step 6 輸入delete partition override,刪除分區(qū)8,override是強(qiáng)制刪除分區(qū),必須加上才能刪除
這樣就取回了被ubuntu占用的全部空間。
2、安裝顯卡驅(qū)動(dòng)
?自動(dòng)安裝顯卡驅(qū)動(dòng):
sudo ubuntu-drivers autoinstall
安裝完成后建議重啟電腦
3、CUDA安裝
這里安裝cuda10.0,原因是我一開始安裝的是cuda9.0,make過程中報(bào)classifer.o的錯(cuò),找不到解決方法,將cuda版本換為官方指定的10.0版本后編譯正常。
(1)在官網(wǎng)下載CUDA10.0的runfile文件,此處為鏈接
(2)使用sh指令安裝
?sudo sh?cuda_10.0.130_410.48_linux.run
tips:用戶條款可以用Ctrl+C跳過
由于驅(qū)動(dòng)我們已經(jīng)安裝過了,因此這里是否安裝驅(qū)動(dòng)填 n,其余填 y,路徑保持默認(rèn)
補(bǔ)丁也通過sh安裝
安裝完畢后打開.bashrc添加環(huán)境變量
sudo gedit ~/.bashrc
在文件最后添加環(huán)境變量
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:/usr/local/cuda/extras/CPUTI/lib64
export CUDA_HOME=/usr/local/cuda-10.0/bin
export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOME
保存對環(huán)境變量的修改
source ~/.bashrc
至此,cuda安裝完成。
檢測cuda安裝是否成功
cd/usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
最后輸出Result=PASS即安裝成功,若為FAIL可能因?yàn)榘惭b完顯卡驅(qū)動(dòng)后未重啟電腦。
4、cuDNN安裝
官網(wǎng)下載適合自己的版本,需要登陸才能下載,我下載的是v7.6.5,選擇cuDNN Library for Linux
解壓后將文件拷貝到cuda相應(yīng)位置中
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
至此,準(zhǔn)備工作已全部結(jié)束。
三、Yolov3的配置
從git下載源碼 下載地址
tips:1、直接下載可能很慢繼而出錯(cuò),可以拉到碼云,再從碼云下載;
?????? ? 2、opencv配置起來較為繁瑣,容易出錯(cuò),可直接使用如下命令。
sudoapt-get install libopencv-dev
解壓后按需求修改 darknet/Makefile 文件
GPU=1 ? ? ? ? ? ? ? ? ? ? ? ? ?? #使用CUDA為GPU加速 ??????????????????
CUDNN=1???????????? ? ? ? ? ? #使用cuDNN為GPU加速
OPENCV=1 ? ? ? ? ? ? ? ? ? ? #使用opencv
AVX=0???????????????????????? ? ? #與openmp加速cpu,若出錯(cuò)就置為0
DEBUG=0 ? ? ? ? ? ? ? ? ? ? ? #是否開啟YOLO的debug模式
OPENMP=0 ? ? ? ? ? ???????? #代表編譯過程將引入openmp,可使用多核CPU加速
LIBSO=0 ? ? ? ? ? ? ? ? ?????? #編譯庫darknet.so
ZED_CAMERA=0 ? ?????? #構(gòu)建具有ZED-3D相機(jī)支持的庫(應(yīng)安裝ZED SDK)
...
...
NVCC=/usr/local/cuda-10.0/bin/nvcc??? #修改為你自己的地址
...
...
編譯
make
檢驗(yàn)yolo安裝是否成功
下載權(quán)重文件yolov3.weight???? 官網(wǎng)地址 ?? 網(wǎng)盤地址
將權(quán)重文件復(fù)制到darknet文件夾下,終端輸入:
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
如果你配置了opencv,會(huì)跳出新窗口顯示檢測結(jié)果,如果沒有則會(huì)在darknet文件夾下生成檢測結(jié)果。
如果沒有框可能是因?yàn)椋?/p>
1、weight文件有問題(不知道為什么我的darknet文件夾下有一個(gè)yolov3.weight,可能是下載中斷造成的,使用這個(gè)權(quán)重文件檢測死活沒有框,后來發(fā)現(xiàn)是權(quán)重文件不全,出錯(cuò)的只有7-8M,正確下載下來的應(yīng)該是248M)
2、cfg文件,weights文件或data文件不匹配

至此配置工作全部結(jié)束。
這次配置yolov3花費(fèi)了不少時(shí)間,想想看可能是太急躁,執(zhí)行每一步都要想清楚這一步是做什么的。期間重裝ubuntu的過程中甚至根據(jù)不靠譜的教程clean了一個(gè)磁盤,有一些對我來說非常珍貴的照片就此丟失。
配置過程中走了不少彎路,希望大家別走了。