YOLO系列计算自己数据集目标的宽高比

       在手动设置锚框是用到的函数kmean_anchors,如何计算自己数据集的anchor已经有诸多教程,不做赘述。使用kmean_anchors需要设置thr的值,thr为数据集中标注框宽高比最大阈值,coco数据集使用的默认值为4.0。

def kmean_anchors(path='./data/coco128.yaml', n=9, img_size=640, thr=4.0, gen=1000, verbose=True):
    :
    :
    :
    :
 
    return print_results(k)

使用以下程序统计目标的宽高比,输出最大和最小宽高比以及宽高比的分布范围。

import json
import numpy as np

# 加载COCO数据集标注文件
with open('instances_train2017.json', 'r') as f:
  coco_data = json.load(f)

annotations = coco_data['annotations']

# 统计标签框的宽高比
aspect_ratios = []
for annotation in annotations:
  bbox_width = annotation['bbox'][2]
  bbox_height = annotation['bbox'][3]
  aspect_ratio = bbox_width / bbox_height
  aspect_ratios.append(aspect_ratio)

# 计算宽高比的主要分布范围
min_aspect_ratio = min(aspect_ratios)
max_aspect_ratio = max(aspect_ratios)

print("主要分布范围:")
print(f"最小宽高比:{min_aspect_ratio}")
print(f"最大宽高比:{max_aspect_ratio}")

# 统计宽高比的分布
bins = [0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5]
hist, _ = np.histogram(aspect_ratios, bins=bins)

print("宽高比分布:")
for i in range(len(hist)):
  print(f"{bins[i]} - {bins[i+1]}: {hist[i]}")

结果如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值