李健昱,王慧琴*,劉 瑞,王 可,王 展
(1. 西安建筑科技大學 信息與控制工程學院,陜西 西安 710055;2. 中國社會科學院 考古研究所,北京 100101;3. 陜西省文物保護研究院,陜西 西安 710075)
骨簽出土于漢長安城未央宮遺址,數量巨大,記錄了西漢王朝地方工官向皇室和中央上繳的各種產品,是西漢王朝中央政府備查的重要文字資料,同時也是秦漢考古方面不可多得的寶貴研究資料,對其內容的解讀、性質的判定極其必要[1-2]。由于骨簽年代久遠,其表面不可避免地出現了裂痕、磨損等紋理背景干擾,骨簽上所刻文字也存在部分粘連和缺失,因此提取骨簽文字信息需依靠文物專家的經驗。然而骨簽數量龐大,人工檢測并提取骨簽文字信息的工作量巨大,因此使用數字圖像處理等技術對骨簽文字進行自動檢測十分必要。
隨著深度學習技術的發展,越來越多的目標檢測技術[3]應用到文字檢測中,代表算法有SSD[4]、R-CNN[5]、Faster-RCNN[6]、RetinaNet[7]和YOLO[8](You Only Look Once)等。其中,Redmon 等在2016 年提出的YOLO 系列性能更高,最具有代表性。YOLO 將目標檢測問題視為回歸問題,進而將目標和背景更好地進行區分。Redmon 等[9]在2017 年提出YOLOv2,使用darknet-19 網絡作為主干網絡,在簡化網絡結構的同時提高了目標檢測的準確率。劉杰等[10]提出一種基于YOLOv2的改進方法,對目標候選框聚類分析,并將其應用于自然場景中文字符檢測中。之后,Redmon[11]在2018 年提出YOLOv3,在保持高檢測速度的同時提高了檢測精度。殷航等[12]將YOLOv3 與最大極值穩定區域相結合,實現了傾斜文本行的檢測。Alexey[13]在2020 年提出YOLOv4,使用CSPDarknet53 作為主干網絡并采用FPN 和PAN融合特征圖,進一步提高了檢測準確率。同年,Ultralytics[14]提出了YOLOv5,模型檢測準確率高于以往的目標檢測模型且檢測速度快,YOLOv5也因此成為目前目標檢測表現最好的網絡模型之一[15-18]。本文主要針對骨簽文字檢測。骨簽存在大量與文字特征相似的裂痕,使用YOLOv5 等現有技術進行文字檢測會受到裂痕等復雜紋理背景信息的干擾,產生誤檢問題。骨簽文字具有密集、粘連的特點,現有技術檢測骨簽文字時會出現檢測框冗余,造成一框多字的問題。
針對上述問題,本文基于YOLOv5 提出改進的骨簽文字檢測算法SAC-YOLOv5(Self-Attention Convolutional-YOLOv5)。該算法通過融合自注意力卷積關注骨簽文字位置信息,擴展模型捕獲特征圖全局信息和豐富上下文信息的能力,并引入損失函數Focal-EIOU Loss 替換原網絡的CIOU 計算定位損失,提高模型的精準定位能力。實驗結果表明,本文算法在保持較快檢測速度的同時提高了骨簽文字的檢測精度。
為了解決現有檢測算法在骨簽文字檢測中的問題,本文基于YOLOv5 提出復雜紋理背景下的密集骨簽文字檢測算法,主要包括Input 輸入端、Backbone 特征提取端、Neck 頸部端和Prediction 預測端。Input 端使用Mosaic 數據增強和自適應錨框(Anchors)計算方法。Backbone 部分由切片結構Focus、4 次卷積ConV、C3 模塊、空間金字塔池化(Spatial pyramid pooling,SPP)模塊和SAC 模塊組成。SAC 模塊加強網絡對骨簽文字深層特征的注意,同時擴展模型捕獲特征圖全局信息和豐富上下文信息的能力,抑制骨簽圖像上裂痕對文字檢測的干擾;Neck 端采用FPN(Feature Pyramid Networks)[19]和PAN(Pyramid Attention Network)[20]結構融合特征圖,經過下采樣輸出端生成3 個特征圖用于檢測不同尺寸的目標,同時引入損失函數Focal-EIOU Loss 替換原始網絡的CIOU 計算定位損失。其中,EIOU 使用預測框和真實框的寬和高損失代替縱橫比,從而使預測框與真實框的寬度和高度之差最小,生成預測框時能剔除大于真實框的預測框,解決了骨簽文字檢測框冗余的問題。本文提出的骨簽文字檢測算法SAC-YOLOv5 網絡結構如圖1所示。

圖1 SAC-YOLOv5 網絡結構Fig.1 SAC-YOLOv5 network architecture
骨簽由于年代久遠,出現了與文字特征相似的裂痕、磨損等復雜紋理背景信息,在進行文字特征提取時困難較大。為了從裂痕等信息干擾的骨簽圖像中提取到更精確的骨簽文字特征信息并使模型聚焦到這些文字信息上,本文提出自注意力卷積模塊,具體結構如圖2 所示。

圖2 SAC 模塊結構Fig.2 Self-attention convolutional module architecture
輸入特征圖F∈RH×W×C首先經過全局平均池化操作,然后進行卷積核大小為k的一維卷積操作,并經過Sigmoid 激活函數得到各個通道的權重,最后將權重與原始輸入特征圖對應元素相乘,得到的特征圖輸入到空間自注意力機制中,沿空間維度展開得到矩陣F∈RN×C,其中N=H·W,C表示不同圖像區域的高維向量。然后通過可學習的權重矩陣Wq∈RC×C',Wk∈RC×C',Wv∈RC×C'分別計算得到Q、K、V3 個向量,其中C'=C/r,r>1,r是還原比,用于減少向量的維數,并計算注意權重和低維子空間中的值。
式中:α∈RN×N為自注意矩陣;aij是區域i對區域j的注意權重;V∈RC×C'是低維子空間中的權重矩陣,使用Wv∈RC×C'將其投射到原始子空間獲得自注意特征圖S∈RC×C',最后通過殘差連接獲得最終的輸出。
其中,a是初始化為0 的可訓練標量參數。SAC模型首先學習局部鄰域周圍的圖像特征,然后逐漸繼續學習全局依賴關系,為網絡提供具有豐富內容和上下文信息的特征圖,在關注骨簽文字位置信息的同時擴展模型捕獲特征圖全局信息和豐富上下文信息的能力,優化特征提取時混淆裂痕特征與文字特征的問題。
YOLOv5 的損失函數由分類損失、定位損失和置信度損失組成。其中定位損失使用CIOU[21]計算。CIOU 考慮了邊界框回歸的重疊面積、中心點距離、縱橫比,其計算公式為:
其中:IOU 為交并比,b和bgt分別表示預測框和真實框的中心點,ρ(·)表示歐幾里得距離,c表示包含預測框和真實框的最小外接矩的對角線長度,α是用于平衡比例的參數:
v用于衡量預測框和真實框寬和高之間的比例一致性:
式中:wgt、hgt代表真實框的寬和高,w和h代表預測框的寬和高。
由公式(7)可得,CIOU 使用的是預測框和真實框的寬和高的相對比例,并不是寬和高的值。根據縱橫比v的定義,可以看出當預測框的寬和高和真實框的比例滿足:
即預測框和真實框的寬高縱橫比呈線性比例時,CIOU 中添加的相對比例的懲罰項便不再起作用。從預測框的寬和高的相對于v的公式:
可以推導出:
預測框w和h的梯度值和具有相反的符號。在預測框回歸過程中w和h其中某一個值增大時,另外一個值必須減小,不能同增或者同減。由于骨簽文字具有密集和粘連的特點,因此在骨簽文字檢測時使用CIOU 作為損失函數,縱橫比v決定了預測框的寬和高不能同增或同減,總是會出現預測框大于真實框的情況,從而導致一框多字的問題。
為了解決這個問題,采用EIOU[22]替換原網絡的CIOU 計算定位損失。EIOU 計算公式為:
其中,cw和ch分別是預測框和真實框最小外接矩形的寬和高。EIOU 將損失函數分成了3 個部分:預測框和真實框的重疊損失LIOU、預測框和真實框的中心距離損失Ldis以及預測框和真實框的寬高損失Lasp。
EIOU 損失的前兩部分延續CIOU 中的方法,第三部分使用寬高損失代替縱橫比。寬高損失使預測框與真實框的寬度和高度之差最小,生成預測框時能剔除大于真實框的預測框,解決檢測框冗余問題。圖3 是CIOU 和EIOU 損失預測框迭代過程對比圖,橘色點線框是真實框,黑色實線框是預先設定的錨框,紅色虛線框和藍色虛線框是預測框的回歸過程。

