darknet53 作用_darknet53 yolo 下的识别训练

本文详细介绍了如何在Ubuntu 18.04上安装Darknet(CPU版和GPU版),并训练YOLOv3模型识别VOC数据集。首先,通过修改Makefile并编译安装Darknet。接着,下载VOC数据集,生成YOLO所需的标签文件。然后,利用预训练模型darknet53.conv.74开始训练。训练过程中,作者提供了训练日志的可视化方法,以便监控训练进度和效果。最后,文章还涵盖了训练自定义数据集的步骤,包括数据格式转换和配置文件修改。
摘要由CSDN通过智能技术生成

【目录】

一、 安装Darknet(仅CPU下) 2

1.1在CPU下安装Darknet方式 2

1.2在GPU下安装Darknet方式 4

二、 YOLO.V3训练官网数据集(VOC数据集/COCO数据集) 4

2.1下载VOC数据集/COCO数据集 4

2.2下载预训练的模型(.weights文件) 8

三、 YOLO.V3训练自己的数据集(以3类别的为例) 8

3.1制作自己的VOC格式训练集 8

3.1.1图像(.jpg)进行重命名(00000X.jpg) 9

3.1.2制作图像的.xml文件 11

3.1.3将.xml文件转换成.txt文件【表述图像及框的四点坐标信息】 14

3.1.4将.jpg文件转换成.txt文件【训练、测试、验证数据集的路径】 15

3.2训练网络 17

3.3测试 19

3.4计算准确率 20

3.5问题汇集 20

四、 YOLO.V3的可视化 20

4.0格式化训练的日志文件log(用extract_log.py脚本) 21

4.1可视化训练日志中的loss(用train_loss_visualization.py脚本) 21

4.2可视化训练日志中的参数(用train_iou_visualization.py脚本) 24

【正文】

一、安装Darknet(仅CPU下)

安装环境:Ubuntu18.04

内存:3.9GiB,处理器:Intel® Core™2 Duo CPU E7500 @ 2.93GHz × 2

图形:Intel® Core™2 Duo CPU E7500 @ 2.93GHz × 2

GNOME:3.28.3

操作系统:64位

磁盘:492GB.

1.1在CPU下安装Darknet方式

安装相对caffe来说非常简单。Opencv和cuda作为选装的部分,可以不安装。推荐安装这两个,只有安装的cuda才能使用gpu。提示:只有安装了opencv才能调用摄像头进行实时检测。

Darknet的安装简单来说就三个步骤:下载安装包+修改Makefile文件+编译。

(1)下载安装包:

(2)修改Makefile文件:

下载之后打开文件夹里的Makefile文件,如果安装了opencv和cuda,则将Makefile文件中的GPU和OPENCV修改成1 (GPU=1,OPENCV=1)。如果没有安装opencv和cuda就不需要进行修改之后就是对安装包进行编译了。提示:安装opencv需要联网,耗时较长。

我自己使用CPU+opencv,所以修改CPU=0,opencv=1。

(3)编译make。

使用命令cd到文件根目录下make这样就可以了,没有安装opencv和cuda的情况下编译很快,安装了的编译时稍等一会儿。安装过caffe的都知道,编译过程中经常会出现错误。不过编译darknet时不用担心。

$ cd darknet

$ make

(4)测试YOLO-Darknet

测试yolov3.weights模型。将训练得到的weights文件拷贝到darknet/weights文件夹下面,执行语句:

$ cd darknet

$ ./darknet detect cfg/yolov3-voc.cfg weights/yolov3.weights data/dog.jpg

也可以执行:

$ cd darknet

$ ./darknet detect cfg/yolov3-voc.cfg weights/yolov3.weights

终端下,过一会儿会显示

Loading weights from weights/yolov3.weights...Done!

Enter Image Path: data/person.jpg

data/person.jpg: Predicted in 26.276781 seconds.

备注:这里可能会报错

./darknet: error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory

处理方法:

在darknet目录下先meak clean清除掉原有编译文件,然后sudo ldconfig然后make一下后重新输入:

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

便可成功运行。

运行成功后会出现下面的图片,并在darknet目录下生成predictions.png文件

(5)训练测试YOLO-Darknet(这里是继续训练)

$ cd darknet

$ ./darknet detector train VOC/cfg/voc.data VOC/cfg/yolov3-voc.cfg VOC/darknet53.conv.74

