基于GAN的浮选泡沫图像压缩与超分辨率重建①

2023-11-05 11:51高君宇贾润达
关键词:低分辨率高分辨率泡沫

高君宇, 贾润达,*, 郎 督, 李 康

(1.东北大学信息科学与工程学院,辽宁 沈阳 110819;2.矿冶科技集团有限公司,北京 100160)

0 引 言

泡沫浮选用于微细粒矿物质的分离提取,是应用于金属、化工和煤炭等工业领域的原料分离技术[1-2]。目前,在矿物分选过程中,浮选操作的调整主要依赖人工对浮选泡沫表面特征的判断,自动化水平较低,且易造成矿物资源、浮选药剂和人力资源的浪费[3-5]。近年来,计算机视觉(Computer Vision, CV)技术迅速发展,使用计算机分析浮选泡沫图像对资源的节约、效率的提高以及自动化水平的提升具有重要的意义[6-9]。在利用CV技术进行学习时,往往需要大量的离散数据来完成模型的训练,因此在工业现场需要保存大量的高分辨率浮选泡沫图像。为了降低工控机存储与传输数据的负担,可利用JPEG算法压缩泡沫图像以获得小格式的文件[10-12]。但压缩后的图像难以高质量的呈现浮选泡沫图像的全部特征,为后续图像处理带来困难[13]。因此,提出利用JPEG算法对工业现场的高分辨率浮选泡沫图像进行压缩处理以获得低分辨率的图像,减少工业应用中保存大量浮选泡沫图像所需的存储空间;在此基础之上,利用生成对抗网络(Generative Adversarial Networks, GAN)重建受损的低分辨率图像,恢复低分辨率图像的色差、细节、轮廓以及失真区域,重新得到高分辨率的浮选泡沫图像。

1 相关背景

泡沫浮选法是一种利用矿物颗粒表面物理化学性质差异,实现不同矿物有效分离的选矿方法,而浮选泡沫表面的特征可反映浮选过程的运行状态。针对在工业现场难以储存大量高分辨率浮选泡沫图像的问题,利用JPEG算法对图像进行压缩以减少所需的图像储存空间。

1.1 泡沫浮选过程概述

泡沫浮选法是一种常用的矿物分离技术,其分离流程包括矿物破碎、矿物悬浮液制备、搅拌混合、气泡吸附、溶液收集和废料处理六部分[14]。以浮选柱为例,矿浆、药剂从浮选柱顶端给入,利用尾矿的排出量控制矿物浮选。柱体顶部负责收集浮选精矿,尾矿则由尾矿口排出。空气由导气管吸入,被破碎为气泡,形成气液固三相体系。浮力和离心力使气泡与矿浆发生碰撞,气泡在上升过程中不断矿化,实现矿物的浮选。

利用人工经验和大量数据样本,可以提取浮选泡沫图像特征,实现浮选过程运行状态的评价以及优化操作。但是有损压缩的图像会损失大量信息,在压缩程度较大的情况下图像失真、模糊等问题尤为严重,需要一种有效的方法对压缩后的图像进行重建,复原其原有的信息。

1.2 基于JPEG算法的图像压缩

使用JPEG算法对图像进行压缩时,首先要进行YCrCb彩色空间到RGB彩色空间的转换,如式(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的像素块,并由这些像素块构成最小编码单位(Minimum Coded Unit,MCU)的像块集合。在空间转换后,采用图像子采样方法对图像进行采样。对经过颜色空间转换后得到的三个8×8的矩阵做二维DCT转换分解为直流分量和交流分量,其转换公式如式(4)所示:

F(u,v)=alpha(u)·alpha(v)·

(4)

其中u,v=1,2,...,7,且

(5)

对DCT变换后的数据量化来增加零系数的数目,降低精度来减少数据量。在JPEG算法中,对64个DCT变换系数,除以对应的量化步长,四舍五入取整,系数的排列方式采用Z字排列方式。最后,对系数进行基于统计特性的熵编码,由于直流分量和交流分量的性质不同,需要对其采用不同的编码方式,对直流参数采用插值脉冲编码,而对交流参数采用哈夫曼编码[15]。

2 基于GAN的浮选泡沫超分辨率重建

针对压缩后的低分辨率浮选泡沫图像难以真实反应原始图像细节特征等问题,提出利用GAN对压缩后的低分辨率图像进行重建,还原大部分的丢失细节特征,得到高分辨率的重建图像,以满足浮选泡沫图像分析的需求。

2.1 算法整体流程

算法的训练阶段流程如图1所示。将低分辨率的图像输入生成器(Generator),训练GAN。生成器生成的数据交由判别器(Discriminator)和真实数据比较,并试图使生成的数据欺骗判别器,判别器对生成器生成的数据给出精确的判断,并返回生成数据为真的概率。当判别器无法判定生成器生成的数据是否为真或假时,训练完毕,此时生成器生成的数据和真实数据具有相同的特征,在此过程中生成器和判别器不断使用极大极小算法调整参数[16]。在测试阶段中,将未经训练的低分辨率图像,输入到经过训练后的生成器中,得到重建的高分辨率图像。

图1 训练阶段流程图

2.2 算法模型结构

2.2.1 生成式网络模型结构

生成式网络采用如图2所示的RRDBNet模型。该模型主干由3个RRDB密集残差块构成,每个RRDB残差块包括5个卷积层和LReLU作为激活函数。LReLU函数表达式为:

(6)

其中,x为卷积运算后的输出值,γ通常为很小的常数。该激活函数在输入大于“0”时,梯度恒为“1”,当输入小于“0”时,存在微小的梯度,计算简单,提高了算法的效率,同时避免了神经元“死亡”。

密集连接的卷积层可以提取丰富的局部特征,RRDB模块借助多层连接,跳跃结构和密连结构使每一层都具有残差结构,同时0~1之间的残差结构系数β可以稳定模型,既可以防止梯度消失,又使每一层都融合了其他层的特征,丰富了特征层级,便于更好的提取特征。RRDB模块去掉了BN层来防止因归一化时训练和测试两个过程中均值和方差差别太大造成的伪影,提高了网络的泛化能力。

2.2.2 判别网络模型结构

判别式模型采用图3所示的VGG19卷积神经网络,其包含16个卷积层与3个全连接层,中间为池化层,最后为Softmax层。VGG19采用3×3的卷积核进行卷积运算来更多的提取图像特征[17]。

图2 RRDBNet网络结构

图3 VGG19网络结构

卷积层输入输出关系如式(7)所示:

yconv=δ(Mat·W+b)

(7)

其中,yconv是输出结果,δ(·)是激活函数,Mat为灰度图矩阵,W是卷积核,b是偏置值。激活函数采用ReLU函数,其表达式为:

f(x)=max(0,x)

(8)

池化层采用步长为2,池化框尺寸为2×2的最大池化(Maxpooling)方法对图像特征做进一步的提取。表达式为:

fpool=max(xm,n,xm+1,n,xm,n+1.xm+1,n+1)

(9)

其中,0≤m≤M,0≤n≤N,M和N分别为图像二维向量的长与宽。

Softmax层作为数据分类的分类器,其训练集为k个标记过的样本:

T={(x(1),y(1)),(x(2),y(2)),…,(x(k),y(k))}

(10)

式(10)中,y(i)是分类标签,x(i)是样本集合。对于每个样本,第k类标签的概率是:

(11)

2.2.3 模型损失函数的计算

算法中,损失函数包括L1损失,感知损失和对抗损失。重建图像和原始图像之间的L1距离取平均值作为L1损失,其公式如式(12)所示:

(12)

式(12)中,r为原始图像和低分辨率图像水平(或垂直)分辨率之比,W为低分辨率图像的水平分辨率,H为低分辨率图像的垂直分辨率。L1损失不会过度惩罚误差项,且随误差线性增长,避免了梯度爆炸的产生,有助于增强边缘等低频特征的视觉效果,具有较好的鲁棒性。

感知损失为重构图像和原始图像在深层次的细节上的差异,用于对数据的高频成分进行还原[18],其公式如式(13)所示:

(13)

式(13)中,∅i(IHR)和∅i(ISR)为原始图像和低分辨率图像的特征,n为特征的个数。

对抗损失为GAN的损失,其表达式为:

Ladv=Ex~Pdata(x)[logD(x)]+

Ez~Pnoise(z)[log(1-D(G(z)))]

(14)

式(14)中,E(x)表示分布函数的期望值,Pdata(x)代表真实样本的分布,Pnoise(z)是定义在低维的噪声分布,D(x)为判别器的返回值,G(z)为生成器的返回值。

总损失函数为:

Ltotal=λ1·L1+λper·Lper+λadv·Ladv

(15)

式(15)中λ1,λper,和λadv分别设置为0.0001,1和0.05。

3 仿真实验

3.1 数据集和仿真环境

初始的训练数据为某金矿选厂浮选图像,分辨率为1024×896。低分辨率图像由高分辨率图像将长宽缩放1/2,并采用质量为15%的JPEG压缩得到。训练集共有1791条数据,测试集共有461条数据。实验环境配置为Linux18.04操作系统,PaddlePaddle 2.1.2深度学习框架,使用Python和MATLAB作为编程语言,CUDA版本为CUDA10.1,GPU型号为Tesla V100 32GB,训练过程中,学习率设置为0.0001,模型批训练次数的大小为16,迭代次数为80000。

3.2 仿真结果分析

图4为低分辨率图像、原始图像以及重建图像。左图为通过下采样降低浮选泡沫图像的分辨率,然后使用JPEG算法对图像进行压缩后的图像,相比于原始图像,其仅有15KB,但产生了失真,且颜色发生了改变。右图中重建后的图像和原图像基本一致。

图4 实验图像对比(从左至右分别为:低分辨率图像,原始图像,重建图像)

图5 实验图像对比(局部放大)(从左至右分别为:低分辨率图像,原始图像和重建图像)

将图像局部放大进行分析,图5为局部放大后的低分辨率图像、原始图像以及重建图像。相比于原始图像,低分辨率的图像明显比较模糊,出现了失真,色差发生异常变化,而经过重建后的图像对大气泡、密集小气泡以及混合气泡的特征进行了还原,恢复了细节和轮廓,整体图像与原始图像基本一致,没有明显的失真区域,色差恢复正常。

通过采用先压缩后还原的方法对浮选泡沫图像进行处理,可以使用较小的存储空间存储较多的图像。使用GAN对压缩受损的低分辨率图像进行还原,可以恢复图像的边缘、色差、轮廓等细节特征,能够满足工业中利用浮选泡沫图像进行过程建模与优化的需求。

4 结 语

针对浮选工业现场浮选泡沫图像储存所需存储空间大、对工控机要求高等问题,提出将采集的浮选泡沫图像进行有损压缩得到低分辨率图像进行储存,再使用超分辨率重建技术对低分辨率图像进行还原。该方法首先使用JPEG算法压缩图像,然后利用压缩后的低分辨率的图像和原始图像训练GAN,使生成器学习到原始图像的特征,从而在应用阶段将低分辨率图像重建为高分辨率图像。仿真结果标明,所提出的方法在1张/min的浮选图像存储频率下,空间7GB左右的存储空间即可存储一年的浮选图像数据,所需存储空间仅为原始图像的1/80,保留了原图像的特征信息,能够满足后续泡沫图像分析的需求。

猜你喜欢
低分辨率高分辨率泡沫
毒泡沫
红外热成像中低分辨率行人小目标检测方法
基于偏移学习的低分辨率人体姿态估计
废弃的泡沫盒
“搞死”国家的泡沫
高分辨率合成孔径雷达图像解译系统
树木的低分辨率三维模型资源创建实践
高分辨率对地观测系统
基于Curvelet-Wavelet变换高分辨率遥感图像降噪
好泡沫与坏泡沫