史偉民, 韓思捷, 屠佳佳,2, 陸偉健, 段玉堂
(1. 浙江理工大學 浙江省現代紡織裝備技術重點實驗室, 浙江 杭州 310018;2. 浙江機電職業技術學院 自動化學院, 浙江 杭州 310053)
近年來,由于我國紡織行業在國際市場中的競爭壓力越來越大[1],因此,國家在紡織行業發展綱要中將推進紡織智能制造作為重點工程,包括自動化、數字化、智能化紡織裝備開發、智能工廠建設等內容[2]。
在圓形緯編針織機器人自動化生產線中,換筒桁架機器人可以完成在備紗架取滿筒,在用紗架上放滿筒、取空筒的動作,來替代紗架上人工滿筒上料以及空筒下料。自動換筒過程中,由于受到紗筒的重力、放筒時的震動、滑動等因素的影響,紗筒口的位置會發生變化,從而影響機械爪對空筒的抓取。為了保證機械爪對空筒的準確抓取,需要對筒口的位置進行定位。若采取人工輔助定位:一方面需要進入機器人工作區,會產生安全隱患;另一方面,1臺圓緯機需要4排紗架,1排紗架有80個紗筒,人工定位工作量較大。
近年來,機器視覺在紡織領域得到了廣泛的應用。在機器人定位方面,張文昌等[3]利用單目相機對紗籠上紗桿圖像進行采集,通過傳統圖像處理實現紗桿的定位,完成相應取放作業,該方法在定位及實用性方面有較好表現。Tu等[4]利用單目相機、霍夫圓檢測算法,對紗桿端面圓形標記物測距,實現紗架坐標定位,為紗架換筒定位方法的研究提供了參考。在紗筒識別處理方面,張建新等[5]通過對紗筒圖像預處理及透視投影變換校正,還原了理想的紗筒側面圖像,為后續筒子紗密度檢測提供了準確的紗筒體積。Shi等[6]利用圓形卷積核確定紗筒中心后,采取透視變換、擬合的方式實現了對紗筒直徑的估算,并在此基礎上實現了余紗量檢測。李靖宇等[7]采用可調均值遷移濾波算法去噪及外接矩的方式識別紗筒,該方法在圖像去噪方面有良好效果,但容易受到環境影響。金守峰等[8]利用Faster R-CNN模型進行紗筒訓練識別,該方法可以在復雜環境中識別紗筒大致位置,但無法做到對輪廓的準確識別。
現有研究表明,單目相機在機器人定位方面表現良好,且成本低、便于安裝。此外在紗筒識別方面,傳統圖像處理易受環境影響,且圖片較大時處理速度太慢,深度學習方式對于紗筒輪廓邊緣識別較差。考慮到換筒機器人抓取方式以及紗筒處于開放式的拍攝環境,本文采用單目相機作為圖像采集定位設備,提出一種深度學習與傳統圖像處理相結合的定位方法,首先通過深度學習方式識別紗筒口大致位置,避免了圖片背景影響并提高了識別速度,隨后采用傳統圖像處理方式擬合紗筒口,保證了識別精準,最后經過實驗驗證了本文方法的有效性。
圖1 (a) 示出圓緯機自動化生產線中的換筒機器人整體機構,圖1 (b)示出末端執行機構。其中工業相機安裝在機械撐爪上與機器人同步運動,光源安裝在工業相機上。機械爪在紗筒更換的過程中會運動到紗筒拍攝工位,此時工業相機對紗筒圖片采集并傳輸給上位機,經過紗筒口識別及距離檢測后,上位機根據紗筒口位置信息控制換筒機器人繼續運動。

