anchor设置 yolo_YOLOv3原理讲解之Anchor Box

Anchor Box

在讲解YOLO之前,有必要先解释什么是Anchor box。

在做目标检测任务时,我们首先需要将数据标注并得到训练集、验证集、测试集。已标注的数据label,其实就是在原始图片中用矩形框框出目标,得到的矩形框参数(中心点坐标、长、宽)就是label。Anchor box其实就是从训练集中将所有的矩形框的大小尺寸统计处最常出现的某几个矩形框,这里我们可以采用K-Means来得到。这样也就不难理解使用anchor的目的了:目标先验。即我们提前告诉模型,应该去用多大的矩形框去寻找目标,帮助模型快速收敛。

在使用K-Means前,需要将标注数据转换获得每个bounding box(标注框)的高宽并归一化:

(假设你的标注数据是voc数据集的格式)

import numpy as np

import glob

import xml.etree.ElementTree as ET

# normalize width and height

def normal_wh(path):

dataset = list()

for xml_file in glob.glob('{}/*xml'.format(path)):

tree = ET.parse(xml_file)

height = int(tree.findtext('./size/height'))

width = int(tree.findtext('./size/width))

for obj in tree.iter('object'):

xmin = int(obj.findtext('bndbox/xmi

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值