方建軍,杜明芳,2,龐 睿
(1.北京聯合大學自動化學院,北京100101;2.北京理工大學自動化學院,北京100081)
目前,世界上成功應用圖書館機器人的有德國洪堡大學、美國猶他州大學、日本早稻田大學等,這些圖書館機器人的應用大大節省了圖書管理成本,同時使讀者借還圖書更加便捷。2002年,美國Johns Hopkins大學的 Suthakom J等人[1]研制了一種完整意義上的圖書館機器人實驗裝置,它由移動機器人、機械手及其升降裝置、攝像頭等幾部分組成,可以實現圖書的自動存取。同年,新加坡國立大學Yuan K H等人[2]研究了基于RFID定位技術的無人化圖書館系統,可利用機器人完成圖書存取工作。以往圖書館機器人的研究已經很好地解決了機器人圖書搬運、裝卸及輔助圖書管理員完成圖書管理等工作,但在圖書上下架時,機械手如何利用機器視覺進行書脊正確快速識別問題并未得到很好的解決[1~4]。書脊視覺識別的難點在于書脊圖像本身比較復雜,每本書的輪廓與圖像細節部分不易區分,且在實際應用中,機械手與書脊之間存在相對運動,這也給視覺識別增加了難度。美國的Lee D J等人[5]對自動化圖書館中書脊的視覺識別問題曾進行過深入的探討。本文結合實際項目,針對書脊視覺識別的特點,將小波分析、Hough變換等多種算法相結合,提出一種新的書脊視覺識別方法,該方法的有效性已在實驗中得到較好的驗證。
機械手移動到確定的位置區間后,便可利用視覺系統通過圖像處理算法精確識別出每本書的厚度,進而完成機械手的抓取操作。
通過反復實驗,確定出如圖1所示的圖書視覺識別流程。

Figure 1 Book-spine visual recognition process圖1 書脊視覺識別流程
本系統選擇 MDC-D80 2自由度云臺攝像機用于圖像采集,該攝像機具有470線高分辨率,SONY HAD CCD,10倍光學變焦,旋轉120°/s,俯仰60°/s。
由于機械手靠近書架時與書之間存在相對運動,因此會造成獲取的圖像模糊。本系統中機械手的運動速度并不要求很快且可以通過控制使其保持勻速,因此模糊后圖像f(x,y)上任意點的值為:

其中,Tr是運動終止時間,x0(t)是起始時刻x方向上的像素坐標。
將模糊圖像近似認為是由攝像機在x方向上做水平勻速直線運動引起的,上式可簡化為:

將機械手攝像機拍攝到的書脊圖像信號近似看作平穩隨機過程。Wiener濾波器的基本原理是將原始圖像f和對原始圖像的估計^f看作隨機變量,按照使f和對估計值之間^f的均方誤差達到最小的準則進行圖像復原。運用Wiener濾波去書脊圖像模糊,結果如圖2所示。

Figure 2 Experimental results of eblurring by Wiener filter圖2 Wiener濾波去書脊圖像模糊實驗效果圖
實驗表明,運用Wiener濾波時,運動位移和運動角度兩個參數需根據機械手的實際運動情況合理設置,才可得到好的濾波結果。
設{Vk}為多分辨率分析,Wk為Vk關于Vk+1的補空間。圖像為f(x,y),f(x,y)∈L2(R2),fN(x,y)是f(x,y)在空間VN中的投影。對fk(x,y)∈Vk與gk(x,y)∈Wk,有[6]:

而gk(x,y)∈Wk還可進一步分解為:

設{al,j},{}(i=1,2,3)是由兩個一元分解序列生成的二元分解序列:


記:

其中,Ck;n,m、是小波系數,? 是 Vk的基底,φi是Wk的基底。
則圖像分解算法為:

圖像分解示意圖如圖3所示,其中,L表示低頻,H表示高頻。圖像做小波變換后,可得到不同分辨率的子圖像序列。

