李井輝, 宋思宇, 湯偉業(yè)
(東北石油大學,計算機與信息技術(shù)學院,黑龍江,大慶 163318)
以號碼簿的身份特征屬性和唯一性為關(guān)鍵線索,將馬拉松運動員識別問題簡化為號碼牌的檢測和識別問題,通過檢測和識別號碼簿識別運動員個體,可為賽事監(jiān)管和過程管控的自動化管理提供幫助。
實際的拍攝圖像通常由多位攝影師以不同的角度、姿態(tài)和位置拍攝,這導致圖像中目標的比例、光照以及角度存在差異。此外,運動狀態(tài)下的身體擺動使得號碼簿上的部分字符產(chǎn)生角度傾斜或字體扭曲變形,從而導致號碼簿的檢測難度加大。當前基于深度學習的號碼簿檢測主要有文本檢測和傳統(tǒng)目標檢測兩種形式,由于號碼簿檢測對后續(xù)號碼簿信息提取和理解起到至關(guān)重要的作用,故而文本檢測算法的使用率較高。WANG等[1]將號碼簿視為一類特殊文字,通過多方向文本檢測算法來確定號碼簿區(qū)域,由于號碼簿自身以及背景文字的干擾,上述方法直接采用文本檢測算法會檢測到大量非號碼簿的文本信息,從而導致算法的檢測性能下降。WONG[2]利用YOLOv3分別檢測號碼簿及單個字符位置區(qū)域,通過多次的檢測來獲取目標區(qū)域,導致檢測速度過慢,無法滿足實時檢測的需求[3]。傳統(tǒng)目標檢測方法由于水平檢測框的限制,對于傾斜褶皺的號碼簿而言,要引入過多背景信息,對模型的訓練以及后續(xù)號碼簿的識別會產(chǎn)生干擾。現(xiàn)有基于深度學習方法的研究在簡單場景下具有較好的識別效果,但未解決在復雜場景下識別率差的問題。
針對以上問題,本文利用RetinaNet[4]較好地平衡了檢測的速度和精度,結(jié)合文本檢測方法的多角度特點,提出基于RetinaNet的旋轉(zhuǎn)目標檢測模型,針對多目標場景下傾斜扭曲號碼簿的漏檢問題,設計旋轉(zhuǎn)檢測框用于匹配傾斜號碼簿,為了避免旋轉(zhuǎn)檢測框中角度回歸的困難,利用環(huán)形平滑標簽(CSL)[5]方法將角度回歸問題轉(zhuǎn)化為角度分類問題,進一步優(yōu)化傾斜號碼簿的檢測精度。實驗結(jié)果表明,相比其他基于深度學習的號碼簿檢測方法[6],本文算法對于形變號碼簿具有較高的檢測正確率,并且對目標的定位更為準確。
RetinaNet在特征提取階段采用的是基于殘差網(wǎng)絡(ResNet)[7]的特征金字塔(FPN)[8]形式,為了減少淺層特征的計算量,去除了通過FPN構(gòu)建得到的P2層特征,保留P3、P4、P5的同時增加了2個高層次特征P6、P7,得到具有5個層次的特征,從而有效地從單分辨輸入圖片中構(gòu)造出豐富的多尺度特征圖。
針對不同尺度的特征圖,RetinaNet在每個位置上都設置了9個不同大小和比例的錨框(Anchor),由于該部分產(chǎn)生了大量候選框,從而產(chǎn)生正負樣本失衡問題。Focal Loss[5]的提出有效地緩解了樣本不平衡導致的模型訓練難度大的問題,在標準交叉熵損失函數(shù)的基礎上設置了一個動態(tài)縮放因子,動態(tài)的降低訓練過程中易區(qū)分樣本的權(quán)重,從而使得模型訓練的損失更關(guān)注于難區(qū)分樣本。Focal Loss的定義如下式:
FL(pt)=-(1-pt)γlog(pt)
(1)
式中,(1-pt)γ為調(diào)制系數(shù)用來控制相關(guān)的權(quán)重值,超參數(shù)γ可根據(jù)訓練數(shù)據(jù)進行相應的調(diào)整,-log(pt)部分為交叉熵損失,具體公式如下:
(2)
式中,y∈{-1,1}為正負樣本的標簽,1表示為正例,p表示為模型預測y=1的概率,為了方便后續(xù)的使用將pt定義為
(3)
此時交叉熵損失函數(shù)簡化為
CE(p,y)=CE(pt)=-log(pt)
(4)
通過對相關(guān)實驗的分析發(fā)現(xiàn),在馬拉松場景中,針對傾斜且密集分布的號碼簿,一方面要考慮目標框是否貼合號碼文本,另一方面要考慮目標框中是否引入過多背景或者其他目標信息。原始RetinaNet提供的水平檢測框具有一定的局限性,因此本文借鑒RRPN[9]旋轉(zhuǎn)框生成策略,在原水平檢測框基礎上設置具有角度信息的旋轉(zhuǎn)Anchor。
基于馬拉松場景下的號碼簿特點,本文在原始RetinaNet的基礎上增加角度信息θ,通過5個參數(shù)(x,y,w,h,θ)來表示帶有方向的Anchor,x、y、w、h、θ分別表示Anchor的中心坐標、寬、高以及Anchor的長邊h與x軸的夾角,其中,θ的取值范圍在[-π/2,π/2]??紤]到拍攝距離等因素可能會導致圖像中號碼簿的大小存在差異,通過對不同場次號碼簿統(tǒng)計發(fā)現(xiàn),除遮擋號碼簿以外,號碼簿的長寬比值變化較小。根據(jù)遮擋和傾斜號碼簿長寬比特點,將Anchor長寬比設置為1∶1、1∶2、1∶3,尺度大小依舊保持為20、21/3、22/3。為了更好地匹配傾斜號碼文本,在原有水平Anchor的基礎上增加6個方向角度-π/12、-π/6、-π/4、-π/3、-5π/12、-π/2。根據(jù)Anchor的生成規(guī)則,圖像特征圖上的每一點將生成72個不同角度、不同大小的Anchor。
在傾斜目標的角度預測中,利用角度回歸的方式很難學習到精確的角度信息,導致檢測框中引入過多背景或者相鄰目標信息,對后續(xù)的識別產(chǎn)生一定的干擾。相比基于水平框檢測方法,改進后的旋轉(zhuǎn)RetinaNet在參數(shù)θ回歸過程中,容易受到角度周期的限制,從而產(chǎn)生邊界問題。角度回歸中的邊界問題如圖1所示,其中,檢測框的長寬是固定不變的,h為長邊,w為短邊。在基于180°角度范圍內(nèi),最佳的角度回歸路線是錨框逆時針旋轉(zhuǎn)到預測框,由于這種回歸方式超出了角度定義的范圍,回歸過程的損失值非常大。此時模型必須將Anchor順時針旋轉(zhuǎn)一個較大的角度,以獲取最后的預測邊界框。
圖1 基于180°范圍的角度回歸
針對角度回歸中的邊界問題,本文結(jié)合CSL,將角度回歸問題轉(zhuǎn)化為分類問題。CSL方法的主要思路是將目標角度作為一個類別標簽,通過分類的方式來限制角度預測的結(jié)果。簡單的分類方式就是將整個定義的角度范圍按照一定比例劃分,即在180°范圍內(nèi),若每10°為一類別,則可分為18類。CSL的具體表達式如下:
(5)
g(x)稱為窗口函數(shù),其中g(shù)(x)可以為滿足以下4個條件的任意函數(shù):周期性、對稱性、單調(diào)性以及g(x)≤1。r用來控制窗口半徑,通過對窗口函數(shù)的設置,使得模型可以衡量預測框與真實框之間的角度距離,即在一定范圍內(nèi)越靠近真實值的預測值的損失值越小[6]。其中本文方法中的窗口函數(shù)為高斯函數(shù)。此時,旋轉(zhuǎn)檢測框的回歸表示為
tx=(x-xa)/wa,ty=(y-ya)/ha
tw=log(w/wa),th=log(h/ha)
(6)
tθ=(θ-θa)·π/180
(7)
(8)
本文所有實驗均在同一實驗環(huán)境下完成,實驗平臺為Inter?CoreTMCPU i7-9700K,8 GB RAM,NVIDIA GeForce GTX 2080 Ti,操作系統(tǒng)為Ubantu 16.04,采用CUDA10.0加速,實驗環(huán)境為Python 3.6,Tensorflow框架。號碼簿檢測所需的實驗數(shù)據(jù)來源于真實馬拉松賽事。
本文的研究對象為馬拉松場景下的運動員圖像,目前公開的馬拉松運動員數(shù)據(jù)集較少,僅有的RBNR數(shù)據(jù)集[1]不僅數(shù)據(jù)量少,而且與真實馬拉松場景下拍攝的圖片存在較大的差異。針對這一問題,本文在不同馬拉松網(wǎng)站上進行數(shù)據(jù)的收集工作,收集到的部分圖像如圖2所示。
圖2 號碼簿數(shù)據(jù)集示例
為了保證運動員數(shù)據(jù)集的多樣性,收集的樣本數(shù)據(jù)中包含各種天氣狀況、賽道起始終點、不同場次、不同拍攝角度的運動員圖片,此外,號碼簿的樣式、字體顏色、字體大小也需要考慮在內(nèi)。最終在收集的圖片中篩選出5000張圖片作為實驗所需的馬拉松運動員數(shù)據(jù)集——Mathon。在對圖片進行標注工作的同時,選取4000張圖片作為訓練集,1000張圖片作為測試集。
為了驗證本文檢測算法的有效性,在Mathon數(shù)據(jù)集上分別對RetinaNet、本文算法以及其他文本檢測算法進行相關(guān)的對比實驗。在測試階段根據(jù)圖像中號碼簿的分布情況,將測試集劃分為簡單場景和復雜場景。其中:簡單場景以單目標為主;復雜場景中號碼簿分布密集,傾斜遮擋以及小目標號碼簿居多。不同算法的檢測結(jié)果使用平均準確率(mAP)作為評價標準。
在號碼簿檢測的對比實驗中,原始RetinaNet采用的是基于水平框檢測方法,而本文方法是基于旋轉(zhuǎn)框,由于兩種方法的數(shù)據(jù)集標注形式不一致,故對本文方法分別進行了兩組實驗:基于水平框和基于旋轉(zhuǎn)框的實驗。基于水平框的實驗中,忽略號碼簿的傾斜問題,分別對原始RetinaNet和本文算法進行對比,實驗結(jié)果如表1所示。基于旋轉(zhuǎn)框的對比實驗主要是針對角度回歸、角度分類方法的對比,實驗結(jié)果如表2所示。
表1 水平框檢測方法對比
表2 旋轉(zhuǎn)框檢測對比
從表1可以看出,在基于水平框的實驗中,RetinaNet在Mathon數(shù)據(jù)集上有較好的檢測效果。文本方法在簡單場景下雖然稍有遜色,但在復雜場景下有所提升,通過上述實驗結(jié)果對比,進一步驗證了本文方法的可行性。由表2的實驗結(jié)果可以看出,相比于角度回歸,角度分類方法的檢測效果更好。其主要原因是在角度范圍的影響下,角度的不確定性導致基于角度回歸方法的精度下降。
為了進一步展示基于水平框和基于旋轉(zhuǎn)框兩組方法的不同之處,在測試集中選取不同分布形式的的號碼簿進行相應的測試,號碼簿檢測效果如圖3所示。其中,圖片的左邊為基于水平框的檢測效果,圖片的右邊為基于旋轉(zhuǎn)框的檢測效果。當圖像中號碼簿分布密集且傾斜時,水平框方法更容易檢測到相鄰目標區(qū)域,而旋轉(zhuǎn)框方法由于角度的設置使得號碼簿的檢測更加靈活。在號碼簿的分布和背景的變化下,本文算法能準確地檢測到號碼簿區(qū)域,說明本文算法對傾斜號碼簿具有較優(yōu)的檢測性能和魯棒性。
(a)密集分布
對于傾斜形變的號碼簿而言,水平框檢測方法無法獲取號碼簿的精確位置,為進一步檢驗本文方法對于號碼簿的檢測性能,分別與CTPN[10]和EAST[11]兩種文本檢測方法進行對比實驗。基于旋轉(zhuǎn)框檢測方法對比結(jié)果如表3所示。
表3 旋轉(zhuǎn)框檢測方法對比
文本檢測與目標檢測方法的不同點在于文本檢測方法更關(guān)注于文字之間的空隙以及文本與背景的區(qū)分。CTPN方法針對的是橫向排列的文本定位,該方法通過生成固定寬度的豎直錨框來檢測文本區(qū)域,而在實際場景中,身體的擺動使得號碼簿的方向變化不定,因此CTPN方法對于不規(guī)則傾斜號碼簿的檢測性能大大降低。與CTPN方法相比,EAST方法更靈活。EAST針對文本區(qū)域提供了兩種形狀的文本預測框:旋轉(zhuǎn)框和水平框,以適應多角度的文本檢測。在馬拉松場景中,EAST方法針對傾斜號碼簿的檢測有了很大的提升,但對于復雜場景下的號碼簿存在漏檢以及誤檢情況,且對號碼簿的定位準確度也較差。由表3實驗結(jié)果可知,相比較于文本檢測算法,本文提出的號碼簿檢測方法在兩種場景下均有很大程度的提升,說明改進后的RetinaNet方法具有較好的檢測性能。
針對馬拉松場景下號碼簿的密集分布、傾斜扭曲等導致現(xiàn)有的檢測方法準確率不高問題,本文提出一種基于改進RetinaNet的號碼簿檢測方法。以RetinaNet作為基礎網(wǎng)絡,設置旋轉(zhuǎn)檢測框用于傾斜目標的匹配,利用CSL方法將旋轉(zhuǎn)檢測框的角度回歸問題轉(zhuǎn)化為角度分類問題,從而滿足目標區(qū)域精確定位的需求。在自主創(chuàng)建的數(shù)據(jù)集Mathon上的實驗表明,本文提出的號碼簿檢測算法對于復雜背景、號碼簿尺度及傾斜扭曲等多種影響因素可較好地提取號碼簿區(qū)域,相比較其他方法,改進后的方法在一定程度上提高了檢測精度。