Fast R-CNN中的邊框回歸


前面對R-CNN系的目標檢測方法進行了個總結,其中對目標的定位使用了邊框回歸,當時對這部分內容不是很理解,這里單獨學習下。

R-CNN中最后的邊框回歸層,以候選區域(Region proposal)為輸入,來對Region proposal中包含的目標進行准將的定位。但是,這個輸入的候選區域通常不會正確的包含目標區域,如下圖:

綠色邊框是飛機的Ground Truth邊框,綠色的是Region proposal邊框,雖然Region proposal中包含了目標飛機,但是其定位卻不是很准確,這就需要對候選區域的邊框進行修正,調整其位置和大小,以使其能夠更為接近綠色的Ground Truth邊框。

邊框回歸的方法

無論是Ground Truth邊框還是Region proposal邊框,可以使用一個四元組\((x,y,w,h)\)來表示。其中,\((x,y)\)表示邊框的中心位置,\((w,h)\)表示邊框的寬和高。
在邊框回歸時,實際就是找到一種變換,使修正的后的Region proposal邊框位置和Ground Truth邊框盡可能的接近,公式表示如下:

\[f(P_x,P_y,P_w,P_h) \approx (G_x,G_y,G_w,G_h) \]

其中,\((P_x,P_y,P_w,P_h)\)輸入的候選區域的邊框,\((G_x,G_y,G_w,G_h)\)是Ground Truth邊框。

那么這種變換\(f\)怎么進行呢?

觀察邊框的四元組表示\((x,y)\)表示中心位置,對於位置的修正通常使用平移;\((w,h)\)表示邊框的寬和高,則可以使用縮放進行修正。也就是對邊框的回歸修正,

  • 對邊框的中心位置進行平移\((\Delta x,\Delta y)\)

\[\begin{align*} \Delta x &= P_w d_x(P) \\ \Delta y &= P_h d_y(P) \end{align*} \]

則修正的中心位置就是

\[\begin{align*} \hat{G_x} &= P_w d_x(P) + P_x \\ \hat{G_y} &= P_h d_y(P) + P_y \end{align*} \]

  • 對邊框的寬和高進行縮放\((S_w,S_h)\),

\[\begin{align*} S_w &= exp(d_w(P)) \\ S_h &= exp(d_h(P)) \end{align*} \]

修正后的邊框的寬和高為

\[\begin{align*} \hat{G_w} &= P_w exp(d_w(P)) \\ \hat{G_h} &= P_h exp(d_h(P)) \end{align*} \]

修正后的邊框\((\hat{G_x},\hat{G_y},\hat{G_w},\hat{G_h} )\)要近似等於Ground Truth的邊框。

通過上述公式可以知道,邊框回歸實際上就是學習\(d_x(P),d_y(P),d_w(P),d_h(P)\)這4個變換。在邊框回歸的全連接層,輸入的是候選區域的特征信息\(X\)以及其邊框信息\(P\),要學習的是全連接層的權值矩陣\(W\),也就說回歸的全連接層就實現了上述變換,輸出的是\(d_x(P),d_y(P),d_w(P),d_h(P)\),經過上述公式的可以得到平移和縮放\((\Delta x,\Delta y,S_w,S_h)\)。 對候選區域的邊框進行該平移和縮放得到的邊框盡可能的和Ground Truth相近。

學習得到的\(d_x(P),d_y(P),d_w(P),d_h(P)\)通過數碼的公式可以很容易得到\((\Delta x,\Delta y,S_w,S_h)\),也可以說學習得到的是\((\Delta x,\Delta y,S_w,S_h)\)。 這兩者沒有區別,不用做區分。 但是在計算預測邊框位置的時候,需要注意。

損失函數

R-CNN使用一個全連接網絡實現邊框的回歸,

  • 其輸入的是候選區域的特征及其邊框\((P_x,P_y,P_w,P_h)\)
  • 輸出的該候選框要進行的平移和縮放\((\Delta x,\Delta y,S_w,S_h)\)
  • 要學習的是權值矩陣\(W\),以使候選框進行\((\Delta x,\Delta y,S_w,S_h)\)變換后,盡可能和Ground Truth接近。

有了以上認識,來看下損失函數的設計

\[L(p,u,t^u,v) = L_{cls}(p,u) + \lambda [u \ge 1]L_{Ioc}(t^u,v) \]

