姚宏揚 仝明磊 施漪涵
(上海電力大學電子與信息工程學院 上海 200090)
文字檢測是計算機視覺領域的一個重要研究方向,在各行各業中具有廣泛應用。自然場景下的文字蘊含重要的語義信息,有助于描述和理解圖片內容。目前,文字檢測的方法大多數是通過卷積神經網絡(CNN)得到的特征圖上生成區域建議作為候選目標,生成有可能包含待檢測目標的預選框,隨后進行文字的分類和回歸,如CTPN[1]、R2CNN[2]、MultiBox[3]、Textbox++[4]、Faster R-CNN[5]和Mask R-CNN[6]等。在以上的檢測算法中,邊界框回歸是定位目標的一個關鍵步驟。在檢測算法的網絡中,文本區域通常都表示為帶有多個參數的矩形框,分別是矩形框的中心坐標、尺寸和方向等。因此,文字檢測任務通常被描述為回歸任務,目的是達到標注值與預測值之間的差異最小化。
文字檢測最常用的評價標準是文字區域框選的準確程度。通常采用重疊面積交并比評估指標來比較不同檢測算法的精度。2016年提出的IoU(Intersection over Union)損失函數(IoU Loss)[7]和2019年提出的廣義IoU損失函數(GIoU Loss)[8]證明了L1和L2損失函數在邊界框回歸上效果不如IoU損失函數。在網絡中,邊界框的每個參數獨立訓練,使用L1和L2損失函數將梯度反向傳播時每個參數也是獨立的,但實際上這些參數共同組成邊界框,應當是有相關性的。IoU損失函數就在反向傳播時,將每個單獨的參數整合為邊界框之間的交并比,作為重疊面積的損失傳播到網絡。盡管IoU Loss和GIoU Loss解決了預測框的尺度敏感及參數缺乏相關性的問題,但仍面臨回歸不精準的問題。
現在的檢測算法可以較好地收斂水平或垂直的邊界框,但是自然場景中的文字目標都有很大的方向隨機性,如果只能收斂成水平和垂直邊界框,就會包含非常多的背景冗余區域,使得檢測準確度不高,也影響到后續的文字識別等操作,如何更好地回歸出具有旋轉方向的邊界框來檢測隨機方向的文本仍然是一個挑戰。
為了實現更快、更精準的旋轉目標檢測和解決模型訓練時預測參數缺乏相關性的問題,本文提出一種旋轉交并比(Rotation-Intersection over Union,RIoU)損失函數。通過添加錨點旋轉參數,使預測邊界框的參數中帶有角度信息,將角度信息用于邊界框回歸,再對交并比損失函數添加合適的角度懲罰項,使預測到的邊界框參數具有很強的相關性,并且角度參數也能夠快速收斂。與之前的水平檢測方法不同,我們增加旋轉錨點的方法可以使預測提議更加適應文本區域,減少了檢測出的背景部分所占比,在網絡最后的非極大值抑制部分也引入了旋轉交并比的算法,在抑制冗余預測框時,不僅考慮交并比分數,還要考慮到邊界框的角度信息,使得最終獲得的結果能夠更加精準。
1.1 文字檢測的評估
大多數文字檢測任務中的評估標準使用聯合交叉指標(IoU),具體表現為預測框與標注框的面積交并比來確定一組預測中的正樣本和負樣本,以及預測框對目標包圍的準確性。現有的文字檢測數據集標注都是以文字區域的真實形狀標注,通常是矩形框或四邊形框的四個點坐標,具體形狀的方向角度有很大的隨機性。此時,只能提供水平和垂直區域的檢測算法不能精準地框選住真實的文字區域,使得檢測精度不會很高。
1.2 損失函數與邊界框回歸
在文字檢測中,網絡模型學習邊界框的參數至關重要。在2016年提出的YOLO v1[9]中采用了對邊界框參數直接回歸的方法,并對w和h參數取平方根來減輕回歸邊界框時的尺度敏感。2018年的YOLO v3[10]則是采用了2-wh。R-CNN中是通過選擇性搜索算法[11]計算出預測框的位置和大小,并對預測框進行參數化表示。通過定義了邊界框尺寸的對數偏移量來減輕預測框的尺度敏感,最后將L2范數作為損失函數來優化網絡參數。Fast R-CNN[12]中為了使網絡對于異常值的學習魯棒性更高,提出了L1平滑損失函數。2018年提出的Focal loss[13]解決了訓練時正樣本和負樣本之間的不平衡而導致訓練預測框參數困難的問題。
1.3 非極大值抑制
非極大值抑制(NMS)是大多數目標檢測算法中的最后一個步驟,對于同一個目標預測得到的多個檢測框,非極大值抑制會刪除與最高得分框的重疊部分超過閾值的冗余框。2017年提出的Soft-NMS[14]通過連續IoU函數使網絡學習的魯棒性更高。最近,自適應NMS[15]和Softer-NMS被提出,以用來學習合適的閾值和加權平均算法。在本文中,RIoU Loss的方法也被應用于非極大值抑制步驟中,抑制冗余框時會同時考慮到重疊面積和邊界框的角度偏差。
交并比的表達式:
(1)
式中:Bgt=(xgt,ygt,wgt,hgt)為標注邊界框真值;B=(x,y,w,h)為網絡模型預測邊界框參數。IoU損失函數的表達式為:
(2)
然而,這里的IoU損失函數只能以水平預測框去對比場景圖片里的文字區域,在有角度偏差的情況下也不會提供額外的移動梯度去優化邊界框的回歸,導致檢測準確度無法提高。
2.1 旋轉錨點參數
為了能檢測到旋轉文字區域,在生成錨點時,錨點的參數中加入角度信息θ,由中心點坐標、寬與高、旋轉角度組成:
vanchor=(x,y,w,h,θ)
(3)
式中:θ為邊界框底邊與x軸的夾角。在整個網絡中,從區域建議網絡(Region Proposal Network,RPN)生成目標可能存在的區域,到錨點框在特征圖上得到的候選預測框,再到最后預測框的分類和回歸,整個過程中邊界框的參數都帶有角度信息,網絡可以正確地訓練邊界框的旋轉參數以檢測旋轉目標區域。
2.2 旋轉交并比損失函數的計算
為了更好地訓練旋轉參數,增加預測框參數之間的相關性,本文設計一種旋轉交并比損失函數,損失函數帶有額外的角度懲罰項,將預測框的形狀與角度關聯起來,該懲罰項的定義為:
(4)
如圖1所示,對于寬高比為2∶2的正方形和4∶1的矩形文字框實例,兩種形狀的文字框面積相同,深色的預測框與淺色的標注框之間的角度都相差30度,中心點坐標和寬高都分別相等,此時兩種情況的smooth L1損失函數都是為1的最小值。細長矩形文字框的IoU損失值要大于方形文字框,表明細長文字預測框與標注框重合程度較低。RIoU損失函數的角度懲罰項對于兩種實例得出兩個不同的值,30度的偏差時角度懲罰值都是0.33,但因為寬高比不同,角度懲罰值乘以了一個不同的約束值,約束值和寬高比成正比。對于寬和高相差較大的矩形文本框,角度的偏差會使文字框遠離中心的兩端產生更大的偏差,導致預測框兩端不能框選到文字部分,大幅影響交并比。而寬高相近的方形文字框即使有角度偏差,也能與標注框有較大的重合部分。故式中寬和高平方和與和平方的比值就是用來調整不同形狀的邊界框角度偏移的約束值。最終的旋轉交并比損失函數定義為:
LSmoothL1:1 LSmoothL1:1LIoU:0.3 LIoU:0.66R(B,Bgt)=0.5×0.33 R(B,Bgt)=0.68×0.33圖1 smooth L1損失函數與IoU損失函數兩種情況對比
(5)
當預測框與目標框完全重合時,LRIoU=0;
當兩個邊界框不相交但角度一致時,LRIoU=1;
兩個邊界框不相交且角度有偏差時,LRIoU≤2。
對于旋轉多邊形的IoU計算,我們采用算法1。
算法1RIoU旋轉矩形交并比計算
輸入:預測框x,目標框xgt。
輸出:RIoU。
x=Coordinate transformation(x)
xgt= Coordinate transformation(xgt)
For eachpixal(i,j) do
ifintersection(i,j)>0 then
I=intersection(i,j)
U=rectangle(x)+rectangle(xgt)-I
else
RIoU=0
end if
end for
function Coordinate transformation(boundingbox)
(x1,y1,x2,y2,x3,y3,x4,y4) ← (xc,yc,w,h,θ)
return result
end function
帶有角度的矩形交并比不同于水平矩形交并比的算法,水平矩形之間的相交部分也是矩形,只用通過簡單的寬與高相乘即可得到,而帶有方向的矩形之間,重疊部分都是不規則的多邊形,我們計算多邊形的面積是采用程序中引用多邊形函數庫的方法。在算法1中,x表示預測框的位置形狀參數,xgt表示目標框的位置形狀參數,文字框的參數都是以(xc,yc,w,h,θ)的形式組成。數據集所提供的標注坐標都是以邊界框四個點的形式標注,為了方便計算交并比和繪制邊框,需要將錨點的參數轉化為相同形式的坐標,通過基于基本數學三角函數的坐標轉換函數Coordinate transformation將文字框參數轉化為文字框的四個點坐標,具體為從左上點起順時針計算(x1,y1)到(x4,y4)為方框的四個點坐標。如果預測框與標注框有相交部分,則通過多邊形函數庫求出相交面積I。rectangle(x)為預測框的矩形面積,rectangle(xgt)為目標框的矩形面積。U為聯合區域的面積。由此可以得到預測框與標注框的旋轉交并比。
RIoU損失函數彌補了smooth L1損失函數的不足。如圖2所示的三個實例分別表示不同情況下三種損失函數的值。其中深色框與淺色框分別為預測框和標注框。當預測框和標注框都水平時,RIoU損失函數會簡化為IoU損失函數,僅考慮兩個框的重疊面積。但是現實圖像上絕大部分文字區域都是有旋轉角度的,前兩種情況中因為smooth L1損失函數只考慮邊界框的位置和形狀所以得到的值相同,但明顯兩個框的偏差較大。此時RIoU損失函數就能很好地反饋到預測框的偏差。第三種情況下兩種框的位置形狀完全相等,smooth L1損失函數的值已經最低,無法給網絡傳播梯度,但實際預測到的并不準確。RIoU損失函數可以將角度偏差傳遞給網絡進行優化,對于文字檢測來說,RIoU損失函數對其檢測的準確度有很大提升,能夠增強訓練文本的角度信息,更準確地框選出文本區域。如果需要針對3D空間的目標檢測,也可以設計出合適的定軸旋轉方案。
LSmoothL1:1.4 LSmoothL1:1.4 LSmoothL1:1LIoU:0.3 LIoU:0.7 LIoU:0.6LRIoU:0.3 LRIoU:0.725 LRIoU:0.625圖2 三種損失函數對應不同情況下的值
2.3 旋轉交并比損失函數與邊界框收斂
損失函數作為神經網絡對訓練誤差懲罰的依據,可以直接影響到網絡模型的收斂。相比于smooth L1損失函數單獨地優化錨點參數, RIoU損失函數是將邊界框統一為一個邊界框整體,去訓練邊界框統一后的位置和形狀,從而提供更準確的邊界框預測。RIoU損失函數對尺度沒有敏感性,對于形狀相差很大的邊界框也能進行歸一化后的比較,損失函數的值范圍是[0,2]。如圖3所示,RIoU損失函數與smooth L1損失函數和IoU損失函數相比在快速收斂邊界框形狀的同時,能夠準確地回歸邊界框的角度信息,使預測框與目標框更加匹配,在最后進行評估時減少了很多冗余區域,準確度會有很大的提升。
圖3 三種損失函數回歸結果
在非極大值抑制步驟,我們采用RIoU來替換原始的IoU標準來抑制冗余檢測框。在抑制過程中不但要考慮重疊區域,還要考慮兩個文字框之間的夾角,共同組成預測框的閾值分數。RIoU-NMS定義為:
(6)
式中:M為最高得分的預測框;
ε為非極大值抑制的閾值;
通過考慮IoU和兩個框之間夾角來刪除冗余框Bi;
si為未被刪除的預測框的分數。若某個預測框與最高得分框相交面積較小或角度相差過大,則這個預測框可能是其他目標的檢測框,不應該被抑制刪除。重疊面積較大,但角度相差也很大的預測框也會保留,這樣對于重疊或相交的兩個文本目標就可以被很好地區分檢測出來。
實驗使用一塊TITAN X顯卡,顯存為12 GB,CPU為Intel Core i5-2320 @3.00 GHz×4,內存為15.6 GB。軟件環境為ubuntu16.04,cuda9.0+cudnn7.4.1。遵循相同的訓練方案:每次訓練5萬迭代次數,主干網絡為ResNet-50。
3.1 數據集
本文在文字檢測公共競賽數據集ICDAR 2015[16]上進行了實驗,ICDAR Robust Reading Competition是進行場景文字檢測和識別任務最知名和最常用的數據集。ICDAR 2015數據集共包含1 500幅圖片,其中1 000幅作為訓練圖片,500幅作為測試圖片。圖片內容為隨身穿戴設備拍攝的現實場景照片,照片中的文字都具有透視形狀和角度方向性。
3.2 實驗與分析
本文將增加錨點旋轉參數的方法和RIoU損失函數結合到目前主流的Faster R-CNN檢測算法中。在訓練模型最后的邊界框回歸階段我們使用RIoU損失函數與smooth L1損失函數和IoU損失函數進行了對比。另外,本文還對三種損失函數的回歸情況進行了比較,對比了模型收斂速度和檢測效果。圖4展示了三種損失函數在ICDAR2015上的測試結果。
圖4 ICDAR2015數據集結果對比
圖4(a)中使用smooth L1損失函數的檢測器雖然檢測出比較多的文字區域,但是每個文字區域的框選不夠精準,存在將文字鄰近的邊界圖案一起框選進來的情況。相比之下圖4(b)中IoU損失函數的檢測器對文字區域的框選就更加準確,對文字區域邊框的檢測較為準確,但是因為只能檢測水平區域導致有很多的背景也被框選進來。檢測結果最好的圖4(c)中,使用RIoU損失函數的檢測會對邊界框進行旋轉角度的回歸,相比IoU損失函數,文字區域的框選因為旋轉后向文字的真實區域收縮,框選到多余背景的情況大量減少,對文字區域的檢測更精確。
為了驗證RIoU損失函數對于文字檢測的有效性,將三種損失函數在ICDAR 2015數據集下的測試結果進行了對比。表1展示了測試結果。采用的是相同的官方評估標準。通過最終的檢測結果顯示,使用RIoU損失函數配合網絡中邊界框增加旋轉參數和改進非極大值抑制的方法,相比較于默認檢測方法,召回率和檢測準確率得到11百分點的提升,H-mean得到11百分點的提升。
表1 ICDAR 2015數據集的測試結果
為了驗證每個損失函數對于網絡參數的收斂速度影響,采取了每10 000個迭代次數保存一次訓練模型的方式。圖5所示,RIoU損失函數和IoU損失函數在10 000次迭代時就能獲得很高的檢測準確度,雖然IoU損失函數也會讓網絡模型加快收斂,但在相同的迭代次數下,使用RIoU損失函數的模型檢測準確率要高于IoU損失函數。相比之下,smooth L1損失函數只能較為平緩地優化網絡,需要大量的訓練步數才能達到中等的檢測精準度,一方面是smooth L1損失函數只能單獨優化回歸框的每個參數,向網絡傳播梯度時沒有傳遞足夠的指示性,導致回歸框的參數只能單獨緩慢收斂;
另一方面是對于非水平的文本區域也只能檢測出一個水平方框,會有很多背景區域被框選進來,導致精準度隨訓練步數上升得較慢,最終的結果也不是很高。
圖5 不同迭代次數下精準值
對于損失函數,僅僅使用檢測結果來分析預測框回歸的過程是不夠的。大量隨機的文本區域、位置、比例和角度都是不受控制的因素。在實驗中我們記錄了三種損失函數訓練時的多組數值,綜合考慮收斂情況。圖6為三種損失函數在前200步迭代中的損失函數值的走勢。
圖6 RIoU、IoU和smooth L1損失函數收斂速度對比
圖6中橫軸代表迭代次數,縱軸為損失函數的值。因為smooth L1值的范圍是大于1的,而IoU損失函數和RIoU損失函數值的范圍分別是[0,1]和[0,2],所以圖6中有兩個尺度的縱軸。雖然范圍不同,但可以觀察出smooth L1損失函數初始的損失值很大,之后隨著訓練的進行損失值開始緩慢下降,到了200步附近損失值的下降已經非常緩慢,而且此時的值距離最優值還有很大的差距。相比較IoU損失函數和RIoU損失函數,尤其是RIoU損失函數的下降曲線尤為明顯,在初始的十步訓練中,損失函數很快地下降到與最優值較為接近的數值,之后的迭代中再繼續優化,慢慢逼近最優值。雖然IoU損失函數的下降曲線也明顯領先于smooth L1損失函數,但是在面臨隨機方向的文本框時,還是RIoU損失函數表現更好。
本文設計一種旋轉交并比損失函數用于邊界框回歸。將評價指標交并比引入損失函數,使邊界框參數之間具有相關性,旋轉交并比損失函數可以比原始的smooth L1損失函數更快更好地收斂。并且在邊界框參數中加入角度信息,邊界框回歸的角度偏差歸一化后作為懲罰項來反向傳播,網絡可以更好地檢測隨機方向性的文本目標,在檢測準確率上取得了11百分點的提升。所提出的旋轉交并比損失函數可以很容易地整合到各類目標檢測算法中。在下一步的研究工作中,損失函數的懲罰項還有更多設計的可能性,針對不同網絡模型,尋找到更加合適的損失函數解決方案,這些過程都還需要更加細致的研究。
猜你喜歡邊界損失角度神奇的角度作文小學高年級(2022年3期)2022-04-20拓展閱讀的邊界兒童時代·幸福寶寶(2021年11期)2021-12-21胖胖損失了多少元數學小靈通·3-4年級(2021年5期)2021-07-16意大利邊界穿越之家現代裝飾(2020年4期)2020-05-20玉米抽穗前倒伏怎么辦?怎么減少損失?今日農業(2019年15期)2019-01-03一個涉及角度和的幾何不等式鏈的改進福建中學數學(2018年1期)2018-11-29論中立的幫助行為之可罰邊界證券法律評論(2018年0期)2018-08-31角度不同37°女人(2017年8期)2017-08-12人啊滇池(2017年7期)2017-07-18一般自由碰撞的最大動能損失廣西民族大學學報(自然科學版)(2015年3期)2015-12-07