高君宇, 賈潤(rùn)達(dá),*, 郎 督, 李 康
(1.東北大學(xué)信息科學(xué)與工程學(xué)院,遼寧 沈陽(yáng) 110819;2.礦冶科技集團(tuán)有限公司,北京 100160)
泡沫浮選用于微細(xì)粒礦物質(zhì)的分離提取,是應(yīng)用于金屬、化工和煤炭等工業(yè)領(lǐng)域的原料分離技術(shù)[1-2]。目前,在礦物分選過(guò)程中,浮選操作的調(diào)整主要依賴人工對(duì)浮選泡沫表面特征的判斷,自動(dòng)化水平較低,且易造成礦物資源、浮選藥劑和人力資源的浪費(fèi)[3-5]。近年來(lái),計(jì)算機(jī)視覺(Computer Vision, CV)技術(shù)迅速發(fā)展,使用計(jì)算機(jī)分析浮選泡沫圖像對(duì)資源的節(jié)約、效率的提高以及自動(dòng)化水平的提升具有重要的意義[6-9]。在利用CV技術(shù)進(jìn)行學(xué)習(xí)時(shí),往往需要大量的離散數(shù)據(jù)來(lái)完成模型的訓(xùn)練,因此在工業(yè)現(xiàn)場(chǎng)需要保存大量的高分辨率浮選泡沫圖像。為了降低工控機(jī)存儲(chǔ)與傳輸數(shù)據(jù)的負(fù)擔(dān),可利用JPEG算法壓縮泡沫圖像以獲得小格式的文件[10-12]。但壓縮后的圖像難以高質(zhì)量的呈現(xiàn)浮選泡沫圖像的全部特征,為后續(xù)圖像處理帶來(lái)困難[13]。因此,提出利用JPEG算法對(duì)工業(yè)現(xiàn)場(chǎng)的高分辨率浮選泡沫圖像進(jìn)行壓縮處理以獲得低分辨率的圖像,減少工業(yè)應(yīng)用中保存大量浮選泡沫圖像所需的存儲(chǔ)空間;在此基礎(chǔ)之上,利用生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks, GAN)重建受損的低分辨率圖像,恢復(fù)低分辨率圖像的色差、細(xì)節(jié)、輪廓以及失真區(qū)域,重新得到高分辨率的浮選泡沫圖像。
泡沫浮選法是一種利用礦物顆粒表面物理化學(xué)性質(zhì)差異,實(shí)現(xiàn)不同礦物有效分離的選礦方法,而浮選泡沫表面的特征可反映浮選過(guò)程的運(yùn)行狀態(tài)。針對(duì)在工業(yè)現(xiàn)場(chǎng)難以儲(chǔ)存大量高分辨率浮選泡沫圖像的問題,利用JPEG算法對(duì)圖像進(jìn)行壓縮以減少所需的圖像儲(chǔ)存空間。
泡沫浮選法是一種常用的礦物分離技術(shù),其分離流程包括礦物破碎、礦物懸浮液制備、攪拌混合、氣泡吸附、溶液收集和廢料處理六部分[14]。以浮選柱為例,礦漿、藥劑從浮選柱頂端給入,利用尾礦的排出量控制礦物浮選。柱體頂部負(fù)責(zé)收集浮選精礦,尾礦則由尾礦口排出??諝庥蓪?dǎo)氣管吸入,被破碎為氣泡,形成氣液固三相體系。浮力和離心力使氣泡與礦漿發(fā)生碰撞,氣泡在上升過(guò)程中不斷礦化,實(shí)現(xiàn)礦物的浮選。
利用人工經(jīng)驗(yàn)和大量數(shù)據(jù)樣本,可以提取浮選泡沫圖像特征,實(shí)現(xiàn)浮選過(guò)程運(yùn)行狀態(tài)的評(píng)價(jià)以及優(yōu)化操作。但是有損壓縮的圖像會(huì)損失大量信息,在壓縮程度較大的情況下圖像失真、模糊等問題尤為嚴(yán)重,需要一種有效的方法對(duì)壓縮后的圖像進(jìn)行重建,復(fù)原其原有的信息。
使用JPEG算法對(duì)圖像進(jìn)行壓縮時(shí),首先要進(jìn)行YCrCb彩色空間到RGB彩色空間的轉(zhuǎn)換,如式(1)—(3)所示:
Y=0.299R+0.587G+0.144B-128
(1)
Cr=0.500R-0.4187G-0.0813B
(2)
Cb=-0.1687R-0.3133G+0.500B
(3)
然后,將信源圖像劃分為8×8的像素塊,并由這些像素塊構(gòu)成最小編碼單位(Minimum Coded Unit,MCU)的像塊集合。在空間轉(zhuǎn)換后,采用圖像子采樣方法對(duì)圖像進(jìn)行采樣。對(duì)經(jīng)過(guò)顏色空間轉(zhuǎn)換后得到的三個(gè)8×8的矩陣做二維DCT轉(zhuǎn)換分解為直流分量和交流分量,其轉(zhuǎn)換公式如式(4)所示:
F(u,v)=alpha(u)·alpha(v)·
(4)
其中u,v=1,2,...,7,且
(5)
對(duì)DCT變換后的數(shù)據(jù)量化來(lái)增加零系數(shù)的數(shù)目,降低精度來(lái)減少數(shù)據(jù)量。在JPEG算法中,對(duì)64個(gè)DCT變換系數(shù),除以對(duì)應(yīng)的量化步長(zhǎng),四舍五入取整,系數(shù)的排列方式采用Z字排列方式。最后,對(duì)系數(shù)進(jìn)行基于統(tǒng)計(jì)特性的熵編碼,由于直流分量和交流分量的性質(zhì)不同,需要對(duì)其采用不同的編碼方式,對(duì)直流參數(shù)采用插值脈沖編碼,而對(duì)交流參數(shù)采用哈夫曼編碼[15]。
針對(duì)壓縮后的低分辨率浮選泡沫圖像難以真實(shí)反應(yīng)原始圖像細(xì)節(jié)特征等問題,提出利用GAN對(duì)壓縮后的低分辨率圖像進(jìn)行重建,還原大部分的丟失細(xì)節(jié)特征,得到高分辨率的重建圖像,以滿足浮選泡沫圖像分析的需求。
算法的訓(xùn)練階段流程如圖1所示。將低分辨率的圖像輸入生成器(Generator),訓(xùn)練GAN。生成器生成的數(shù)據(jù)交由判別器(Discriminator)和真實(shí)數(shù)據(jù)比較,并試圖使生成的數(shù)據(jù)欺騙判別器,判別器對(duì)生成器生成的數(shù)據(jù)給出精確的判斷,并返回生成數(shù)據(jù)為真的概率。當(dāng)判別器無(wú)法判定生成器生成的數(shù)據(jù)是否為真或假時(shí),訓(xùn)練完畢,此時(shí)生成器生成的數(shù)據(jù)和真實(shí)數(shù)據(jù)具有相同的特征,在此過(guò)程中生成器和判別器不斷使用極大極小算法調(diào)整參數(shù)[16]。在測(cè)試階段中,將未經(jīng)訓(xùn)練的低分辨率圖像,輸入到經(jīng)過(guò)訓(xùn)練后的生成器中,得到重建的高分辨率圖像。
圖1 訓(xùn)練階段流程圖
2.2.1 生成式網(wǎng)絡(luò)模型結(jié)構(gòu)
生成式網(wǎng)絡(luò)采用如圖2所示的RRDBNet模型。該模型主干由3個(gè)RRDB密集殘差塊構(gòu)成,每個(gè)RRDB殘差塊包括5個(gè)卷積層和LReLU作為激活函數(shù)。LReLU函數(shù)表達(dá)式為:
(6)
其中,x為卷積運(yùn)算后的輸出值,γ通常為很小的常數(shù)。該激活函數(shù)在輸入大于“0”時(shí),梯度恒為“1”,當(dāng)輸入小于“0”時(shí),存在微小的梯度,計(jì)算簡(jiǎn)單,提高了算法的效率,同時(shí)避免了神經(jīng)元“死亡”。
密集連接的卷積層可以提取豐富的局部特征,RRDB模塊借助多層連接,跳躍結(jié)構(gòu)和密連結(jié)構(gòu)使每一層都具有殘差結(jié)構(gòu),同時(shí)0~1之間的殘差結(jié)構(gòu)系數(shù)β可以穩(wěn)定模型,既可以防止梯度消失,又使每一層都融合了其他層的特征,豐富了特征層級(jí),便于更好的提取特征。RRDB模塊去掉了BN層來(lái)防止因歸一化時(shí)訓(xùn)練和測(cè)試兩個(gè)過(guò)程中均值和方差差別太大造成的偽影,提高了網(wǎng)絡(luò)的泛化能力。
2.2.2 判別網(wǎng)絡(luò)模型結(jié)構(gòu)
判別式模型采用圖3所示的VGG19卷積神經(jīng)網(wǎng)絡(luò),其包含16個(gè)卷積層與3個(gè)全連接層,中間為池化層,最后為Softmax層。VGG19采用3×3的卷積核進(jìn)行卷積運(yùn)算來(lái)更多的提取圖像特征[17]。
圖2 RRDBNet網(wǎng)絡(luò)結(jié)構(gòu)
圖3 VGG19網(wǎng)絡(luò)結(jié)構(gòu)
卷積層輸入輸出關(guān)系如式(7)所示:
yconv=δ(Mat·W+b)
(7)
其中,yconv是輸出結(jié)果,δ(·)是激活函數(shù),Mat為灰度圖矩陣,W是卷積核,b是偏置值。激活函數(shù)采用ReLU函數(shù),其表達(dá)式為:
f(x)=max(0,x)
(8)
池化層采用步長(zhǎng)為2,池化框尺寸為2×2的最大池化(Maxpooling)方法對(duì)圖像特征做進(jìn)一步的提取。表達(dá)式為:
fpool=max(xm,n,xm+1,n,xm,n+1.xm+1,n+1)
(9)
其中,0≤m≤M,0≤n≤N,M和N分別為圖像二維向量的長(zhǎng)與寬。
Softmax層作為數(shù)據(jù)分類的分類器,其訓(xùn)練集為k個(gè)標(biāo)記過(guò)的樣本:
T={(x(1),y(1)),(x(2),y(2)),…,(x(k),y(k))}
(10)
式(10)中,y(i)是分類標(biāo)簽,x(i)是樣本集合。對(duì)于每個(gè)樣本,第k類標(biāo)簽的概率是:
(11)
2.2.3 模型損失函數(shù)的計(jì)算
算法中,損失函數(shù)包括L1損失,感知損失和對(duì)抗損失。重建圖像和原始圖像之間的L1距離取平均值作為L(zhǎng)1損失,其公式如式(12)所示:
(12)
式(12)中,r為原始圖像和低分辨率圖像水平(或垂直)分辨率之比,W為低分辨率圖像的水平分辨率,H為低分辨率圖像的垂直分辨率。L1損失不會(huì)過(guò)度懲罰誤差項(xiàng),且隨誤差線性增長(zhǎng),避免了梯度爆炸的產(chǎn)生,有助于增強(qiáng)邊緣等低頻特征的視覺效果,具有較好的魯棒性。
感知損失為重構(gòu)圖像和原始圖像在深層次的細(xì)節(jié)上的差異,用于對(duì)數(shù)據(jù)的高頻成分進(jìn)行還原[18],其公式如式(13)所示:
(13)
式(13)中,?i(IHR)和?i(ISR)為原始圖像和低分辨率圖像的特征,n為特征的個(gè)數(shù)。
對(duì)抗損失為GAN的損失,其表達(dá)式為:
Ladv=Ex~Pdata(x)[logD(x)]+
Ez~Pnoise(z)[log(1-D(G(z)))]
(14)
式(14)中,E(x)表示分布函數(shù)的期望值,Pdata(x)代表真實(shí)樣本的分布,Pnoise(z)是定義在低維的噪聲分布,D(x)為判別器的返回值,G(z)為生成器的返回值。
總損失函數(shù)為:
Ltotal=λ1·L1+λper·Lper+λadv·Ladv
(15)
式(15)中λ1,λper,和λadv分別設(shè)置為0.0001,1和0.05。
初始的訓(xùn)練數(shù)據(jù)為某金礦選廠浮選圖像,分辨率為1024×896。低分辨率圖像由高分辨率圖像將長(zhǎng)寬縮放1/2,并采用質(zhì)量為15%的JPEG壓縮得到。訓(xùn)練集共有1791條數(shù)據(jù),測(cè)試集共有461條數(shù)據(jù)。實(shí)驗(yàn)環(huán)境配置為L(zhǎng)inux18.04操作系統(tǒng),PaddlePaddle 2.1.2深度學(xué)習(xí)框架,使用Python和MATLAB作為編程語(yǔ)言,CUDA版本為CUDA10.1,GPU型號(hào)為Tesla V100 32GB,訓(xùn)練過(guò)程中,學(xué)習(xí)率設(shè)置為0.0001,模型批訓(xùn)練次數(shù)的大小為16,迭代次數(shù)為80000。
圖4為低分辨率圖像、原始圖像以及重建圖像。左圖為通過(guò)下采樣降低浮選泡沫圖像的分辨率,然后使用JPEG算法對(duì)圖像進(jìn)行壓縮后的圖像,相比于原始圖像,其僅有15KB,但產(chǎn)生了失真,且顏色發(fā)生了改變。右圖中重建后的圖像和原圖像基本一致。
圖4 實(shí)驗(yàn)圖像對(duì)比(從左至右分別為:低分辨率圖像,原始圖像,重建圖像)
圖5 實(shí)驗(yàn)圖像對(duì)比(局部放大)(從左至右分別為:低分辨率圖像,原始圖像和重建圖像)
將圖像局部放大進(jìn)行分析,圖5為局部放大后的低分辨率圖像、原始圖像以及重建圖像。相比于原始圖像,低分辨率的圖像明顯比較模糊,出現(xiàn)了失真,色差發(fā)生異常變化,而經(jīng)過(guò)重建后的圖像對(duì)大氣泡、密集小氣泡以及混合氣泡的特征進(jìn)行了還原,恢復(fù)了細(xì)節(jié)和輪廓,整體圖像與原始圖像基本一致,沒有明顯的失真區(qū)域,色差恢復(fù)正常。
通過(guò)采用先壓縮后還原的方法對(duì)浮選泡沫圖像進(jìn)行處理,可以使用較小的存儲(chǔ)空間存儲(chǔ)較多的圖像。使用GAN對(duì)壓縮受損的低分辨率圖像進(jìn)行還原,可以恢復(fù)圖像的邊緣、色差、輪廓等細(xì)節(jié)特征,能夠滿足工業(yè)中利用浮選泡沫圖像進(jìn)行過(guò)程建模與優(yōu)化的需求。
針對(duì)浮選工業(yè)現(xiàn)場(chǎng)浮選泡沫圖像儲(chǔ)存所需存儲(chǔ)空間大、對(duì)工控機(jī)要求高等問題,提出將采集的浮選泡沫圖像進(jìn)行有損壓縮得到低分辨率圖像進(jìn)行儲(chǔ)存,再使用超分辨率重建技術(shù)對(duì)低分辨率圖像進(jìn)行還原。該方法首先使用JPEG算法壓縮圖像,然后利用壓縮后的低分辨率的圖像和原始圖像訓(xùn)練GAN,使生成器學(xué)習(xí)到原始圖像的特征,從而在應(yīng)用階段將低分辨率圖像重建為高分辨率圖像。仿真結(jié)果標(biāo)明,所提出的方法在1張/min的浮選圖像存儲(chǔ)頻率下,空間7GB左右的存儲(chǔ)空間即可存儲(chǔ)一年的浮選圖像數(shù)據(jù),所需存儲(chǔ)空間僅為原始圖像的1/80,保留了原圖像的特征信息,能夠滿足后續(xù)泡沫圖像分析的需求。