圖1 換筒機器人
本文采用海康威視MA-CA050-10GM黑白工業相機,工作時直接采集灰度圖避免紗筒顏色帶來的影響,增加檢測方法的泛化能力,鏡頭選用8 mm定焦鏡頭,采用LED燈作為補光燈。實驗使用的圓柱筒的長為290 mm,外徑為75 mm,內徑為57 mm;圓錐筒的長為170 mm,外徑為38 mm,內徑為28 mm。
實際生產中,車間主要采用固定燈光照明,并通過安裝遮光簾排除陽光帶來的環境光變化的影響,使生產環境相對固定。曝光參數的調整可以改變圖片的亮度,因此,采用LED燈進行補光后,通過調整曝光參數的方式改變紗筒口的亮度,達到紗筒口與環境有較強對比,突出紗筒口的目的。本文曝光參數設置為50 000 μs,圖片采集效果如圖2所示,分別為圓柱筒、圓錐筒。后續圖像處理示意圖均以圓柱筒為例。

圖2 紗筒圖
空紗筒口的定位分為以下步驟進行:1)利用改進的Yolov5模型框選紗筒口在圖片中的大致位置,為后續處理排除背景影響,同時減小計算量;2)對框定區域圖像處理,首先通過邊緣檢測提取梯度圖,隨后對梯度圖進行閾值分割、濾波、形態學閉操作排除弱邊緣以及噪聲影響,最后對紗筒口進行橢圓擬合求得紗筒口徑及中心坐標;3)通過單目相機測距原理完成紗筒口的定位。
2.2.1 改進的Yolov5模型
采集到的空紗筒圖片中包括紗架、滿紗筒等,在圖像處理過程中這些部分會對邊緣檢測、紗筒擬合等產生影響,同時對整張圖片的處理檢測速度會大大降低。為以較快速度同時獲取空紗筒口的類型以及其位置,本文選擇目前綜合效果最好的Yolov5目標檢測算法進行改進檢測。
改進后的網絡框架如圖3所示。模型訓練時紗筒圖片經過數據增強擴充數據集等操作后進入主干網絡[9]。主干網絡中首先對紗筒圖片進行普通卷積操作獲得尺寸為320像素×320像素,通道數為32的特征圖。再通過Ghost模塊提取不同尺度特征圖,并通過注意力機制以及SPPF模塊對得到的筒口特征進行提取融合。隨后利用FPN和PAN結構對不同尺度紗筒特征做進一步融合處理,最后在預測部分對紗筒口進行檢測輸出預測結果。

注:圖中320×320×32表示特征圖尺寸為320像素×320像素,通道數為32,其它依此類推。
2.2.2 網絡輕量化
空紗筒口訓練時,普通卷積會產生許多相似的紗筒特征圖,且產生這部分特征圖的卷積參數量較大,造成計算資源浪費。為減少模型參數量及計算量,提高模型檢測速度,本文采用Ghost[10]模塊將網絡輕量化。
相似的紗筒特征圖可由真實特征圖通過參數量及計算量較小的廉價操作得到。首先通過普通卷積生成部分真實紗筒口特征圖,隨后以這些特征圖為基礎,通過調整卷積分組參數形成的廉價分組卷積操作,從而產生相同數量的Ghost紗筒特征圖,最后將2個部分特征圖拼接作為輸出組成Ghost卷積模塊,其結構如圖4所示。

圖4 GhostConv模塊
同時以Ghost卷積模塊為基礎將C3模塊中的瓶頸層修改為Ghost瓶頸層(GhostBottleneck),其結構如圖5所示。該瓶頸層模塊包括2個Ghost卷積模塊。其中第1個卷積模塊產生一定數量特征圖,第2個卷積模塊最終的輸出不經過激活函數,對模塊最終輸出的通道進行調節用以匹配前后網絡。

圖5 GhostBottleneck模塊
2.2.3 注意力機制
輕量化后的網絡模型在空紗筒口檢測精度上有所降低,為解決此問題,利用注意力機制提升模型精度。空紗筒口圖片在網絡訓練過程中傳遞的特征信息包含了紗架、滿紗筒等,通過注意力機制可以弱化背景的特征權重,增強紗筒口的權重,達到模型優化效果。本文選擇由通道注意力機制和空間注意力機制2部分組成CBAM[11](convolutional block attention module)注意力機制,其結構如圖6所示。

