pjreddie / darknet

Convolutional Neural Networks
http://pjreddie.com/darknet/
Other
25.82k stars 21.33k forks source link

yolo v3 no detection with cuda=1 cudnn=1 and opencv=1 #1435

Closed yujiny97 closed 5 years ago

yujiny97 commented 5 years ago
  90 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   91 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   92 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   93 conv    255  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 255  0.177 BFLOPs
   94 yolo
   95 route  91
   96 conv    128  1 x 1 / 1    26 x  26 x 256   ->    26 x  26 x 128  0.044 BFLOPs
   97 upsample            2x    26 x  26 x 128   ->    52 x  52 x 128
   98 route  97 36
   99 conv    128  1 x 1 / 1    52 x  52 x 384   ->    52 x  52 x 128  0.266 BFLOPs
  100 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
  101 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
  102 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
  103 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
  104 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
  105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs
  106 yolo
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 0.027075 seconds.
init done 
opengl support available 

my yolo stops on this process.. i don no whats the problem

my makefile is like this


 GPU=1
CUDNN=1
OPENCV=1
OPENMP=0
DEBUG=0

ARCH= -gencode arch=compute_30,code=sm_30 \
      -gencode arch=compute_35,code=sm_35 \
      -gencode arch=compute_50,code=[sm_50,compute_50] \
      -gencode arch=compute_52,code=[sm_52,compute_52]\
      -gencode arch=compute_61,code=[sm_61,compute_61]\
      -gencode arch=compute_70,code=[sm_70,compute_70]
#      -gencode arch=compute_20,code=[sm_20,sm_21] \ This one is deprecated?

and this is my nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.79       Driver Version: 410.79       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2070    Off  | 00000000:01:00.0  On |                  N/A |
|  0%   39C    P8     4W / 175W |    678MiB /  7949MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0       959      G   /usr/lib/xorg/Xorg                           566MiB |
|    0      2421      G   compiz                                       111MiB |
+-----------------------------------------------------------------------------+

when i try to execute this command under ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

it doesn't make any bounding box.. and i also tried -thresh 0.01 but it stops at at opengl support available and nothing is happend.. pls help me T.T

LukeAI commented 5 years ago

Does detection work if you build with GPU=0, CUDNN=0? What about with GPU=1, CUDNN=0

abhishekbaghel commented 5 years ago

Does detection work if you build with GPU=0, CUDNN=0? What about with GPU=1, CUDNN=0

I am having the same issue. Objects are not being detected using GPU = 1, CUDNN=1.Neither are they shown in shown in terminal ,nor bounding boxes are drawn around the objects in the predictions.jpg image. The program is running perfectly fine when compiled with GPU = 1 and CUDNN = 0 and is showing bounding boxes in predictions.jpg. I don't have openCV so I've compiled using OPENCV=0

LukeAI commented 5 years ago

@abhishekbaghel have you verified your CuDNN install as described here? https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#verify

abhishekbaghel commented 5 years ago

@LukeAI Yes I verified it right now.. CuDNN seems to be fine.. still no predictions.

Just realised YOLOv3-tiny is working fine. Yolov3-spp is working too.. with similar fps and accuracy.

abhishekbaghel commented 5 years ago

Looks like an old bug.. https://github.com/pjreddie/darknet/issues/1220#issue-375943911

yujiny97 commented 5 years ago

@LukeAI @abhishekbaghel I tried it with GPU=1 CUDNN=0 OPENCV=1 and others =0 and it shows darknet: ./src/cuda.c:36: check_error: Assertion 0' failed. Aborted (core dumped) like this. what is for OPENMP?? do this need any download?? I also tried yolov3-tiny but it doesn't work as well

abhishekbaghel commented 5 years ago

@numuhwana try the following mandatory post installation steps of CUDA before compiling darknet https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions See if it works.

yujiny97 commented 5 years ago

@abhishekbaghel thank you so much for helping me! i got the solution, the problem was that version of cuda was not matched with GPU. my cuda's version was 9.0, so it didn't fit in RTX 2070.

xvolica commented 5 years ago

@abhishekbaghel thank you so much for helping me! i got the solution, the problem was that version of cuda was not matched with GPU. my cuda's version was 9.0, so it didn't fit in RTX 2070.

I meet the same problem. Using Cuda 10.0 CUDNN 7.4 and set CUDNN=0 in makefile works fine

yujiny97 commented 5 years ago

@xvolica I changed makefile a bit. did you add -gencode arch=compute_75,code=[sm_75,compute_75] in the makefile for ARCH? if this doesn't work just try

width=416
height=416 

in yolov3.cfg file.

for CUDNN check if cudnn.h in the /usr/local/cuda/include and check libcudnn* in /usr/local/cuda/lib64

Bncer commented 5 years ago

Guys, I have almost similar issue. CUDA - 9.0 cuDNN - 7.0.5 (I couldn't verify mnistCUDNN) I checked here - link Nvidia - Geforce 840m I tested on my web cam (GPU=1, CUDNN=0, OPENCV=1) it detects objects, but speed is very slow(5 fps) Since I think CUDNN installed (GPU=1, CUDNN=1, OPENCV=1) doesn't show anything, speed slower.

Do you have any idea how to compile GPU, CUDNN, OPENCV?

Bncer commented 5 years ago

@LukeAI @abhishekbaghel @numuhwana Information in nvidia-smi https://github.com/pjreddie/darknet/issues/1435#issue-411028604 shows usage of GPU. In his case 0 2421 G compiz 111MiB Am I right?

David3310273 commented 5 years ago

I have set all variables to zero in my Makefile, but I still can't get detections on the picture, my Makefile is like that: GPU=0 CUDNN=0 OPENCV=0 OPENMP=0 DEBUG=0

and running command as follow: ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

my project directory is like this:

bug

after running that command under this directory, there is only predictions.jpg added in this directory, and no detections on it.

Can anyone tell me what I do wrong?

ChanChiChoi commented 5 years ago

firstly, i run the commands from https://pjreddie.com/darknet/yolo/

git clone https://github.com/pjreddie/darknet
cd darknet
make

then, if i use yolov3,run:

CUDA_VISIBLE_DEVICES='7' ./darknet detect cfg/yolov3.cfg  yolov3.weights data/dog.jpg

image there is nothing, even i add "-thresh 0.03 ". then, i donot change anything, use yolov2:

CUDA_VISIBLE_DEVICES='7' ./darknet detect cfg/yolov2.cfg  yolov2.weights data/dog.jpg

image it work! also, follow the idea

  • use setting "GPU=1 CUDNN=0"
  • make clean && make

now, yolov3 work.

jxmelody commented 5 years ago

@abhishekbaghel thank you so much for helping me! i got the solution, the problem was that version of cuda was not matched with GPU. my cuda's version was 9.0, so it didn't fit in RTX 2070.

I meet the same problem. Using Cuda 10.0 CUDNN 7.4 and set CUDNN=0 in makefile works fine

Upgrade to cuda10 and problem solved! Thank you, you saved my time~

long123long commented 5 years ago

I have set all variables to zero in my Makefile, but I still can't get detections on the picture, my Makefile is like that: GPU=0 CUDNN=0 OPENCV=0 OPENMP=0 DEBUG=0

and running command as follow: ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

my project directory is like this:

bug

after running that command under this directory, there is only predictions.jpg added in this directory, and no detections on it.

Can anyone tell me what I do wrong? maybe you should make first