PASCAL VOC与自制数据集(笔记)

前言

根据B站up(霹雳吧啦Wz)的课程记的笔记

视频出处:PASCAL VOC2012数据集讲解与制作自己的数据集_哔哩哔哩_bilibili

博主B站:霹雳吧啦Wz

博主CSDN:霹雳吧啦Wz_太阳花的小绿豆_CSDN博客-深度学习,软件安装,Tensorflow领域博主

PASCAL VOC

一共有20个检测类别,包含于20个大类。

vocclasses

文件大概状态:主要关注标黄的文件

 一般流程:

               1、 读取train文件的每一行信息txt

                2、在Annptations去找到对应的.xml文件,去解析这个文件。就知道这个图片的高度、宽度,还有标注信息。

                3、在JPEGImages文件夹下面找到这个图片,再载入内存。

标注数据集

用labelImg,在github下载:

三个文件夹

 

就那样用吧。

MS COCO数据集

用pycocotool读取图片和标记信息:

from pycocotools.coco import COCO

json_path = "./instances_val2017.json"#标注信息
img_path = "./val2017" 图片文件夹

coco = COCO(annotation_fole=json_path) #读取验证集的标签文件。
ids = list(sorted(coco.img.keys()) #获取所有图像的索引,之后用来遍历

#遍历所有目标的索引,类别名称,转化为字典。
coco_classes = dict([(v["id"], v["name"]) for k, v in coco.cats.items()])

#遍历前三张图像,绘制标注信息。
for img_id in ids[:3]:
    ann_ids = coco.getAnnIds(imgIds=img_id) #获取对应图片的标注类别的索引
    targets = coco.loadAnns(ann_ids) #获取图片上所有的标注信息
    path = coco.loadImgs(img_id)[0]['file_name'] #读取图片名称
    #找到这张图片,转成RGB格式,读取它。
    img = Image.open(os.path.join(img_path, path)).convert('RGB')
    
    #在这张图片上绘制box信息,
    draw = ImageDraw.Draw(img)
    遍历所有目标框框。
    for target in targets:
        x,y,w,h=target["bbox"]
        x1,y1,x2,y2 = x,y,int(x+w),int(y+h)
        draw.rectangle((x1,y1,x2,y2))#绘制矩形框
        draw.text((x1,y1),coco_classes[target["category_id"]]) #左上角写类别名称

#show image
plt.imshow(img)
plt.show()

算mAP

from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval

#accumulate predictions from all images
#载入coco2017验证集标注文件
coco_true = COCO(annotation_file= "./instance_val2017.json")
coco_pre = coco_true.loadRes("./predict_results.json")

coco_evaluator = COCOeval(cocoGt=coco_true, cocoDt=coco——pre, iouType="bbox")
coco_evaluator.evaluate()
coco_evaluator.accumulate()
coco_evaluator.accumulate()

详细看博主本人的文章:通过pycocotools获取每个类别的COCO指标_霹雳吧啦Wz-CSDN博客在目标检测任务中,我们常用的评价指标一般有两种,一种是使用Pascal VOC的评价指标,一种是更加严格的COCO评价指标,一般后者会更常用点。在计算COCO评价指标时,最常用的就是Python中的pycocotools包,但一般计算得到的结果是针对所有类别的,例如: Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.512 Average Precision (AP) @[ IoU=0.50https://blog.csdn.net/qq_37541097/article/details/112248194

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值