王紅芳,何 昕,張 妮,宣靜雯
(1.西安工程大學 圖書館,陜西 西安 710048;2.西安工程大學 電子信息學院,陜西 西安 710048)
隨著現(xiàn)代社會文化的快速發(fā)展以及民眾對知識需求的增強,新時代圖書館的職能早已從傳統(tǒng)的收集、存儲、借閱轉(zhuǎn)變?yōu)榱烁颖憷c現(xiàn)代化的管理與服務[1]。在大型圖書館多采用開架閱覽的使用方式的前提下,大量圖書在被借閱后會因讀者還書操作不規(guī)范等原因,普遍存在錯放現(xiàn)象[2]。
目前,在大多數(shù)圖書館主要采用人工巡檢方式完成圖書上下架、圖書錯序整理等工作[3],該方式工作量大,效率低,是一項耗時、費力、易錯的工作,導致人力資源的大量浪費,使圖書整理退化成一種形式化的工作[4]。
圖書館巡架機器人是針對人工巡檢方式存在的不足,使用巡檢機器人取代人工方式實現(xiàn)對圖書館在架圖書進行智能巡檢[5]。通過建設由巡檢機器人和協(xié)同管控平臺組成的圖書館智能巡檢機器人系統(tǒng)[6],可以使巡檢機器人按照預先設定的巡檢路線自動對圖書館在架圖書進行巡檢,避免人工方式導致的漏檢、記錄錯誤等現(xiàn)象。同時,巡檢機器人后臺數(shù)據(jù)處理中心能將巡視作業(yè)采集到的現(xiàn)場數(shù)據(jù)進行記錄、分析、整理和可視化,提高圖書館數(shù)字化和智能化水平。因此,借助圖書館巡架機器人自動對圖書館在架圖書的錯序情況進行巡檢,不僅能有效克服和彌補人工巡檢存在的缺陷和不足,而且還能提高巡檢的靈活性、智能性,減輕了圖書館管理人員的工作量,對構(gòu)建智能化圖書館具有一定的實際應用價值[7]。
本文基于深度學習的Yolov3tiny圖書錯序檢測算法[8],利用Pycharm-Python集成開發(fā)工具和Pytorch深度學習框架、MySQL數(shù)據(jù)庫和移動機器人搭建圖書巡檢智能系統(tǒng)[9]。該系統(tǒng)的主要功能有:1)實現(xiàn)圖書館在架圖書進行智能化巡檢;2)識別錯序圖書并將巡檢結(jié)果存儲到數(shù)據(jù)庫;3)實現(xiàn)圖書館巡架機器人獲取巡檢數(shù)據(jù)的管理。
圖書館巡架機器人主要由軌道引導系統(tǒng)、圖書錯序檢測算法,數(shù)據(jù)庫系統(tǒng)和客戶端四大部構(gòu)成,如圖1所示。
圖1 圖書館巡架機器人系統(tǒng)組成
軌道引導系統(tǒng)規(guī)定了移動機器人的運行路線,使其能高效遍歷圖書館內(nèi)書架圖書;圖書錯序檢測算法能將機器人拍攝到的書籍圖像進行處理并檢測索書號,將檢測結(jié)果和相關(guān)數(shù)據(jù)送入數(shù)據(jù)庫中進行儲存;數(shù)據(jù)庫系統(tǒng)由MySQL搭建而成,并使用了PyQT5設計了圖形交互頁面,客戶端由MySQL-client搭建,能夠?qū)崿F(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的查詢和操作。
軌道引導系統(tǒng)由移動機器人上搭載的上位機(TX2圖像處理開發(fā)板)與STM32以及一個8路磁導航傳感器共同構(gòu)成,如圖2所示。
圖2 移動機器人軌道引導系統(tǒng)
移動平臺根據(jù)上位機(TX2圖像處理開發(fā)板)的指令運動到各個書架的附近,實現(xiàn)“巡”的功能。其底層驅(qū)動過程如下:
移動平臺根據(jù)TX2上位機發(fā)出的指令運動到指定書架附近,實現(xiàn)"巡"的功能,其底層驅(qū)動過程如下:
1)TX2上位機通過串口通信發(fā)送控制信號給STM32下位機,請求下位機向某一方向運動;STM32收到請求信號后輸出相應的電機控制信號;由于STM32輸出的信號較弱,不足以驅(qū)動電機運動,需要通過電機驅(qū)動模塊將STM32輸出的電機控制信號轉(zhuǎn)換成大功率信號。當大功率信號傳遞到電機上后,電機將以相應的速度和方向旋轉(zhuǎn),從而改變移動機器人的運動狀態(tài)。
2)光電編碼器與電機同軸連接,該傳感器可以測量電機以何種轉(zhuǎn)速轉(zhuǎn)了多少圈,并將測量到的數(shù)據(jù)反饋給控制芯片STM32,以實現(xiàn)對電機的精準控制。
3)當移動平臺的運動狀態(tài)發(fā)生改變時,將會改變磁導航傳感器和磁條軌道的相對位置,引起磁導航傳感器測量信號發(fā)生變化,TX2上位機將根據(jù)磁導航傳感器返回的信號發(fā)送下一次控制信號。
由于移動平臺上安裝有姿態(tài)傳感器,該傳感器可以將移動平臺當前的姿態(tài)(如小車的角度)反饋給STM32,使其對移動平臺進行更加穩(wěn)定的控制。
當機器人運行至書架附近后,對書架上各層圖書進行檢測,實現(xiàn)“檢”的功能。機器人到達采集點后自動拍攝書架上擺放的圖書圖像,并將其輸入Yolov3tiny檢測網(wǎng)絡中檢測圖書書脊上的索書號區(qū)域,對將分割出得到的索書號區(qū)域圖像送入字符識別網(wǎng)絡,獲得圖書的索書號,并與正確的索書號序列進行比對,由此判斷當前書架上圖書的擺放狀態(tài)[10]。在圖書錯序檢測過程中將拍攝的圖書圖像與檢測結(jié)果均存儲到后臺數(shù)據(jù)庫中,并將檢測結(jié)果顯示在機器人液晶顯示器上。整個圖書錯序狀態(tài)識別過程如圖3所示。
圖3 圖書錯序狀態(tài)識別過程
循跡定位使用8通道磁導航傳感器實現(xiàn),該傳感器用于測量移動平臺和磁條之間的相對位置。當TX2圖像處理開發(fā)板通過磁導航傳感器檢測到移動平臺偏離軌道時,會向STM32下位機發(fā)送矯正行駛軌道信號,下位機接收到正確的信號后,將輸出相應的電機控制信號,該信號經(jīng)過放大后改變移動平臺的運行狀態(tài)。在循跡過程中,移動機器人會循環(huán)檢測是否到達停車點,如果沒有到達停車點則一直循跡前進。移動平臺通過計算感應磁條和磁導航傳感器之間的相對位置,不斷調(diào)整運行軌跡實現(xiàn)循跡前進,整個過程見圖4。
圖4 循跡定位流程圖
圖書錯序檢測算法基于Yolov3tiny目標檢測網(wǎng)絡構(gòu)建。首先,將移動機器人拍攝的書架圖書圖像輸入到Y(jié)olov3tiny目標檢測網(wǎng)絡中,Yolov3tiny檢測到每本圖書書脊上的索書號區(qū)域,然后將分割出的索書號區(qū)域圖像使用光學字符識別算法識別并判斷圖書的擺放狀態(tài)。Yolov3tiny網(wǎng)絡結(jié)構(gòu)圖如圖5所示。
圖5 Yolov3tiny網(wǎng)絡結(jié)構(gòu)圖
服務器負責接收從客戶端發(fā)傳輸過來的圖書圖像,調(diào)用Yolov3tiny目標檢測網(wǎng)絡檢測出每本圖書書脊區(qū)域上的索書號區(qū)域并進行分割。對分割出來的每個圖書索書號圖像,使用錯序檢測算法判斷是否存在錯序圖書,并將檢測結(jié)果發(fā)送給客戶端顯示。服務器端信息存取過程如圖6所示。
圖6 服務器端數(shù)據(jù)庫存取過程
2.3.1 數(shù)據(jù)庫設計
本文設計了一個BookShelves表,以實現(xiàn)巡檢記錄的存儲。該表由CheckID、CheckTime、BookshelfID、BookNumber、CheckedResult、OriginalPhoto和CheckedPhoto七個字段構(gòu)成,其中CheckID、BookshelfID和BookNumber都是Int類型,用于記錄檢測編號、所擺放的書架編號和圖書數(shù)量;CheckTime是datetime類型,用于記錄巡檢時間;CheckedResult是varchar(255)類型,用于記錄檢測結(jié)果;OriginalPhoto和CheckedPhoto均為mudiumblob類型,分別記錄原始圖像和被檢結(jié)果圖像,巡檢記錄表邏輯結(jié)果如表1所示。
表1 數(shù)據(jù)庫設計
將系統(tǒng)檢測的當前時間、檢測圖書編號、所在書架編號、圖書數(shù)量、被檢測結(jié)果,相機采集的原始圖片轉(zhuǎn)化的二進制數(shù)據(jù)流和被檢測圖像等七種數(shù)據(jù)存入數(shù)據(jù)庫,以便圖書管理員后續(xù)的查詢與整理工作。
巡檢記錄表除了記錄當前檢測時間、檢測圖書編號、所在書架編號、圖書數(shù)量和被檢測結(jié)果,還將相機采集的原始書架上的圖書圖像和檢測結(jié)果圖像轉(zhuǎn)化為二進制數(shù)據(jù)流存儲到巡檢記錄表中,以便圖書管理員進行后續(xù)查詢,以方便快速定位存在圖書亂序錯位書架位置。
2.3.2 客戶端設計
通過客戶端可以訪問服務器上的數(shù)據(jù)庫,完成巡檢記錄的增、刪、查、改操作,并將操作后的結(jié)果顯示到客戶端界面上。圖7為客戶端運行模式圖??蛻舳塑浖ㄟ^動態(tài)鏈接庫MySql-Client遠程訪問軌道機器人服務器上的數(shù)據(jù)庫,并通過此動態(tài)鏈接庫傳回記錄到客戶端。當運行此客戶端軟件時,首先實例化一個新的線程,通過實時顯示模塊發(fā)送查詢最新狀態(tài)指令,將返回的記錄表顯示到實時顯示模塊,由該模塊在線程內(nèi)循環(huán)執(zhí)行查詢指令和顯示功能,從而實時顯示圖書巡架機器人最新巡檢結(jié)果。
圖7 客戶端運行模式
另外,系統(tǒng)設計了特定時間段的實時狀態(tài)查詢模塊和運維記錄查詢模塊。實時狀態(tài)查詢模塊用于查詢用戶給定時間段內(nèi)的書架圖書的巡檢情況,包括指定時間段內(nèi)未報警和報警的巡檢記錄,點擊報警記錄可查看對應記錄的采集圖片,能方便圖書管理員人工審查系統(tǒng)運行狀。運維記錄查詢模塊主要用于查詢指定時間段內(nèi)所有巡檢情況,圖書管理員可將指定的巡檢記錄以Word報表的形式導出,以便存檔備查。
當系統(tǒng)開始運行后,默認顯示實時狀態(tài)界面,如圖8所示。左上角的圖片為圖書館巡架機器人最新采集的設圖書圖片,右上角的五個文本框分別顯示此圖片的巡檢編號、巡檢時間書架編號是否錯序以及巡檢結(jié)果。如果存在錯序情況,最下方將以數(shù)據(jù)網(wǎng)格形式顯示錯序圖書基本信息。
圖8 實時狀態(tài)顯示界面
當點擊查詢運維按鈕時,打開如圖9所示查詢運維界面圖,該界面為用戶提供了查詢巡檢記錄的功能,用戶選擇需要查詢的開始時間和結(jié)束時間,選擇查詢類型包括所有記錄、報警記錄,點擊相應按鈕可以顯示用戶所選條件的相應記錄。當點擊任意一條記錄,界面下方將會顯示用戶點擊記錄的所有信息,點擊輸出報表按鈕可以將查詢到的巡檢記錄以Word報表形式導出。
圖9 查詢運維界面圖
圖10顯示了當用戶點擊輸出報表后的詳細報表格式,輸出時間為用戶輸出報表時系統(tǒng)的時間,輸出類型記錄用戶選擇輸出的是所有記錄或報警記錄,報表內(nèi)容由序號、設備名稱、采集時間、是否錯序、巡檢結(jié)果構(gòu)成。
圖10 輸出的word報表
本文設計了一種圖書館在架圖書巡檢機器人,該機器人由軌道引導系統(tǒng)、圖書錯序檢測系統(tǒng)、數(shù)據(jù)庫存儲系統(tǒng)和客戶端系統(tǒng)四部分組成。通過在機器人上搭載智能化算法對圖書館內(nèi)各個書架進行巡檢,分析并判斷書架上是否有錯序圖書。相比于傳統(tǒng)的人工巡檢方式,圖書館智能巡架機器人巡檢效率高,為構(gòu)建智能化圖書館具有重要的實際意義和應用前景。