黎蘊(yùn)玉,丁小波,蔡茂貞,鐘地秀,彭 琨
(中移互聯(lián)網(wǎng)有限公司云產(chǎn)品事業(yè)部,廣州 510000)
由于低門檻和輕裝備的特點(diǎn),馬拉松已成為各城市和企業(yè)樂(lè)于舉辦的運(yùn)動(dòng)賽事。全球的馬拉松賽事數(shù)量持續(xù)增長(zhǎng),統(tǒng)計(jì)顯示2019年全國(guó)共舉辦1828場(chǎng)次規(guī)模賽事,覆蓋了全國(guó)31個(gè)省區(qū)市,參加人次達(dá)712萬(wàn)。對(duì)于馬拉松賽事舉辦方而言,將賽事期間為運(yùn)動(dòng)員拍攝的海量照片進(jìn)行云端的精準(zhǔn)分類、推送和管理是一項(xiàng)具有挑戰(zhàn)性的賽事服務(wù)工作。相比于效率低、耗時(shí)長(zhǎng)和成本高的傳統(tǒng)人工分類方式,基于運(yùn)動(dòng)員號(hào)牌智能識(shí)別成了實(shí)現(xiàn)云端海量馬拉松賽事圖片精確分類的重要方法。馬拉松運(yùn)動(dòng)員號(hào)牌字符主要由若干位大小寫字母和數(shù)字任意組合而成,通過(guò)貼在運(yùn)動(dòng)員衣服上進(jìn)行區(qū)分,不同場(chǎng)次的號(hào)牌字符字體、顏色和背景各不相同。由于馬拉松號(hào)牌圖片具有格式多樣、光照多變和扭曲變形等特點(diǎn),設(shè)計(jì)一種魯棒性強(qiáng)、高效的基于號(hào)牌識(shí)別的云端圖片分類方案具有一定的難度。
近年來(lái),研究者進(jìn)行了大量運(yùn)動(dòng)員號(hào)牌識(shí)別的工作,并廣泛應(yīng)用在運(yùn)動(dòng)員圖片分類的任務(wù)上。文獻(xiàn)[2]利用人臉檢測(cè)預(yù)估號(hào)牌位置,再使用SWT精細(xì)定位分割號(hào)碼,最后進(jìn)行TesseractOCR文字識(shí)別。文獻(xiàn)[3]則采用SVM人體檢測(cè)模型、HOG文字檢測(cè)和TesseractOCR識(shí)別模型的多模型融合方法。文獻(xiàn)[4]首先利用可變形部件模型進(jìn)行人體檢測(cè),再使用圖像處理技術(shù)進(jìn)行號(hào)牌檢測(cè)和分割,最后輸入三層BP神經(jīng)網(wǎng)絡(luò)得到單字符的識(shí)別結(jié)果。文獻(xiàn)[5]利用遷移學(xué)習(xí)策略實(shí)現(xiàn)較高精度的號(hào)牌識(shí)別。文獻(xiàn)[6]將YOLOv3人體檢測(cè)模型、CTPN文字檢測(cè)模型和CRNN文字識(shí)別模型進(jìn)行串聯(lián),經(jīng)樹過(guò)濾后實(shí)現(xiàn)號(hào)碼牌識(shí)別。文獻(xiàn)[7]則基于YOLOv4人體檢測(cè)結(jié)果進(jìn)行字符級(jí)CRAFT文字檢測(cè)和基于注意力機(jī)制的號(hào)碼識(shí)別。
基于馬拉松號(hào)牌的特殊性,現(xiàn)有號(hào)牌識(shí)別方法大體采用圖1所示的算法流程。通用的CTPN、EAST等文字檢測(cè)技術(shù)主要針對(duì)自然場(chǎng)景設(shè)計(jì),會(huì)識(shí)別圖片中的所有文字內(nèi)容,因此通過(guò)人體/人臉檢測(cè)和文字檢測(cè)相結(jié)合的方法先檢測(cè)出人體,過(guò)濾冗余信息,再基于人體檢測(cè)結(jié)果進(jìn)行號(hào)牌檢測(cè),該流程雖能有效識(shí)別出號(hào)牌,但也造成模型數(shù)量多、處理復(fù)雜度高和運(yùn)行時(shí)間長(zhǎng)的問(wèn)題。
圖1 常見的號(hào)牌識(shí)別流程
綜上所述,本文主要提出一種基于目標(biāo)檢測(cè)的兩階段號(hào)牌識(shí)別云端圖片分類系統(tǒng),去除圖1中的人體/人臉檢測(cè)和文字分割兩個(gè)模塊,將號(hào)牌直接當(dāng)成目標(biāo)進(jìn)行檢測(cè),有效減少冗余信息,兩階段的號(hào)牌檢測(cè)識(shí)別模型在保證識(shí)別精度的情況下有效提升推理速度,實(shí)現(xiàn)馬拉松圖像的精準(zhǔn)分類和管理。
本文提出了一種基于兩階段號(hào)牌識(shí)別馬拉松圖片分類方法,首先將經(jīng)過(guò)預(yù)處理的圖片通過(guò)RetinaNet模型進(jìn)行號(hào)牌檢測(cè),將裁剪的號(hào)牌檢測(cè)區(qū)域輸入號(hào)牌識(shí)別模型進(jìn)行文字識(shí)別。本方法的具體流程如圖2所示,包含舉辦方終端和云端服務(wù)器兩部分,具體步驟為:①舉辦方終端批量上傳馬拉松賽事圖片和賽事的所有號(hào)牌值至云端服務(wù)器;②在云端服務(wù)器對(duì)圖片進(jìn)行去重、過(guò)濾模糊無(wú)效圖、獲取圖片的屬性信息和角度矯正等預(yù)處理操作;③將預(yù)處理的圖片輸入基于RetinaNet的號(hào)牌檢測(cè)模型定位號(hào)牌區(qū)域,裁剪出號(hào)牌區(qū)域作為號(hào)牌識(shí)別模型的輸入,獲得識(shí)別的號(hào)牌值;④將識(shí)別的號(hào)牌結(jié)果進(jìn)行BK樹過(guò)濾、號(hào)牌聚類等后處理,實(shí)現(xiàn)馬拉松圖片智能分類。
圖2 基于號(hào)牌識(shí)別的馬拉松云端圖像分類圖
現(xiàn)有的號(hào)牌檢測(cè)模型主要使用人體檢測(cè)和文字檢測(cè)的多模型融合或直接使用文字檢測(cè)模型,前者雖然能提升號(hào)牌檢測(cè)準(zhǔn)確率,但處理速度慢、計(jì)算復(fù)雜度高;而后者則會(huì)形成大量冗余文字信息,影響檢測(cè)精度?;谝陨戏治觯疚奶岢鲆环N基于RetinaNet的號(hào)牌檢測(cè)網(wǎng)絡(luò)(如圖3所示),主干網(wǎng)絡(luò)為ResNet50,利用特征金字塔進(jìn)行多尺度特征提取,每個(gè)特征層對(duì)接2個(gè)分支:框分支和類別分支,分別預(yù)測(cè)號(hào)牌框4點(diǎn)矩形坐標(biāo)、是否為號(hào)牌;每個(gè)特征層對(duì)應(yīng)3個(gè)錨點(diǎn)以提取不同尺度目標(biāo),類別分支和方向分支均使用Focal損失函數(shù)緩解類別不均衡問(wèn)題。該模型僅針對(duì)號(hào)牌標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練,能有效檢測(cè)出號(hào)牌區(qū)域,避免冗余文字信息的產(chǎn)生。
圖3 RetinaNet號(hào)牌檢測(cè)網(wǎng)絡(luò)
馬拉松的號(hào)牌文字序列主要由隨機(jī)的字母和數(shù)字組成,并無(wú)明顯的上下文結(jié)構(gòu)信息,而常用的循環(huán)神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制的文字識(shí)別網(wǎng)絡(luò)主要針對(duì)上下文序列信息進(jìn)行識(shí)別。此外,卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)每一步計(jì)算都依賴于前一步的計(jì)算和輸出結(jié)果,存在模型參數(shù)多和推理耗時(shí)的問(wèn)題。
為加快推理速度和提高號(hào)牌識(shí)別準(zhǔn)確率,本文的號(hào)牌識(shí)別模型采用DenceNe(tdense convolutional network)作為主干網(wǎng)絡(luò),CTC(connectionist temporal classification)作為損失函數(shù)實(shí)現(xiàn)非定長(zhǎng)序列的端到端號(hào)牌識(shí)別,具體如圖4所示。DenceNet網(wǎng)絡(luò)主要由卷積神經(jīng)網(wǎng)絡(luò)、Dense模塊和Transition層組成,通過(guò)相互連接所有層的密集機(jī)制減輕梯度消失和加強(qiáng)特征傳遞及重用,其中Dense模塊是指第層連接前面所有層的特征作為輸入,獲得特征x=([,,…,x]);Transition層則是批標(biāo)準(zhǔn)化、卷積和池化層的集合。最后通過(guò)CTC損失函數(shù),利用前向概率求解,直接預(yù)測(cè)出號(hào)牌序列值。
圖4 DenceNet-CTC號(hào)牌識(shí)別模型
(1)Racing Bib Number Recognition(RBNR)。該數(shù)據(jù)集采集了自然場(chǎng)景下三個(gè)不同場(chǎng)次的含馬拉松號(hào)牌的圖片,217張圖片中含290個(gè)號(hào)牌,號(hào)牌均由3~6位純數(shù)字構(gòu)成。
(2)趣味運(yùn)動(dòng)會(huì)數(shù)據(jù)集(FUNNR)。該部分為自行采集的多個(gè)場(chǎng)次趣味馬拉松運(yùn)動(dòng)會(huì)的號(hào)牌圖片集,號(hào)牌由大寫字母、部分特殊字符和數(shù)字組成,共有4653張圖片和9118個(gè)號(hào)牌,部分為遮擋號(hào)牌。
(3)測(cè)試集(TEST)。該測(cè)試集為隨機(jī)采集的馬拉松號(hào)牌圖片126張,共有140個(gè)號(hào)牌,用于整體識(shí)別性能測(cè)試,其中清晰號(hào)牌圖片含106張,有遮擋的圖片20張。
實(shí)驗(yàn)基于Keras實(shí)現(xiàn)并使用英偉達(dá)GTX 1080TI顯卡進(jìn)行訓(xùn)練,對(duì)RBNR和FUNNR兩個(gè)數(shù)據(jù)集按9∶1劃分訓(xùn)練集和測(cè)試集,用于模型的訓(xùn)練和測(cè)試,并采用平移、隨機(jī)裁剪、加噪聲和生成樣本等多種數(shù)據(jù)增強(qiáng)方式提升樣本的豐富性。
該部分進(jìn)行了號(hào)牌檢測(cè)的RetinaNet和EAST兩個(gè)算法對(duì)比實(shí)驗(yàn),如表1所示,在RBNR和FUNNR兩個(gè)測(cè)試集上,RetinaNet的檢測(cè)準(zhǔn)確率均表現(xiàn)良好,表明對(duì)比EAST算法,本方法能有效減少誤檢測(cè)情況。
表1 號(hào)牌檢測(cè)算法對(duì)比
為了證明本文提出的號(hào)牌識(shí)別算法的有效性,我們將DenseNet-CTC和TesseractOCR進(jìn)行實(shí)驗(yàn)對(duì)比。如表2所示,本文提出的號(hào)牌識(shí)別算法在兩個(gè)數(shù)據(jù)集上的編輯距離和準(zhǔn)確率指標(biāo)均高于TesseractOCR。其中準(zhǔn)確率是指字符均正確識(shí)別的號(hào)牌數(shù)占總號(hào)牌數(shù)的比例。
表2 號(hào)牌識(shí)別算法對(duì)比
針對(duì)FUNNR數(shù)據(jù)集訓(xùn)練的模型進(jìn)行測(cè)試集(TEST)的整體識(shí)別性能測(cè)試,具體的識(shí)別結(jié)果如圖5所示,對(duì)于單號(hào)牌圖片圖5(a),本方法能正確檢測(cè)和識(shí)別出號(hào)牌內(nèi)容,而對(duì)于有遮擋的多號(hào)牌圖片圖5(b),本文方法也表現(xiàn)出良好的識(shí)別效果,證明本方法的有效性和良好的泛化性。
圖5 識(shí)別結(jié)果圖
在本次的測(cè)試中共檢測(cè)出號(hào)牌122個(gè),其中正確識(shí)別120個(gè),錯(cuò)誤識(shí)別2個(gè),漏識(shí)別20個(gè),準(zhǔn)確率為98.26%,召回率為85.71%。其中CPU上平均單張圖片的處理時(shí)間為0.748秒,對(duì)比文獻(xiàn)[3]中2.19秒的單幅圖片處理時(shí)間,本方法的處理速度提升了3倍。
針對(duì)日益增長(zhǎng)的云端馬拉松圖片,本文設(shè)計(jì)了一種基于目標(biāo)檢測(cè)的兩階段號(hào)牌識(shí)別策略進(jìn)行馬拉松圖片分類,本方法分別利用RetinaNet和DenseNet-CTC進(jìn)行號(hào)牌檢測(cè)和識(shí)別,在保證識(shí)別準(zhǔn)確率的同時(shí)有效提升運(yùn)行速度,對(duì)局部有遮擋的多號(hào)牌圖片仍能有效識(shí)別。