搞定目标检测(SSD篇)(上)

Figure 1

目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小。由于各类物体有不同的形状、大小和数量,加上物体间还会相互遮挡, 因此目标检测一直都是机器视觉领域中最具挑战性的难题之一。

如上图所示,目标检测就是用一个矩形来定位一个物体并判断该物体是什么?现阶段,主流算法中表现最好的是SSD和YOLO,前者就是本文要用到的算法。实际上,不管是用SSD还是YOLO,目标检测过程都可以分解为两个独立的操作:

  • 定位(location): 用一个矩形(bounding box)来框定物体,bounding box一般由4个整数组成,分别表示矩形左上角和右下角的x和y坐标,或矩形的左上角坐标以及矩形的长和高。
  • 分类(classification): 识别bounding box中的(最大的)物体。

了解了目标检测的基本原理后,接下来,我会带你在Pascal VOC2012数据集上完成单目标检测和多目标检测的挑战。Github: https://github.com/alexshuang/pascal-voc-pytorch

Pascal VOC2012 / Notebook

你可以在Pascal的官网上找到我们要使用的数据集。Visual Object Classes Challenge 2012 (VOC2012),是Pascal在2012年举办的机器视觉大赛,现在则作为经典的机器视觉数据集为大家所用,它涵盖了Classification/Detection(目标检测)、Segmentation(图像分割)、Action Classification(行为分类)等领域。

!cd {PATH} && tar xf VOCtrainval_11-May-2012.tar
!find {PATH} -type d

data/pascal
data/pascal/VOCdevkit
data/pascal/VOCdevkit/VOC2012
data/pascal/VOCdevkit/VOC2012/SegmentationObject
data/pascal/VOCdevkit/VOC2012/Annotations
data/pascal/VOCdevkit/VOC2012/JPEGImages
data/pascal/VOCdevkit/VOC2012/SegmentationClass
data/pascal/VOCdevkit/VOC2012/ImageSets
data/pascal/VOCdevkit/VOC2012/ImageSets/Segmentation
data/pascal/VOCdevkit/VOC2012/ImageSets/Main
data/pascal/VOCdevkit/VOC2012/ImageSets/Action
data/pascal/VOCdevkit/VOC2012/ImageSets/Layout

目标检测只需要JPEGImages和Annotations这两个目录中的数据。JPEGImages是图像文件目录,而Annotations目录中记录的是图像样本的标签信息,即目标(物体)的分类信息、bounding box以及物体对应的图像文件编号等。

Pascal官方提供的标签信息是.xml格式的,为了便于读取数据,有人已经将xml转成csv格式,它可以在这里下载。

!cd {PATH} && wget -q https://storage.googleapis.com/coco-dataset/external/PASCAL_VOC.zip
!cd {PATH} && unzip -q PASCAL_VOC.zip
trn_json = json.load((METADATA_PATH/'pascal_train2012.json').open())
val_json = json.load((METADATA_PATH/'pascal_val2012.json').open())
trn_json.keys(), val_json.keys()

(dict_keys(['images', 'type', 'annotations', 'categories']),
 dict_keys(['images', 'type', 'annotations', 'categories']))

可以看到

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值