圖6 CBAM網絡結構
通道注意力機制能夠提高重要特征通道的權重。紗筒口特征圖經過最大池化、平均池化忽略掉紗筒特征圖尺寸,送入共享權重的多層感知器[12]訓練。對結果進行相加并通過Sigmoid激活函數后,有利于紗筒口識別的特征通道權重被增強。
空間注意力機制可以增強目標位置信息。紗筒口特征圖經過最大池化、平均池化后將通道信息融合,只留下2個原尺寸的特征圖。隨后進行通道拼接,經過卷積操作以及Sigmoid激活函數后重要位置的特征權重被增強。
最終改進后的模型檢測效果如圖7所示。得到空紗筒口在圖片中的位置后可將該區域作為空紗筒口擬合的輸入圖像。

圖7 模型檢測效果
2.3.1 紗筒口邊緣處理算法
獲得紗筒口的位置區域后,為了對紗筒口擬合,首先需要得到紗筒口的輪廓。紗筒口的邊緣為灰度值突變的位置,因此,通過具有較高效率的Sobel算子進行邊緣檢測獲取紗筒邊緣梯度,其擁有如圖8所示X和Y方向2個算子。

圖8 Sobel算子
Sobel算子對紗筒圖中點(i,j) 進行卷積計算,求得X、Y方向梯度Gx、Gy,將二者絕對值相加可求得最終梯度。
邊緣檢測結果如圖9(a)所示。紗筒口梯度圖中,梯度大小反映了邊緣的強弱,紗筒口邊緣屬于強邊緣,通過特定的梯度閾值可以將弱邊緣排除,然而固定的閾值無法適應不同紗筒圖片的需求,為此,采取具有自適應能力的OTSU閾值法進行分割。

圖9 邊緣檢測結果
首先預設閾值T將紗筒圖分為背景部分及筒口邊緣部分。背景部分灰度值小于T,其灰度均值為T1,全圖中屬于背景部分的概率為p1。筒口邊緣部分灰度值大于T,其灰度均值為T2,全圖中屬于筒口邊緣的概率為p2。T0為全圖灰度均值。當2個部分灰度均方差σ2取最大值時,背景部分與筒口邊緣部分差距最大,此時T為理想閾值,其公式為
σ2=p1(T1-T0)2+p2(T2-T0)2
閾值分割后的紗筒口圖會產生一些噪聲,且多為離散的點,對后續的輪廓擬合產生影響。為消除噪聲的同時保留紗筒口圖閾值化后的灰度值,避免再次閾值化,采取中值濾波進行處理,該方法將噪聲點及其周圍的灰度值進行排序,取序列的中值作為該像素點的新灰度值[13],對椒鹽噪聲有良好的效果。
濾波后的紗筒口邊緣存在部分像素點與邊緣接近并且有黏連,為將該部分像素點包括進輪廓中使紗筒輪廓平滑,對圖片進行閉運算。閉運算是形態學處理中先膨脹再腐蝕的運算方法。膨脹運算可以將像素級小的缺口相連接,腐蝕運算可以消除膨脹后的邊緣擴散情況。邊緣處理效果如圖9(b)~(d)所示。
2.3.2 邊緣輪廓擬合
要獲取空紗筒口外徑及其圓心坐標,需要對紗筒口的邊緣進行擬合。在生產使用期間筒口的形狀可能產生一定變化,同時紗筒口在映射到成像平面時會產生微小的形變,其形狀更接近橢圓,因此,采用最小二乘法對紗筒口邊緣輪廓進行橢圓擬合。最小二乘法是通過最大似然估計法推導得到的一種最優估計的方法。
基于最小二乘法擬合橢圓的目標函數為
f(A,B,C,D,E)=
式中:A、B、C、D、E為橢圓的5個參數;xi、yi為待擬合點的坐標。
空紗筒口圖片經過邊緣處理得到由n個點組成的紗筒邊緣。將每個點對應坐標代入目標函數進行擬合,當目標函數取最小值時即為擬合的最佳橢圓。此時,根據極值原理可以推導出線性方程組并求得參數A、B、C、D、E。隨后根據橢圓的一般方程可求得圖片中紗筒中心坐標及紗筒外徑的長短軸。
經過輪廓擬合后需要對所得橢圓進行后處理,排除受噪聲像素影響產生的軸長超出范圍或圓度不符合要求的橢圓。本文主要通過設定橢圓短長軸的比例大于0.9排除較為扁平的橢圓,隨后根據紗筒口外徑的大小選取合適的長短軸范圍,排除不符合要求的橢圓,符合要求的橢圓均參與定位并取均值作為結果,擬合結果如圖10所示。

