YOLOv3学习笔记之简单介绍
程序员文章站
2022-03-22 14:26:20
这里写自定义目录标题数据格式YOLOv3网络结构数据格式用于目标检测的数据集有VOC和COCO两种格式:VOC数据格式的目标检测数据,是指每个图像文件对应一个同名的xml文件,xml文件中标记物体框的坐标和类别等信息COCO数据格式的目标检测数据,是指将所有训练图像的标注都存放到一个json文件中,数据以字典嵌套的形式存放。json文件中存放了 info licenses images annotations categories的信息:info中存放标注文件标注时间、版本等信息...
目录
数据格式
用于目标检测的数据集有VOC和COCO两种格式:
VOC数据格式的目标检测数据,是指每个图像文件对应一个同名的xml文件,xml文件中标记物体框的坐标和类别等信息
COCO数据格式的目标检测数据,是指将所有训练图像的标注都存放到一个json文件中,数据以字典嵌套的形式存放。
json文件中存放了 info licenses images annotations categories的信息:
-
info中存放标注文件标注时间、版本等信息
-
licenses中存放数据许可信息
-
images中存放一个list,存放所有图像的图像名,下载地址,图像宽度,图像高度,图像在数据集中的id等信息
-
annotations中存放一个list,存放所有图像的所有物体区域的标注信息,每个目标物体标注以下信息:
{
'area': 899,
'iscrowd': 0,
'image_id': 839,
'bbox': [114, 126, 31, 29], #左上角坐标,宽高
'category_id': 0, 'id': 1,
'ignore': 0,
'segmentation': []
}
查看json文件,图中是COCO2014数据集中annotation文件夹中的json文件
#查看json文件
# 查看一条数据
import json
coco_anno = json.load(open('../coco2014/annotations/instances_train2014.json'))
# coco_anno.keys
print('\nkeys:', coco_anno.keys())
# 查看类别信息
print('物体类别:', coco_anno['categories'])
# 查看一共多少张图
print('图像数量:', len(coco_anno['images']))
# 查看一共多少个目标物体
print('标注物体数量:', len(coco_anno['annotations']))
print('\n查看一张图像中的信息:')
img=coco_anno['images'][0]
# print('图片信息有:',img.keys())
# 遍历字典列表
for key,values in img.items():
print(key,':',values)
# 查看一条目标物体标注信息
print('\n查看一条目标物体标注信息:', )
anno=coco_anno['annotations'][0]
print('标注信息有:',anno.keys())
# 遍历字典列表
for key,values in anno.items():
print(key,':',values)
print('\n查看指定图像中的标注信息:')
ans=[an for an in coco_anno['annotations'] if an['image_id']==57870]
print('id=57870图像中,一共有标注框:',len(ans))
for i in ans:
print(i['category_id'],i['bbox'])
#id=57870图像中,一共有标注框: 17
#62 [233.29, 270.45, 170.32, 203.36]
#67 [1.02, 279.96, 533.09, 200.04]
#62 [476.76, 261.03, 119.73, 201.71]
#...
在YOLOv3项目中,数据集文件夹如下
YOLOv3网络结构
YOLOv3属于Anchor-Base单步目标检测方法,即由骨干网络提取特征,再有检测网络进行分类与定位pic_center)
本文地址:https://blog.csdn.net/qq_33682559/article/details/109801990