Figure 3 Two-level wavelet decomposition of pictures圖3 圖像小波兩層分解
設{pl,j},}(i=1,2,3)是由兩個一元兩尺度序列得到的二元兩尺度序列,即:

可得重構算法為:

圖像做小波變換后,可得到一系列不同分辨率的子圖像,不同子圖像對應的頻率不同。
小波變換將一幅圖像分解為大小、位置、方向均不相同的分量,圖像經二維小波分解后,輪廓主要體現在低頻部分,細節主要體現在高頻部分[7]。由于機械手抓取圖書時需要知道的是每本書的厚度,因此在做圖像識別時應更多關注書脊的外部輪廓而非書脊上的文字細節信息。這可以通過對圖像做小波增強處理來實現,本系統的做法是:對書脊圖像進行兩層分解,對分解系數進行處理,即使低頻分解系數增強以突出輪廓,高頻分解系數衰減以弱化細節,再對處理后的系數進行小波重構,最終得到輪廓增強的圖像。為得到理想的圖像,小波分解系數的閾值選取是關鍵,即如何界定高低頻分解系數問題。設系數閾值為T,對大于T的系數進行加權處理,設權值為α;對小于T的系數也進行加權處理,設權值為β。書脊輪廓增強實驗效果如圖4所示。

Figure 4 Experimental results of book-spine contour enhancement by wavelet圖4 小波書脊輪廓增強實驗效果
比較處理后的圖像效果可知,系數閾值的大小對圖像的灰度有直接影響,權值的選擇對輪廓與細節的保留程度有影響,只有在適中的情況下,才可獲得想要的結果。選擇圖4e作為進一步檢測和識別的對象。
機器人圖書視覺檢測系統對邊緣檢測的要求是:(1)能檢測出預抓取的目標書籍的完整外部輪廓;(2)盡可能少檢測出書脊上文字的輪廓;(3)對當前機器視野中所有書脊的輪廓能夠很好地區分開。
圖5為調整到最佳閾值后對同一幅圖像分別用Sobel算子和Canny算子所做的書脊邊緣檢測效果。
比較后發現,運用Canny算子對書脊邊緣進行檢測的效果更好,可以更加完整地檢測出書脊輪廓,有利于后續的Hough變換提取書脊線段。除邊緣檢測算法外,檢測效果與攝像機拍攝圖像時的位置及拍攝到的圖像角度、范圍都有關。

Figure 5 Experimental results of book-spine edge detection圖5 書脊邊緣檢測實驗效果圖
Canny算子采用雙閾值法從候選邊緣點中檢測和連接出最終的邊緣。OpenCV中通過函數cvCanny訪問Canny算子邊緣檢測算法,其函數原型為cvCanny(const CvArr*image,CvArr*edges,double threshold1,double threshold2,int aperture_size),參數threshold1為第一個閾值,參數threshold2為第二個閾值。運用Canny算子對書脊進行邊緣檢測時應恰當設置閾值參數,閾值設置的目的是盡量使圖像的細節部分邊緣減少,盡可能多地保留每本書的外部輪廓邊緣,以利于外部輪廓的直線查找。圖6是選用不同閾值時的邊緣檢測效果,顯然圖6b的閾值設定更符合圖像分割需求。
通過實驗“試湊法”得到合理的Canny算子閾值是一種有效方法,但對于動態的移動機器人視覺系統來講并不實用。移動機器人視覺系統應能在每次采集圖像并進行預處理時自適應地調整邊緣檢測算法的閾值。常用的自適應閾值選取方法有:雙峰法、迭代法、大津法(OTSU法)及其改進算法。在以上實驗的基礎上,本文采用迭代法選取最佳閾值,解決不同書脊圖像分割時的閾值自動切換與識別問題。迭代法的公式是:

其中,n為灰度級的個數,hk是灰度為k的像素點的個數,Ti是迭代i次后的閾值。
迭代法的實現步驟是:
(1)根據實驗結果求出圖像的最大灰度值和最小灰度值,分別記為ZMAX和ZMIN,令初始閾值T0=(ZMAX+ZMIN)/2;
(2)根據閾值Ti(i=0,1,2,…)將圖像分割為前景和背景,分別求出兩者的平均灰度值ZO和ZB;
(3)求出新閾值Ti+1=(ZO+ZB)/2;
(4)若Ti=Ti+1,則所得即為閾值;否則轉(2),迭代計算直至迭代收斂于某個穩定的閾值時,此閾值即為最終結果。
本系統采用累計概率霍夫變換PPHT(Progressive Probability Hough Transform)算法實現書脊線段的查找。
采用霍夫變換檢測直線,其基本思想是利用點-線的對偶性,點-線在兩個坐標系中的對偶關系如圖7所示。

Figure 7 Principle of Hough transform for line detection圖7 霍夫變換檢測直線原理
Hough變換采用一種“投票機制”,輸入空間(x-y 空間)中的每一個點,對對應的輸出空間(p-q空間)的某些參數組合(由q、p組成的數組)進行投票,獲得票數最多的參數組合(如某對(p,q)值)勝出。
在OpenCV中通過函數cvHoughLines2訪問PPHT算法。cvHoughLines2的函數原型是:
CvSeq*cvHoughLines2(CvArr*image,void*line_storage,int method,double rho,double theta,int threshold,double param1,double param2 )[8]。將 參 數 method 設 置 成 CV _HOUGH_PROBABILISTIC表示選擇PPHT算法。實驗表明,參數threshold、param1、param2的設置對檢測結果有直接影響,恰當地配置這些參數才能得到使機械手臂準確定位的目標圖像。Threshold是閾值參數,如果相應的累計值大于threshold,則認定為一條直線。param1設置將要返回的線段的最小長度,param2表示在同一條直線上進行碎線段連接的最大間隔值(gap),即當同一條直線上的兩條碎線段之間的間隔小于param2時,將其合二為一。
圖8為修改各參數值時得到的不同檢測結果(為簡便,用f1表示原始圖像,用f2表示小波輪廓增強后的圖像,th表示threshold,p1表示param1,p2表示param2)。

Figure 8 Parameter selection experiments by PPHT algorithm圖8 PPHT算法參數選擇實驗
實驗結果表明,在threshold固定時,當param2偏大時,Hough變換連成的直線太多,很多直線是不想要的,這些直線的干擾使書脊邊界無法提取;當param2偏小時,連成的直線又太少,檢測不出相對較長的書脊直線,也不好提取書脊邊界。Threshold的設置對書脊的判定影響較大。由于該圖書館機器人工作在自主作業模式,因此需根據作業對象自適應地調整threshold的設定值,以達到環境適應性強的目的。為加快系統計算速度,這里仍采用迭代法自適應地設定閾值參數。
攝像頭拍攝角度、距離以及書本身的高度不等等客觀事實會帶來所拍攝圖像的某些區域檢測結果有較大失真,此時應放棄對此部分區域的處理結果,圈定出檢測效果相對完善的區域,即能夠有效分離出每一本書并確定出每一本書厚度的區域,將此區域定義為有效檢測區域,如圖9中矩形R所包圍的區域。在有效檢測區域內再做下一步的計算與處理。

