git clone https://github.com/Huangdebo/YOLOv3_tiny_TensorFlow.git1
1.简介
添加YOLOv3_tiny和数据增强(剪切,变亮,更改饱和度)
2.要求
tensorflow> = 1.8.0(更低版本也可以工作)
OpenCV的Python
3.运行演示
(1)使用ckpt文件的单图像测试演示:
python test_single_image.py ./data/demo_data/car.jpg
(2)使用pb文件进行单图像测试演示:
python test_single_image_pb.py ./data/demo_data/car.jpg
4.培训
4.1数据准备
(1)注释文件
train.txt/val.txt/test.txt在./data/my_data/目录下生成文件。一幅图像对应一行,格式为image_absolute_path box_1 box_2 … box_n。Box_format:label_index x_min y_min x_max y_max。(坐标的原点在左上角。)
例如:
xxx/xxx/1.jpg 0 453 369 473 391 1 588 245 608 268
xxx/xxx/2.jpg 1 466 403 485 422 2 793 300 809 320
…
注意:您应该在每个txt文件的末尾保留一个空白行。
(2)class_names文件:
data.names在./data/my_data/目录下生成文件。每行代表一个类名。
例如:
bird
car
bike
…
COCO数据集类名称文件位于./data/coco.names。
(3)先前的锚文件:
使用kmeans算法获取先前的锚点:
python get_kmeans.py
然后,您将获得9个锚点和平均IOU。将锚点保存到txt文件。
YOLO v3作者提供的COCO数据集锚位于./data/yolo_anchors.txt,您也可以使用该锚。
注意:yolo锚点应缩放到重新缩放后的新图像尺寸。假设您的图片大小为[W,H],并且图片将重新缩放为416 * 416作为输入,对于每个生成的锚点[anchor_w,anchor_h],您应该应用以下转换:anchor_w = anchor_w / W * 416,anchor_h = anchor_g /高* 416。
4.2培训
使用train.py。参数如下:
$蟒蛇train.py -h
用法:train.py
net_name = '的永乐模式'
anchors_name = '锚名'
body_name = '的YOLO体网'
DATA_NAME = '训练数据名称'1
2
3
4
检查以train.py获取更多详细信息。您应该自己设置参数。
我的实验中的一些训练技巧:
使用yolov3,使用 darknet53yolov3_tinydarknet19