数据集标注工具安装要求
- Windows或Linux
- 对于现代CUDA支持,CMake> = 3.8:https://cmake.org/download/
- CUDA 10.0:https://developer.nvidia.com/cuda-toolkit-archive(在Linux上执行安装后操作)
- OpenCV> = 2.4:使用您首选的包管理器(brew,apt),使用vcpkg从源代码构建或从OpenCV官方站点下载(在Windows上设置系统变量
OpenCV_DIR
=C:\opencv\build
- 其中是include
和x64
文件夹图像) - 对于CUDA 10.0,cuDNN> = 7.0 https://developer.nvidia.com/rdp/cudnn-archive(在Linux副本上
cudnn.h
,libcudnn.so
......如此处所述)https://docs.nvidia.com/deeplearning/sdk/cudnn-install /index.html#installlinux-tar上的Windows拷贝cudnn.h
,cudnn64_7.dll
,cudnn64_7.lib
这里desribed https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows) - CC> = 3.0的GPU:https://en.wikipedia.org/wiki/CUDA#GPUs_supported
- 在Linux GCC或Clang上,在Windows MSVC 2015/2017/2019上 https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community
在Windows上使用Cmake-GUI
以下IMAGE进行编译:配置 - >生成器的可选平台(设置:x64) - >完成 - >生成 - >打开项目 - > x64和发布 - >构建 - >构建解决方案
编译上的Linux通过使用命令make
(或可替代的方式,通过使用命令:cmake . && make
)
预先训练的模型
有不同cfg文件的权重文件(较小的大小 - >更快的速度和更低的准确性:
yolov3-openimages.cfg
(247 MB COCO Yolo v3) - 需要4 GB GPU-RAM:https://pjreddie.com/media/files/yolov3-openimages.weightsyolov3-spp.cfg
(240 MB COCO Yolo v3) - 需要4 GB GPU-RAM:https://pjreddie.com/media/files/yolov3-spp.weightsyolov3.cfg
(236 MB COCO Yolo v3) - 需要4 GB GPU-RAM:https://pjreddie.com/media/files/yolov3.weightsyolov3-tiny.cfg
(34 MB COCO Yolo v3 tiny) - 需要1 GB GPU-RAM:https: //pjreddie.com/media/files/yolov3-tiny.weightsyolov2.cfg
(194 MB COCO Yolo v2) - 需要4 GB GPU-RAM:https://pjreddie.com/media/files/yolov2.weightsyolo-voc.cfg
(194 MB VOC Yolo v2) - 需要4 GB GPU-RAM:http://pjreddie.com/media/files/yolo-voc.weightsyolov2-tiny.cfg
(43 MB COCO Yolo v2) - 需要1 GB GPU-RAM:https://pjreddie.com/media/files/yolov2-tiny.weightsyolov2-tiny-voc.cfg
(60 MB VOC Yolo v2) - 需要1 GB GPU-RAM:http://pjreddie.com/media/files/yolov2-tiny-voc.weightsyolo9000.cfg
(186 MB Yolo9000型号) - 需要4 GB GPU-RAM:http://pjreddie.com/media/files/yolo9000.weights
把它放在编译的附近:darknet.exe
您可以通过路径获取cfg文件: darknet/cfg/
Yolo v3在其他框架中
- TensorFlow:使用mystic123或jinyu121项目和TensorFlow-lite将
yolov3.weights
/cfg
文件转换为yolov3.ckpt
/pb/meta
: - Intel OpenVINO 2019 R1 :( Myriad X / USB Neural Compute Stick / Arria FPGA):阅读本手册
- OpenCV-dnn是CPU(x86 / ARM-Android)上非常快速的DNN实现,使用
yolov3.weights
/cfg
with:C ++示例,Python示例 - PyTorch> ONNX> CoreML> iOS如何将cfg / weights-files转换为pt-file:ultralytics / yolov3和iOS App
- YOLOv3的TensorRT(推理速度提高约 70%):DeepStream 4.0本身支持Yolo
- TVM - 将深度学习模型(Keras,MXNet,PyTorch,Tensorflow,CoreML,DarkNet)编译成各种硬件后端(CPU,GPU,FPGA和专用加速器)上的最小可部署模块:https://tvm.ai/about
数据集
- MS COCO:用于
./scripts/get_coco_dataset.sh
获得标记的MS COCO检测数据集 - OpenImages:
python ./scripts/get_openimages_dataset.py
用于标记列车检测数据集 - Pascal VOC:
python ./scripts/voc_label.py
用于标记Train / Test / Val检测数据集 - ILSVRC2012(ImageNet分类):使用
./scripts/get_imagenet_train.sh
(也imagenet_label.sh
用于标记有效集) - 德语/比利时/俄语/ LISA / MASTIF流量标志数据集用于检测 - 使用此解析器:https://github.com/angeligareta/Datasets2Darknet#detection-task
如何在命令行上使用
在Linux上使用./darknet
而不是darknet.exe
像这样:./darknet detector test ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights
在Linux上找到./darknet
根目录中的可执行文件,而在Windows上找到它在目录中\build\darknet\x64
- Yolo v3 COCO - 图片:
darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -thresh 0.25
- 对象的输出坐标:
darknet.exe detector test cfg/coco.data yolov3.cfg yolov3.weights -ext_output dog.jpg
- Yolo v3 COCO - 视频:
darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -ext_output test.mp4
- Yolo v3 COCO - WebCam 0:
darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -c 0
- 网络视频摄像的 Yolo v3 COCO - Smart WebCam:
darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights http://192.168.0.80:8080/video?dummy=param.mjpg
- Yolo v3 - 保存结果videofile res.avi:
darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights test.mp4 -out_filename res.avi
- Yolo v3 Tiny COCO - 视频:
darknet.exe detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights test.mp4
- 允许来自软件或Web浏览器
ip-address:8070
和8090的多个连接的JSON和MJPEG服务器:./darknet detector demo ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights test50.mp4 -json_port 8070 -mjpeg_port 8090 -ext_output
- Yolo v3 Tiny on GPU#1:
darknet.exe detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights -i 1 test.mp4
- 替代方法Yolo v3 COCO - 图像:
darknet.exe detect cfg/yolov3.cfg yolov3.weights -i 0 -thresh 0.25
- 在Amazon EC2上训练,使用以下网址查看mAP和损失图表:
http://ec2-35-160-228-91.us-west-2.compute.amazonaws.com:8090
在Chrome / Firefox中(Darknet应使用OpenCV编译):./darknet detector train cfg/coco.data yolov3.cfg darknet53.conv.74 -dont_show -mjpeg_port 8090 -map
- 186 MB Yolo9000 - 图片:
darknet.exe detector test cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights
- 如果您使用cpp api构建应用程序,请记住将data / 9k.tree和data / coco9k.map放在应用程序的同一文件夹下
- 要处理图像列表
data/train.txt
并将检测结果保存到result.json
文件使用:darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -ext_output -dont_show -out result.json < data/train.txt
- 处理图像列表
data/train.txt
并保存检测结果以result.txt
供使用:darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -dont_show -ext_output < data/train.txt > result.txt
- 伪标签 - 处理图像列表
data/new_train.txt
并以Yolo训练格式保存每个图像的检测结果作为标签<image_name>.txt
(这样可以增加训练数据量)使用:darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -thresh 0.25 -dont_show -save_labels < data/new_train.txt
- 计算锚点:
darknet.exe detector calc_anchors data/obj.data -num_of_clusters 9 -width 416 -height 416
- 要检查mAP @ IoU = 50的准确性:
darknet.exe detector map data/obj.data yolo-obj.cfg backup\yolo-obj_7000.weights
- 要检查mAP @ IoU = 75的准确性:
darknet.exe detector map data/obj.data yolo-obj.cfg backup\yolo-obj_7000.weights -iou_thresh 0.75
如何在Linux上编译
只是make
在darknet目录中。在make之前,您可以在Makefile
:link中设置这些选项
GPU=1
用CUDA构建以使用GPU加速(CUDA应该在/usr/local/cuda
)CUDNN=1
使用cuDNN v5-v7构建以使用GPU加速训练(cuDNN应该在/usr/local/cudnn
)CUDNN_HALF=1
构建Tensor核心(在Titan V / Tesla V100 / DGX-2及更高版本上)加速检测3x,训练2xOPENCV=1
使用OpenCV 4.x / 3.x / 2.4.x构建 - 允许检测来自网络摄像机或网络摄像头的视频文件和视频流DEBUG=1
可以调试Yolo的版本OPENMP=1
使用OpenMP支持构建,通过使用多核CPU来加速YoloLIBSO=1
构建使用此库的库darknet.so
和二进制可运行文件uselib
。或者您可以尝试运行LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./uselib test.mp4
如何从您自己的代码中使用此SO库 - 您可以查看C ++示例:https://github.com/AlexeyAB/darknet/blob/master/src/yolo_console_dll.cpp 或者使用这样的方式:LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./uselib data/coco.names cfg/yolov3.cfg yolov3.weights test.mp4
ZED_CAMERA=1
建立一个支持ZED-3D-camera的库(应该安装ZED SDK),然后运行LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./uselib data/coco.names cfg/yolov3.cfg yolov3.weights zed_camera
要在Linux上运行Darknet,请使用本文中的示例,./darknet
而不是darknet.exe
使用,即使用此命令:./darknet detector test ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights