王紅芳,王宇航,宣靜雯,張凱兵
(1.西安工程大學(xué) 圖書館,陜西 西安 710048;2.西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048;3.西安工程大學(xué) 計算機科學(xué)學(xué)院,陜西 西安 710048)
如今,高校圖書館普遍采用開放式流通模式,為學(xué)生和教師提供了極大的便利。然而,由于讀者在借閱和暫讀圖書時行為不規(guī)范,導(dǎo)致書架上圖書錯序問題日益突出。這不僅給其他讀者帶來了不便,還增加了工作人員圖書管理的負擔(dān)。為適應(yīng)信息時代的發(fā)展,滿足學(xué)生和教師的學(xué)習(xí)、研究和閱讀需求,智慧圖書館以信息技術(shù)為支撐,旨在將數(shù)字化、智能化和網(wǎng)絡(luò)化應(yīng)用于圖書館的各個環(huán)節(jié)。目前,圖書館的在架圖書錯序檢查與整理通常采用人工方式,這不僅耗費人力,而且需要時間較長,嚴重影響圖書館的服務(wù)質(zhì)量。因此,研究智能化的自動化在架錯序圖書檢測方法對于實行智能圖書館至關(guān)重要。
索書號是圖書館組織和管理圖書的重要標識信息,對分類、歸檔和檢索圖書至關(guān)重要。傳統(tǒng)的在架錯序圖書檢測采用人工目視檢查、手動比對和字符校驗方法,不僅耗時費力,而且容易出錯、遺留。隨著技術(shù)進步,現(xiàn)代圖書館管理致力于智能化的索書號檢測方法,以提高在架錯序圖書管理的效率和準確性。例如,文獻[1]利用RFID 算法設(shè)計了基于移動機器人的圖書錯序檢測系統(tǒng),不過該系統(tǒng)建設(shè)成本高,不利于應(yīng)用推廣。
當前,人們廣泛關(guān)注于利用計算機視覺技術(shù)的目標檢測與識別方法。這些方法一般通過收集大量標注好的樣本構(gòu)造數(shù)據(jù)集,使用卷積神經(jīng)網(wǎng)絡(luò)[2]、循環(huán)神經(jīng)網(wǎng)絡(luò)[3]和支持向量機[4]等機器學(xué)習(xí)模型學(xué)習(xí)感興趣目標的特征,實現(xiàn)目標的檢測與識別。文獻[5]結(jié)合機器視覺與光學(xué)字符識別,提出了基于OpenCV 和Tesseract 的書脊識別系統(tǒng)。另外,隨著基于深度卷積網(wǎng)絡(luò)的目標檢測算法的出現(xiàn),為自動化的索書號檢測提供了十分有效的方法,具有代表性的有單階段檢測算法SSD[6]、YOLOv3[7]、YOLOv4[8]、YOLOv5、YOLOv7[9]等,以及多階段檢測算法R-CNN[10]、Fast R-CNN[11]、Mask R-CNN[12]等,這些自動化的索書號檢測方法在檢測精度與速度上具有明顯的優(yōu)勢。例如,文獻[13]提出了使用經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)AlexNet 通過移動攝像頭實現(xiàn)圖書檢測。文獻[14]提出了基于閱讀文本場景下的深度學(xué)習(xí)文本識別模型。文獻[15]提出了基于霍夫變換算法檢測書脊邊緣和顏色直方圖進行圖書索書號區(qū)域分割的圖書錯序檢測方法。針對文獻[15]方法對復(fù)雜背景下分割圖書索書號區(qū)域存在的魯棒性問題,文獻[16]進一步提出通過YOLOv3-Tiny 模型進行索書號的定位與錯序檢測,該方法通過對深度學(xué)習(xí)網(wǎng)絡(luò)框架不斷優(yōu)化,為智能化索書號檢測與識別提供了更有效的途徑。由于在架圖書種類繁多,書脊顏色復(fù)雜多樣,厚度外觀不統(tǒng)一,對在架圖書索書號定位與識別帶來了極大挑戰(zhàn)。
本文提出了一種基于U2-Net深度網(wǎng)絡(luò)的在架圖書索書號定位與識別方法。首先通過構(gòu)造U2-Net模型實現(xiàn)復(fù)雜背景下的圖書索書號的粗分割,然后利用投影波谷法對單個索書號進行精細化分割,再將分割后的索書號區(qū)域圖像利用光學(xué)字符識別庫Tesseract 對索書號字符進行識別,利用識別出的索書號的排序關(guān)系判斷當前書架是否存在錯序圖書,從而實現(xiàn)智能化的錯序圖書檢測與定位,以提高圖書館工作人員的工作效率與圖書館服務(wù)質(zhì)量。
U2-Net 是一種用于圖像分割的深度學(xué)習(xí)模型,專門針對顯著性目標檢測任務(wù),其目標是從輸入圖像中精確提取前景和背景之間的邊界。本文利用U2-Net 的特殊網(wǎng)絡(luò)結(jié)構(gòu),能夠有效地將所需的索書號區(qū)域完整地分割出來。U2-Net 采用了一種嵌套的U 形結(jié)構(gòu),通過一系列的編碼器與解碼器模塊對圖像中的多尺度特征進行提取。本文采用的U2-Net 結(jié)構(gòu)包括五個階段,每個階段都有負責(zé)逐步減小特征圖空間分辨率從而提取更深層次特征的編碼器,以及逐步恢復(fù)圖像空間分辨率的解碼器。U2-Net的具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 U2-Net 網(wǎng)絡(luò)結(jié)構(gòu)圖
U2-Net 的編碼器階段由多個Residual U-block 組成。通過多個階段的編碼器逐漸減小特征圖尺寸,從而提取多尺度的語義信息,而在解碼器中,U2-Net 利用多尺度的特征融合,通過將編碼器和解碼器的特征圖進行連接或融合,以獲得豐富的語義信息和細節(jié),最后通過卷積層將特征映射到最終的分割結(jié)果。
Residual U-block 主要由三個部分組成:首先是輸入卷積層,它將輸入特征圖轉(zhuǎn)換為具有通道數(shù)C的中間特征圖F1(x)。這個輸入卷積層是一個普通的卷積層,用于局部特征提取。接下來是一個類U-Net 對稱編碼器-解碼器結(jié)構(gòu),它的高度為L,并以中間特征圖F1(x)作為輸入。該結(jié)構(gòu)學(xué)習(xí)提取和編碼多尺度上下文信息U(F1(x))。較大L值意味著更深的Residual U-block、更多的池化操作、更大范圍的感受野以及更豐富的局部和全局特征。通過配置合適的L值,可以從具有任意空間分辨率的輸入特征圖中提取多尺度特征,從而減輕由于大尺度直接上采樣引起的細節(jié)損失。最后,通過殘差連接求和融合局部特征和多尺度特征,這種殘差連接的方式有助于保留原始特征的信息,并提高網(wǎng)絡(luò)的表達能力,由于每個block 中的池化操作,使得整個架構(gòu)的深度足夠深的同時,保持著高分辨率,并且不會顯著增加顯存和計算量的開銷。
對在架圖書索書號區(qū)域進行分割時,獲取高分辨率特征圖非常重要。因此,選擇使用每個Residual Ublock 結(jié)構(gòu)層數(shù)隨著encoder 層數(shù)增加而減少的網(wǎng)絡(luò)結(jié)構(gòu)。具體地,在編碼部分的第一層、第二層、第三層和第四層分別使用RSU-7、RSU-6、RSU-5 和RSU-4,其中數(shù)字代表Residual U-block的高度L;而在底層的En_5和En_6則采用RSU-4 模塊,即只進行特征提取而不改變特征圖尺寸的Residual U-block。這樣,通過該模塊的中間特征圖都具有與其輸入特征圖相同的分辨率大小。各階段編碼器結(jié)構(gòu)如圖2 所示。
圖2 各階段編碼器結(jié)構(gòu)
解碼器結(jié)構(gòu)與上述編碼器結(jié)構(gòu)類似,嚴格按照與編碼器結(jié)構(gòu)對稱的方式設(shè)計,同樣由相同數(shù)量和層次的Residual U-block 組成。不同的是,在解碼階段,每通過一個block,圖像進行2 倍的上采樣,采用雙線性插值方法。通過對稱的解碼器逐步進行上采樣和特征融合,最終生成與輸入圖像尺寸相同的分割預(yù)測。每個解碼器階段將來自前一階段的上采樣特征圖和來自對稱編碼器階段的上采樣特征圖連接作為輸入。此外,U2-Net 還包括一個顯著圖融合模塊,用于生成顯著性概率圖。該模塊通過一系列操作生成多個顯著性概率映射,并將它們?nèi)诤铣勺罱K的顯著性概率圖S_fuse,如圖3 所示。U2-Net 是一種在圖像分割任務(wù)中性能出色的深度學(xué)習(xí)模型,特別在顯著對象檢測等任務(wù)中表現(xiàn)出色,它通過多尺度特征融合、Residual U-Block 和非局部注意力機制等設(shè)計,有效地提取圖像中的邊界和細節(jié)信息,能實現(xiàn)復(fù)雜圖書書脊區(qū)域中索書號區(qū)域的準確分割。
圖3 各階段解碼器模塊
在優(yōu)化U2-Net 的圖書索書號區(qū)域分割模型時,聯(lián)合使用二進制交叉熵損失(Binary Cross Entropy Loss)與結(jié)構(gòu)相似性損失(Structural Similarity Loss)。其中,二進制交叉熵損失用于衡量預(yù)測分割結(jié)果中每個像素點的分類準確度。對于每個像素位置,U2-Net 的輸出經(jīng)過Sigmoid 函數(shù)進行歸一化,將像素的前景概率限制在[0,1]范圍內(nèi)。真實標簽中的像素點被標記為1,表示前景;背景則標記為0。該損失的計算公式如下:
式中:N表示圖像中像素點的總數(shù);y表示真實標簽(0 或1);p表示模型的預(yù)測結(jié)果概率值。
結(jié)構(gòu)相似性損失用于衡量預(yù)測分割結(jié)果與真實標簽之間的結(jié)構(gòu)相似性。它有助于模型更好地保留圖像的結(jié)構(gòu)信息,減少分割結(jié)果中的偽影和細節(jié)損失。結(jié)構(gòu)相似性損失的計算公式如下所示:
最終,U2-Net 的總損失由二進制交叉熵損失和結(jié)構(gòu)相似性損失之間的加權(quán)和構(gòu)成,表示如下:
式中α表示平衡二進制交叉熵損失和結(jié)構(gòu)相似性損失使用的權(quán)重系數(shù)。
得益于U2-Net 網(wǎng)絡(luò)分層架構(gòu)、多尺度特征融合能力,使得該網(wǎng)絡(luò)能夠有效地捕捉圖書索書號區(qū)域與書脊區(qū)域之間的差異,能較好地實現(xiàn)對圖書索書號區(qū)域的粗分割。圖4 是使用U2-Net 網(wǎng)絡(luò)對圖書索書號區(qū)域分割的結(jié)果,由圖4 可以看出,盡管U2-Net 能實現(xiàn)整體上圖書索書號區(qū)域的分割,但每個圖書的索書號區(qū)域之間分割存在不同程度的粘連和模糊,無法直接準確實現(xiàn)單個圖書索書號區(qū)域的分割。
圖4 U2-Net 網(wǎng)絡(luò)分割結(jié)果
由于書籍之間存在縫隙,索書號難以清晰地分割出來,為獲得完整的索書號進行識別操作,必須對單個索書號進行進一步的精分割處理。通過對分割結(jié)果進行分析,發(fā)現(xiàn)對于難以分割的書籍縫隙與圖像中其他列存在著一些灰度值的差異。然而,由于索書號存在不同的高度,導(dǎo)致不同索書號之間難以區(qū)分,因此閾值分割難以達到需要的分割效果。為了實現(xiàn)更準確的單個圖書索書號的精確分割,本文采用一種劃分區(qū)域灰度波谷的方法。該方法首先對圖像進行腐蝕處理,腐蝕核為3×3的矩陣,迭代次數(shù)為3次,這樣可以增強不同圖書索書號區(qū)域在列方向上灰度值之間的差異,使得索書號之間的縫隙更為明顯;然后通過對列方向的灰度值加和并放大一定倍數(shù),對列灰度值沿水平軸方向進行投影,并生成單列灰度和直方圖,通過對直方圖進行分析,找到局部波谷,并利用大津法設(shè)立閾值,消除書脊中間各類字體帶來的誤差;接著利用波谷處的水平坐標將此坐標對應(yīng)至分割圖像處,并對該位置左右各增加適當像素值的列方向灰度置零,最終得到索書號分割圖,處理過程如圖5 所示。
圖5a)是在架圖書樣例圖;圖5b)是U2-Net 網(wǎng)絡(luò)分割結(jié)果;圖5c)是對圖5b)中U2-Net 網(wǎng)絡(luò)分割結(jié)果采用投影法獲得的投影結(jié)果;圖5d)利用圖5c)投影波谷法進一步精分割的結(jié)果;圖5e)是聯(lián)合U2-Net 網(wǎng)絡(luò)和投影波谷法分割的最終結(jié)果。由圖5 中結(jié)果可以看出,采用投影波谷法能實現(xiàn)準確的索書號區(qū)域分割,有利于后續(xù)索書號的準確識別和錯序分析。
為驗證本文算法對于索書號錯序檢測的有效性,本文從筆者所在單位圖書館書架上采集了300幅圖像構(gòu)成了數(shù)據(jù)集,這些圖片均來源于真實的圖書館環(huán)境中捕捉的在架圖書索書號,每張圖像的分辨率為4 000×1 840,背景非常復(fù)雜,對于分割索書號具有很大的挑戰(zhàn)性。使用LabelImg對采集的圖像索書號區(qū)域進行標注,并將其轉(zhuǎn)化為掩碼圖,采用隨機抽取法將其中70%作為訓(xùn)練集,15%作為驗證集,15%作為測試集。在實驗中,采用Python 3.7作為編程語言,并使用PyTorch 1.10.0 作為深度學(xué)習(xí)框架。實驗運行的計算設(shè)備是GeForce RTX 4070 顯卡。
在訓(xùn)練U2-Net 模型時,輸入圖像大小為4 000×1 840 像素,激活函數(shù)采用ReLU 函數(shù),權(quán)重初始化采用Xavier 初始化方法。訓(xùn)練次數(shù)為300 個epochs,初始學(xué)習(xí)率設(shè)置為0.001,Batchsize 設(shè)置為6,在訓(xùn)練過程中每隔10 個epochs 將學(xué)習(xí)率按照0.1 的衰減因子進行衰減。如果在驗證集上的性能指標連續(xù)10 個訓(xùn)練周期沒有明顯提升,將觸發(fā)提前停止機制,即停止訓(xùn)練過程。
為評價本文提出的圖書索書號區(qū)域分割的有效性,使用準確率(Precision,P)、召回率(Recall,R)和平均精度(mAP)三個性能指標進行定量評估。采用YOLOv2、YOLOv3-Tiny、YOLOv3、YOLOv4 和U-Net 等5 種不同網(wǎng)絡(luò)模型與本文方法進行對比,不同方法的性能對比指標結(jié)果如表1 所示。
表1 六種網(wǎng)絡(luò)模型的性能指標對比 %
從表1 中的對比結(jié)果可以看出:YOLOv2 因采用單一尺度網(wǎng)絡(luò)結(jié)構(gòu),在檢測不同尺度的索書號區(qū)域上存在較大局限性,準確率、召回率和mAP 指標值均較低;YOLOv3 增加了網(wǎng)絡(luò)深度、多尺度輸出和殘差網(wǎng)絡(luò)結(jié)構(gòu),提升了學(xué)習(xí)和檢測能力,準確率、召回率和mAP 指標值較YOLOv2 有明顯提升;但YOLOv3-Tiny 輕量化版本的召回率和mAP 值較YOLOv3低;YOLOv4 通過改進特征提取網(wǎng)絡(luò)、激活函數(shù)和檢測框損失函數(shù)提升了檢測性能,與YOLOv3 相當;U-Net 網(wǎng)絡(luò)采用U 形編碼器-解碼器結(jié)構(gòu),并利用跳躍連接保留上下文信息,有助于保留圖像細節(jié),避免信息損失,三個性能指標均表現(xiàn)較好;本文方法采用嵌套的U 形結(jié)構(gòu),通過編碼器與解碼器模塊,有利于不同尺度圖書索書號區(qū)域的特征提取和融合。盡管準確率低于YOLOv3-Tiny 和U-Net,但召回率和mAP 值有顯著提升,分別達到了99.9%和98.2%。綜上所述,本文提出的方法在圖書索書號區(qū)域的分割性能上表現(xiàn)較好。
為驗證本文方法對圖書館在架圖書錯序檢測的性能,在圖書索書號區(qū)域分割實驗的基礎(chǔ)上,調(diào)用pytesseract 第三方OCR 庫識別索書號。根據(jù)同一層書架上放置書籍的索書號遵循索書號前者≤當前索書號≤后者的排序原則,通過判斷相鄰書籍索書號大小是否滿足上述排序關(guān)系來判斷圖書是否存在錯序現(xiàn)象。對于實驗中使用的圖書館在架圖書,其索書號遵循自左向右非遞減排序方式。通過構(gòu)建列表數(shù)據(jù)結(jié)構(gòu),將自左向右索書號識別結(jié)果添加至列表中,并與最近一次識別結(jié)果進行比較,判斷元素大小是否符合排序規(guī)則。如果符合規(guī)則,則進行下一索書號識別檢測,否則,標記該圖書索書號位置,并以方框表示錯序情況。圖6 為使用本文方法檢測的圖書館錯序圖像結(jié)果。
圖6 部分檢測結(jié)果
圖6 中檢測結(jié)果表明,通過結(jié)合索書號分割和OCR識別技術(shù),本文提出的基于U2-Net 深度學(xué)習(xí)網(wǎng)絡(luò)模型的方法能夠正確檢測出在架圖書的錯序情況。
本文提出了一種基于U2-Net 深度網(wǎng)絡(luò)的圖書館在架圖書錯序檢測方法,實現(xiàn)準確且快速的錯序檢測。通過訓(xùn)練U2-Net 網(wǎng)絡(luò)對索書號區(qū)域進行粗分割,并設(shè)計投影波谷法實現(xiàn)對單個圖書索書號的精分割。利用光學(xué)字符識別獲取每個索書號的字符,并按照圖書排架規(guī)則比較索書號的排列順序,以判斷書架上是否存在錯序圖書。實驗結(jié)果表明,本文提出的深度網(wǎng)絡(luò)模型能有效解決圖書館錯序檢測問題,可提升圖書館管理效率,為在架圖書的自動化管理提供了有效的技術(shù)基礎(chǔ)。