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