1.2在GPU下安装Darknet方式

(1)下载安装包。(2)修改GPU=1。(3)make编译一下。

二、YOLO.V3训练官网数据集(VOC数据集/COCO数据集)

2.1下载VOC数据集/COCO数据集

下载数据集

新建文件夹VOC:/home/wp/darknet/VOC,在VOC文件夹下下载数据集:

wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar

wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar

wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar

tar xf VOCtrainval_11-May-2012.tar

tar xf VOCtrainval_06-Nov-2007.tar

tar xf VOCtest_06-Nov-2007.tar

请,参考官网例子https://pjreddie.com/darknet/yolo/ 下的”Training YOLO on VOC”

There will now be a VOCdevkit/ subdirectory with all the VOC training data in it.

Generate Labels for VOC

Now we need to generate the label files that Darknet uses. Darknet wants a .txt file for each image with a line for each ground truth object in the image that looks like:

Where x, y, width, and height are relative to the image's width and height. To generate these file we will run the voc_label.py script in Darknet's scripts/ directory. Let's just download it again because we are lazy.

$ wget https://pjreddie.com/media/files/voc_label.py

$ python voc_label.py

After a few minutes, this script will generate all of the requisite files. Mostly it generates a lot of label files in VOCdevkit/VOC2007/labels/ and VOCdevkit/VOC2012/labels/. In your directory you should see:

$ ls

2007_test.txt   VOCdevkit

2007_train.txt  voc_label.py

2007_val.txt    VOCtest_06-Nov-2007.tar

2012_train.txt  VOCtrainval_06-Nov-2007.tar

2012_val.txt    VOCtrainval_11-May-2012.tar

The text files like 2007_train.txt list the image files for that year and image set. Darknet needs one text file with all of the images you want to train on. In this example, let's train with everything except the 2007 test set so that we can test our model. Run:

$ cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

Now we have all the 2007 trainval and the 2012 trainval set in one big list. That's all we have to do for data setup!

Modify Cfg for Pascal Data

Now go to your Darknet directory. We have to change the cfg/voc.data config file to point to your data:

$ classes= 20

$ train  = /train.txt

$ valid  = 2007_test.txt

$ names = data/voc.names

$ backup = backup

You should replace with the directory where you put the VOC data.

Download Pretrained Convolutional Weights

For training we use convolutional weights that are pre-trained on Imagenet. We use weights from the darknet53 model. You can just download the weights for the convolutional layers here (76 MB).

$ wget https://pjreddie.com/media/files/darknet53.conv.74

Train The Model

Now we can train! Run the command:

$ ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74

自己的详细步骤如下:

(1)下载VOC数据集并解压

$ cd /home/wp/darknet/VOC

wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar

wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar

wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar

tar xf VOCtrainval_11-May-2012.tar

tar xf VOCtrainval_06-Nov-2007.tar

tar xf VOCtest_06-Nov-2007.tar

VOC数据集的文件夹详细介绍:

(2)制作.jpg数据集的.txt文件

$ cd darknet/VOC

$ wget https://pjreddie.com/media/files/voc_label.py

$ python voc_label.py

执行完后,生成2007_test.txt;2007_train.txt;2007_val.txt;2012_train.txt;2012_val.txt

(3) 修改 cfg/voc.data文件里的路径

classes= 20

train  = /home/wp/darknet/VOC/train.txt

valid  = /home/wp/darknet/VOC/2007_test.txt

names  = /home/wp/darknet/VOC/data/voc.names

backup = /home/wp/darknet/backup

2.2下载预训练的模型(.weights文件)

(1)训练

1.在已训练好的模型上继续训练:

$ cd darknet

$ ./darknet detector train VOC/cfg/voc.data VOC/cfg/yolov3-voc.cfg VOC/darknet53.conv.74

2.自己重新训练

为方便后面的可视化,这里最好保存训练的日志。

$ ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg 2>&1 | tee visualization/train_yolov3.log

说明:下载可以执行语句执行(wget+网址链接),也可以手动下载(到网页下载)。

三、YOLO.V3训练自己的数据集(以3类别的为例)

3.1制作自己的VOC格式训练集

核心思想:仿照VOC数据集的文件夹及其格式进行制作。

--VOC

--Annotations

--ImageSets

--Main

--Layout

--Segmentation

--JPEGImages

--Segment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值