聚类心得(默认框)

本文探讨了聚类分析在目标检测中的应用,重点关注如何利用聚类中心优化默认框,以最大化与真实标注框的IOU,并通过调整算法避免坐标偏好的问题。在实践中,采用M-means策略进行聚类初期可能会遇到挑战。
摘要由CSDN通过智能技术生成

1)       (x_j,y_j)是框的中心点,(w_j,h_j)是框的宽和高,N是所有标注框的个数,这是真实gt 

2)       默认框(即预测框),我们希望其与gt的IOU最大,其中心与默认框的x,y最小(最好重合),即令 d=1-IOU(d为聚类中             心) ,即有d=1-IOU\left [ (x_j,y_j,w_j,h_j),(x_j,y_j,W_i,H_i) \right ],j\in\{1,2,...,N\},i\in\{1,2,...,k\}

3)最后,我们需要W_i^{'}=\frac{1}{N_i}\sum w_{i},H_i^{'}=\frac{1}{N_i}\sum h_{i}

 

其中要点:  使用M-mean聚类初期,容易有坐标偏好

from os import listdir
from os.path import isfile, join
import argparse
# import cv2
import numpy as np
import sys
import os
import shutil
import random
import math


def IOU(x, centroids):
    '''
    :param x: 某一个ground truth的w,h
    :param centroids:  anchor的w,h的集合[(w,h),(),...],共k个
    :return: 单个ground truth box与所有k个anchor box的IoU值集合
    '''
    IoUs = []
    w, h = x  # ground truth的w,h
    for centroid in centroids:
        c_w, c_h = centroid  # anchor的w,h
        if c_w >= w and c_h >= h:  # anchor包围ground truth
            iou = w * h / (c_w * c_h)
        elif c_w >= w and c_h <= h:  # anchor宽矮
            iou = w * c_h / (w * h + (c_w - w) * c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值