孫 晗,周 全,楊志軍
(1.廣東工業(yè)大學(xué) 省部共建精密電子制造技術(shù)與裝備國家重點實驗室,廣東 廣州 510006;2.佛山市華道超精科技有限公司,廣東 佛山 528225)
近年來,紡織行業(yè)的快速發(fā)展受益于高精密檢測裝備行業(yè)技術(shù)的更新?lián)Q代,而通過顯微成像與精密運動控制獲取纖維組織結(jié)構(gòu)是紡織品質(zhì)量檢測的關(guān)鍵手段之一[1]。顯微成像是一種無損檢測纖維細(xì)度、長度、截面形狀、纖維種類測定的光學(xué)影像技術(shù),利用高倍放大鏡與精密運動平臺的配合控制,可以對數(shù)毫米甚至微米級別的纖維提供高分辨率圖像,非常適用于紡織纖維成像研究[2]。然而,現(xiàn)階段的逐點掃描式光學(xué)顯微成像系統(tǒng)由于高度依賴成像系統(tǒng)的掃描頻率和機械電機掃描速度,導(dǎo)致采集速度慢、成像質(zhì)量差。為了滿足紡織行業(yè)對纖維質(zhì)量檢測和種類分析的研究需求,大多數(shù)纖維掃描實驗需要快速完成,同時纖維數(shù)據(jù)量的顯著增大,對檢測系統(tǒng)的硬件要求也提出了挑戰(zhàn)。
國外早期的產(chǎn)品,比如1994年的BLISS系統(tǒng),通過走停方式掃描采集15 mm×15 mm的視場需要幾十分鐘[3],這種方式稱為“Z型”掃描,對于局部零權(quán)重掃描點區(qū)域和復(fù)雜纖維分布處理還有一些局限性[4]。因此上述掃描問題實質(zhì)上是路徑規(guī)劃問題,即如何以最短路徑的方式全局掃描載玻片上分布不均勻的纖維,本文采用TSP的方法對纖維掃描路徑規(guī)劃進(jìn)行轉(zhuǎn)化建模,TSP[5-6]作為著名的NP-hard問題,近年來許多專家學(xué)者對該問題求解提供了許多優(yōu)化算法,如最小生成樹算法[7]、遺傳算法[8]和模擬退火算法[9]。模擬退火算法的實驗性能具有質(zhì)量高、初值魯棒性強、通用易實現(xiàn)的特點,然而優(yōu)化過程較長;遺傳算法優(yōu)點在于隱含并行性和全局解空間搜索,但易出現(xiàn)早熟收斂和收斂性能較差的特點。
本文提出了一種適用于快速纖維采集系統(tǒng)的最短掃描路徑規(guī)劃方法,可以通過優(yōu)化電機掃描平移路徑,更好地減小采樣時間,實現(xiàn)快速采集。首先介紹纖維采集設(shè)備的硬件結(jié)構(gòu),接著用一種基于機器視覺的纖維錨框坐標(biāo)算法將纖維轉(zhuǎn)化為坐標(biāo)的圖像算法,然后將纖維坐標(biāo)之間的歐幾里得長度通過電機運動規(guī)劃算法轉(zhuǎn)化為實際運動時間,從而將最短路徑問題轉(zhuǎn)化為最短時間問題,最后將元啟發(fā)式算法、啟發(fā)式算法與谷歌 OR-Tool等方法應(yīng)用在纖維掃描路徑優(yōu)化中,在保證圖像質(zhì)量的前提下縮短掃描時間,從而降低纖維圖像采集時間。
光學(xué)顯微成像系統(tǒng)最終獲取的是樣品經(jīng)過光學(xué)系統(tǒng)的放大并傳輸?shù)焦怆娫闲纬筛泄獬上瘛T撓到y(tǒng)一般是由二維掃描平臺、Z軸調(diào)焦平臺、光學(xué)成像采集系統(tǒng)3部分組成[10]。
二維掃描平臺要求在X、Y方向能精確移動,且在纖維掃描過程需要滿足無頓力與低速度鏈波特性,本文采用上銀LMT系列棒狀電機來實現(xiàn)平臺X、Y方向上的移動,X、Y方向分辨率為0.1 μm,安裝結(jié)構(gòu)簡單,無磨耗零背隙,滿足光學(xué)顯微平臺高速輕負(fù)載的需求。Z軸調(diào)焦平臺采用課題組研發(fā)的剛?cè)狁詈蠞L珠絲杠平臺,Z軸方向的分辨率為0.1 μm,通過柔性鉸鏈的彈性變形來克服摩擦死區(qū)從而滿足光學(xué)系統(tǒng)調(diào)焦過程中的高精度與平穩(wěn)性要求。
光學(xué)系統(tǒng)元件由光源、阿貝聚光鏡、600萬像素CMOS彩色相機和4倍、20倍、40倍物鏡組成,滿足纖維采集過程中不同放大倍率的高分辨率圖像需求。目前整套硬件系統(tǒng)裝置取得了較好的效果,纖維光學(xué)顯微成像系統(tǒng)的系統(tǒng)框圖和實物圖如圖1、2所示。
圖 1 纖維光學(xué)顯微成像系統(tǒng)Fig.1 Fiber optic microscopic imaging system
圖 2 纖維光學(xué)顯微成像實物Fig.2 Imaging object of fiber optic microscopic
通常,高倍物鏡采集的圖像質(zhì)量更能反映整套硬件系統(tǒng)裝置性能,圖3所示為40倍物鏡下采集到的綿羊毛纖維。
圖 3 40倍物鏡下綿羊毛纖維Fig.3 Sheep wool fiber under 40x objective lens
從圖3可以看出,綿羊毛纖維圖像整體無噪聲,光學(xué)照射均勻,纖維成像保真性好,說明整套硬件系統(tǒng)搭建較為完善。不同動物纖維及不同物鏡倍數(shù)采集的圖像見文章首頁OSID碼“開放科學(xué)數(shù)據(jù)與內(nèi)容”中的“纖維成像數(shù)據(jù).docx”。
錨框坐標(biāo)算法的本質(zhì)是從采集到的4倍物鏡粗掃描的纖維圖片中識別出待檢測纖維,并得到其像素坐標(biāo)系下中心位置坐標(biāo),從而確定整張載玻片區(qū)域掃描權(quán)重,進(jìn)行40倍物鏡精掃描路徑規(guī)劃。
本研究根據(jù)纖維的特征,設(shè)計了纖維錨框坐標(biāo)算法,檢測流程如圖4所示。
圖 4 纖維錨框坐標(biāo)算法流程Fig.4 Algorithm flow of fiber anchor frame coordinate
圖像經(jīng)過去噪后[11],需要對纖維的輪廓進(jìn)行提取,通過纖維的輪廓進(jìn)行錨框分析得到目標(biāo)纖維的坐標(biāo)信息。本研究采用魯棒性較好的Canny邊緣檢測算法對纖維骨架輪廓進(jìn)行邊緣提取,Canny算子相比其他邊緣輪廓算法,能最大化突出圖像邊緣特征,并有效減少圖像計算規(guī)模[12]。Canny算法選用合適的高斯濾波函數(shù),分別按行和列對圖像f(x,y)進(jìn)行平滑去噪,計算圖像水平、垂直和對角線方向的梯度,同時比較圖像內(nèi)像素點與梯度正負(fù)方向像素點的梯度強度,通過保留或抑制像素點進(jìn)行高低閾值檢測,從而得到纖維輪廓邊緣。所選高斯函數(shù)可表示為
(1)
式中:σ為高斯曲線標(biāo)準(zhǔn)差,控制著平滑程度。綿羊毛纖維原圖與Canny檢測后的圖像如圖5所示。
(a) 4倍放大纖維 (b) Canny算法纖維 邊緣輪廓圖 5 綿羊毛纖維圖像及Canny輪廓提取Fig.5 Sheep wool fiber image and Canny contour extraction
圖5中,Canny算法在去除纖維圖像噪聲的同時保持維邊緣輪廓清晰,說明該算法具有較好的魯棒性。
纖維圖像經(jīng)過去噪、Canny邊緣檢測后,需要將纖維輪廓圖像以錨框標(biāo)定的形式轉(zhuǎn)化為像素坐標(biāo)系坐標(biāo)[13-14]。由于粗掃描4倍物鏡與精掃描40倍物鏡的相機視野不同,需要將不同視野下的纖維坐標(biāo)進(jìn)行轉(zhuǎn)換。因此,本文以錨框算法對纖維進(jìn)行Blob分析[15],計算纖維邊緣坐標(biāo)并轉(zhuǎn)化為40倍物鏡掃描坐標(biāo),見圖6。
圖 6 纖維錨框算法過程Fig.6 Algorithm process of fiber anchor frame
圖6中,紅色部分為4倍物鏡視野圖像下纖維Pi,經(jīng)Canny算子邊緣檢測后的纖維骨架。通過Blob分析求得該纖維最大外接矩形框由圖中藍(lán)色虛線框表示,其矩形框中心點坐標(biāo)為(xi,yi),矩形像素寬度為Wi,像素長度為Hi,則纖維Pi進(jìn)行40倍精掃描需要掃描的數(shù)量Oi可表示為
(2)
式中:CW、CH為相機橫向、縱向分辨率,像素分別設(shè)置為3 072、2 048;q為粗掃描與精掃描物鏡倍數(shù)比,本文取10。則第i根纖維的j個40倍精掃描Oi_j的像素中心坐標(biāo)可表示為
(3)
式中:c為纖維圖像坐標(biāo)修正系數(shù),代表修正40倍物鏡下纖維起始掃描坐標(biāo),本文c=50。
在4倍物鏡下全局掃描18 mm×18 mm纖維切片后,進(jìn)行錨框算法,得到1 000個左右的40倍精掃描坐標(biāo)點,如圖7所示,藍(lán)色點為需要精掃描的點坐標(biāo)。
圖 7 錨框算法求解全局纖維精掃描坐標(biāo)Fig.7 Anchor box algorithm for global fiber fine scanning coordinates
傳統(tǒng)的枚舉法處理此類大規(guī)模點的掃描問題有n!種路徑,難以在短時間內(nèi)求得最優(yōu)解[16-17]。而2.2節(jié)中錨框算法取得待掃描的1 000個待掃描坐標(biāo)點,通過對坐標(biāo)點進(jìn)行最短掃描路徑規(guī)劃,優(yōu)化XY軸電機運動軌跡,可有效減少整體掃描時間,如圖8所示。
圖 8 纖維掃描最短路徑規(guī)劃Fig.8 Shortest path plan of fiber Scanning
二維平面的纖維距離分布如圖9所示。其中綠色圓形部分為二維平面的纖維坐標(biāo),紅色數(shù)字部分為纖維間的平面歐式距離。
圖 9 纖維掃描數(shù)學(xué)模型Fig.9 Mathematical model of fiber scanning
從圖9可以看出,當(dāng)裝置需要掃描全部纖維時,需要依次遍歷所有纖維坐標(biāo),即有5!種路徑,見文章首頁OSID碼“開放科學(xué)數(shù)據(jù)與內(nèi)容”中的“5!種路徑.docx”,在不同的掃描順序下,其纖維掃描路徑總長度也不同。在3-1-2-5-4的掃描順序下,纖維掃描路徑最短,則總體掃描時間最短為最優(yōu)掃描路徑。
因此,可以建立纖維最短掃描時間算法的數(shù)學(xué)模型:設(shè)n個掃描坐標(biāo)的集合為Qn,Ci是坐標(biāo)編號,取值為[1,n],對于坐標(biāo)Ci,Ci∈Qn,從Ci到Cj的距離記為d(Ci,Cj)。此處的距離考慮運動對稱性,所以d(Ci,Cj)=d(Cj,Ci)。TSP的最優(yōu)解就是尋找這n個坐標(biāo)的一組排列組合,使得式(4)的目標(biāo)函數(shù)最小,即
然而,在二維掃描平臺的實際路徑規(guī)劃中,基于歐式距離評估的傳統(tǒng)TSP數(shù)學(xué)模型不能得到較好的應(yīng)用,原因有2點。
1) 對于纖維C1與C2的斜向點位運動需要通過直線插補的方式進(jìn)行運動[18],而另一種通過X、Y雙軸電機聯(lián)動的形式,與直線插補的方式相比,掃描時間更短??梢姾笳叩脑u估模型更加適應(yīng)于實際場合的路徑規(guī)劃中。
2) 電機的運動往往需要通過一段S曲線來進(jìn)行運動規(guī)劃。在運動規(guī)劃后,電機的運動距離與運動時間呈非線性關(guān)系,因此3—1—2—5—4的路徑掃描順序不一定是最短掃描時間順序。
故本文在原有TSP數(shù)學(xué)模型上進(jìn)行改進(jìn),有
d(Ci,Cj)=max(|XCi-XCj|,|YCi-YCj|)
(5)
式中:XCi為點Ci的x坐標(biāo);YCi為點Ci的y坐標(biāo)。將纖維坐標(biāo)點的歐式距離轉(zhuǎn)化為X、Y方向最長投影作為模型評估d(Ci,Cj)。
將d(Ci,Cj)經(jīng)S曲線運動規(guī)劃轉(zhuǎn)化為評估時間T(Ci,Cj),有
(6)
式中:aa為加速段最大加速度;Ta為加速段時間;Vv為勻速段最大速度;Tv為勻速段時間;ad為減速段減速度;Td為減速段時間。
則纖維掃描最短時間掃描算法的最優(yōu)解為使得目標(biāo)函數(shù)式(7)最?。?/p>
(7)
由于掃描點規(guī)模通常在800~1 500范圍內(nèi),本文選擇蟻群優(yōu)化與模擬退火等啟發(fā)式算法、貪心算法以及最小生成樹等元啟發(fā)式算法與傳統(tǒng)Z型掃描算法在路徑長度和掃描時間上做對比實驗,具體實驗程序見OSID碼“開放科學(xué)數(shù)據(jù)與內(nèi)容”中的“TSP算法”文件夾。算法的性能表現(xiàn)往往受硬件類型所影響。本文所用的硬件配置以及編程語言環(huán)境為Win10系統(tǒng)、Intel i7-10700F型號CPU、NVIDIA 3080顯卡、32 GiB RAM。仿真程序均由Python 3.8編程實現(xiàn)。同時為了驗證在不同規(guī)模節(jié)點分布下的性能,分別在800、1 200和1 500個節(jié)點(即TSP-800,TSP-1 200,TSP-1 500)下執(zhí)行實驗,所用的測試是二維平臺上隨機的坐標(biāo)分布,保證算法在面對隨機坐標(biāo)分布時的表現(xiàn)性能。
為了更好地對比不同算法在纖維掃描時間實驗最短的驗證,使用Python的random庫的seed模塊,確保不同算法使用的是同一組數(shù)據(jù)從而提高算法對比性。在每一個規(guī)模節(jié)點下,使用不同的seed進(jìn)行50次重復(fù)實驗,確保實驗結(jié)果穩(wěn)定性。對于蟻群算法、模擬退火算法等啟發(fā)式算法,對于不同的規(guī)模點求解,需要設(shè)置不同的算法參數(shù)[19-24],本文所選取的蟻群算法參數(shù)中,信息素因子為5,啟發(fā)函數(shù)因子為2,信息揮發(fā)素因素為0.1,螞蟻數(shù)量為720。模擬退火算法參數(shù)中,初始退火溫度數(shù)值為10 000,終止退火溫度數(shù)值為1,內(nèi)循環(huán)次數(shù)為2 000,降溫參數(shù)為0.99。在上述實驗環(huán)境參數(shù)設(shè)置下,選取具有最短行程保障的最小生成樹算法,求解效率高的貪心算法、最優(yōu)路徑求解的蟻群算法以及本文算法進(jìn)行路徑仿真。TSP-800實驗結(jié)果掃描路徑如圖10所示。
使用多種算法下TSP-800的求解時間、掃描時間與路徑總長度對比結(jié)果如表1所示。TSP-1200、TSP-1500的實驗數(shù)據(jù)和實驗結(jié)果掃描路徑見本文OSID碼“開放科學(xué)數(shù)據(jù)與內(nèi)容”中的“實驗數(shù)據(jù).docx”。
(a) 最小生成樹算法
(c) 貪心算法
(b) 蟻群算法
(d) 本文算法圖 10 TSP-800下不同算法路徑軌跡Fig.10 Path trajectories of different algorithms under TSP-800
表1 TSP-800下不同算法求解優(yōu)化效果
表1中,使用谷歌OR-Tool的求解結(jié)果作為掃描長度基準(zhǔn),通過對比其他算法路徑長度求得標(biāo)準(zhǔn)偏差以說明算法路徑優(yōu)化性能。同時由于該求解屬于NP-Hard問題,求解時間是衡量算法性能優(yōu)劣的指標(biāo),其中Z型掃描算法為固定掃描路徑,無求解時間。從表1可以看出,TSP-800的傳統(tǒng)Z型掃描算法的長度為140.0 m,掃描時間為12.4 min,本文算法掃描長度為45.2 m,掃描時間為7.2 min,掃描長度和時間降低了約67.7%、41.9%。TSP-1200、TSP-1500的分析同理,TSP-1200和TSP-1500的傳統(tǒng)Z型掃描算法的掃描長度都為140.0 m,掃描時間都為12.4min,本文算法掃描長度分別為53.8 m和65.8 m,掃描時間分別為9.0 min和9.8 min,掃描長度分別降低了約61.6%和53.0%,掃描時間分別降低了約27.4%和21.0%。驗證了本文掃描算法可以真正地減少纖維掃描時間與掃描長度,提高了纖維檢測裝置掃描效率。
1) 本研究搭建了XYZ三軸纖維掃描檢測平臺與控制系統(tǒng),具有4倍、20倍與40倍3種光學(xué)放大倍數(shù),采集到的纖維圖像成像清晰,質(zhì)量較好。同時基于Canny算子提出一種錨框算法,有效地將4倍粗掃描纖維圖像轉(zhuǎn)化為40倍精掃描坐標(biāo)點,有利于對電機運動進(jìn)行最短路徑規(guī)劃。
2) 基于機器視覺錨框算法與TSP的最短掃描時間算法實現(xiàn)了纖維掃描路徑優(yōu)化,并將該方法編程實現(xiàn)集成到自主研發(fā)的纖維檢測裝置中,通過TSP-800、TSP-1 200、TSP-1 500規(guī)模點進(jìn)行電機掃描實驗,結(jié)果表明對比傳統(tǒng)Z型掃描算法本文的掃描算法降低了21.0%~41.9%的掃描時間,總掃描路徑長度降低了53.0%~67.7%。
3) 本文的錨框算法與TSP數(shù)學(xué)模型仍然適用于數(shù)據(jù)規(guī)模更大的纖維掃描路徑問題,還可以推廣應(yīng)用于其他類型檢測裝置規(guī)劃掃描中。但是由于實際檢測纖維樣品種類、尺寸的復(fù)雜性,本文的研究方法還有不足之處。如果綜合考慮到大規(guī)模纖維檢測時不同品種纖維對路徑掃描的影響,通過動態(tài)分類纖維品種與掃描權(quán)重,建立的模型將更有實際意義。