葉啟迪 陳俊龍 陳培基
廣東東軟學院 計算機學院 廣東 佛山 528200
圖書館作為一種公共文化事業,皆以搜索、整理、收藏圖書資料以供閱讀,參考。肩負包括開發信息資源,社會教育,對人文文化遺產的保護等繁多的職務。大部分圖書館都會引入一套獨立的圖書管理系統,對書籍進行規律性分類和存放,達到一定的管理效果。但是如果執行地區及其圖書量過大,這種管理系統便會出現圖書分類工作累積,無法及時反饋和處理等問題,其中最為明顯的是放置圖書量巨大以及圖書錯位放置。
針對上述問題,本文進行了對智能協助圖書管理的深入研究,研發完成了一套基于AI的視覺輔助機械臂抓取放置圖書的機械裝置,在無須用戶干擾的基礎上解決圖書擺放和整理的問題,協助區塊化地區進行以書籍放置和存儲,減少人力資源不必要的浪費。
該機械裝置分為機械臂執行系統,圖像處理系統以及循跡避障系統。
執行部分即機械臂本體,具備4個自由度包括X軸,Y左軸,Y右軸,Z軸,分別安置4個無刷電機控制,且在末端配備了真空泵來控制吸盤去實現物體抓取[1]。
圖1 系統整體運行流程圖
圖像處理則是采用了USB智能攝像頭模組進行圖像采集和處理,并將處理后的圖像信息傳輸到樹莓派,利用攝像機獲取的信息進行目標定位和識別處理,再讓機械臂以一定的角度對定位的目標進行有效的抓取和搬運。
循跡避障主要是運用超聲波通過比較和計算距離來避障,運用保存在云端數據庫中的圖書館地圖數據在樹莓派中進行深度學習完成自動循跡。
系統的具體操作如下:采用OpenCV攝像頭模塊,將其固定在機械臂末端并且連接上計算機,機械臂隨后進行遍歷掃描,攝像頭對整個區域進行掃描,定位目標中心坐標,樹莓派則將目標待抓取位置的三維坐標通過串口通信給Robin 3D打印主板,再由主板控制機械臂運動到指定目標位置進行抓取[2]。
機械結構以FSL40XYZ系列的多軸絲桿直線模組為主體,機械臂末端在運動過程中則是保存水平,運用真空泵進行對目標抓取。實際使用過程中,使用Gcode數控編程語言對機械臂進行協同控制。
圖2 功能結構圖
視覺掃描系統主要使用openCV自帶的攝像頭,樹莓派組成。攝像頭機構采用大小為45×36×30cm的openCV,采取的照片分辨率為640×480。在此環境下,規定攝像頭所取得的圖像的笛卡爾坐標系的原點在左下角,以此向上為Y軸正方向,右為X軸正方向。
選用HC-SR04超聲波模塊,模塊自動發送 8 個 40khz 的方波,自動檢測是否有信號返回。聲波經過障礙物反射后,被接收部位接收。通過IO口ECHO 輸出一個高電平,超聲波從發射到返回的時間相當于高電平持續的時間,通過比較時間間隔來完成障礙比較和距離測試。
測試距離=(高電平時間×聲速(340M/S))/2。
圖書的識別模塊采用了OpenCV攝像頭模塊,攝像頭安放在升降平臺上。OpenCV是Intel公司開發的開源計算機視覺算法庫,OpenCV擁有豐富的函數功能以及強大的圖像和矩陣運算能力,再加上其開源的特性,如果處理得當,就可以不需要添加新的外部支持也能夠完整地編譯鏈接生成執行程序,所以成為機器人實時識別算法庫的最佳選擇[3]。
基于圖書館中的圖書種類豐富,且沒有統一的電子識別標準,本文所研發的基于AI的圖書管理輔助機器人對于圖書的識別暫定采用指定模型的圖書。圖書模型為長16cm,寬12cm,高3cm的規則長方體。不同圖書采用不同顏色的長方體進行代替。
通過OpenCV對不同顏色的圖書進行識別,可以識別出不同種類的圖書信息,并將數據傳輸到樹莓派微處理器中進行處理。在進行目標定位時,通過一系列的圖像預處理,使用圖像平滑對圖書縫隙進行檢測,再通過直線檢測和邊緣處理識別出圖書與圖書之間的空隙位置信息,通過圖像上圖書與機械臂的距離和所要寄存書架進行比較,再進行計算距離,從而精確控制圖書與機械臂之間的距離,保證了圖書的準確抓取。
3.2.1 顏色分割算法。在對目標圖像數據處理時,我們采用了顏色分割算法。在如今的顏色分割算法設計中,常常將灰度圖像分割法應用在不同的顏色空間上,并且可以直接地應用在每個顏色分量上,其結果通過一定的方式再進行組合,就可以獲取到最后的分割結果。
使用顏色閾值二值化法對彩色的圖像進行顏色分割。在三維直角坐標系當中,由一組顏色閾值上下限所包圍著的空間是一個長方體形狀,長方體內的每個點坐標對應著一組顏色值。HSV或Lab顏色空間被用于描述人眼對顏色的感受,由閾值上下限形成的長方體形狀中更多地包含了目標的顏色,而且更少地包含了其他的顏色[4]。相對于RGB顏色空間,由于在實際操作中,RGB顏色表示容易受到強光、弱光、陰影等因素的影響,所以選擇在HSV或者Lab顏色空間中進行顏色分割。
因為OpenCV默認是采用BGR顏色空間,因此讀取圖像后,先將圖像轉換為Lab或HSV顏色空間,并且使用inRange函數把圖像二值化,最后使用形態學操作去除噪聲,從而完成顏色分割。對于各種識別任務,要轉換到HSV還是Lab空間還得從實驗效果中確定。
3.2.2 利用輪廓的幾何特征識別目標。顏色分割算法會將具有特定顏色的區域篩選出來,而對于這些區域,提取區域的輪廓并分析它的幾何特征,來進行進一步的篩選,從而識別出目標。輪廓檢測是基于在目標區域邊緣上的像素灰度變化比較劇烈,通過檢測出不同區域的邊緣來解決圖像分割的問題。
采用findContours()函數提取出二值圖中的所有輪廓,然后利用相關的函數得到輪廓的幾何參數。在二值圖中,尺寸最大的區域通常來說就是所要的目標。對于物料大小來說,由于近大遠小,輪廓面積最大的通常是最近的物料。于是,利用輪廓的幾何特征就可以將目標辨別出來。如果識別到目標,輸出的坐標為目標對角線交點的坐標,如果沒有識別到目標,則輸出的坐標就為(-1,-1)。
3.2.3 顏色復查算法。為了辨別出是否抓取到的是正確的物料,由主控制系統發送一條指令和物料的坐標,讓識別系統檢查這個坐標附近的顏色。采用前面識別任務的閾值作顏色分割,因此對于顏色正確的物料,二值圖中這個坐標附近的像素點應該為白色。實際做法是計算在給定的坐標周圍一定區間內,白色像素點所占有的比例,以應對因為二值圖質量出現不佳的情況。
基于對目標圖像處理,通過顏色分割算法進行分類書本。目標書本放置在機器人的存儲器中,通過顏色分割算法的分類,掃描之后存放在存儲器中。基于存儲器的大小,設立一個基坐標系含有存儲器的X、Y、Z軸的信息,設立該坐標系的軸長時以常用的厘米(cm)作為單位。通過基坐標系的X、Y、Z軸判斷機械臂的目前所在的位置,同時基于書本所在的存儲器的基坐標系中的四個頂點的位置坐標,通過計算算出四個頂點的中心坐標,該坐標即為書本的中心坐標,以書本的中心坐標作為機械臂的目標位置移動機械臂,在移動過程中實時捕獲機械臂當前位置,利用PD算法的控制,使其更加平滑的移動至目標位置。
基于圖書館的書本種類較多,大小不一致,則可以通過基礎坐標系的X軸來確定其厚度。利用其坐標差的算出書本的厚度,為了更加便捷的控制機械臂,計算出的書本厚度去除小數點再加上2得出機械臂張開的長度。通過PD控制打開機械臂之后,基于存儲的Y軸信息可以得出書本的長度,以此可以計算出機械臂需要移動的距離,通過PD控制移動機械臂至目標位置,對目標書本實施抓取操作。
基于抓取的功能,在抓取到物體時,轉換到另一個基坐標系——書架。基于書架的整體框架的基本一致,所以對書架在框架也設立一個基坐標系,實現機械臂放置的操作。鑒于書架的大小已經超出了機械臂的工作范圍,需要移動機器人進行工作,這就導致了設定在書架基坐標系的機器整體運動更加復雜并且效率變低。為了提高效率,放置的精度提升就要加入大地坐標系,一般情況下大地坐標系和基坐標系是重合的,但是可以利用大地坐標系控制機器人的移動進而輔助機械臂動作,實現放置的功能。
對于大工作區,我們可以建立一個基于大地坐標系進行定義的用戶坐標系。通過把圖書館該層平面設定為機器人的工作區,同時為該工作區建立一個用戶坐標系,設立以米(m)為單位的X、Y、Z軸的基礎坐標系,對于不同書本的放置位置在用戶坐標系中都會進行標記,機器人基于自己的初始坐標,計算與目標位置的距離和位置差算出路徑,進行移動到達目的地。
計算與目標位置的路徑,在用戶坐標系中是以直線表示的。鑒于直線行走會碰到障礙物,導致無法到達目的地,所以在用戶坐標系控制機器人移動的基礎上,給機器人加入了避障的功能,通過HC-SR04超聲波模塊持續發送40KHz的方波,通過計算高電平持續的時間完成對障礙物的檢測,而高電平持續的時間也就是機器人與障礙物之間的距離,通過計算可以得出障礙物在用戶坐標系中的坐標,鑒于超聲波傳感器的發送與接收為扇形的,為了接收到更加精確的障礙物信息加入CCD攝像頭輔助超聲波傳感器對障礙物進行判斷,同時設置超聲波傳感器的檢測距離閾值,防止超聲波扇形過大,導致對障礙物檢測精度降低,同時防止過遠距離的無關障礙物,對機器人的移動進行干擾。
鑒于機器人完成避障操作后,會導致機器人偏離路徑,所以在機器人移動時,實時捕獲機器人的當前位置,把機器人當前的位置設定為初始位置,利用用戶坐標系,實時更新與目標位置的路徑。在更新移動路徑時要把檢測到的障礙物坐標加進去減少因障礙物與路徑的沖突,同時基于圖書館書架規整的擺放方式,可以給在用戶坐標系中設立圈定一個圖書區的范圍,在機器人在圖書區的移動就改成在沿邊移動待移動到平行坐標地點時在進行縱向移動至目標位置,有效地減少機器人在圖書區無效移動增加其工作效率。
隨著每季度發布新書的數量越來越多,中小學在假期要求孩子閱讀的刊物在增加,維護圖書館的工作壓力也與日俱增,圖書管理員需要經常檢查是否有書籍放錯位置或者損壞等等情況。并且每日的讀者人流量大,導致的還書數目眾多,這些都會增加圖書館管理員的工作負擔。為了響應國家的號召,研發此產品,產品本身也不需要過多的人工干預,是一款真正的智能化產品。