Figure 9 Recognition results optimization圖9 識別結果優化處理
進一步的計算與處理包括兩個方面:(1)在有效檢測區域中劃出虛擬的兩條線段a和b,使a、b之間為最有利于提取出書脊直線特征的區域。(2)消除多余線段帶來的檢測誤差,如圖中書脊上的文字可能被誤檢測成書之間的分割線段(圖中的線段①、②),這會給機械手控制器發出抓取指令時帶來強干擾,解決此問題的方法是:對同一幅圖像進行多次采集,對每次的處理結果相比較,采用表決融合準則,降低誤判率。為減少計算量,最多采集三次。
為驗證方法的有效性和普遍適用性,借鑒模糊智能計算思想,對書脊厚度類別做如下模糊劃分:{厚.較厚.中等厚度.較薄.薄,混合},其中“混合”是指厚、薄書脊隨機混放情況。在以上六種情況下分別采集不同書脊圖像100幅,用文中提出的方法進行書脊識別實驗,得到書脊位置有效檢出率分類統計結果,如表1所示。

Table 1 Spine position detection rate table表1 書脊位置有效檢出率分類統計表
從表1中可看出,當書脊厚度較大且均勻時,有效檢出率較高,且算法耗時較少,基本可滿足魯棒實時識別的需求;當書脊厚度較小且均勻時,有效檢出率相對低一些,但仍能滿足實時識別需求;當書脊厚度不一,即隨機混合時,檢出率最低,耗時也最大,這種情況為最難識別的極端情況。
圖書館機器人機械手的圖書識別問題實際上屬于攝像機運動、目標靜止的移動機器人視覺系統問題,這也是目前運動視覺研究的一個重要方向。常用的處理方法是通過分析運動過程中獲得的圖像序列,可能是對某一感興趣區域的各個角度的觀察圖像序列來建立目標的3D結構信息[9]。考慮到此種方法在程序處理時的復雜性,本文采取了一種新型綜合處理方法,實驗結果已充分表明,該方法可通過編程實現,且計算量較小、識別率較高、實時性較強,已成功應用到我們研制的圖書館機器人裝置中。
[1] Suthakom J.A robotic library system for an off-site shelving facility[C]∥Proc of 2002IEEE International Conference on Robotics & Automation,2002:1010-1012.
[2] Yuan K H,Hong A C,Ang M,et al.Unmanned library:An intelligent robotic books retrieval &return system utilizing RFID tags[C]∥Proc of 2002IEEE International Conference on Systems,Man and Cybernetics,2002:50-55.
[3] Miller C.An investigation of an automated shelf reading and inventory system for the clemson university cooper library[EB/OL].[2006-01-07].http://www.ces.clemson.edu/ie/academics/isaris.pdf.
[4] Anderson D R.Method without madness:Shelf-reading methods and project management[J].College and Undergraduate Libraries,1998,5(1):1069-1072.
[5] Lee D J.Matching book-spine images for library shelf-reading process automation[C]∥Proc of the 4th IEEE Conference on Automation Science and Engineering Key Bridge Marriott,2008:1004-1008.
[6] Cheng Zheng-xing.Wavelet analysis and applications[M].Xi’an:Xi’an Jiaotong University Press,2006.(in Chinese)
[7] Hu Chang-hua,Li Guo-hua.MATLAB 7.X based systems analysis and design:Wavelet analysis[M].third edition.Xi’an:Xi’an University of Electronic Science and Technology Press,2008.(in Chinese)
[8] Bradski G,Kaehler A.Learning openCV:Computer vision with the openCV library[M].Beijing:Tsinghua University Press,2009.(in Chinese)
[9] Zhang Yi,Luo Yuan,Zheng Tai-xiong.Mobile robot technology and its applications[M].Beijing:Electronic Industry Press,2007.(in Chinese)
附中文參考文獻:
[6] 程正興.小波分析與應用實例[M].西安:西安交通大學出版社,2006.
[7] 胡昌華,李國華.基于 MATLAB 7.X的系統分析與設計:小波分析[M].第三版.西安:西安電子科技大學出版社,2008.
[8] Bradski G,Kaehler A.Learning OpenCV:Computer Vision with the OpenCV Library[M].北京:清 華大學出版社,2009.
[9] 張毅,羅元,鄭太雄.移動機器人技術及其應用[M].北京:電子工業出版社,2007.