[0020] 下面结合附图和具体实施例对本发明做进一步的分析说明。
[0021] 基于改进的二元闭环神经网络的超分辨率模型构建训练以及LOGO图案的复原重建两个过程进行,如图1具体内容如下:
[0022] 步骤一、模型训练的数据收集:
[0023] 1.1收集n(n>350)张高分辨率LOGO图案,高分辨率尺寸为W×H,图片均为纯色背景,并标记为A组;
[0024] 1.2将1.1中收集的这些图片进行图像缩放变换,得到分辨率为1/3*W×1/3H的低分辨率图像,并标记为B组;其中图像缩放变换采用双三次插值方法,采用双三次内插基函数作为基函数,双三次插值计算按公式(1)进行:
[0025] f(i+u,j+v)=ABC (1)
[0026] 其中,A、B、C均为矩阵,形式如下:
[0027] A=[s(v+1) s(v) s(1‑v) s(2‑v)] (2)
[0028]
[0029]
[0030]
[0031] (i,j):原图像的像素坐标,其中,i为横坐标值,j为纵坐标值,i、j均为非负整数;
[0032] f(i,j):原图像的像素灰度值;
[0033] (i+u,j+v):缩放变换后新图像的像素坐标;
[0034] f(i+u,j+v):缩放变换后新图像的像素灰度值;
[0035] u:沿横坐标方向,原图像像素坐标的横坐标i离新图像像素坐标(i+u,j+v)的距离;
[0036] v:沿纵坐标方向,原图像像素坐标的纵坐标j离新图像的像素坐标(i+u,j+v)的距离;
[0037] |x|:图像像素沿x方向离原点的距离;
[0038] s(x):sin(π·x)/x的逼近多项式,为插值核;
[0039] 步骤二.数据集的预处理,生成模型的训练集:
[0040] 2.1将步骤1.2低分辨率图像进行二次图像缩放变换,得到尺寸为W×H的图像;其中图像缩放变换采用双三次插值方法,采用双三次内插基函数作为基函数,双三次插值计算按公式(1)进行:
[0041] 2.2将步骤2.1二次缩放变换后B组图像作为训练集的输入集合(未处理),步骤1.1A组图像作为训练集的输出集合(未处理),输入集合与输出集合组成完整的训练集。
[0042] 2.3将步骤2.2中得到的训练集中图像进行中值滤波处理,得到去噪图像。具体如下:
[0043] a)将图像的R,G,B三通道分离;
[0044] b)对每个通道中的每个像素,把其邻域中的像素按灰度级进行排序,选择该组的中间值作为这个像素的输出值,通常选择3×3窗口大小的邻域;
[0045] c)将计算中值后的三个通道整合,输出去噪后图像;
[0046] 上述由matlab语言编写实现;
[0047] 2.4将步骤2.3中得到的去噪后图像作为二元闭环神经网络的训练集。
[0048] 步骤三.如图2构建二元闭环神经网络:
[0049] 3.1构建二元闭环神经网络的原始映射:
[0050] 3.1.1构建原始映射的第一层,对训练集中图像进行下采样,该操作按公式(6)进行:
[0051]
[0052] 公式(6)中,
[0053] Y:下采样后的图像;
[0054] F1:下采样函数;
[0055] Xi:输入图像
[0056] i:当前图像的序号;
[0057] k:图像的总数量;
[0058] S:下采样的倍数;
[0059] 3.1.2构建原始映射的第二层,将步骤3.1.1下采样后的图像进行公式(7)卷积操作,然后用公式(8)激活函数激活,提取图像的特征;
[0060] F2(Y)=MAX(0,w2*F1(Y)+B2) (7)
[0061] 公式(7)中,
[0062] F2:卷积操作的处理函数;
[0063] Y:步骤3.1.1下采样后的图像;
[0064] w2:大小为n1*f2*f2*n2的滤波器,其中f2是滤波器的空间大小,n1、n2是滤波器的数量;
[0065] B2:n2维向量;
[0066]
[0067] 公式(8)中,
[0068] P:激活处理后的图像特征;
[0069] yi,j:卷积操作后图像在(i,j)这一点的像素值;
[0070] ai.j:(1,+∞)区间内的固定参数;
[0071] 3.1.3构建原始映射的第三层:
[0072] 将3.1.2处理后图像特征按通道赋予不同的权值,该过程通过残差通道注意力块实现;残差通道注意力块主要由池化层,上采样层,下采样层以及混合层构成,分别按照公式(9)‑(12)进行;
[0073]
[0074] 公式(9)中,
[0075] P1:池化层处理后的图像特征;
[0076] HGP:池化层函数;
[0077] P(i,j):3.1.2处理后图像;
[0078] H:3.1.2处理后图像的横坐标总像素值;
[0079] W:3.1.2处理后图像的纵坐标总像素值;
[0080]
[0081] 公式(10)中,
[0082] P2:上采样处理后的图像特征;
[0083] UP:上采样函数;
[0084] P1:池化层处理后图像特征;
[0085] W:尺寸为1*1的卷积核;
[0086] 表示卷积操作;
[0087]
[0088] 公式(11)中,
[0089] P3:下采样处理后的图像特征;
[0090] P2:上采样层处理后图像特征;
[0091] DOWN:下采样函数;
[0092] W1:尺寸为1*1的卷积核;
[0093] S=f(WU×WD×HGP(P3)) (12)
[0094] 公式(12)中,
[0095] P3:下采样层处理后图像特征;
[0096] S:图像经过混合后的新特征;
[0097] f:混合函数;
[0098] WU:上采样得到的图像特征的权重系数;
[0099] WD:下采样得到的图像特征的权重系数;
[0100] HGP:池化层函数;
[0101] 3.1.4构建原始映射的第四层:
[0102] 将步骤3.1.3中提取的图像新特征按像素洗牌的方式进行重构,该过程通过亚像素卷积的方式进行实现,按公式(13)进行:
[0103] QSR=PS(WL×f1(S)+bL) (13)
[0104] 公式(13)中:
[0105] QSR:重建出的高分辨率图像;
[0106] S;步骤3.1.3中提取的图像新特征;
[0107] f1(S):亚像素卷积预处理函数;
[0108] PS:像素洗牌函数;
[0109] WL:像素洗牌对应的卷积核;
[0110] bL;函数相关的权重偏移值;
[0111] 3.1.5构建原始映射的第五层:
[0112] 将3.1.4中重建出的高分辨率图像以及2.4中训练集的A组图像从RGB色彩空间转化到YCbCr色彩空间,并将图像的Y通道保存,分别归为Y1与Y2,其中对图像从RGB色彩空间到YCbCr色彩空间的转化按公式(14)进行:
[0113] R=1.164(Y‑16)+1.793(CR‑128)=1.164Y+1.793CR‑248.128;
[0114] G=1.164(Y‑16)‑0.534(CR‑128)‑0.213(CB‑128)=1.164Y‑0.213CB‑0.534CR+76.992;
[0115] B=1.164(Y‑16)+2.115(CB‑128)=1.164Y+2.115CB‑289.344;
[0116] (14)[0117] 公式(14)中,
[0118] R:图像中每个像素的红通道颜色值;
[0119] G:图像中每个像素的绿通道颜色值;
[0120] B:图像中每个像素的蓝通道颜色值;
[0121] Y:图像中每个像素的颜色明亮度和浓度;
[0122] Cb:图像中每个像素的颜色的蓝色浓度偏移量;
[0123] Cr:图像中每个像素的颜色的红色浓度偏移量;
[0124] 3.1.6构建原始映射的第六层:
[0125] 将3.1.5中得到的Y1与Y2分别通canny算子计算对应的边缘图像,归类为Y1‑1与Y1‑2,canny算子使用滤波器计算像素梯度按公式(15)进行:
[0126]
[0127] 公式(15)中,
[0128] GX:x方向上的卷积阵列;
[0129] GY:y方向上的卷积阵列;
[0130] G:是图像对应像素的梯度幅值;
[0131] 3.1.7构建原始映射的第七层:
[0132] 3.1.4中重建出的高分辨率图像与2.4中训练集的A组中对应的图像经过VGG19网络计算得到原始映射中的图像感知损失LP‑1,LP‑1按照公式(16)进行:
[0133]
[0134] 公式(16)中,
[0135] QSR:步骤3.1.4重建出的高分辨率图像;
[0136] S:步骤2.4真实的高分辨率图像;
[0137] F:VGG19网络模型;
[0138] M:重建出的高分辨率图像的通道数;
[0139] W:重建出的高分辨率图像的宽度数;
[0140] H:重建出的高分辨率图像的高度数;
[0141] 3.1.8构建原始映射的第八层:
[0142] 3.1.6中得到的Y1‑1与Y1‑2经过VGG19网络计算得到原始映射中的图像边缘损失LP‑2,LP‑2按照公式(16)进行。
[0143] 3.2构建二元闭环神经网络的回归映射:
[0144] 3.2.1构建回归映射的第一层:
[0145] 对3.1.4中重建出的高分辨率图像进行下采样,该操作按公式(6)进行;
[0146] 3.2.2构建回归映射的第二层:
[0147] 将3.2.1中得到的图像进行卷积操作,然后用激活函数激活,提取图像的特征,该操作按公式(7)与(8)进行;
[0148] 3.2.3构建回归映射的第三层:
[0149] 将3.2.2中提取的图像特征按通道赋予不同的权值,该过程通过残差通道注意力块实现,残差通道注意力块主要由池化层,上采样层,下采样层以及混合层构成,分别按照公式(9)‑(12)进行;
[0150] 3.2.4构建回归映射的第四层:
[0151] 将3.1.3中提取的图像新特征按像素洗牌的方式进行重构,该过程通过亚像素卷积的方式进行实现,按公式(13)进行;
[0152] 3.2.5构建回归映射的第五层:
[0153] 将3.2.4中得到的重构低分辨率图像经过VGG19网络计算得到回归映射中的图像感知损失LD,LD按照公式(16)进行;
[0154] 3.3构建整个二元回归网络的损失函数,按照公式(17)进行:
[0155] L=LP‑1+LP‑2+LD (17)
[0156] 公式(17)中,
[0157] LP‑1:原始映射中的图像感知损失;
[0158] LP‑2:原始映射中的图像边缘损失;
[0159] LD:回归映射中的图像感知损失;
[0160] 步骤四:BCLNN模型的训练
[0161] 4.1使用基于PYTHON 3.6.5的JPUYTER NOTEBOOK进行模型训练,并配置pytorch相关环境;
[0162] 4.2将步骤二中模型的训练集通过ImageFolder函数进行封装,并通过DataLoader函数进行导入;
[0163] 4.3按照步骤三的网络结构进行网络模型的初始化;
[0164] 4.4设置训练的基本参数与损失函数以及优化器,其中基本参数为[0165] num_epochs=15、batch_size=245、learning_rate=0.001;
[0166] 4.5加载网络模型,并通过循环迭代不断的更新模型的相关参数;
[0167] 4.6通过torch.save函数保存训练好的模型为BCLNN.pt;
[0168] 步骤五.LOGO图案的复原及重建
[0169] 5.1将待重建LOGO图像使用DATALOADER函数导入PYTHON环境中;
[0170] 5.2加载已经训练好的对应的BCLNN模型,将5.1中的待重建LOGO图像作为输入图像输入模型中进行复原重建得到重建图像。
[0171] 重建结果如图3所示,(a)为原图像,(b)为用RCAN网络进行4倍重建得到的图像,(c)为用本发明的BCLNN网络进行4倍重建的图像,可以看到(c)相对于(a)在分辨率与清晰度上有了很大的提高,并且(c)相对于(b)在LOGO图像边缘的重建效果上了一定的提升。
[0172] 上述实施例并非是对于本发明的限制,本发明也并非仅限于上述实施例,只要符合本发明要求,均属于本发明的保护范围。