Darknet is an open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation.
For more information see the Darknet project website.
This code is prepared for CUDNN 5. If you want to use CUDNN 6 - change cudnnSetConvolution2dDescriptor
to cudnnSetConvolution2dDescriptor_v4
Input 4K video: Download input video
Camera: Samsung S7
YOLO COCO
YOLO VOC
Tiny YOLO VOC
YOLO 9000
Input 4K video: Download input video
Camera: Samsung S7
YOLO COCO
YOLO VOC
Tiny YOLO VOC
YOLO 9000
Input 4K video: Download input video
Camera: Samsung S7
YOLO COCO
YOLO VOC
Tiny YOLO VOC
YOLO 9000
Try it yourself:
- Build darknet
- Download weights
- Run webcam demos:
./webcam-coco.sh
./webcam-tiny-yolo.sh
./webcam-voc.sh
./webcam-yolo9000.sh
Edit Makefile
to enable GPU, CUDNN and OpenCV:
GPU=1
CUDNN=1
OPENCV=1
DEBUG=0
Choose your CUDA architecture, example for GTX980M: (you can check it here CUDA Compute Capability)
ARCH= -gencode arch=compute_52,code=[sm_52,compute_52]
Run make
and you are ready!
All weights are available at Darknet project website.
cd weights
wget https://pjreddie.com/media/files/yolo-voc.weights
wget -O yolo-coco.weights https://pjreddie.com/media/files/yolo.weights
wget https://pjreddie.com/media/files/tiny-yolo-voc.weights
wget https://pjreddie.com/media/files/yolo9000.weights
layer | filters | size | input | output | |
---|---|---|---|---|---|
0 | conv | 32 | 3 x 3 / 1 | 608 x 608 x 3 | 608 x 608 x 32 |
1 | max | 2 x 2 / 2 | 608 x 608 x 32 | 304 x 304 x 32 | |
2 | conv | 64 | 3 x 3 / 1 | 304 x 304 x 32 | 304 x 304 x 64 |
3 | max | 2 x 2 / 2 | 304 x 304 x 64 | 152 x 152 x 64 | |
4 | conv | 128 | 3 x 3 / 1 | 152 x 152 x 64 | 152 x 152 x 128 |
5 | conv | 64 | 1 x 1 / 1 | 152 x 152 x 128 | 152 x 152 x 64 |
6 | conv | 128 | 3 x 3 / 1 | 152 x 152 x 64 | 152 x 152 x 128 |
7 | max | 2 x 2 / 2 | 152 x 152 x 128 | 76 x 76 x 128 | |
8 | conv | 256 | 3 x 3 / 1 | 76 x 76 x 128 | 76 x 76 x 256 |
9 | conv | 128 | 1 x 1 / 1 | 76 x 76 x 256 | 76 x 76 x 128 |
10 | conv | 256 | 3 x 3 / 1 | 76 x 76 x 128 | 76 x 76 x 256 |
11 | max | 2 x 2 / 2 | 76 x 76 x 256 | 38 x 38 x 256 | |
12 | conv | 512 | 3 x 3 / 1 | 38 x 38 x 256 | 38 x 38 x 512 |
13 | conv | 256 | 1 x 1 / 1 | 38 x 38 x 512 | 38 x 38 x 256 |
14 | conv | 512 | 3 x 3 / 1 | 38 x 38 x 256 | 38 x 38 x 512 |
15 | conv | 256 | 1 x 1 / 1 | 38 x 38 x 512 | 38 x 38 x 256 |
16 | conv | 512 | 3 x 3 / 1 | 38 x 38 x 256 | 38 x 38 x 512 |
17 | max | 2 x 2 / 2 | 38 x 38 x 512 | 19 x 19 x 512 | |
18 | conv | 1024 | 3 x 3 / 1 | 19 x 19 x 512 | 19 x 19 x1024 |
19 | conv | 512 | 1 x 1 / 1 | 19 x 19 x1024 | 19 x 19 x 512 |
20 | conv | 1024 | 3 x 3 / 1 | 19 x 19 x 512 | 19 x 19 x1024 |
21 | conv | 512 | 1 x 1 / 1 | 19 x 19 x1024 | 19 x 19 x 512 |
22 | conv | 1024 | 3 x 3 / 1 | 19 x 19 x 512 | 19 x 19 x1024 |
23 | conv | 1024 | 3 x 3 / 1 | 19 x 19 x1024 | 19 x 19 x1024 |
24 | conv | 1024 | 3 x 3 / 1 | 19 x 19 x1024 | 19 x 19 x1024 |
25 | route | 16 | |||
26 | conv | 64 | 1 x 1 / 1 | 38 x 38 x 512 | 38 x 38 x 64 |
27 | reorg | / 2 | 38 x 38 x 64 | 19 x 19 x 256 | |
28 | route | 27 24 | |||
29 | conv | 1024 | 3 x 3 / 1 | 19 x 19 x1280 | 19 x 19 x1024 |
30 | conv | 425 | 1 x 1 / 1 | 19 x 19 x1024 | 19 x 19 x 425 |
31 | detection |
layer | filters | size | input | output | |
---|---|---|---|---|---|
0 | conv | 32 | 3 x 3 / 1 | 416 x 416 x 3 | 416 x 416 x 32 |
1 | max | 2 x 2 / 2 | 416 x 416 x 32 | 208 x 208 x 32 | |
2 | conv | 64 | 3 x 3 / 1 | 208 x 208 x 32 | 208 x 208 x 64 |
3 | max | 2 x 2 / 2 | 208 x 208 x 64 | 104 x 104 x 64 | |
4 | conv | 128 | 3 x 3 / 1 | 104 x 104 x 64 | 104 x 104 x 128 |
5 | conv | 64 | 1 x 1 / 1 | 104 x 104 x 128 | 104 x 104 x 64 |
6 | conv | 128 | 3 x 3 / 1 | 104 x 104 x 64 | 104 x 104 x 128 |
7 | max | 2 x 2 / 2 | 104 x 104 x 128 | 52 x 52 x 128 | |
8 | conv | 256 | 3 x 3 / 1 | 52 x 52 x 128 | 52 x 52 x 256 |
9 | conv | 128 | 1 x 1 / 1 | 52 x 52 x 256 | 52 x 52 x 128 |
10 | conv | 256 | 3 x 3 / 1 | 52 x 52 x 128 | 52 x 52 x 256 |
11 | max | 2 x 2 / 2 | 52 x 52 x 256 | 26 x 26 x 256 | |
12 | conv | 512 | 3 x 3 / 1 | 26 x 26 x 256 | 26 x 26 x 512 |
13 | conv | 256 | 1 x 1 / 1 | 26 x 26 x 512 | 26 x 26 x 256 |
14 | conv | 512 | 3 x 3 / 1 | 26 x 26 x 256 | 26 x 26 x 512 |
15 | conv | 256 | 1 x 1 / 1 | 26 x 26 x 512 | 26 x 26 x 256 |
16 | conv | 512 | 3 x 3 / 1 | 26 x 26 x 256 | 26 x 26 x 512 |
17 | max | 2 x 2 / 2 | 26 x 26 x 512 | 13 x 13 x 512 | |
18 | conv | 1024 | 3 x 3 / 1 | 13 x 13 x 512 | 13 x 13 x1024 |
19 | conv | 512 | 1 x 1 / 1 | 13 x 13 x1024 | 13 x 13 x 512 |
20 | conv | 1024 | 3 x 3 / 1 | 13 x 13 x 512 | 13 x 13 x1024 |
21 | conv | 512 | 1 x 1 / 1 | 13 x 13 x1024 | 13 x 13 x 512 |
22 | conv | 1024 | 3 x 3 / 1 | 13 x 13 x 512 | 13 x 13 x1024 |
23 | conv | 1024 | 3 x 3 / 1 | 13 x 13 x1024 | 13 x 13 x1024 |
24 | conv | 1024 | 3 x 3 / 1 | 13 x 13 x1024 | 13 x 13 x1024 |
25 | route | 16 | |||
26 | conv | 64 | 1 x 1 / 1 | 26 x 26 x 512 | 26 x 26 x 64 |
27 | reorg | / 2 | 26 x 26 x 64 | 13 x 13 x 256 | |
28 | route | 27 24 | |||
29 | conv | 1024 | 3 x 3 / 1 | 13 x 13 x1280 | 13 x 13 x1024 |
30 | conv | 125 | 1 x 1 / 1 | 13 x 13 x1024 | 13 x 13 x 125 |
31 | detection |
layer | filters | size | input | output | |
---|---|---|---|---|---|
0 | conv | 16 | 3 x 3 / 1 | 416 x 416 x 3 | 416 x 416 x 16 |
1 | max | 2 x 2 / 2 | 416 x 416 x 16 | 208 x 208 x 16 | |
2 | conv | 32 | 3 x 3 / 1 | 208 x 208 x 16 | 208 x 208 x 32 |
3 | max | 2 x 2 / 2 | 208 x 208 x 32 | 104 x 104 x 32 | |
4 | conv | 64 | 3 x 3 / 1 | 104 x 104 x 32 | 104 x 104 x 64 |
5 | max | 2 x 2 / 2 | 104 x 104 x 64 | 52 x 52 x 64 | |
6 | conv | 128 | 3 x 3 / 1 | 52 x 52 x 64 | 52 x 52 x 128 |
7 | max | 2 x 2 / 2 | 52 x 52 x 128 | 26 x 26 x 128 | |
8 | conv | 256 | 3 x 3 / 1 | 26 x 26 x 128 | 26 x 26 x 256 |
9 | max | 2 x 2 / 2 | 26 x 26 x 256 | 13 x 13 x 256 | |
10 | conv | 512 | 3 x 3 / 1 | 13 x 13 x 256 | 13 x 13 x 512 |
11 | max | 2 x 2 / 1 | 13 x 13 x 512 | 13 x 13 x 512 | |
12 | conv | 1024 | 3 x 3 / 1 | 13 x 13 x 512 | 13 x 13 x1024 |
13 | conv | 1024 | 3 x 3 / 1 | 13 x 13 x1024 | 13 x 13 x1024 |
14 | conv | 125 | 1 x 1 / 1 | 13 x 13 x1024 | 13 x 13 x 125 |
15 | detection |
layer | filters | size | input | output | |
---|---|---|---|---|---|
0 | conv | 32 | 3 x 3 / 1 | 544 x 544 x 3 | 544 x 544 x 32 |
1 | max | 2 x 2 / 2 | 544 x 544 x 32 | 272 x 272 x 32 | |
2 | conv | 64 | 3 x 3 / 1 | 272 x 272 x 32 | 272 x 272 x 64 |
3 | max | 2 x 2 / 2 | 272 x 272 x 64 | 136 x 136 x 64 | |
4 | conv | 128 | 3 x 3 / 1 | 136 x 136 x 64 | 136 x 136 x 128 |
5 | conv | 64 | 1 x 1 / 1 | 136 x 136 x 128 | 136 x 136 x 64 |
6 | conv | 128 | 3 x 3 / 1 | 136 x 136 x 64 | 136 x 136 x 128 |
7 | max | 2 x 2 / 2 | 136 x 136 x 128 | 68 x 68 x 128 | |
8 | conv | 256 | 3 x 3 / 1 | 68 x 68 x 128 | 68 x 68 x 256 |
9 | conv | 128 | 1 x 1 / 1 | 68 x 68 x 256 | 68 x 68 x 128 |
10 | conv | 256 | 3 x 3 / 1 | 68 x 68 x 128 | 68 x 68 x 256 |
11 | max | 2 x 2 / 2 | 68 x 68 x 256 | 34 x 34 x 256 | |
12 | conv | 512 | 3 x 3 / 1 | 34 x 34 x 256 | 34 x 34 x 512 |
13 | conv | 256 | 1 x 1 / 1 | 34 x 34 x 512 | 34 x 34 x 256 |
14 | conv | 512 | 3 x 3 / 1 | 34 x 34 x 256 | 34 x 34 x 512 |
15 | conv | 256 | 1 x 1 / 1 | 34 x 34 x 512 | 34 x 34 x 256 |
16 | conv | 512 | 3 x 3 / 1 | 34 x 34 x 256 | 34 x 34 x 512 |
17 | max | 2 x 2 / 2 | 34 x 34 x 512 | 17 x 17 x 512 | |
18 | conv | 1024 | 3 x 3 / 1 | 17 x 17 x 512 | 17 x 17 x1024 |
19 | conv | 512 | 1 x 1 / 1 | 17 x 17 x1024 | 17 x 17 x 512 |
20 | conv | 1024 | 3 x 3 / 1 | 17 x 17 x 512 | 17 x 17 x1024 |
21 | conv | 512 | 1 x 1 / 1 | 17 x 17 x1024 | 17 x 17 x 512 |
22 | conv | 1024 | 3 x 3 / 1 | 17 x 17 x 512 | 17 x 17 x1024 |
23 | conv | 28269 | 1 x 1 / 1 | 17 x 17 x1024 | 17 x 17 x28269 |
24 | detection |