其中,\(L_{cls}(p,u)\)是分類的損失函數,\(p_u\)是class u的真實分類的概率。這里,約定\(u = 0\)表示背景,不參與邊框回歸的損失計算。上面是Fast R-CNN將分類的損失和邊框回歸的損失放到了一起,這里這關注邊框回歸的損失

\[\begin{align*} L_{Ioc}(t^u,v) &= \sum_{i \in {x,y,w,h}}smooth_{L_1}(t_i^u - v) \end{align*} \]

其中,\(u\)表示類別,\(t^u\)表示預測邊框的偏移量(也就是預測邊框進行\(t^u\)偏移后,能夠和真實邊框最接近),\(v\)表示預測邊框和實際邊框之間真正的偏移量。
也就是\(t^u = (\Delta x,\Delta y,S_w,S_h)\)為學習得到的偏移量,而\(v\)則是輸入的候選區域的邊框和Ground Truth的真正偏移。

訓練樣本偏移\(v\)的構造

我們使用下面的公式描述了邊框修正的過程

\[\begin{align*} \hat{G_x} &= \Delta x + P_x \\ \hat{G_y} &= \Delta y + P_y \\ \hat{G_w} &= P_w S_w ,S_w = exp(d_w(P))\\ \hat{G_h} &= P_h S_h,S_h = exp(d_h(P)) \end{align*} \]

\(P\)為輸入的邊框,\(\hat{G}\)為修正后的邊框,修正使用的平移和縮放為\((\Delta x,\Delta y,S_w,S_h)\)。通過上述的公司,就可以得到訓練樣本\(P = (P_x,P_y,P_w,P_h)\)相對於Ground Truth\(G = (G_x,G_y,G_w,G_h)\)邊框的真實偏移量\(v\)

\[\begin{align*} v_x &= (G_x - P_x) / P_w \\ v_y &= (G_y - P_y) / P_h \\ v_w &= log(G_w / P_w) \\ v_h &=log(G_h / P_h) \end{align*} \]

偏移量的構造

邊框回歸的偏移量使如下公式表示

\[\begin{align*} \Delta x &= P_w d_x(P) \\ \Delta y &= P_h d_y(P) \\ S_w &= exp(d_w(P)) \\ S_h &= exp(d_h(P)) \end{align*} \]

從上面公式可知,從邊框回歸的學習得到的\(d_x(P),d_y(P),d_w(P),d_h(P)\)並沒有直接用於平移和縮放,而是加了一步處理:對於平移,添加了比例寬高比例因子;寬和高的縮放,使用其比例的\(log\)形式。

對於中心點平移,學習到的值需要添加寬和高的因子。這是由於,CNN具有尺度不變性,對於不同尺度的同一個目標,在最后的特征輸出層學習到的特征是相同。如下圖

兩個不同尺度的人,CNN提取的特征分別為\(\sigma_1,\sigma_2\),這兩個特征應該是相同的。 假如邊框回歸學習到的映射為\(f\),且\(f(\sigma)\)學習到的量。 以\(x\)為例,\(x1,x2\)分別為兩個人的Ground Truth,\(P_{1x},P_{2x}\)為兩個候選區域的\(x\)坐標。假如,\(f(\sigma)\)直接表示平移的差值,則有\(x_1 - P_{1x} = f(\sigma_1),x2-P_{2x}=f(\sigma_2)\)。而\(\sigma_1,\sigma_2\),這兩個特征是相同的,則有\(f(\sigma_1) = f(\sigma_2)\)。故有\(x_1 - P_{1x} = x2-P_{2x}\)。從,上圖看,這兩個不同尺度的人的平移量,顯然是不相同的。 所以,將學習到的量作為坐標偏移顯然是不可行的,R-CNN中給其添加了個尺度因子,也就是目標的寬和高。 如下:

\[f(\sigma_1) = x_1 - P_{1w}P_{1x} \\ f(\sigma_2) = x_2 - P_{2w}P_{2x} \]

尺度(寬和高)的縮放,取其\(log\)形式。
需要學習得到寬和高的縮放因子,就需要將學習到的值限制為大於0,這里就取其\(exp(d_w(P)\),來保證縮放因子都大於0.

總結

邊框回歸輸入的是CNN學習到的候選區域的特征,以及候選區域的邊框信息\((x,y,w,y)\)。通過學習得到映射\(d_x(P),d_y(P),d_w(P),d_h(P)\)\(P_wd_x(P),P_hd_y(P)\)添加尺度因子后,作為坐標的平移;\(exp(d_w(P)),exp(d_h(P))\)取作為寬和高的縮放。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM