王紅芳,王宇航,宣靜雯,張凱兵
(1.西安工程大學 圖書館,陜西 西安 710048;2.西安工程大學 電子信息學院,陜西 西安 710048;3.西安工程大學 計算機科學學院,陜西 西安 710048)
如今,高校圖書館普遍采用開放式流通模式,為學生和教師提供了極大的便利。然而,由于讀者在借閱和暫讀圖書時行為不規范,導致書架上圖書錯序問題日益突出。這不僅給其他讀者帶來了不便,還增加了工作人員圖書管理的負擔。為適應信息時代的發展,滿足學生和教師的學習、研究和閱讀需求,智慧圖書館以信息技術為支撐,旨在將數字化、智能化和網絡化應用于圖書館的各個環節。目前,圖書館的在架圖書錯序檢查與整理通常采用人工方式,這不僅耗費人力,而且需要時間較長,嚴重影響圖書館的服務質量。因此,研究智能化的自動化在架錯序圖書檢測方法對于實行智能圖書館至關重要。
索書號是圖書館組織和管理圖書的重要標識信息,對分類、歸檔和檢索圖書至關重要。傳統的在架錯序圖書檢測采用人工目視檢查、手動比對和字符校驗方法,不僅耗時費力,而且容易出錯、遺留。隨著技術進步,現代圖書館管理致力于智能化的索書號檢測方法,以提高在架錯序圖書管理的效率和準確性。例如,文獻[1]利用RFID 算法設計了基于移動機器人的圖書錯序檢測系統,不過該系統建設成本高,不利于應用推廣。
當前,人們廣泛關注于利用計算機視覺技術的目標檢測與識別方法。這些方法一般通過收集大量標注好的樣本構造數據集,使用卷積神經網絡[2]、循環神經網絡[3]和支持向量機[4]等機器學習模型學習感興趣目標的特征,實現目標的檢測與識別。文獻[5]結合機器視覺與光學字符識別,提出了基于OpenCV 和Tesseract 的書脊識別系統。另外,隨著基于深度卷積網絡的目標檢測算法的出現,為自動化的索書號檢測提供了十分有效的方法,具有代表性的有單階段檢測算法SSD[6]、YOLOv3[7]、YOLOv4[8]、YOLOv5、YOLOv7[9]等,以及多階段檢測算法R-CNN[10]、Fast R-CNN[11]、Mask R-CNN[12]等,這些自動化的索書號檢測方法在檢測精度與速度上具有明顯的優勢。例如,文獻[13]提出了使用經典的卷積神經網絡AlexNet 通過移動攝像頭實現圖書檢測。文獻[14]提出了基于閱讀文本場景下的深度學習文本識別模型。文獻[15]提出了基于霍夫變換算法檢測書脊邊緣和顏色直方圖進行圖書索書號區域分割的圖書錯序檢測方法。針對文獻[15]方法對復雜背景下分割圖書索書號區域存在的魯棒性問題,文獻[16]進一步提出通過YOLOv3-Tiny 模型進行索書號的定位與錯序檢測,該方法通過對深度學習網絡框架不斷優化,為智能化索書號檢測與識別提供了更有效的途徑。由于在架圖書種類繁多,書脊顏色復雜多樣,厚度外觀不統一,對在架圖書索書號定位與識別帶來了極大挑戰。
本文提出了一種基于U2-Net深度網絡的在架圖書索書號定位與識別方法。首先通過構造U2-Net模型實現復雜背景下的圖書索書號的粗分割,然后利用投影波谷法對單個索書號進行精細化分割,再將分割后的索書號區域圖像利用光學字符識別庫Tesseract 對索書號字符進行識別,利用識別出的索書號的排序關系判斷當前書架是否存在錯序圖書,從而實現智能化的錯序圖書檢測與定位,以提高圖書館工作人員的工作效率與圖書館服務質量。
U2-Net 是一種用于圖像分割的深度學習模型,專門針對顯著性目標檢測任務,其目標是從輸入圖像中精確提取前景和背景之間的邊界。本文利用U2-Net 的特殊網絡結構,能夠有效地將所需的索書號區域完整地分割出來。U2-Net 采用了一種嵌套的U 形結構,通過一系列的編碼器與解碼器模塊對圖像中的多尺度特征進行提取。本文采用的U2-Net 結構包括五個階段,每個階段都有負責逐步減小特征圖空間分辨率從而提取更深層次特征的編碼器,以及逐步恢復圖像空間分辨率的解碼器。U2-Net的具體網絡結構如圖1 所示。

圖1 U2-Net 網絡結構圖
U2-Net 的編碼器階段由多個Residual U-block 組成。通過多個階段的編碼器逐漸減小特征圖尺寸,從而提取多尺度的語義信息,而在解碼器中,U2-Net 利用多尺度的特征融合,通過將編碼器和解碼器的特征圖進行連接或融合,以獲得豐富的語義信息和細節,最后通過卷積層將特征映射到最終的分割結果。
Residual U-block 主要由三個部分組成:首先是輸入卷積層,它將輸入特征圖轉換為具有通道數C的中間特征圖F1(x)。這個輸入卷積層是一個普通的卷積層,用于局部特征提取。接下來是一個類U-Net 對稱編碼器-解碼器結構,它的高度為L,并以中間特征圖F1(x)作為輸入。該結構學習提取和編碼多尺度上下文信息U(F1(x))。較大L值意味著更深的Residual U-block、更多的池化操作、更大范圍的感受野以及更豐富的局部和全局特征。通過配置合適的L值,可以從具有任意空間分辨率的輸入特征圖中提取多尺度特征,從而減輕由于大尺度直接上采樣引起的細節損失。最后,通過殘差連接求和融合局部特征和多尺度特征,這種殘差連接的方式有助于保留原始特征的信息,并提高網絡的表達能力,由于每個block 中的池化操作,使得整個架構的深度足夠深的同時,保持著高分辨率,并且不會顯著增加顯存和計算量的開銷。
對在架圖書索書號區域進行分割時,獲取高分辨率特征圖非常重要。因此,選擇使用每個Residual Ublock 結構層數隨著encoder 層數增加而減少的網絡結構。具體地,在編碼部分的第一層、第二層、第三層和第四層分別使用RSU-7、RSU-6、RSU-5 和RSU-4,其中數字代表Residual U-block的高度L;而在底層的En_5和En_6則采用RSU-4 模塊,即只進行特征提取而不改變特征圖尺寸的Residual U-block。這樣,通過該模塊的中間特征圖都具有與其輸入特征圖相同的分辨率大小。各階段編碼器結構如圖2 所示。

圖2 各階段編碼器結構
解碼器結構與上述編碼器結構類似,嚴格按照與編碼器結構對稱的方式設計,同樣由相同數量和層次的Residual U-block 組成。不同的是,在解碼階段,每通過一個block,圖像進行2 倍的上采樣,采用雙線性插值方法。通過對稱的解碼器逐步進行上采樣和特征融合,最終生成與輸入圖像尺寸相同的分割預測。每個解碼器階段將來自前一階段的上采樣特征圖和來自對稱編碼器階段的上采樣特征圖連接作為輸入。此外,U2-Net 還包括一個顯著圖融合模塊,用于生成顯著性概率圖。該模塊通過一系列操作生成多個顯著性概率映射,并將它們融合成最終的顯著性概率圖S_fuse,如圖3 所示。U2-Net 是一種在圖像分割任務中性能出色的深度學習模型,特別在顯著對象檢測等任務中表現出色,它通過多尺度特征融合、Residual U-Block 和非局部注意力機制等設計,有效地提取圖像中的邊界和細節信息,能實現復雜圖書書脊區域中索書號區域的準確分割。

圖3 各階段解碼器模塊
在優化U2-Net 的圖書索書號區域分割模型時,聯合使用二進制交叉熵損失(Binary Cross Entropy Loss)與結構相似性損失(Structural Similarity Loss)。其中,二進制交叉熵損失用于衡量預測分割結果中每個像素點的分類準確度。對于每個像素位置,U2-Net 的輸出經過Sigmoid 函數進行歸一化,將像素的前景概率限制在[0,1]范圍內。真實標簽中的像素點被標記為1,表示前景;背景則標記為0。該損失的計算公式如下:
式中:N表示圖像中像素點的總數;y表示真實標簽(0 或1);p表示模型的預測結果概率值。
結構相似性損失用于衡量預測分割結果與真實標簽之間的結構相似性。它有助于模型更好地保留圖像的結構信息,減少分割結果中的偽影和細節損失。結構相似性損失的計算公式如下所示:
最終,U2-Net 的總損失由二進制交叉熵損失和結構相似性損失之間的加權和構成,表示如下:
式中α表示平衡二進制交叉熵損失和結構相似性損失使用的權重系數。
得益于U2-Net 網絡分層架構、多尺度特征融合能力,使得該網絡能夠有效地捕捉圖書索書號區域與書脊區域之間的差異,能較好地實現對圖書索書號區域的粗分割。圖4 是使用U2-Net 網絡對圖書索書號區域分割的結果,由圖4 可以看出,盡管U2-Net 能實現整體上圖書索書號區域的分割,但每個圖書的索書號區域之間分割存在不同程度的粘連和模糊,無法直接準確實現單個圖書索書號區域的分割。

圖4 U2-Net 網絡分割結果
由于書籍之間存在縫隙,索書號難以清晰地分割出來,為獲得完整的索書號進行識別操作,必須對單個索書號進行進一步的精分割處理。通過對分割結果進行分析,發現對于難以分割的書籍縫隙與圖像中其他列存在著一些灰度值的差異。然而,由于索書號存在不同的高度,導致不同索書號之間難以區分,因此閾值分割難以達到需要的分割效果。為了實現更準確的單個圖書索書號的精確分割,本文采用一種劃分區域灰度波谷的方法。該方法首先對圖像進行腐蝕處理,腐蝕核為3×3的矩陣,迭代次數為3次,這樣可以增強不同圖書索書號區域在列方向上灰度值之間的差異,使得索書號之間的縫隙更為明顯;然后通過對列方向的灰度值加和并放大一定倍數,對列灰度值沿水平軸方向進行投影,并生成單列灰度和直方圖,通過對直方圖進行分析,找到局部波谷,并利用大津法設立閾值,消除書脊中間各類字體帶來的誤差;接著利用波谷處的水平坐標將此坐標對應至分割圖像處,并對該位置左右各增加適當像素值的列方向灰度置零,最終得到索書號分割圖,處理過程如圖5 所示。
圖5a)是在架圖書樣例圖;圖5b)是U2-Net 網絡分割結果;圖5c)是對圖5b)中U2-Net 網絡分割結果采用投影法獲得的投影結果;圖5d)利用圖5c)投影波谷法進一步精分割的結果;圖5e)是聯合U2-Net 網絡和投影波谷法分割的最終結果。由圖5 中結果可以看出,采用投影波谷法能實現準確的索書號區域分割,有利于后續索書號的準確識別和錯序分析。
為驗證本文算法對于索書號錯序檢測的有效性,本文從筆者所在單位圖書館書架上采集了300幅圖像構成了數據集,這些圖片均來源于真實的圖書館環境中捕捉的在架圖書索書號,每張圖像的分辨率為4 000×1 840,背景非常復雜,對于分割索書號具有很大的挑戰性。使用LabelImg對采集的圖像索書號區域進行標注,并將其轉化為掩碼圖,采用隨機抽取法將其中70%作為訓練集,15%作為驗證集,15%作為測試集。在實驗中,采用Python 3.7作為編程語言,并使用PyTorch 1.10.0 作為深度學習框架。實驗運行的計算設備是GeForce RTX 4070 顯卡。
在訓練U2-Net 模型時,輸入圖像大小為4 000×1 840 像素,激活函數采用ReLU 函數,權重初始化采用Xavier 初始化方法。訓練次數為300 個epochs,初始學習率設置為0.001,Batchsize 設置為6,在訓練過程中每隔10 個epochs 將學習率按照0.1 的衰減因子進行衰減。如果在驗證集上的性能指標連續10 個訓練周期沒有明顯提升,將觸發提前停止機制,即停止訓練過程。
為評價本文提出的圖書索書號區域分割的有效性,使用準確率(Precision,P)、召回率(Recall,R)和平均精度(mAP)三個性能指標進行定量評估。采用YOLOv2、YOLOv3-Tiny、YOLOv3、YOLOv4 和U-Net 等5 種不同網絡模型與本文方法進行對比,不同方法的性能對比指標結果如表1 所示。