圖3 預測框迭代過程對比圖Fig.3 Prediction box iterative process comparison diagram
為了更好地提高模型性能,使用Focal L1 損失針對文字和裂痕內容失衡的樣本將錯誤率大的地方設置更高梯度,如式(13)所示,降低低質量骨簽樣本對模型性能的影響。通過整合EIOU損失和Focal L1 損失,得到最終的Focal-EIOU 損失,如式(14)所示:
骨簽數據來源于中國社會科學院考古研究所。由于年代久遠,表面不可避免地出現了裂痕。骨簽文字具有密集、粘連的特點,骨簽圖像樣本及標注結果如圖4 所示。本文骨簽文字數據集采用“LabelImg”標注工具進行人工標注,標注信息存儲至txt 標簽文件,共計標注2 500 張骨簽數據,按照8∶2 的比例劃分訓練集和驗證集。

圖4 實驗數據Fig.4 Experimental data
YOLOv5 中使用了Mosaic 數據增強方法,主要思想是將4 張圖片隨機裁剪縮放后拼接成一張圖片,在豐富數據集的同時增加小樣本目標,提高網絡的魯棒性。一次性計算4 張骨簽圖片使模型對內存的需求降低。本文在Mosaic 思想的基礎上,將8 張骨簽圖片隨機裁剪、排列、縮放后拼接成一張圖片,以此增加骨簽圖像中小文字樣本,增加數據多樣性并提升網絡的訓練速度。數據增強的流程如圖5 所示。

圖5 數據增強Fig.5 Data enhancement
本文使用Windows10 64 位系統,實驗環境為python3.7、pytorch1.8.0、cuda11.1。所有的模型都在NVIDIA RTX 3090Ti GPU 運行,在相同超參數下進行訓練、驗證和測試。圖片設置為640×640 JPG 格式,Batch size設置為8,訓練200個epoch,選取準確率(Precision,P)、召回率(Recall,R)、平均精度均值(mAP0.5)、每秒10 億次的浮點運算數(GFLOPs)、權重大小(Weight)和實際檢測速度(FPS)作為評價指標。其中P和R的計算公式如(15)和(16)所示:
式中:TP(True Positive)表示真正例,即預測正確的文字數量;FP(False Positive)表示假正例,即非文字樣本被預測為文字的數量;FN(False Negative)表示假負例,即文字樣本被預測為非文字的數量。GFLOPs 用于衡量訓練模型時的計算復雜度。mAP 為學習的類別精度均值。mAP0.5表示將交并比IOU 設為0.5 時,骨簽圖像文字數據集的AP 的平均值。精度均值AP 為以準確率(Precision)和召回率(Recall)所圍成的曲線面積值。因本文檢測目標為單類別目標,故mAP 值與AP 值相等。mAP 計算公式如式(17)所示:
YOLOv5 目標檢測網絡結構共有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 4 個模型,網絡深度和寬度逐次遞增。在自建骨簽文字數據集上對YOLOv5 基礎模型對比,結果如表1 所示。

表1 YOLOv5 基礎模型結果對比Tab.1 Compared results of Yolov5 basic model
如表1 所示,隨著網絡深度和寬度的遞增,mAP 值基本保持一致,而計算量和模型權重文件逐漸增大,導致訓練時間變長,檢測實時性下降明顯。本文以檢測精度和速度為側重點。由于在檢測精度基本保持一致時,模型實時性會因為網絡規模的增大而降低,因此選擇YOLOv5s作為基礎網絡進行改進,模型參數量和計算量較小,具有更好的實時性和檢測精度,能更好地滿足骨簽文字檢測的實際項目需求。
為驗證引入多頭注意力機制及改進損失函數的有效性,本文進行消融實驗評估不同模塊在相同實驗條件下對骨簽文字檢測算法性能的影響。在消融實驗中選擇YOLOv5s 作為基準模型,結果如表2 所示。

表2 消融實驗結果Tab.2 Experimental results of ablation
消融實驗中,模型B 表明在引入SAC 模塊后,mAP0.5 在YOLOv5s 的基礎上提升了1.88%,證明了SAC 模塊的有效性,但檢測速度降低,分析認為SAC 計算需要消耗較大的計算資源,且檢測速度與計算復雜度呈負相關性。因此,為提高訓練效率,本文只在特征提取網絡中插入SAC 結構。模型C 驗證了改進損失函數后的網絡性能,mAP0.5 提高了1.05%,解決了骨簽文字密集、粘連產生的一框多字問題。模型D 驗證了最終改進模型的性能,mAP0.5 比原YOLOv5s 提高了3.08%,證明了本文改進方法對骨簽文字檢測的有效性。
為了進一步驗證自注意力卷積模塊的有效性,利用CAM[23]方法繪制增加SAC 模塊前后的骨簽圖像的熱力圖,結果如圖6 所示。

