From aa7a8515ee344386c35745e75304462376f51ba1 Mon Sep 17 00:00:00 2001 From: tjztl <116299201+tjztl@users.noreply.github.com> Date: Mon, 26 Feb 2024 19:48:30 +0800 Subject: [PATCH] Update anchor.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 这一步就是配对了nb对的锚框和真实边界框,但是说“这nb个锚框”时,读者并不能直观理解是哪些个,说“给nb个真实边界框分配一个锚框”更直观 --- chapter_computer-vision/anchor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter_computer-vision/anchor.md b/chapter_computer-vision/anchor.md index 0f05e71a7..34de46297 100644 --- a/chapter_computer-vision/anchor.md +++ b/chapter_computer-vision/anchor.md @@ -394,7 +394,7 @@ def box_iou(boxes1, boxes2): 1. 在矩阵$\mathbf{X}$中找到最大的元素,并将它的行索引和列索引分别表示为$i_1$和$j_1$。然后将真实边界框$B_{j_1}$分配给锚框$A_{i_1}$。这很直观,因为$A_{i_1}$和$B_{j_1}$是所有锚框和真实边界框配对中最相近的。在第一个分配完成后,丢弃矩阵中${i_1}^\mathrm{th}$行和${j_1}^\mathrm{th}$列中的所有元素。 1. 在矩阵$\mathbf{X}$中找到剩余元素中最大的元素,并将它的行索引和列索引分别表示为$i_2$和$j_2$。我们将真实边界框$B_{j_2}$分配给锚框$A_{i_2}$,并丢弃矩阵中${i_2}^\mathrm{th}$行和${j_2}^\mathrm{th}$列中的所有元素。 -1. 此时,矩阵$\mathbf{X}$中两行和两列中的元素已被丢弃。我们继续,直到丢弃掉矩阵$\mathbf{X}$中$n_b$列中的所有元素。此时已经为这$n_b$个锚框各自分配了一个真实边界框。 +1. 此时,矩阵$\mathbf{X}$中两行和两列中的元素已被丢弃。我们继续,直到丢弃掉矩阵$\mathbf{X}$中$n_b$列中的所有元素。此时已经为这$n_b$个真实边界框各自分配了一个锚框。 1. 只遍历剩下的$n_a - n_b$个锚框。例如,给定任何锚框$A_i$,在矩阵$\mathbf{X}$的第$i^\mathrm{th}$行中找到与$A_i$的IoU最大的真实边界框$B_j$,只有当此IoU大于预定义的阈值时,才将$B_j$分配给$A_i$。 下面用一个具体的例子来说明上述算法。