1. 目標(biāo)檢測(cè)和邊界框
實(shí)際上是人工生成一系列有限個(gè)框,然后給這些框打標(biāo)簽
2. 錨框
目標(biāo)檢測(cè)算法通常會(huì)在輸入圖像中采樣大量的區(qū)域须教,然后判斷這些區(qū)域中是否包含我們感興趣的目標(biāo),并調(diào)整區(qū)域邊緣從而更準(zhǔn)確地預(yù)測(cè)目標(biāo)的真實(shí)邊界框(ground-truth bounding box)坦喘。不同的模型使用的區(qū)域采樣方法可能不同枝嘶。這里我們介紹其中的一種方法:它以每個(gè)像素為中心生成多個(gè)大小和寬高比(aspect ratio)不同的邊界框。這些邊界框被稱為錨框(anchor box)甜无。
2.1 生成多個(gè)錨框
假設(shè)輸入圖像高為,寬為哥遮。我們分別以圖像的每個(gè)像素為中心生成不同形狀的錨框岂丘。設(shè)大小為且寬高比為,那么錨框的寬和高將分別為和 hs/\sqrt{r} 眠饮。當(dāng)中心位置給定時(shí)奥帘,已知寬和高的錨框是確定的。
下面我們分別設(shè)定好一組大小 和一組寬高比仪召。如果以每個(gè)像素為中心時(shí)使用所有的大小與寬高比的組合寨蹋,輸入圖像將一共得到 個(gè)錨框。雖然這些錨框可能覆蓋了所有的真實(shí)邊界框扔茅,但計(jì)算復(fù)雜度容易過高已旧。因此,我們通常只對(duì)包含或的大小與寬高比的組合感興趣召娜,即
也就是說运褪,以相同像素為中心的錨框的數(shù)量為。對(duì)于整個(gè)輸入圖像,我們將一共生成個(gè)錨框吐句。
2.2 交并比
我們剛剛提到某個(gè)錨框較好地覆蓋了圖像中的狗胁后。如果該目標(biāo)的真實(shí)邊界框已知,這里的“較好”該如何量化呢嗦枢?一種直觀的方法是衡量錨框和真實(shí)邊界框之間的相似度。我們知道屯断,Jaccard系數(shù)(Jaccard index)可以衡量?jī)蓚€(gè)集合的相似度文虏。給定集合 A 和 B ,它們的Jaccard系數(shù)即二者交集大小除以二者并集大兄逞荨:
實(shí)際上氧秘,我們可以把邊界框內(nèi)的像素區(qū)域看成是像素的集合。如此一來趴久,我們可以用兩個(gè)邊界框的像素集合的Jaccard系數(shù)衡量這兩個(gè)邊界框的相似度丸相。當(dāng)衡量?jī)蓚€(gè)邊界框的相似度時(shí),我們通常將Jaccard系數(shù)稱為交并比(Intersection over Union彼棍,IoU)灭忠,即兩個(gè)邊界框相交面積與相并面積之比,如圖9.2所示座硕。交并比的取值范圍在0和1之間:0表示兩個(gè)邊界框無重合像素弛作,1表示兩個(gè)邊界框相等。
2.3 標(biāo)注訓(xùn)練集的錨框
在訓(xùn)練集中华匾,我們將每個(gè)錨框視為一個(gè)訓(xùn)練樣本映琳。為了訓(xùn)練目標(biāo)檢測(cè)模型,我們需要為每個(gè)錨框標(biāo)注兩類標(biāo)簽:一是錨框所含目標(biāo)的類別蜘拉,簡(jiǎn)稱類別萨西;二是真實(shí)邊界框相對(duì)錨框的偏移量,簡(jiǎn)稱偏移量(offset)旭旭。在目標(biāo)檢測(cè)時(shí)谎脯,我們首先生成多個(gè)錨框,然后為每個(gè)錨框預(yù)測(cè)類別以及偏移量您机,接著根據(jù)預(yù)測(cè)的偏移量調(diào)整錨框位置從而得到預(yù)測(cè)邊界框穿肄,最后篩選需要輸出的預(yù)測(cè)邊界框。
2.4 輸出預(yù)測(cè)邊界框
在模型預(yù)測(cè)階段际看,我們先為圖像生成多個(gè)錨框咸产,并為這些錨框一一預(yù)測(cè)類別和偏移量。隨后仲闽,我們根據(jù)錨框及其預(yù)測(cè)偏移量得到預(yù)測(cè)邊界框脑溢。當(dāng)錨框數(shù)量較多時(shí),同一個(gè)目標(biāo)上可能會(huì)輸出較多相似的預(yù)測(cè)邊界框。為了使結(jié)果更加簡(jiǎn)潔屑彻,我們可以移除相似的預(yù)測(cè)邊界框验庙。常用的方法叫作非極大值抑制(non-maximum suppression,NMS)社牲。
我們來描述一下非極大值抑制的工作原理粪薛。對(duì)于一個(gè)預(yù)測(cè)邊界框,模型會(huì)計(jì)算各個(gè)類別的預(yù)測(cè)概率搏恤。設(shè)其中最大的預(yù)測(cè)概率為违寿,該概率所對(duì)應(yīng)的類別即的預(yù)測(cè)類別。我們也將 稱為預(yù)測(cè)邊界框 的置信度熟空。在同一圖像上藤巢,我們將預(yù)測(cè)類別非背景的預(yù)測(cè)邊界框按置信度從高到低排序,得到列表息罗。從 中選取置信度最高的預(yù)測(cè)邊界框 作為基準(zhǔn)掂咒,將所有與 的交并比大于某閾值的非基準(zhǔn)預(yù)測(cè)邊界框從中移除。這里的閾值是預(yù)先設(shè)定的超參數(shù)迈喉。此時(shí)绍刮, 保留了置信度最高的預(yù)測(cè)邊界框并移除了與其相似的其他預(yù)測(cè)邊界框。 接下來弊添,從中選取置信度第二高的預(yù)測(cè)邊界框 作為基準(zhǔn)录淡,將所有與 的交并比大于某閾值的非基準(zhǔn)預(yù)測(cè)邊界框從 中移除。重復(fù)這一過程油坝,直到中所有的預(yù)測(cè)邊界框都曾作為基準(zhǔn)嫉戚。此時(shí)中任意一對(duì)預(yù)測(cè)邊界框的交并比都小于閾值。最終澈圈,輸出列表中的所有預(yù)測(cè)邊界框彬檀。
3. 多尺度目標(biāo)檢測(cè)
在1.節(jié) 錨框中,我們?cè)趯?shí)驗(yàn)中以輸入圖像的每個(gè)像素為中心生成多個(gè)錨框瞬女。這些錨框是對(duì)輸入圖像不同區(qū)域的采樣窍帝。然而,如果以圖像每個(gè)像素為中心都生成錨框诽偷,很容易生成過多錨框而造成計(jì)算量過大坤学。舉個(gè)例子,假設(shè)輸入圖像的高和寬分別為561像素和728像素报慕,如果以每個(gè)像素為中心生成5個(gè)不同形狀的錨框深浮,那么一張圖像上則需要標(biāo)注并預(yù)測(cè)200多萬個(gè)錨框。
減少錨框個(gè)數(shù)并不難眠冈。一種簡(jiǎn)單的方法是在輸入圖像中均勻采樣一小部分像素飞苇,并以采樣的像素為中心生成錨框。此外,在不同尺度下布卡,我們可以生成不同數(shù)量和不同大小的錨框雨让。值得注意的是,較小目標(biāo)比較大目標(biāo)在圖像上出現(xiàn)位置的可能性更多忿等。舉個(gè)簡(jiǎn)單的例子:形狀為的目標(biāo)在形狀為的圖像上可能出現(xiàn)的位置分別有4贸街、2和1種娃闲。因此,當(dāng)使用較小錨框來檢測(cè)較小目標(biāo)時(shí)匾浪,我們可以采樣較多的區(qū)域;而當(dāng)使用較大錨框來檢測(cè)較大目標(biāo)時(shí)卷哩,我們可以采樣較少的區(qū)域蛋辈。