首页 >> 大全

YOLOv3:Darknet代码解析(一)安装Darknet

2023-10-21 大全 24 作者:考证青年

背景:源码地址

网站地址:

目的:安装并运行

相关文章:

:代码解析(一)安装

:代码解析(二)代码初步

:代码解析(三)卷积操作

:代码解析(四)结构更改与训练

:代码解析(五)权重与特征存储

:代码解析(六)简化的程序与卷积拆分

目录

1.安装

1.1 下载与make

1.1.1 知识:make指令

1.2 验证安装完成

1.3 运用GUDA

1.3.1 知识:-smi指令

1.4 运用

2. 实时的目标检测

2.1 关于

2.2 安装与运行

2.2.3 多图像处理

2.2.4 更改检测阈值

2.3 Tiny

2.3.1 下载权重

2.3.2 运行与测试

2.4 训练模型

1.安装 1.1 下载与make

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

系统会出现下面这些输出:

mkdir -p obj
gcc -I/usr/local/cuda/include/  -Wall -Wfatal-errors  -Ofast....
gcc -I/usr/local/cuda/include/  -Wall -Wfatal-errors  -Ofast....
gcc -I/usr/local/cuda/include/  -Wall -Wfatal-errors  -Ofast....
.....
gcc -I/usr/local/cuda/include/  -Wall -Wfatal-errors  -Ofast -lm....

1.1.1 知识:make指令

_YOLOv3:Darknet代码解析(一)安装Darknet_YOLOv3:Darknet代码解析(一)安装Darknet

无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make 。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。

而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。

编译:把高级语言所书写的代码转换成机器可识别的指令,此时还不能够被执行,编译器通过检查高级语言的语法,函数和变量的声明是否正确!如果正确则产生中间目标文件(目标文件在Liunx中默认后缀为“.o”)

链接:将多.o 文件,或者.o 文件和库文件链接成为可被操作系统执行的可执行程序

静态库:又称为文档文件( File) 。它是多个.o文件的集合。Linux中静态库文件的后缀为“.a”

共享库:也是多个.o 文件的集合,但是这些.o 文件时有编译器按照一种特殊的方式生成(共享库已经具备了可执行条件)

1.2 验证安装完成

输入 ./

系统会输出 usage: ./

下面1.3与1.4为可选项。1.3为运用GUDA进行GPU加速,1.4为运用

1.3 运用GUDA

在中把第一行改为 GPU=1,然后make

通过输入-smi指令可以查看显卡使用情况。

然后可以选择 i 选择使用的显卡。例如:

./darknet -i 1 imagenet test cfg/alexnet.cfg alexnet.weights

也可使用nogpu指令不使用GPU

./darknet -nogpu imagenet test cfg/alexnet.cfg alexnet.weights

1.3.1 知识:-smi指令

指令中间连着的不加空格。

第一栏的Fan:风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速不是实际转速。有的设备不会返回转速,因为它不依赖风扇冷却。

第二栏的Temp:是温度。

第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。

第四栏下方的Pwr:是能耗,上方的-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。

第五栏的Bus-Id是涉及GPU总线的东西,:bus:.

第六栏的Disp.A是 ,表示GPU的显示是否初始化。

第五第六栏下方的 Usage是显存使用率。

第七栏是浮动的GPU利用率。

第八栏上方是关于ECC的东西。

第八栏下方 M是计算模式。

1.4 运用

通常模式下,用.h用于图片加载。如果想用更多格式的图片加载,可以使用。需要在中把第二行改为=1,然后make。

可以直接输入下列指令验证。

./darknet imtest data/eagle.jpg

输出为一个鹰的图片代表使用成功。

2. 实时的目标检测 2.1 关于

YOLOv3:Darknet代码解析(一)安装Darknet_YOLOv3:Darknet代码解析(一)安装Darknet_

非常快速与准确,在IoU设为0.5时测定mAP,相比Focal Loss有4x的速度。并且,在速度与准确率之间时,不用重新训练模型。比R-CNN快1000倍,比-RCNN快100倍。

YOLOv3:Darknet代码解析(一)安装Darknet__YOLOv3:Darknet代码解析(一)安装Darknet

2.2 安装与运行

2.2.1 按上面安装好之后,下载相应的权重

wget https://pjreddie.com/media/files/yolov3.weight

2.2.2 运行相应的

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
或者
./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg

然后回出现类似下面的内容

layer     filters    size              input                output0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32  0.299 BFLOPs1 conv     64  3 x 3 / 2   416 x 416 x  32   ->   208 x 208 x  64  1.595 BFLOPs.......105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs106 detection
truth_thresh: Using default '1.000000'
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 0.029329 seconds.
dog: 99%
truck: 93%
bicycle: 99%

用编译会显示相应的图片,没有用不会弹出但是会将图片存成.png.运用CPU会有6-12秒运行一副图像,如果用GPU会快很多。

2.2.3 多图像处理

./darknet detect cfg/yolov3.cfg yolov3.weights
layer     filters    size              input                output0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32  0.299 BFLOPs1 conv     64  3 x 3 / 2   416 x 416 x  32   ->   208 x 208 x  64  1.595 BFLOPs.......104 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs106 detection
Loading weights from yolov3.weights...Done!
Enter Image Path:

2.2.4 更改检测阈值

通常情况下YOLO的检测置信概率阈值为0.25或者更高,我们可以更改,输入- ,例如:我们通过下面这行指令把阈值设为0

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0

结果会输出:![][all]

2.3 Tiny

是一个非常小的模型,用于受限运算资源和存储资源的情况,-tiny.我们FPGA上需要用到这个模型。

2.3.1 下载权重

wget https://pjreddie.com/media/files/yolov3-tiny.weights

2.3.2 运行与测试

运用相应的cfg文件和运行

./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg

运行结果

YOLOv3:Darknet代码解析(一)安装Darknet__YOLOv3:Darknet代码解析(一)安装Darknet

2.4 训练模型

:代码解析(四)结构更改与训练

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了