系統(tǒng)版本:Ubuntu16.04
顯卡:GTX 1070
翻譯 + 整理地址: https://pjreddie.com/darknet/install/
YOLO: 是實(shí)現(xiàn)實(shí)時(shí)物體檢測的系統(tǒng),Darknet是基于YOLO的框架
darknet非常容易安裝,它只有2個可選擇的依賴:
??? Opencv: 能支持更多格式的圖像,并且得到實(shí)時(shí)的顯示
??? GPU: 利用GPU計(jì)算蛮原,能大大提升YOLO的識別幀率澡为,畫面更加流暢
安裝這兩個依賴都必須要先安裝基礎(chǔ)版yolo
---安裝基礎(chǔ)版yolo---
首先將darknet從github上clone下來:
$ git clone https://github.com/pjreddie/darknet.git
$ cd darknet
$ make
如果正確執(zhí)行的話,會看到以下內(nèi)容:
運(yùn)行以下命令:
$ ./darknet
看到以下效果,即為安裝成功:
---基礎(chǔ)版yolo測試---
完成上面的操作后,我們可以看到 cfg/目錄下已經(jīng)有了YOLO的配置文件了.
現(xiàn)在為了測試我們的yolo,需要下載官方訓(xùn)練完畢的權(quán)重(237MB),或者運(yùn)行以下命令:
$ wget https://pjreddie.com/media/files/yolov3.weights
下載完畢后,運(yùn)行以下命令:
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
你會看到以下效果:
我們沒有使用OpenCV編譯Darknet诺祸,因此無法直接顯示檢測結(jié)果渐扮。相反,它將它們保存在/darknet/predictions.png中方椎。您可以打開它來查看檢測到的對象。由于我們在CPU上使用Darknet钧嘶,每個圖像需要大約6-12秒棠众。如果我們使用GPU版本,速度會更快.
在data/目錄下還有其他的測試圖片,可以嘗試一下.
在我嘗試?yán)脭z像頭進(jìn)行實(shí)時(shí)檢測的時(shí)候,發(fā)現(xiàn)識別的速度特別慢,因?yàn)榇藭r(shí)的程序還是使用的CPU,一幀圖像都得要處理6-7秒.所以我們需要給用CUDA+Opencv編譯yolo,使之能通過GPU顯卡運(yùn)算,這樣速度會提高很多很多.
首先需要注意的是:
Ubuntu GPU驅(qū)動 / CUDA版本 / cudnn 版本 都要相互關(guān)聯(lián),版本不對應(yīng)的話,就會出錯.
版本確認(rèn)順序:CUDA版本-->cudnn版本-->Ubuntu GPU版本
安裝順序:Ubuntu GPU版本-->CUDA版本-->cudnn版本
版本確認(rèn):
1. 進(jìn)入https://developer.nvidia.com/cuda-toolkit-archive,確認(rèn)要安裝的cuda版本
這里我選擇了CUDA Toolkit 9.0 的版本
2.進(jìn)入https://developer.nvidia.com/cudnn
點(diǎn)擊"download cuDNN",他會要求你進(jìn)行注冊以及一系列的問卷調(diào)查,完成以后,用郵箱登錄.
在cuDNN的" Installation Guide "中,我們可以看到:
因?yàn)橄惹斑x擇了CUDA 9.0,所以GPU驅(qū)動需要R384及以上版本
安裝順序:Ubuntu GPU版本-->CUDA版本-->cudnn版本
---安裝Ubuntu GPU驅(qū)動---
$ sudo apt update?
$ sudo add-apt-repository ppa:graphics-drivers/ppa??
$ sudo apt update?
$ ubuntu-drivers devices?
輸入以下命令,安裝nvidia-384
$ sudo apt install nvidia-384
安裝完以后
$ reboot
如果reboot之后再也進(jìn)入不了桌面系統(tǒng)有决,恭喜你闸拿,可能這樣的方法對你不合適 = =
先不要慌 。书幕。新荤。我要遇到了同樣的問題,無限壞死中台汇。苛骨。。
接著往看下看苟呐。痒芝。。
---按照步驟reboot后牵素,無法login的解決方法---
??? 1.在你的用戶登錄界面按ctrl+alt+F1進(jìn)入tty模式 (ctrl+alt+F7可以返回桌面系統(tǒng))
??? 2.輸入你的賬戶名和密碼
依次運(yùn)行如下語句:
$ sudo apt-get purge nvidia-*????
$ sudo add-apt-repository ppa:graphics-drivers/ppa????
$ sudo apt-get update????
$ reboot??
卸載掉剛才安裝的所有驅(qū)動就可以重新登錄桌面系統(tǒng)了吼野,可以在測試幾個版本,如果出現(xiàn)同樣的問題两波,那就不是驅(qū)動版本的問題了瞳步,也有教程說Block內(nèi)部集顯驅(qū)動就可以,我試過還是不行腰奋,差點(diǎn)把Ubuntu格了重裝 = =
但是后來再YouTube上找到了合適的方法单起,要禁用BIOS系統(tǒng)UEFI的Secure boot,ASUS的臺式機(jī)非常不正常劣坊。嘀倒。。
禁用Secure boot之后,安裝非常順利测蘑,測試v384沒有問題
$ nvidia-smi
可用上述命令檢查是否安裝成功
卸載驅(qū)動,以我安裝的nvidia-384為例
$ sudo apt-get remove --purge nvidia-384
---安裝CUDA---
在先前的版本確認(rèn)中, 我選擇了CUDA Toolkit 9.0的版本,依次選擇我們需要的選項(xiàng).
在Base Installer中,點(diǎn)擊download下載.
下載完以后,命令行進(jìn)入下載路徑,運(yùn)行以下命令進(jìn)行安裝:
$ sudo sh?cuda_9.0.176_384.81_linux.run
配置環(huán)境變量
$ sudo nano ~/.bashrc
用戶目錄下 .bashrc 文件后面加入下面語句灌危,然后ctrl+o保存。ctrl+x退出
export? LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
然后用下面語句使環(huán)境變量生效
$ source ~/.bashrc
再用下面語句檢查配置情況
$ nvidia-smi?
卸載CUDA
---安裝cuDNN---
進(jìn)入https://developer.nvidia.com/cudnn
點(diǎn)擊"download cuDNN",他會要求你進(jìn)行注冊以及一系列的問卷調(diào)查,完成以后,用郵箱登錄.
因?yàn)槲覀兿惹鞍惭b了CUDA 9.0 ,所以這里我們選擇第二項(xiàng)中的" cuDNN v7.1.3 Library for Linux " 進(jìn)行下載.
下載完成的文件名:cudnn-9.0-linux-x64-v7.1.tgz
配置cuDNN
? $ tar -xzvf cudnn-8.0-linux-x64-v6.0.solitairetheme8
? $ 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 /usr/local/cuda/lib64/libcudnn*
cuDNN的卸載和安裝類似,只要把先前拷貝的文件刪除即可.
截止到這里CUDA安裝完畢.
---使用CUDA 和OpenCV編譯Darknet---
修改darknet/ 目錄下的Makefile文件
https://blog.csdn.net/dcrmg/article/details/78565350
(1) 將1~3行改為:
GPU=1
CUDNN=1
OPENCV=1
(2) 將23行左右的NVCC路徑改為以下代碼( 具體路徑根據(jù)自己的安裝版本/位置決定 ):
NVCC=/usr/local/cuda-9.0/bin/nvcc
(3) 將49行左右的ifeq ($(GPU), 1)內(nèi)容改為:
ifeq ($(GPU), 1)
COMMON+= -DGPU -I/usr/local/cuda/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-9.0/lib64 -lcuda -lcudart -lcublas -lcurand
endif
修改配置完畢后,保存
在darknet/ 目錄下運(yùn)行以下命令:
$ make -j4
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
效果很好