圖10 橢圓擬合結果
在進行紗筒口的定位時,為不干涉機械爪運動,相機安裝空間小,導致有效取圖位置有限。為解決此問題,選擇體積小、成本低且精度高的單目工業相機完成近距離紗筒口圖像采集。
本文通過單目相機小孔成像原理進行紗筒口的測距,測距原理如圖11所示。物體平面指紗筒口所在平面,針孔平面指工業相機鏡頭所在平面,成像平面指工業相機感光元件所在平面,xc為相機主光軸。

圖11 測距原理示意圖
工業相機進行拍照時,紗筒口通過針孔平面映射到成像平面,根據小孔成像原理[14]可得
式中:d為已知的紗筒口外徑尺寸,mm;D為筒口到相機的距離,mm;f為相機焦距,mm;N為圖片中筒口外徑的像素數,像素;μ為相機像元尺寸,mm。
測距時筒口外徑在感光元件上的尺寸o′w′,可由圖11中筒口外徑的像素數N,與相機像元尺寸μ確定,進而通過相似三角形求得紗筒口與相機的距離D。
檢測原理示意圖如圖12所示。通過單目測距原理求得紗筒口與相機正對方向的距離Dx后,經過圖像處理獲得紗筒口中心O坐標與圖片中心的像素差值。隨后可根據相同原理求得紗筒口中心與相機主光軸,即工業相機橫向距離Dy和縱向距離Dz。

圖12 檢測原理示意圖
為驗證本文方法的可行性,首先需要驗證紗筒口識別模型的有效性,因此,本文采取消融實驗的方式驗證紗筒口識別模型的改進效果。本文模型實驗紗筒口識別模型應在準確率達到98%以上的基礎上進行優化,使其具有更小的體積、更快的速度。
采集不同環境、不同光照條件下的位于紗架上的紗筒圖片575張進行訓練,76張進行測試。深度學習的訓練環境為:NVIDIA GeForce GTX 1060顯卡、Windows操作系統、 Pytorch 1.11.0框架、Cuda11.3版本、cudnn8.2版本。訓練的批次大小選擇為16,訓練300輪。采用參數量對網絡模型的大小進行評估,以平均準確率(mAP)對網絡模型識別準確率進行評估,每秒檢測圖片數量(FPS)對網絡模型檢測速度進行評估。檢測結果如表1所示。

