方建軍,杜明芳,2,龐 睿
(1.北京聯(lián)合大學(xué)自動化學(xué)院,北京100101;2.北京理工大學(xué)自動化學(xué)院,北京100081)
目前,世界上成功應(yīng)用圖書館機(jī)器人的有德國洪堡大學(xué)、美國猶他州大學(xué)、日本早稻田大學(xué)等,這些圖書館機(jī)器人的應(yīng)用大大節(jié)省了圖書管理成本,同時(shí)使讀者借還圖書更加便捷。2002年,美國Johns Hopkins大學(xué)的 Suthakom J等人[1]研制了一種完整意義上的圖書館機(jī)器人實(shí)驗(yàn)裝置,它由移動機(jī)器人、機(jī)械手及其升降裝置、攝像頭等幾部分組成,可以實(shí)現(xiàn)圖書的自動存取。同年,新加坡國立大學(xué)Yuan K H等人[2]研究了基于RFID定位技術(shù)的無人化圖書館系統(tǒng),可利用機(jī)器人完成圖書存取工作。以往圖書館機(jī)器人的研究已經(jīng)很好地解決了機(jī)器人圖書搬運(yùn)、裝卸及輔助圖書管理員完成圖書管理等工作,但在圖書上下架時(shí),機(jī)械手如何利用機(jī)器視覺進(jìn)行書脊正確快速識別問題并未得到很好的解決[1~4]。書脊視覺識別的難點(diǎn)在于書脊圖像本身比較復(fù)雜,每本書的輪廓與圖像細(xì)節(jié)部分不易區(qū)分,且在實(shí)際應(yīng)用中,機(jī)械手與書脊之間存在相對運(yùn)動,這也給視覺識別增加了難度。美國的Lee D J等人[5]對自動化圖書館中書脊的視覺識別問題曾進(jìn)行過深入的探討。本文結(jié)合實(shí)際項(xiàng)目,針對書脊視覺識別的特點(diǎn),將小波分析、Hough變換等多種算法相結(jié)合,提出一種新的書脊視覺識別方法,該方法的有效性已在實(shí)驗(yàn)中得到較好的驗(yàn)證。
機(jī)械手移動到確定的位置區(qū)間后,便可利用視覺系統(tǒng)通過圖像處理算法精確識別出每本書的厚度,進(jìn)而完成機(jī)械手的抓取操作。
通過反復(fù)實(shí)驗(yàn),確定出如圖1所示的圖書視覺識別流程。
Figure 1 Book-spine visual recognition process圖1 書脊視覺識別流程
本系統(tǒng)選擇 MDC-D80 2自由度云臺攝像機(jī)用于圖像采集,該攝像機(jī)具有470線高分辨率,SONY HAD CCD,10倍光學(xué)變焦,旋轉(zhuǎn)120°/s,俯仰60°/s。
由于機(jī)械手靠近書架時(shí)與書之間存在相對運(yùn)動,因此會造成獲取的圖像模糊。本系統(tǒng)中機(jī)械手的運(yùn)動速度并不要求很快且可以通過控制使其保持勻速,因此模糊后圖像f(x,y)上任意點(diǎn)的值為:
其中,Tr是運(yùn)動終止時(shí)間,x0(t)是起始時(shí)刻x方向上的像素坐標(biāo)。
將模糊圖像近似認(rèn)為是由攝像機(jī)在x方向上做水平勻速直線運(yùn)動引起的,上式可簡化為:
將機(jī)械手?jǐn)z像機(jī)拍攝到的書脊圖像信號近似看作平穩(wěn)隨機(jī)過程。Wiener濾波器的基本原理是將原始圖像f和對原始圖像的估計(jì)^f看作隨機(jī)變量,按照使f和對估計(jì)值之間^f的均方誤差達(dá)到最小的準(zhǔn)則進(jìn)行圖像復(fù)原。運(yùn)用Wiener濾波去書脊圖像模糊,結(jié)果如圖2所示。
Figure 2 Experimental results of eblurring by Wiener filter圖2 Wiener濾波去書脊圖像模糊實(shí)驗(yàn)效果圖
實(shí)驗(yàn)表明,運(yùn)用Wiener濾波時(shí),運(yùn)動位移和運(yùn)動角度兩個(gè)參數(shù)需根據(jù)機(jī)械手的實(shí)際運(yùn)動情況合理設(shè)置,才可得到好的濾波結(jié)果。
設(shè){Vk}為多分辨率分析,Wk為Vk關(guān)于Vk+1的補(bǔ)空間。圖像為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還可進(jìn)一步分解為:
設(shè){al,j},{}(i=1,2,3)是由兩個(gè)一元分解序列生成的二元分解序列:
記:
其中,Ck;n,m、是小波系數(shù),? 是 Vk的基底,φi是Wk的基底。
則圖像分解算法為:
圖像分解示意圖如圖3所示,其中,L表示低頻,H表示高頻。圖像做小波變換后,可得到不同分辨率的子圖像序列。
Figure 3 Two-level wavelet decomposition of pictures圖3 圖像小波兩層分解
設(shè){pl,j},}(i=1,2,3)是由兩個(gè)一元兩尺度序列得到的二元兩尺度序列,即:
可得重構(gòu)算法為:
圖像做小波變換后,可得到一系列不同分辨率的子圖像,不同子圖像對應(yīng)的頻率不同。
小波變換將一幅圖像分解為大小、位置、方向均不相同的分量,圖像經(jīng)二維小波分解后,輪廓主要體現(xiàn)在低頻部分,細(xì)節(jié)主要體現(xiàn)在高頻部分[7]。由于機(jī)械手抓取圖書時(shí)需要知道的是每本書的厚度,因此在做圖像識別時(shí)應(yīng)更多關(guān)注書脊的外部輪廓而非書脊上的文字細(xì)節(jié)信息。這可以通過對圖像做小波增強(qiáng)處理來實(shí)現(xiàn),本系統(tǒng)的做法是:對書脊圖像進(jìn)行兩層分解,對分解系數(shù)進(jìn)行處理,即使低頻分解系數(shù)增強(qiáng)以突出輪廓,高頻分解系數(shù)衰減以弱化細(xì)節(jié),再對處理后的系數(shù)進(jìn)行小波重構(gòu),最終得到輪廓增強(qiáng)的圖像。為得到理想的圖像,小波分解系數(shù)的閾值選取是關(guān)鍵,即如何界定高低頻分解系數(shù)問題。設(shè)系數(shù)閾值為T,對大于T的系數(shù)進(jìn)行加權(quán)處理,設(shè)權(quán)值為α;對小于T的系數(shù)也進(jìn)行加權(quán)處理,設(shè)權(quán)值為β。書脊輪廓增強(qiáng)實(shí)驗(yàn)效果如圖4所示。
Figure 4 Experimental results of book-spine contour enhancement by wavelet圖4 小波書脊輪廓增強(qiáng)實(shí)驗(yàn)效果
比較處理后的圖像效果可知,系數(shù)閾值的大小對圖像的灰度有直接影響,權(quán)值的選擇對輪廓與細(xì)節(jié)的保留程度有影響,只有在適中的情況下,才可獲得想要的結(jié)果。選擇圖4e作為進(jìn)一步檢測和識別的對象。
機(jī)器人圖書視覺檢測系統(tǒng)對邊緣檢測的要求是:(1)能檢測出預(yù)抓取的目標(biāo)書籍的完整外部輪廓;(2)盡可能少檢測出書脊上文字的輪廓;(3)對當(dāng)前機(jī)器視野中所有書脊的輪廓能夠很好地區(qū)分開。
圖5為調(diào)整到最佳閾值后對同一幅圖像分別用Sobel算子和Canny算子所做的書脊邊緣檢測效果。
比較后發(fā)現(xiàn),運(yùn)用Canny算子對書脊邊緣進(jìn)行檢測的效果更好,可以更加完整地檢測出書脊輪廓,有利于后續(xù)的Hough變換提取書脊線段。除邊緣檢測算法外,檢測效果與攝像機(jī)拍攝圖像時(shí)的位置及拍攝到的圖像角度、范圍都有關(guān)。
Figure 5 Experimental results of book-spine edge detection圖5 書脊邊緣檢測實(shí)驗(yàn)效果圖
Canny算子采用雙閾值法從候選邊緣點(diǎn)中檢測和連接出最終的邊緣。OpenCV中通過函數(shù)cvCanny訪問Canny算子邊緣檢測算法,其函數(shù)原型為cvCanny(const CvArr*image,CvArr*edges,double threshold1,double threshold2,int aperture_size),參數(shù)threshold1為第一個(gè)閾值,參數(shù)threshold2為第二個(gè)閾值。運(yùn)用Canny算子對書脊進(jìn)行邊緣檢測時(shí)應(yīng)恰當(dāng)設(shè)置閾值參數(shù),閾值設(shè)置的目的是盡量使圖像的細(xì)節(jié)部分邊緣減少,盡可能多地保留每本書的外部輪廓邊緣,以利于外部輪廓的直線查找。圖6是選用不同閾值時(shí)的邊緣檢測效果,顯然圖6b的閾值設(shè)定更符合圖像分割需求。
通過實(shí)驗(yàn)“試湊法”得到合理的Canny算子閾值是一種有效方法,但對于動態(tài)的移動機(jī)器人視覺系統(tǒng)來講并不實(shí)用。移動機(jī)器人視覺系統(tǒng)應(yīng)能在每次采集圖像并進(jìn)行預(yù)處理時(shí)自適應(yīng)地調(diào)整邊緣檢測算法的閾值。常用的自適應(yīng)閾值選取方法有:雙峰法、迭代法、大津法(OTSU法)及其改進(jìn)算法。在以上實(shí)驗(yàn)的基礎(chǔ)上,本文采用迭代法選取最佳閾值,解決不同書脊圖像分割時(shí)的閾值自動切換與識別問題。迭代法的公式是:
其中,n為灰度級的個(gè)數(shù),hk是灰度為k的像素點(diǎn)的個(gè)數(shù),Ti是迭代i次后的閾值。
迭代法的實(shí)現(xiàn)步驟是:
(1)根據(jù)實(shí)驗(yàn)結(jié)果求出圖像的最大灰度值和最小灰度值,分別記為ZMAX和ZMIN,令初始閾值T0=(ZMAX+ZMIN)/2;
(2)根據(jù)閾值Ti(i=0,1,2,…)將圖像分割為前景和背景,分別求出兩者的平均灰度值ZO和ZB;
(3)求出新閾值Ti+1=(ZO+ZB)/2;
(4)若Ti=Ti+1,則所得即為閾值;否則轉(zhuǎn)(2),迭代計(jì)算直至迭代收斂于某個(gè)穩(wěn)定的閾值時(shí),此閾值即為最終結(jié)果。
本系統(tǒng)采用累計(jì)概率霍夫變換PPHT(Progressive Probability Hough Transform)算法實(shí)現(xiàn)書脊線段的查找。
采用霍夫變換檢測直線,其基本思想是利用點(diǎn)-線的對偶性,點(diǎn)-線在兩個(gè)坐標(biāo)系中的對偶關(guān)系如圖7所示。
Figure 7 Principle of Hough transform for line detection圖7 霍夫變換檢測直線原理
Hough變換采用一種“投票機(jī)制”,輸入空間(x-y 空間)中的每一個(gè)點(diǎn),對對應(yīng)的輸出空間(p-q空間)的某些參數(shù)組合(由q、p組成的數(shù)組)進(jìn)行投票,獲得票數(shù)最多的參數(shù)組合(如某對(p,q)值)勝出。
在OpenCV中通過函數(shù)cvHoughLines2訪問PPHT算法。cvHoughLines2的函數(shù)原型是:
CvSeq*cvHoughLines2(CvArr*image,void*line_storage,int method,double rho,double theta,int threshold,double param1,double param2 )[8]。將 參 數(shù) method 設(shè) 置 成 CV _HOUGH_PROBABILISTIC表示選擇PPHT算法。實(shí)驗(yàn)表明,參數(shù)threshold、param1、param2的設(shè)置對檢測結(jié)果有直接影響,恰當(dāng)?shù)嘏渲眠@些參數(shù)才能得到使機(jī)械手臂準(zhǔn)確定位的目標(biāo)圖像。Threshold是閾值參數(shù),如果相應(yīng)的累計(jì)值大于threshold,則認(rèn)定為一條直線。param1設(shè)置將要返回的線段的最小長度,param2表示在同一條直線上進(jìn)行碎線段連接的最大間隔值(gap),即當(dāng)同一條直線上的兩條碎線段之間的間隔小于param2時(shí),將其合二為一。
圖8為修改各參數(shù)值時(shí)得到的不同檢測結(jié)果(為簡便,用f1表示原始圖像,用f2表示小波輪廓增強(qiáng)后的圖像,th表示threshold,p1表示param1,p2表示param2)。
Figure 8 Parameter selection experiments by PPHT algorithm圖8 PPHT算法參數(shù)選擇實(shí)驗(yàn)
實(shí)驗(yàn)結(jié)果表明,在threshold固定時(shí),當(dāng)param2偏大時(shí),Hough變換連成的直線太多,很多直線是不想要的,這些直線的干擾使書脊邊界無法提??;當(dāng)param2偏小時(shí),連成的直線又太少,檢測不出相對較長的書脊直線,也不好提取書脊邊界。Threshold的設(shè)置對書脊的判定影響較大。由于該圖書館機(jī)器人工作在自主作業(yè)模式,因此需根據(jù)作業(yè)對象自適應(yīng)地調(diào)整threshold的設(shè)定值,以達(dá)到環(huán)境適應(yīng)性強(qiáng)的目的。為加快系統(tǒng)計(jì)算速度,這里仍采用迭代法自適應(yīng)地設(shè)定閾值參數(shù)。
攝像頭拍攝角度、距離以及書本身的高度不等等客觀事實(shí)會帶來所拍攝圖像的某些區(qū)域檢測結(jié)果有較大失真,此時(shí)應(yīng)放棄對此部分區(qū)域的處理結(jié)果,圈定出檢測效果相對完善的區(qū)域,即能夠有效分離出每一本書并確定出每一本書厚度的區(qū)域,將此區(qū)域定義為有效檢測區(qū)域,如圖9中矩形R所包圍的區(qū)域。在有效檢測區(qū)域內(nèi)再做下一步的計(jì)算與處理。
Figure 9 Recognition results optimization圖9 識別結(jié)果優(yōu)化處理
進(jìn)一步的計(jì)算與處理包括兩個(gè)方面:(1)在有效檢測區(qū)域中劃出虛擬的兩條線段a和b,使a、b之間為最有利于提取出書脊直線特征的區(qū)域。(2)消除多余線段帶來的檢測誤差,如圖中書脊上的文字可能被誤檢測成書之間的分割線段(圖中的線段①、②),這會給機(jī)械手控制器發(fā)出抓取指令時(shí)帶來強(qiáng)干擾,解決此問題的方法是:對同一幅圖像進(jìn)行多次采集,對每次的處理結(jié)果相比較,采用表決融合準(zhǔn)則,降低誤判率。為減少計(jì)算量,最多采集三次。
為驗(yàn)證方法的有效性和普遍適用性,借鑒模糊智能計(jì)算思想,對書脊厚度類別做如下模糊劃分:{厚.較厚.中等厚度.較薄.薄,混合},其中“混合”是指厚、薄書脊隨機(jī)混放情況。在以上六種情況下分別采集不同書脊圖像100幅,用文中提出的方法進(jìn)行書脊識別實(shí)驗(yàn),得到書脊位置有效檢出率分類統(tǒng)計(jì)結(jié)果,如表1所示。
Table 1 Spine position detection rate table表1 書脊位置有效檢出率分類統(tǒng)計(jì)表
從表1中可看出,當(dāng)書脊厚度較大且均勻時(shí),有效檢出率較高,且算法耗時(shí)較少,基本可滿足魯棒實(shí)時(shí)識別的需求;當(dāng)書脊厚度較小且均勻時(shí),有效檢出率相對低一些,但仍能滿足實(shí)時(shí)識別需求;當(dāng)書脊厚度不一,即隨機(jī)混合時(shí),檢出率最低,耗時(shí)也最大,這種情況為最難識別的極端情況。
圖書館機(jī)器人機(jī)械手的圖書識別問題實(shí)際上屬于攝像機(jī)運(yùn)動、目標(biāo)靜止的移動機(jī)器人視覺系統(tǒng)問題,這也是目前運(yùn)動視覺研究的一個(gè)重要方向。常用的處理方法是通過分析運(yùn)動過程中獲得的圖像序列,可能是對某一感興趣區(qū)域的各個(gè)角度的觀察圖像序列來建立目標(biāo)的3D結(jié)構(gòu)信息[9]??紤]到此種方法在程序處理時(shí)的復(fù)雜性,本文采取了一種新型綜合處理方法,實(shí)驗(yàn)結(jié)果已充分表明,該方法可通過編程實(shí)現(xiàn),且計(jì)算量較小、識別率較高、實(shí)時(shí)性較強(qiáng),已成功應(yīng)用到我們研制的圖書館機(jī)器人裝置中。
[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-h(huán)ua,Li Guo-h(huán)ua.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)
附中文參考文獻(xiàn):
[6] 程正興.小波分析與應(yīng)用實(shí)例[M].西安:西安交通大學(xué)出版社,2006.
[7] 胡昌華,李國華.基于 MATLAB 7.X的系統(tǒng)分析與設(shè)計(jì):小波分析[M].第三版.西安:西安電子科技大學(xué)出版社,2008.
[8] Bradski G,Kaehler A.Learning OpenCV:Computer Vision with the OpenCV Library[M].北京:清 華大學(xué)出版社,2009.
[9] 張毅,羅元,鄭太雄.移動機(jī)器人技術(shù)及其應(yīng)用[M].北京:電子工業(yè)出版社,2007.