RAISR(Rapid and Accurate Super Image Resolution)
来源:互联网 发布:mt4 一键下单脚本源码 编辑:程序博客网 时间:2024/06/06 17:45
RAISR(Rapid and Accurate Super Image Resolution)
Rapid and Accurate Super Image Resolution为快速精确的超级图像分辨率技术,用于图像的压缩,意在将低分辨率图像转换为高分辨率图像.
github代码为:https://github.com/MKFMIKU/RAISR
对于给定的图像,我们希望可以得到一个尺寸更大,且含有更多有意义的像素点和更高质量的图像.这就是单幅图像超分辨率Single Image Super Resolution (SISR)技术要解决的问题.原理是,给定足够多的训练数据,训练数据为低,高分辨率图像对,我们可以学习一系列滤波器,使用这些滤波其可以处理训练数据以外的图像,而得到更高分辨率的图像.
一个相关的话题是图像锐化和对比度增强,例如增强模型图像的细节信息.我们的方法附加的增加了一个极度有效的方法,处理厚的图像比输入图像边沿更清晰.而没有引入光晕效应,噪声等瑕疵.
Single Image Super Resolution (SISR)
SISR公式为:
式中,
该目标函数的目的是,学习模糊核
RAISR:
给定一个高分辨率图像
式中,
训练和测试过程图如下:
由于矩阵A很大,因此我们采用两种单独的算法控制估计滤波器,降低计算复杂度.首先,在大体上,不是所有的可以的得到的块都需要被用于得到一个可靠的估计.事实上,可以从图像中采样k个块/像素点,这里
式中,
即可以对矩阵A的每行单独计算,所有行的计算结果累加得到Q.
同理可以计算V:
这样计算复杂度和内存消耗都大大减小了.
改进cheap upscaling kernel
改进后的结构图像如下:
如上图所示,在每个坐标轴上,以因子s=2,上采样,双线性核的插值权重岁像素点的位置改变.可以看到,有四个可能的核,更具像素点的类型,他们可以被用于低分辨率图像,标记为P1-P4.由于两个线性滤波的卷积可以统一为一个滤波(在我们方案中,第一个滤波器是线性的,第二个是预先学习到的),因此,可以学习四个不同的滤波器,它们对应于相素的四种可能的类型,如下图所示:
图中为滤波器和其对应的频谱图.学习到的滤波其类似于带通滤波器,可以放大插值图像的中间频率,并压缩高频部分.
在实现阶段,类似与core/naive upscaling思想,首先是采用双线下插值上采样低分辨率图像.之后,与naive approach不同的是,根据像素的类型,使用预先学习得到的滤波器对其进行滤波处理,之后结合每个滤波块得到输出,过程图如下:
RAISR: HASHING-BASED LEARNING AND UPSCALING
大体上说,全局图像滤波是快速的,由于学习策略减小了高分辨率图像和低分辨率图像的插值图像的欧式距离,全局滤波可以改善各种线性上采样的重建效果.然而,全局滤波的方法仍比核心算法,如基于稀疏的方法(文献1-11),或者基于神经网络的方法(文献16)效果差.我们建议使用一个高效的哈稀方法(hashing approach)来自适应滤波以保持线性滤波的低复杂度.更简单的说,局部自适应可以通过将图像块依据梯度信息分组分组实现.
与全局方法类是,我们学习四个滤波器,但这次是对每个bucket.这样,所提的学习策略可以得到滤波器的哈稀表,哈稀表的keys为局部梯度的函数,哈稀表的entries为对应的预学习的滤波器,具体过程图如下:
与全局学习过程类似,我们利用矩阵-矩阵,矩阵-向量相乘,对于每个bucket q,我们学习一个滤波器
式中,A_q,b_q为第q个bucket的块和像素.
求解哈稀表的keys值
哈稀表的keys为局部梯度统计值,包括angle,strength,coherence.对于每个像素点,可以利用其周围的
如文献35所述,局部梯度统计值可以通过矩阵
与文献35一样,特征向量
由于对称性,对应于角度
如文献35所示,最大特征值
强度(strength)和相关性(coherence)是对于检测局部图像值的不同性是很有用的.低的强度和相关性通常代表该图像缺乏结构性,并且通常对应于噪声或者压缩瑕疵.高的强度,但低的相关性通常表示角落或者其他多方向结构.因此,结合角度
算法1表述如下:
使用块对称来学习领域的8× 更多的数据
学习高效,稳定的滤波器需要大量的数据,例如实际上,需要
问题是,对于图像中的平坦区域,通常含有更多的水平和垂直结构,这些普遍的结构导致了普遍的哈稀值.为了使得非普遍的哈稀值的块更高效,我们利用块的对称性,并增加每个块的学习程度.具体说就是,我们生成8个不同的块,四个
之后又引入blending来保持图像结构信息(高频信息),整个RAISR上采样结构图如下:
引入对比度增强,使得可以增强更宽频率范围的图像,结构图如下:
之后文章介绍了CT-BASED DOG SHARPENER.
代码理解
github代码:
https://github.com/MKFMIKU/RAISR
训练代码如下:
#! /usr/bin/env python2.7# coding=utf-8import osimport numpy as npimport cv2from scipy.sparse.linalg import cgfrom hashTable import hashTableQangle = 24Qstrenth = 3Qcoherence = 3#构建空的矩阵Q,V用了存对应的LR和HR,h为过滤器 三个hashmap分别为Angle,Strength,Coherence,tQ = np.zeros((Qangle*Qstrenth*Qcoherence,4,11*11,11*11))V = np.zeros((Qangle*Qstrenth*Qcoherence,4,11*11,1))h = np.zeros((Qangle*Qstrenth*Qcoherence,4,11*11))dataDir="/home/qinghua/pythonWork/image_to_image/preprocess/light/origin/"fileList = []for parent,dirnames,filenames in os.walk(dataDir): for filename in filenames: fileList.append(os.path.join(parent,filename))for file in fileList: print("HashMap of %s"%file) mat = cv2.imread(file) #转换色彩空间,只对亮度进行训练 mat = cv2.cvtColor(mat, cv2.COLOR_BGR2YCrCb)[:,:,2] #放缩为0-1 mat = cv2.normalize(mat.astype('float'), None, 0.0, 1.0, cv2.NORM_MINMAX) HR = mat #模糊LR #Upscaling LR = cv2.GaussianBlur(mat,(0,0),2) # Set the train map #遍历每个像素 for xP in range(5,LR.shape[0]-6): for yP in range(5,LR.shape[1]-6): #取patch patch = LR[xP-5:xP+6,yP-5:yP+6] #计算特征 [angle,strenth,coherence] = hashTable(patch,Qangle,Qstrenth,Qcoherence) #压缩向量空间 j = angle*9+strenth*3+coherence A = patch.reshape(1,-1) x = HR[xP][yP] #计算像素类型 t = xP%2*2+yP%2 #存入对应的HashMap Q[j,t] += A*A.T V[j,t] += A.T*x# Set the train stepfor t in range(4): for j in range(Qangle*Qstrenth*Qcoherence): #针对每种像素类型和图像特征训练4*24*3*3个过滤器 h[j,t] = cg(Q[j,t],V[j,t])[0]print("Train is off")np.save("./Filters",h)
- RAISR(Rapid and Accurate Super Image Resolution)
- PAISR:Rapid and Accurate Image Super Resolution 详解(内附代码code)
- PAISR:Rapid and Accurate Image Super Resolution 详解(内附代码code)
- Fast and Accurate Image Upscaling with Super-Resolution Forests
- Fast and Accurate Image Upscaling with Super-Resolution Forests
- Accurate Image Super-Resolution Using Very Deep Convolutional Networks
- Accurate Image Super-Resolution Using Very Deep Convolutional Networks
- 【超分辨率】VDSR--Accurate Image Super-Resolution Using Very Deep Convolutional Networks
- 图像超分辨LapSRN:Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution论文笔记
- Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural
- “Single Image Super-resolution using Deformable Patches”
- Image Super-Resolution Using Deep Convolutional Networks
- Image Super-Resolution Using Deep Convolutional Networks
- Image Super-Resolution as Sparse Representation of Raw Image Patches
- super-resolution
- Learning a Deep Convolutional Network for Image Super-Resolution(泛读)
- 图像超分辨技术(Image Super Resolution)
- (SRCNN)Image super-resolution using deep convolutional networks
- 【linux 命令】环境启动时访问的配置文件顺序
- 欢迎使用CSDN-markdown编辑器
- hdu5463---King's Game
- redis实战之计数信号量(未完)
- Java中的Lambda表达式
- RAISR(Rapid and Accurate Super Image Resolution)
- 过滤器的原理及配置
- 链表划分
- 算法实现:二进制老鼠测毒
- Android 应用内分屏查看(使用fragment)
- Linux服务(DNS)
- 【SpringCloud】(十四):Feign对Hystrix的支持 fallbackFactory
- window10安装nodejs出现2503,2502错误的解决方法
- 【二分图匹配入门专题1】A