表1 模型檢測結果
如表1所示,本文通過消融實驗對模型進行比較,表中4種模型分別為Yolov5原始模型、Yolov5單獨加入CBAM注意力機制的模型、Yolov5單獨加入Ghost模塊的模型以及Yolov5融合注意力機制與Ghost模塊的本文最終的模型。由表1可知,4種模型的準確率都達到了99%以上,說明模型對于紗筒口的識別具有良好的效果。其中單獨加入注意力機制的模型準確率降低了0.1%,其原因是原模型對于特征提取效果已經趨于飽和,加入注意力機制后對權重調整時,反而將一些相對有用的特征權重進行了弱化導致精度降低。注意力機制模塊的加入使模型的參數量增加了約0.03 M,但由于重要特征圖被增強所以檢測速度變快。單獨加入Ghost模塊后由于卷積模塊產生的真實特征圖比原模型少,導致一些有用特征產生損失,因此準確率降低0.2%,參數量相對于原模型減少了約一半,通過實驗可以得到,Ghost模塊能夠達到在不改變通道數的前提下降低計算成本的目的,且具有顯著的輕量化效果,同時檢測速度也有了較大的提升。將Ghost模塊以及CBAM模塊同時加入網絡模型,檢測準確率為99.2%,相對于輕量化模型增加了0.2%,在真實特征圖較少的情況下加入注意力機制后效果較為明顯;參數量(3.71 M)在加入注意力機制后有少量增加,對于本身就比較輕量化的網絡而言檢測速度(54.3幀/s)相對降低。
綜上,本文改進的網絡模型能夠在保證準確率的情況下,有效減少參數量,提高檢測速度。
為驗證本文定位方法的可行性,采集紗筒圖片后,利用本文方法處理獲得定位距離結果,并與實際距離進行比較來證明定位滿足需求。根據換筒機器人的運動方向定義,取相機正對的方向為X軸,橫向為Y軸,縱向為Z軸。其中X軸均為正值,Y軸向左為負值、向右為正值,Z軸向上為正值、向下為負值,且機器人運動誤差小于2 mm。
換筒機器人末端執行機構的撐爪部分采用三合一的可分離式結構,機械爪通過旋轉張開的方式來撐緊空筒完成空筒的抓取。設計的機械撐爪部分長為120 mm,閉合后的直徑為16 mm,為方便進入紗筒,撐爪頭為錐形。
抓取圓柱筒時,撐爪進入圓柱筒內90~120 mm處可穩定抓取圓柱筒,取105 mm為預設值。抓取圓錐筒時,撐爪進入筒內40~70 mm處可穩定抓取,取55 mm為預設值。由此可得X方向的誤差可接受范圍為-15~15 mm。Y軸和Z軸的誤差范圍以滿足圓錐筒需求為準,撐爪進入圓錐筒后筒內共有12 mm的盈余,預留2 mm安全距離后,Y軸、Z軸的誤差可接受范圍為-4~4 mm。
實驗過程中在不同的位置采集紗筒圖片后,首先經過深度學習模型框出紗筒口大致位置,隨后通過傳統算法的紗筒口擬合,求得紗筒口的中心點坐標以及紗筒口口徑。通過單目相機測距原理測得紗筒口相對于工業相機X、Y、Z方向的距離后,與實際測得距離進行比較得出誤差,實驗結果如表2所示。

表2 定位實驗結果
從表2結果可以得到,X軸、Y軸、Z軸的最大誤差絕對值分別為1.3、1.9、0.7 mm,3個軸的誤差均在誤差允許范圍內。
在保證定位方法有效的前提下,本文在CPU為i5系列6200u、運行內存4 G、Visual Studio 2017、OpenCV4.5.5的環境下對本文方法進行耗時分析。在對紗筒進行擬合時,耗時基本一致約為1 s。粗定位時,基于深度學習的定位方式檢測速度約為2 s,采用傳統方式直接進行筒口擬合耗時約為5 s,效率提升150%。其原因在于傳統算法需要對整張圖片進行卷積得到邊緣檢測結果,該部分操作計算量較大導致速度變慢。同時傳統算法相較于深度學習更容易受到環境的影響,輪廓擬合時容易產生較多干擾,或無法正確擬合出紗筒。深度學習的方式可有效排除環境的干擾,為紗筒的擬合提供有利條件。
在實際工作中,紗筒口平面與相機平面不平行會對測量產生一定影響,因此,在工作前需根據紗筒的正常角度,利用機器人旋轉軸對拍攝工位以及相機安裝角度進行校準,使二者平行,并在使用一定時間后重新校準,經過校準后本文方法可直接使用。若紗筒角度偏差過大則無法擬合出預期橢圓,此時紗筒位置產生需人工干預的較大錯誤 ,可通過控制系統傳出錯誤信息。綜上分析,本文提出的空紗筒口定位方法可以實現換筒機器人空筒定位功能。
本文提出了深度學習與傳統圖像處理相結合的定位方法,解決了圓緯機自動化生產線中換筒桁架機器人在紗架上取空筒時的空筒口定位問題。首先通過改進后的Yolov5模型進行紗筒口大致位置的框定,隨后經過傳統算法的圖像處理以及橢圓輪廓擬合的方式獲得得空筒口信息,最后利用單目相機測距原理對空筒口進行定位。實驗證明改進后的模型體積更小且有較高的準確率,定位結果誤差也在允許范圍內,基本滿足換筒桁架機器人空筒定位功能需求,為紡織行業自動換筒技術的完善和發展提供了參考。