梁世佳, 徐哲壯, 林 燁, 邱 洋, 陳 丹, 陳 劍
(福州大學(xué) 電氣工程與自動化學(xué)院 自動化系,福建 福州 350108)
在木材家具加工領(lǐng)域中,需要將多塊木材部件進行組合[1],使之生產(chǎn)出色彩紋理協(xié)調(diào)的家具產(chǎn)品。但是在實際生產(chǎn)過程中,由于木材長度長,重量重,體積大,要在大量的木材中找到一組能夠合適拼接的木材,其中不僅需要進行反復(fù)的比對,更需要占據(jù)大量的空間,進而導(dǎo)致生產(chǎn)效率低,生產(chǎn)成本高。
自然環(huán)境下的木材,在生長期間易受到微生物侵害的影響,使得同一品種的木材之間顏色紋理很難保持協(xié)調(diào)統(tǒng)一,即便同一塊木材也可能擁有著兩種或兩種以上的顏色[2],將不同的色差和紋理的木材配件結(jié)合在一起會降低木材加工后的美觀價值,進而降低企業(yè)的經(jīng)濟效益[3]。
機器視覺廣泛運用在工業(yè)領(lǐng)域[4],機器學(xué)習(xí)算法可有效提取特征,本文將二者結(jié)合提出基于機器視覺的木材選色系統(tǒng),實現(xiàn)了木材選色自動化。并從整體方案設(shè)計、算法流程、實驗設(shè)計、結(jié)果與分析等方面詳細闡述了該系統(tǒng)。最后,將該系統(tǒng)應(yīng)用于木材生產(chǎn)加工流水線,證明算法有效性。
基于機器視覺的木材選色系統(tǒng)的方案架構(gòu)包括兩個子過程:1)樣本采集與離線訓(xùn)練:在此過程中,通過采集數(shù)據(jù)、數(shù)據(jù)清洗、特征提取、聚類分析、算法評估等步驟訓(xùn)練出顏色判別模型,并驗證模型的有效性、對比不同參數(shù)下模型的性能。2)在線實時預(yù)測木材顏色類別:通過采集設(shè)備實時采集圖像數(shù)據(jù),經(jīng)過算法預(yù)測得到結(jié)果。
硬件系統(tǒng)如圖 1所示。系統(tǒng)主要由計算機(Win10操作系統(tǒng))、工業(yè)相機(DALSA線陣相機LA-GC-02K05B系列)、打印機(小字符噴碼機)、流水線系統(tǒng)組成,通過此系統(tǒng),采集所需要的木材圖像數(shù)據(jù)用于實驗分析,最終通過此系統(tǒng)實時采集木材圖像數(shù)據(jù),并使用算法對木材顏色類別進行預(yù)測,預(yù)測完畢后通過打印設(shè)備打印其所屬的類別標簽。采集到的圖像樣本如圖2所示。
圖1 硬件系統(tǒng)
圖2 設(shè)備采集的樣本圖片
實驗環(huán)境:編程語言為Python 3.6,C#,計算機運行內(nèi)存為8 G,計算機操作系統(tǒng)為Win10,計算機處理器為Intel,開發(fā)工具為Anaconda3,Microsoft Visual Studio 2015。
基于機器視覺的木材選色系統(tǒng)使用Python和C#兩種編程語言實現(xiàn),Python可高效對數(shù)據(jù)進行處理、模型訓(xùn)練,C#主要完成對硬件系統(tǒng)的控制,兩種編程語言通過Websocket通信協(xié)議[5]進行交互,其設(shè)計流程如圖3所示。
圖3 軟件架構(gòu)
在線實時預(yù)測過程,通過攝像機采集樣本圖片保存至本地,通過Websocket通信協(xié)議將獲取到的圖片路徑發(fā)送至Python環(huán)境下,在Python環(huán)境下使用圖像處理算法對數(shù)據(jù)進行預(yù)處理、特征提取、樣本預(yù)測等操作,將預(yù)測結(jié)果發(fā)送至C#開發(fā)環(huán)境,控制打印設(shè)備對預(yù)測結(jié)果進行打印。
采集到的圖像數(shù)據(jù)中不僅包含木材區(qū)域,也包含背景區(qū)域,需要對采集的圖片進行木材區(qū)域檢測,使用輪廓檢測[6]算法提取出木材所在區(qū)域。
原始生長的樹木到成形的木材,需要經(jīng)過多重加工步驟,在加工過程中,容易對木材表面造成影響,如加工設(shè)備造成的壓痕(如圖 4 (a) 所示),同時天然生長的木材也會因為蟲蛀等影響(如圖 4 (b)所示),造成其表面顏色喪失原本的屬性,特別是針對整塊木材顏色都受到嚴重干擾的(如圖 5所示),直接將其剔除出樣本。對于小范圍有加工壓痕或者蟲蛀的樣本,處理方法是保留該樣本,但是對于影響的區(qū)域進行濾除。
圖4 設(shè)備加工壓痕與木材的天然缺陷
圖5 木材表面受到嚴重干擾的樣本
在計算機圖像處理中,最通用的面向硬件的色彩模型是RGB(R:紅、G:綠、B:藍)模型,該模型適用于顯示系統(tǒng),廣泛運用于顏色檢測[7]??紤]計算機對圖像的處理方式,選擇在RGB色彩模型對木材的顏色進行特征提取,方法如下:
首先,從數(shù)據(jù)清洗后的樣本中進行子集抽樣,并對抽樣的樣本在RGB色彩模型下分別對R,G,B三通道進行直方圖統(tǒng)計,選取RGB各個通道中占比較大區(qū)間的上下限值,三個通道選取的區(qū)間上下限分別記為[RL,RH],[GL,GH],[BL,BH],其中RL,RH,GL,GH,BL,BH的取值范圍均為 [0, 255],且RL 對每個樣本進行特征提取時,將樣本的所有像素投射到RGB色彩空間中木材顏色空間中,若對應(yīng)像素值在木材顏色空間下,則此像素值計數(shù)加1,若對應(yīng)像素在木材顏色空間之外,則丟棄此像素,最終得到一個(RH-RL)×(GH-GL)×(BH-BL)大小的立方體矩陣,該立方體矩陣即為所要提取的特征矩陣。 考慮到所提取的特征矩陣維度大,且各個像素值的統(tǒng)計量差異可能較大,故需要對特征矩陣進行維度壓縮和歸一化,維度壓縮時將特征矩陣相鄰的若干像素值當作同一種顏色,同時將特征矩陣中的各個值除以特征矩陣各個值的累加以完成歸一化操作,最終得到特征頻率矩陣。 圖6展示的是一個樣本在RGB色彩空間下的特征,其中空間上每個坐標點代表一種顏色,圖示每個小方格即為所要提取的特征(每個方格代表一個值,其值代表該坐標顏色數(shù)量占整個木材顏色空間中所有顏色的比重,比重的大小在圖示中用顏色深淺來表示),每個方格稱作一個bins,bins越多(圖 6中展示的是8 bin×8 bin×8 bin,也可以設(shè)置成16×16×16等),顏色分得更精細,所得到的特征的個數(shù)也就越多,但同時計算量也會變大,最后將所有的bins展開成一個特征向量,作為每個樣本最終提取的特征向量。 圖6 RGB色彩空間下木材的顏色空間 監(jiān)督學(xué)習(xí)要求訓(xùn)練的樣本有一一對應(yīng)的標簽,在木材顏色分類場景下,要對木材樣本顏色進行標注并不現(xiàn)實。首先,標注成本高,由于木材顏色豐富,如果沒有進行對比無法確定具體的標簽;其次,主觀影響大、標注準確率低,不同人對同樣的木材樣本可能有不同的標注結(jié)果,人眼長時間的標注也可能導(dǎo)致標注混亂造成樣本標注的不穩(wěn)定性。由于監(jiān)督學(xué)習(xí)算法嚴重依賴樣本標注,若標注錯誤或者不穩(wěn)定,將會大大影響算法的準確率和算法的穩(wěn)定性。 鑒于以上實際存在的問題,本文針對該場景提出以無監(jiān)督學(xué)習(xí)方法——聚類算法,對木材的顏色進行分類,達到木材顏色分級的效果。 聚類是在事先并不知道任何樣本類別標簽的情況下,通過數(shù)據(jù)之間的內(nèi)在關(guān)系把樣本劃分為若干類別,使得同類別樣本之間的相似度高,不同類別之間的樣本相似度低[8]。其中,K均值聚類(K-means clustering)[9,10]是最基礎(chǔ)和最常用的聚類算法。K均值聚類核心算法流程圖如圖7所示。 圖7 K-means算法流程 在RGB色彩空間下對木材樣本進行特征提取,木材樣本在RGB色彩空間下的直方圖統(tǒng)計的結(jié)果如圖 8所示。根據(jù)統(tǒng)計的結(jié)果,選取R,G,B三通道范圍分別為[115,230],[80,200],[55,170],對所有樣本計算在此子空間下每個顏色占該子空間所有顏色數(shù)量的比重,得到特征矩陣。 圖8 在RGB色彩空間下對樣本R,G,B通道進行統(tǒng)計 對特征矩陣進行維度壓縮和歸一化操作,將其壓縮成指定維度大小,最終展開成一個向量,根據(jù)bins參數(shù)不同,展開后向量的長度也不同。 對所有樣本進行特征提取后,使用K-means算法對所有樣本進行聚類,由于 K-means是結(jié)果受初始值影響的局部最優(yōu)的迭代算法,因此需要運行多次以選擇一個較好的聚類效果,故在本實驗中設(shè)置了隨機的初始化質(zhì)心128次運行K-means算法,使運行結(jié)果達到一個相對較優(yōu)的效果。 在本實驗中,選擇15 000個樣本作為訓(xùn)練集;每個樣本的特征維度是16×16×16=4 096(即每一個樣本得到的特征是一個長度為4 096的特征向量);聚類數(shù)目設(shè)置成20類、40類、60類(即K值分別取20,40,60)分別進行實驗,訓(xùn)練出3個模型。 訓(xùn)練集樣本到質(zhì)心的平均距離如表1所示,當聚類數(shù)量增大時,訓(xùn)練樣本到質(zhì)心的平均距離變小。 表1 訓(xùn)練集樣本到質(zhì)心的平均距離 對于監(jiān)督學(xué)習(xí)方法,有具體的指標可以進行衡量與評判,然而聚類算法卻沒有一個可靠的評價指標可以用來評價不同聚類算法的結(jié)果。鑒于對聚類算法效果優(yōu)劣評判的困難,引入人工判別機制,具體過程如下(以一個模型進行說明):1)準備1 000張與訓(xùn)練集無交集的測試樣本,經(jīng)過模型預(yù)測出對應(yīng)的類別;2)計算每個簇(或類別)的質(zhì)心,選取出每個簇中距離距離質(zhì)心最近的那個樣本(得到的樣本稱作模板圖片);3)將每一個測試圖片樣本(預(yù)測結(jié)果的值)與對應(yīng)的模板圖片拼接在一起(設(shè)計軟件自動完成模板圖片與測試樣本圖片拼接),由人工進行觀察并標記,剔除那些測試圖片樣本與模板圖片顏色相差較大的樣本;4)計算未被排除的圖片樣本占所有測試樣本的比例,即為人工判別準確率,為減少人為因素的干擾,由多位人員同時進行判別。 聚類數(shù)K為20,40,60時,實驗結(jié)果如表2所示。 表2 不同標注人員對模型標注的準確率 % 從表2可以看出,聚類數(shù)(K值)越大,測試樣本與模板圖片顏色相似度的判別準確率越高。原因在于木材在天然生長時,由于氣候、環(huán)境等自然因素導(dǎo)致木材顏色存在較大差異,聚類數(shù)目越多,越能對顏色進行細分,提升類之間的相似度。 同時,不同標注人員在標注兩張木材圖片是否存在顏色相近時,存在較大的差別,特別是針對沒有相關(guān)背景的人員,其評判的標準相對嚴格。 木材產(chǎn)品表面顏色是否協(xié)調(diào)是木材加工領(lǐng)域的重要環(huán)節(jié),也是決定最終產(chǎn)品的經(jīng)濟效益。本文通過設(shè)計、提取木材的顏色特征,提出使用聚類算法對木材顏色進行分類,實驗結(jié)果表明:在木材顏色分級領(lǐng)域,使用無監(jiān)督學(xué)習(xí)的聚類算法進行分類,可以減少標注的成本和標注低效的問題,同時提升了木材生產(chǎn)加工中木材產(chǎn)品顏色匹配的問題,對于木材加工生產(chǎn)、提升企業(yè)經(jīng)濟效益具有參考價值。2.3 聚類分析
3 實驗設(shè)計
3.1 數(shù)據(jù)處理與特征提取
3.2 聚類算法實驗與分析
4 結(jié) 論