表1 六種網絡模型的性能指標對比 %
從表1 中的對比結果可以看出:YOLOv2 因采用單一尺度網絡結構,在檢測不同尺度的索書號區域上存在較大局限性,準確率、召回率和mAP 指標值均較低;YOLOv3 增加了網絡深度、多尺度輸出和殘差網絡結構,提升了學習和檢測能力,準確率、召回率和mAP 指標值較YOLOv2 有明顯提升;但YOLOv3-Tiny 輕量化版本的召回率和mAP 值較YOLOv3低;YOLOv4 通過改進特征提取網絡、激活函數和檢測框損失函數提升了檢測性能,與YOLOv3 相當;U-Net 網絡采用U 形編碼器-解碼器結構,并利用跳躍連接保留上下文信息,有助于保留圖像細節,避免信息損失,三個性能指標均表現較好;本文方法采用嵌套的U 形結構,通過編碼器與解碼器模塊,有利于不同尺度圖書索書號區域的特征提取和融合。盡管準確率低于YOLOv3-Tiny 和U-Net,但召回率和mAP 值有顯著提升,分別達到了99.9%和98.2%。綜上所述,本文提出的方法在圖書索書號區域的分割性能上表現較好。
為驗證本文方法對圖書館在架圖書錯序檢測的性能,在圖書索書號區域分割實驗的基礎上,調用pytesseract 第三方OCR 庫識別索書號。根據同一層書架上放置書籍的索書號遵循索書號前者≤當前索書號≤后者的排序原則,通過判斷相鄰書籍索書號大小是否滿足上述排序關系來判斷圖書是否存在錯序現象。對于實驗中使用的圖書館在架圖書,其索書號遵循自左向右非遞減排序方式。通過構建列表數據結構,將自左向右索書號識別結果添加至列表中,并與最近一次識別結果進行比較,判斷元素大小是否符合排序規則。如果符合規則,則進行下一索書號識別檢測,否則,標記該圖書索書號位置,并以方框表示錯序情況。圖6 為使用本文方法檢測的圖書館錯序圖像結果。

圖6 部分檢測結果
圖6 中檢測結果表明,通過結合索書號分割和OCR識別技術,本文提出的基于U2-Net 深度學習網絡模型的方法能夠正確檢測出在架圖書的錯序情況。
本文提出了一種基于U2-Net 深度網絡的圖書館在架圖書錯序檢測方法,實現準確且快速的錯序檢測。通過訓練U2-Net 網絡對索書號區域進行粗分割,并設計投影波谷法實現對單個圖書索書號的精分割。利用光學字符識別獲取每個索書號的字符,并按照圖書排架規則比較索書號的排列順序,以判斷書架上是否存在錯序圖書。實驗結果表明,本文提出的深度網絡模型能有效解決圖書館錯序檢測問題,可提升圖書館管理效率,為在架圖書的自動化管理提供了有效的技術基礎。