环境检查
https://zhuanlan.zhihu.com/p/136785542
以Ubuntu
为例,首先需要满足以下环境条件.
- CMake >= 3.8
- CUDA 10.0
- OpenCV >= 2.4
- cuDNN >= 7.0 for CUDA 10.0
- GPU with CC >= 3.0
- on Linux GCC or Clang
我使用的jetson nano最新的镜像默认应该已经装了这些。当前opencv默认版本4.1
jetson nano设置
1修改电源
打开Jetson Nano,切换为MAXIN模式(10w),同时使用ADC4A电源给予供电。注意将跳帽插上才能开启此供电模式。
2共享内存设置
自身内存4G ,共享内存给了5个g左右(刷机的时候初始化选择了最大默认给了1.2G,后来增加5个G)
如何设置参看
https://www.cnblogs.com/kekeoutlook/p/13512508.html
全流程安装
下载源码和测试权重
框架:
git clone https://github.com/AlexeyAB/darknet.git
权重:
https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT
第一处修改
https://cloud.tencent.com/developer/article/1624913
打开后根据需要修改GPU、CUDNN
等的值,GPU
为1的话需要安装cuda
.
GPU=1
CUDNN=
1的话需要安装CUDNN
.
CUDNN_HALF=0
仅支持带有Tensor Cores
的GPU如Titan V / Tesla V100 / DGX-2
或者之后的显卡.
OPENCV=
1的话,需要安装OpenCV
第二处修改
问题:找不到nvcc
克隆Darknet之后,以root(sudo)进行设置,手动修改makefile中 NVCC路径
设置
NVCC = /usr/local/cuda/bin/nvcc
您的NVCC应该与您在Makefile中指定的cuda库匹配
开始编译
修改完Makefile
之后,在终端中输入:
sudo make
将权重文件yolov4.weights拷贝至darknet目录下
将测试的图片放入data目录下,开始检测
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg
运行结果自动保存照片
图像分辨率 768*576
更多测试
图像分辨率640*424
5-2 视频的检测:
终端输入:
./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights data/test_video.mp4
检测的效果如图2所示:
性能
参考分析 https://cloud.tencent.com/developer/article/1624913
根据官方的文档的说明,新版本YOLO的 AP 和 FPS 分别提高了 10% 和 12%,从检测的结果可以看出,YOLO V4 在内存较小的嵌入式设备上能够很好的运行,而且YOLO V4相较于YOLO V3在检测的速度和精度上都有了一定的提升,对于小目标的检测效果有了进一步的提升。
对于Nano的4G内存,运行YOLO V3十分地吃力,通常到第二层就会出现死机的状况,但是对于YOLO V4,Jetson Nano却能够较为流畅的运行。
在Jetson Nano上运行YOLO V4进行目标的检测,输入的视频的分辨率大小为720*400,在检测视频目标的过程中,视频的平均处理速度值始终维持在0.9FPS左右,从检测的效果中也可以看出,对于近处的目标,识别度基本维持在0.8以上,而对于远处小目标的检测,识别度也能维持在0.2以上,个别目标的识别率甚至能达到0.8以上。YOLO V4无论在精度和速度上都较YOLO V3有了很大的提升,为在性能受限的嵌入式设备上部署检测程序提供了可能。
TensorRT YOLOv4 on TensorRT+tkDNN: https://github.com/ceccocats/tkDNN For YOLOv3 (-70% faster inference): Yolo is natively supported in DeepStream 4.0 read PDF. wang-xinyu/tensorrtx implemented yolov3-spp, yolov4, etc.
https://github.com/ceccocats/tkDNN
https://medium.com/@peaceful0907/nvidia-jetson-nano-with-yolov3-39325af72e4d
- Nano: YOLOv3 使用 darknet 未透過 python
320*320: fps~2.2
416*416: fps~1.4
608*608: fps~0.7 (load得很慢)
Memory 約剩餘300~500M之間 - Nano: YOLOv3-tiny 使用darknet 未透過 python
fps 約 9~11
Memory 約剩餘1.2G - Nano: YOLOv3 with TensorRT 透過python interface:
320*320: fps 約 3~4
416*416: fps 約 2~3
608*608: fps 約 1~2
Memory 約剩餘500~900M之間
https://cloud.tencent.com/developer/article/1624913
Jetson NANO 之 Yolo V4
根据官方的文档的说明,新版本YOLO的 AP 和 FPS 分别提高了 10% 和 12%,从检测的结果可以看出,YOLO V4 在内存较小的嵌入式设备上能够很好的运行,而且YOLO V4相较于YOLO V3在检测的速度和精度上都有了一定的提升,对于小目标的检测效果有了进一步的提升。
对于Nano的4G内存,运行YOLO V3十分地吃力,通常到第二层就会出现死机的状况,但是对于YOLO V4,Jetson Nano却能够较为流畅的运行。
在Jetson Nano上运行YOLO V4进行目标的检测,输入的视频的分辨率大小为720*400,在检测视频目标的过程中,视频的平均处理速度值始终维持在0.9FPS左右,从检测的效果中也可以看出,对于近处的目标,识别度基本维持在0.8以上,而对于远处小目标的检测,识别度也能维持在0.2以上,个别目标的识别率甚至能达到0.8以上。YOLO V4无论在精度和速度上都较YOLO V3有了很大的提升,为在性能受限的嵌入式设备上部署检测程序提供了可能。
https://blog.csdn.net/beckhans/article/details/89373939
Jetson Nano 使用yolov3-tiny及TensorRT加速,达到接近实时目标检测与识别
25fps
https://blog.csdn.net/weixin_43562948/article/details/104724461
Windows环境下使用VS2015对YOLOV4源码的两种编译方式并测试
F:yolo_maskcnnyoloyolov4darknet-master