圖6 熱力圖對比結果Fig.6 Thermodynamic diagram comparison results
由于骨簽圖像背景復雜,文字與裂痕紋理信息過于相近,未經過SAC 模塊的骨簽文字目標區域激活值較低且激活范圍小,難以有效反映出真實文字目標位置;而經過SAC 模塊后,相對更準確地在骨簽文字目標區域形成聚焦產生了較高的激活值。由此可見,本文提出的SAC 模塊有效增強了骨簽文字的特征,抑制了檢測中復雜紋理背景對文字檢測的干擾。
為了驗證改進損失函數的有效性,對改進前后的模型檢測效果進行可視化,結果如圖7 所示。

圖7 Focal-EIOU 改進前后的對比結果Fig.7 Comparison results of Focal-EIOU before and after improvement
可以看出,使用CIOU 作為損失函數對粘連骨簽文字進行檢測時,出現了檢測框冗余現象;而使用Focal-EIOU 作為損失函數時,完整地檢測到每個文字,驗證了Focal-EIOU 的有效性。
為驗證所提算法的先進性,在自建骨簽數據集上與當前幾種主流算法在相同訓練環境下進行客觀指標對比,結果如表3 所示,P-R曲線如圖8所示。

表3 不同算法的對比實驗Tab.3 Contrast experiment of different algorithms

圖8 對比實驗的P-R 曲線圖Fig.8 P-R curves of contrast experiments
由圖8 實驗結果可得,在相同實驗條件下本文算法的精確率、召回率和平均精確率均優于對比算法,mAP0.5 比YOLOv4 提高了11.23%;檢測速度相較于改進前的YOLOv5s略有下降,但仍優于其他對比算法。為進一步驗證本文算法對骨簽文字的檢測效果,選取上述經典檢測算法與本文算法針對含有裂痕干擾、粘連骨簽文字以及密集骨簽文字3 種典型問題進行測試驗證,圖9 展示了裂痕干擾樣本。圖10 展示了粘連骨簽文字樣本。圖11 展示了密集骨簽文字樣本的檢測結果。

圖9 裂痕干擾樣本的檢測結果對比Fig.9 Comparison of detection results of crack interference samples

圖10 粘連骨簽文字樣本的檢測結果對比Fig.10 Comparison of test results of adhesive bone stick text samples
圖9 中,骨簽有嚴重的裂痕信息干擾,其他對比算法均產生了漏檢,本文算法則完整地檢測到裂痕干擾下的骨簽文字。圖10 為粘連骨簽文字的檢測結果,RetinaNet、YOLOv3、YOLOv4 將粘連文字檢測為一個文字,SSD 存在漏檢文字,Faster-RCNN、YOLOv5s產生了檢測框冗余問題,本文算法則很好地檢測出粘連文字。圖11 所示為密集骨簽文字的檢測結果,SSD、YOLOv3、YOLOv4、YOLOv5s 等算法均產生了漏檢問題,本文算法則完整地檢測出每個文字,檢測結果較理想。在實驗中,發現本文算法檢測的置信度較低,分析認為YOLOv5 加入了標簽平滑,標簽平滑是一種正則化技術,它擾動目標變量,如果出現錯誤標簽,算法受到的影響就會更小。對比實驗表明,本文算法相比其他對比算法能更有效地檢測骨簽文字。
針對骨簽存在裂痕等復雜紋理背景干擾、文字密集及粘連的問題,本文提出融合自注意力卷積和改進損失函數的骨簽文字檢測算法,建立了骨簽文字數據集,基于此數據集進行訓練和對比實驗。首先,使用Mosaic 數據增強,增加小樣本目標,提升網絡的訓練速度;其次,設計自注意力卷積模塊加入特征提取網絡中,通過為文字信息分配更大的權重增強網絡對骨簽文字特征的注意,同時綜合利用各子空間的特征信息,緩解單純使用自注意力機制產生的過度集中自身位置信息的問題,從全局提取出更多的有效特征,獲得更豐富的上下文信息,抑制骨簽圖像上裂痕對文字檢測的干擾;最后,采用Focal-EIOU 損失函數替換原網絡的CIOU 進行優化,使用寬高損失使預測框與真實框的寬度和高度之差最小,提高模型的精準預測能力。實驗結果表明,本文算法針對骨簽文字檢測的mAP0.5 達到了93.35%,在檢測速度基本不變的情況下,有效增強了YOLOv5 的魯棒性和骨簽文字的檢測能力,解決了大量檢測框冗余、漏檢和誤檢的問題,對復雜紋理背景下的密集粘連骨簽文字檢測任務更為適用。