AlexeyAB / darknet
forked from pjreddie/darknet
Join GitHub today
GitHub is home to over 40 million developers working together to host and
review code, manage projects, and build software together.
Sign up
Dismiss
Windows and Linux version of Darknet Yolo v3 & v2 Neural Networks for object detection (Tensor Cores are used)
http://pjreddie.com/darknet/
# dnn # deep-learning # deep-neural-networks # deep-learning-tutorial # object-detection # computer-vision # neural-network
1,390 commits
1 branch
4 releases
39 contributors
View license
Branch:
master
New pull request
This branch is 1063 commits ahead, 109 commits behind pjreddie:master.
AlexeyAB
Update Readme.md
.circleci
3rdparty
build/darknet
cfg
Moved all OpenCV functions to the image_opencv.cpp/h
x64 only
Added [sam] layer
Fixed yolo_cpp_dll.vcxproj
Find File
Clone or download
Pull request
Compare
Latest commit 4c315ea 13 days ago
5 months ago
5 months ago
19 days ago
2 months ago
cmake/Modules
upgrade FindCUDNN module to better deal with dlls and targets
data
include
scripts
src
.gitignore
.travis.yml
Added yolov3-openimages.cfg and SELU activation
Added assisted_excitation_forward for training on CPU
Minor output fixes
Compile fix
restore shared lib as default
fixes for modern clang on linux
CMakeLists.txt
restrict the opencv module selection to the only problematic configur…
DarknetConfig.cmake.in
enable darknet as a library also when only MSVC build tools are insta…
LICENSE
Makefile
README.md
appveyor.yml
build.ps1
build.sh
darknet.py
darknet_video.py
image_yolov2.sh
image_yolov3.sh
Update LICENSE
Compile fix
Update Readme.md
option to build project using cpp compiler if c not working/available
option to build project using cpp compiler if c not working/available
option to build project using cpp compiler if c not working/available
Added ability to use letter_box resizing in darknet.py sample
Another minor fix
move Stb lib to 3rdparty folder
move Stb lib to 3rdparty folder
json_mjpeg_streams.sh
move Stb lib to 3rdparty folder
net_cam_v3.sh
move Stb lib to 3rdparty folder
21 days ago
10 months ago
14 days ago
2 months ago
14 days ago
21 days ago
22 days ago
20 days ago
23 days ago
3 years ago
19 days ago
13 days ago
28 days ago
28 days ago
28 days ago
2 months ago
7 months ago
5 months ago
5 months ago
5 months ago
5 months ago
video_v2.sh
video_yolov3.sh
README.md
move Stb lib to 3rdparty folder
move Stb lib to 3rdparty folder
5 months ago
5 months ago
Yolo-v3 and Yolo-v2 for Windows and Linux
(neural network for object detection) - Tensor Cores can be used on Linux and Windows
More details: http://pjreddie.com/darknet/yolo/
buildbuild passing
passing
buildbuild passing
passing contributors
contributors 3939 license
license Unlicense
Unlicense
Requirements (and how to install dependecies)
Pre-trained models
Explanations in issues
Yolo v3 in other frameworks (TensorRT, TensorFlow, PyTorch, OpenVINO, OpenCV-dnn,...)
Datasets
0. Improvements in this repository
1. How to use
2. How to compile on Linux
3. How to compile on Windows
Using vcpkg
Legacy way
4. How to train (Pascal VOC Data)
5. How to train with multi-GPU:
6. How to train (to detect your custom objects)
7. How to train tiny-yolo (to detect your custom objects)
8. When should I stop training
9. How to calculate mAP on PascalVOC 2007
10. How to improve object detection
11. How to mark bounded boxes of objects and create annotation files
12. How to use Yolo as DLL and SO libraries
mAP@0.5 (AP50) https://pjreddie.com/media/files/papers/YOLOv3.pdf
YOLOv3-spp better than YOLOv3 - mAP = 60.6%, FPS = 20: https://pjreddie.com/darknet/yolo/
Yolo v3 source chart for the RetinaNet on MS COCO got from Table 1 (e): https://arxiv.org/pdf/1708.02002.pdf
Yolo v2 on Pascal VOC 2007: https://hsto.org/files/a24/21e/068/a2421e0689fb43f08584de9d44c2215f.jpg
Yolo v2 on Pascal VOC 2012 (comp4): https://hsto.org/files/3a6/fdf/b53/3a6fdfb533f34cee9b52bdd9bb0b19d9.jpg
Requirements
Windows or Linux
CMake >= 3.8 for modern CUDA support: https://cmake.org/download/
CUDA 10.0: https://developer.nvidia.com/cuda-toolkit-archive (on Linux do Post-installation Actions)
OpenCV >= 2.4: use your preferred package manager (brew, apt), build from source using vcpkg or download from
OpenCV official site (on Windows set system variable OpenCV_DIR = C:\opencv\build - where are the include and
x64 folders image)
cuDNN >= 7.0 for CUDA 10.0 https://developer.nvidia.com/rdp/cudnn-archive (on Linux copy cudnn.h , libcudnn.so ...
as desribed here https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installlinux-tar , on Windows copy
cudnn.h , cudnn64_7.dll , cudnn64_7.lib as desribed here https://docs.nvidia.com/deeplearning/sdk/cudnn-
install/index.html#installwindows )
GPU with CC >= 3.0: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
on Linux GCC or Clang, on Windows MSVC 2015/2017/2019 https://visualstudio.microsoft.com/thank-you-
downloading-visual-studio/?sku=Community
Compiling on Windows by using Cmake-GUI as on this IMAGE: Configure -> Optional platform for generator (Set: x64) ->
Finish -> Generate -> Open Project -> x64 & Release -> Build -> Build solution
Compiling on Linux by using command make (or alternative way by using command: cmake . && make )
Pre-trained models
There are weights-file for different cfg-files (smaller size -> faster speed & lower accuracy:
yolov3-openimages.cfg (247 MB COCO Yolo v3) - requires 4 GB GPU-RAM: https://pjreddie.com/media/files/yolov3-
openimages.weights
yolov3-spp.cfg (240 MB COCO Yolo v3) - requires 4 GB GPU-RAM: https://pjreddie.com/media/files/yolov3-
spp.weights
yolov3.cfg (236 MB COCO Yolo v3) - requires 4 GB GPU-RAM: https://pjreddie.com/media/files/yolov3.weights
yolov3-tiny.cfg (34 MB COCO Yolo v3 tiny) - requires 1 GB GPU-RAM: https://pjreddie.com/media/files/yolov3-
tiny.weights
yolov2.cfg (194 MB COCO Yolo v2) - requires 4 GB GPU-RAM: https://pjreddie.com/media/files/yolov2.weights
yolo-voc.cfg (194 MB VOC Yolo v2) - requires 4 GB GPU-RAM: http://pjreddie.com/media/files/yolo-voc.weights
yolov2-tiny.cfg (43 MB COCO Yolo v2) - requires 1 GB GPU-RAM: https://pjreddie.com/media/files/yolov2-
tiny.weights
yolov2-tiny-voc.cfg (60 MB VOC Yolo v2) - requires 1 GB GPU-RAM: http://pjreddie.com/media/files/yolov2-tiny-
voc.weights
yolo9000.cfg (186 MB Yolo9000-model) - requires 4 GB GPU-RAM: http://pjreddie.com/media/files/yolo9000.weights
Put it near compiled: darknet.exe
You can get cfg-files by path: darknet/cfg/
Yolo v3 in other frameworks
TensorFlow: convert yolov3.weights / cfg files to yolov3.ckpt / pb/meta : by using mystic123 or jinyu121 projects, and
TensorFlow-lite
Intel OpenVINO 2019 R1: (Myriad X / USB Neural Compute Stick / Arria FPGA): read this manual
OpenCV-dnn is a very fast DNN implementation on CPU (x86/ARM-Android), use yolov3.weights / cfg with: C++
example, Python example
PyTorch > ONNX > CoreML > iOS how to convert cfg/weights-files to pt-file: ultralytics/yolov3 and iOS App
TensorRT for YOLOv3 (-70% faster inference): Yolo is natively supported in DeepStream 4.0
TVM - compilation of deep learning models (Keras, MXNet, PyTorch, Tensorflow, CoreML, DarkNet) into minimum
deployable modules on diverse hardware backends (CPUs, GPUs, FPGA, and specialized accelerators):
https://tvm.ai/about
Datasets
MS COCO: use ./scripts/get_coco_dataset.sh to get labeled MS COCO detection dataset
OpenImages: use python ./scripts/get_openimages_dataset.py for labeling train detection dataset
Pascal VOC: use python ./scripts/voc_label.py for labeling Train/Test/Val detection datasets
ILSVRC2012 (ImageNet classification): use ./scripts/get_imagenet_train.sh (also imagenet_label.sh for labeling valid
set)
German/Belgium/Russian/LISA/MASTIF Traffic Sign Datasets for Detection - use this parsers:
https://github.com/angeligareta/Datasets2Darknet#detection-task
List of other datasets: https://github.com/AlexeyAB/darknet/tree/master/scripts#datasets
Examples of results
Others: https://www.youtube.com/user/pjreddie/videos