遞進配置yolov3過程

2021-10-23 03:26:57 字數 2455 閱讀 8045

1、cpu版

git clone 

cd darknet

make

wget
直接下可能比較慢需要**,建議直接copy

提取碼:jnhn (永久有效)

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
2、gpu版(無opencv)修改makefile檔案

其實最基本的,改兩個地方就行

gpu=1

cudnn=1

其他的教程提到的nvcc common+那些,其實就是為了能找到路徑,可以看一下預設的路徑對不對,問題不大,編譯報錯了再回頭改也行。

這裡參考了yolov3-gpu配置執行

然後重新make一下

再執行./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

執行時間明顯縮短

一些常見報錯整理

(1)error:

ptxas /tmp/tmpxft_00001d0b_00000000-15_convolutional_kernels.compute_30.ptx, line 399; error   : call has wrong number of parameters

ptxas fatal : ptx assembly aborted due to errors

進入darknet目錄,編輯makefile,修改nvcc路徑。

(2)關於cudnn

建立軟鏈結(之前可能沒做)

cd /usr/local/cuda/lib64/

ls -l libcudnn* #看看都有哪些

sudo rm -rf libcudnn.so libcudnn.so.7.0 #刪除兩個符號鏈結;

sudo ln -s libcudnn.so.7.0.64 libcudnn.so.7.0 #根據自己的版本號修改

sudo ln -s libcudnn.so.7.0 libcudnn.so

error:include/darknet.h:16:23: fatal error: cudnn.h: 沒有那個檔案或目錄

#新增cudnn.h的標頭檔案

sudo cp cudnn.h /usr/include

error :/usr/bin/ld: 找不到 -lcudnnsudo cp libcudnn.so /usr/local/cuda-9.0/lib64

(3)找不到lcuda等庫檔案

#就是看看/usr/local/lib下有沒有缺的這些庫檔案,沒有的話就找到然後複製過去

locate lib***

sudo cp /usr/local/cuda-9.0/lib64/lib*** /usr/local/lib

sudo ldconfig

(3)cuda error: out of memory

darknet: ./src/cuda.c:36: check_error: assertion `0』 failed.

(跑tiny-weight沒有問題)

3、gpu版(有opencv)

參考測試opencv是否安裝成功

./darknet imtest data/eagle.jpg
檢視darknet的**結構

sudo apt install tree

tree -l 2

4、ros版

參考

存疑的一些地方

(1)makefile裡arch修改:根據顯示卡計算能力?看懂makefile

(2)cuda out of memory: 視訊記憶體gpu關係,引數

YOLOv3使用過程

系統 ubuntu18.04 gpu 1 如果使用gpu設定為1,cpu設定為0 cudnn 1 如果使用cudnn設定為1,否則為0 opencv 0 如果呼叫攝像頭,還需要設定opencv為1,否則為0 openmp 0 如果使用openmp設定為1,否則為0 debug 0 如果使用debug...

yolov3系列 零 yolov3詳解

目標檢測演算法與efficientdet講解 論 文 翻譯 yolov3主頁 yolo系列的目標檢測演算法可以說是目標檢測史上的巨集篇巨作,v3演算法是在v1 v2基礎上形成的,先看下 yolov1 yolov2 下圖為yolov3的網路結構 dbl darknetconv2d bn leaky 是...

yolov3的缺點 yolov3特點總結

p1,yolov3,簡單總結下比較特別的地方 1.bounding box 中心值x,y的 是通過乙個sigmoid 函式,來 在每乙個單元 cell 的相對位置。而不像普通那種 乙個相對於anchor的offset。然後bbox 損失是用的mse 一般都是用smooth l1 3.類別 沒有使用s...