本发明属于图像处理技术领域,具体涉及超分辨率图像重建方法及专用加速电路。
背景技术:
随着经济的快速发展,人们对快速便携的健康监控需求越来越高,而便携式医学图像采集和处理设备是其中的关键环节,而在便携式医学图像采集和处理领域,长期困扰其发展的一个重要原因是便携式设备采集的图像细节分辨率较低,而当前技术的处理方法为直接对便携设备采样的图像进行处理,由于直接采样得到的样本图像质量较差,造成进一步分析和处理的准确性无法保证。
因此,本发明提出一种图像超分辨率重建的电路和方法,该方法可以对便携式设备采集的低分辨率图像进行重建,然后将重建后的图像进一步用于内容分析和处理。
技术实现要素:
为克服上述现有技术的不足,本发明的目的是提供超分辨率图像重建方法及专用加速电路,具有高效运算、算法精简的特点。
为实现上述目的,本发明采用的技术方案是:超分辨率图像的重建方法,包括以下步骤:
步骤1,第一层为输入层,输入一个低分辨图像dl;
步骤2,第二至第六层为卷积层,低分辨率的图像经过卷积层的卷积运算获得一系列的特征图,这些特征图经过非线性映射成为高分辨率的图像块;
步骤3,第七层为反卷积层,经过反卷积层的反卷积运算进一步提高图像块的分辨率;
步骤4,最终由第八层输出重建的高分辨率的图像dh。
步骤2所述的卷积运算,卷积层是卷积神经网络的核心组成部分,具有局部连接和权值共享特征,卷积运算可由下面公式来表示:
fi=σ(wc(i)*fi-1+bi),(1)
式中:fi代表第i个卷积层的输出,fi-1代表第i-1个卷积层的输出,上一层的输出作为下一层的输入,wc(i)代表第i个卷积层的权重;卷积权重对应的是一个数量为n、大小为fxf的滤波器组,n和f的值需要具体进行设置,*代表卷积操作,bi代表第i层的偏置;其中,偏置的维数始终与该层卷积核的数量保持一致,σ代表激活函数,卷积操作可以很好的提取特征,通过bp的误差反向传播,可以根据不同任务,得到对于这个任务最好的一个参数,学习出相对于这个任务最好的卷积核;对于每个卷积层需要设置的几个参数为:卷积核的大小、卷积核的数目(number)、卷积操作的步长(stride)以及零填充(pad)的大小。
步骤3所述的反卷积运算,过一个反卷积层实现了最终的重建过程,反卷积层在这里相当于上采样操作,通过调整反卷积层的步长来实现对采样因子的调整,采用相对较大的卷积核提升重建质量,该过程可以由下面公式来表示:
f=σ(wd·f5+b),(2)
其中f代表反卷积层的输出,wd代表反卷积层的权重参数,·代表反卷积操作,f6代表最后一个卷积层的输出,b代表偏置,步长根据网络采样因子的大小进行相应的调整且始终大于1,若输入反卷积层的图像大小为i,反卷积层参数为:核的大小rxr、步长s,填充大小为p,经过反卷积之后的输出图像的大小为:o=s(i-1)+r-2p,(4)。
一种用于超分辨率图像重建方法的专用加速电路,包括有网络训练服务器,网络训练服务器便携图像采集电路的网络结构参数存储单元3相连;网络结构参数存储单元通过网络结构参数导入控制单元与超分辨率芯片的主存储器相连;主存储器的数据输入端与cmos摄像头相连。
所述的便携图像采集电路包括有超分辨率芯片;超分辨率芯片包括主存储器,主存储器的输出端与cpu8相连;主存储器的输出端与取数控制单元相连;主存储器的输入端与写数控制单元相连;cpu的输出端分别与配置寄存器一、配置寄存器二、配置寄存器三、配置寄存器四、配置寄存器五、配置寄存器六相连;配置寄存器一通过通路选择器一与取数控制单元的输入输出端相连;取数控制单元依次与卷积运算单元、激活运算单元、反卷积运算单元、池化运算单元、写数控制单元相连;配置寄存器二通过通路选择器二与卷积运算单元相连;配置寄存器三通过通路选择器三与激活运算单元相连;配置寄存器四通过通路选择器四与反卷积运算单元;配置寄存器五通过通路选择器五与池化运算单元相连;配置寄存器六通过通路选择器六与写数控制单元相连。
所述的配置寄存器一、配置寄存器二、配置寄存器三、配置寄存器四、配置寄存器五、配置寄存器六结构相同;配置寄存器一由配置寄存器a和配置寄存器b组成。
所述的卷积运算单元、激活运算单元、反卷积运算单元、池化运算单元的两端并联一个结构相同的直通单元。
所述的网络训练服务器负责根据学习样本对网络结构参数进行训练,并将训练产生的网络结构参数存储于网络结构参数存储单元;
所述的网络结构参数存储单元负责存储训练好的网络结构参数,包括每一层网络的权值(weight)长度,宽度,通道数,以及每个权重的值;
所述的网络结构参数导入控制单元负责将训练好的网络结构参数存入主存储器;
所述的组织样本是给便携图像采集重建电路进行采集和分析的生物组织样本;
所述的cmos摄像头负责对组织样本22进行图像采集,并将采集得到的图像送往主存储器进行存储。
所述的超分辨率芯片,负责完成超分辨率图像重建,并将重建图像存储于主存储器中;
所述的cpu负责对整个超分辨率芯片的电路进行读取和控制。
所述的主存储器负责存储神经网络每层所需的特征数据和卷积核数据;
所述的取数控制单元负责根据配置寄存器信息对存储器进行数据读取操作,并把读取数据送往卷积乘加运算单元;
所述的卷积乘加运算单元负责进行神经网络的卷积运算,并将运算结果送往激活运算单元;
所述的激活运算单元负责进行神经网络的激活函数运算,并将运算结果送往反卷积运算单元;
所述的反卷积运算单元负责进行反卷积运算,并将结果送往池化运算单元;
所述的池化运算单元负责进行神经网络的池化运算,并将池化运算结果送往写数控制单元。
所述的取数控制单元、卷积乘加运算单元、激活运算单元、反卷积运算单元、池化运算单元、写数控制单元都有a、b两组配置寄存器和一个通路选择器,分别可以存储两层网络的配置,具体的工作方法见下面详叙;
所述的取数控制单元、卷积乘加运算单元、激活运算单元、反卷积运算单元、池化运算单元都有一个直通单元,直通单元负责根据配置将数据流跳过对应模块直接到达下一个运算模块。
与现有技术相比,本发明的有益效果是:
本发明提出一种图像超分辨率重建的运算方法和电路,该电路可以高效实现该重建算法,可以对便携式设备采集的低分辨率图像进行快速重建,然后将重建后的图像进一步用于内容分析和处理。
本发明在算法上,由于提出了csrnet网络运算方法,该方法相较于经典算法减少了网络层数,却得到相同的算法效果,因此具有简洁高效的特点.
在电路上由于采用了双配置寄存器组设计结构,所以使得电路可以大幅减少各模块的空闲时间,从而大幅提升电路工作效率.同时,通过采用模块直通可配置结构,使得电路具备可重构特性,可以适应各种神经网络结构运算的加速。
附图说明
图1为本发明重建电路的原理框图。
图2为本发明重建方法的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。
参见图1,图像超分辨率重建电路,包括有网络训练服务器1,网络训练服务器1便携图像采集电路2的网络结构参数存储单元3相连;网络结构参数存储单元3通过网络结构参数导入控制单元4与超分辨率芯片5的主存储器6相连;主存储器6的数据输入端与cmos摄像头7相连。
所述的便携图像采集电路2包括有超分辨率芯片5;超分辨率芯片5包括主存储器6,主存储器6的输出端与cpu8相连;主存储器6的输出端与取数控制单元9相连;主存储器6的输入端与写数控制单元10相连;cpu8的输出端分别与配置寄存器一11、配置寄存器二12、配置寄存器三13、配置寄存器四14、配置寄存器五15、配置寄存器六16相连;配置寄存器一11通过通路选择器一与取数控制单元9的输入输出端相连;取数控制单元9依次与卷积运算单元17、激活运算单元18、反卷积运算单元19、池化运算单元20、写数控制单元10相连;配置寄存器二12通过通路选择器二与卷积运算单元17相连;配置寄存器三13通过通路选择器三与激活运算单元18相连;配置寄存器四14通过通路选择器四与反卷积运算单元19;配置寄存器五15通过通路选择器五与池化运算单元20相连;配置寄存器六16通过通路选择器六与写数控制单元10相连。
所述的配置寄存器一11、配置寄存器二12、配置寄存器三13、配置寄存器四14、配置寄存器五15、配置寄存器六16结构相同;配置寄存器一11由配置寄存器a和配置寄存器b组成。
所述的卷积运算单元17、激活运算单元18、反卷积运算单元19、池化运算单元20的两端并联一个结构相同的直通单元21。
所述的网络训练服务器负责根据学习样本对网络结构参数进行训练,并将训练产生的网络结构参数存储于网络结构参数存储单元。
所述的网络结构参数存储单元负责存储训练好的网络结构参数,包括每一层网络的权值(weight)长度,宽度,通道数,以及每个权重的值。
所述的网络结构参数导入控制单元负责将训练好的网络结构参数存入主存储器。
所述的组织样本22是给便携图像采集重建电路进行采集和分析的生物组织样本。
所述的cmos摄像头负责对组织样本22进行图像采集,并将采集得到的图像送往主存储器进行存储。
所述的超分辨率芯片负责完成超分辨率图像重建,并将重建图像存储于主存储器中。
超分辨率芯片内部结构:
所述的cpu负责对整个超分辨率芯片的电路进行读取和控制。
所述的主存储器负责存储神经网络每层所需的特征数据和卷积核数据。
所述的取数控制单元负责根据配置寄存器信息对存储器进行数据读取操作,并把读取数据送往卷积乘加运算单元。
所述的卷积乘加运算单元负责进行神经网络的卷积运算,并将运算结果送往激活运算单元。
所述的激活运算单元负责进行神经网络的激活函数运算,并将运算结果送往反卷积运算单元。
所述的反卷积运算单元负责进行反卷积运算,并将结果送往池化运算单元。
所述的池化运算单元负责进行神经网络的池化运算,并将池化运算结果送往写数控制单元。
所述的取数控制单元、卷积乘加运算单元、激活运算单元、反卷积运算单元、池化运算单元、写数控制单元都有a、b两组配置寄存器和一个通路选择器(也称寄存器选通控制单元),分别可以存储两层网络的配置,具体的工作方法见下面详叙。
所述的取数控制单元、卷积乘加运算单元、激活运算单元、反卷积运算单元、池化运算单元都有一个直通单元,直通单元负责根据配置将数据流跳过对应模块直接到达下一个运算模块。
在电路开始工作前,先将连续两层网络的配置分别配置到每个模块的配置寄存器a和配置寄存器b,然后配置好读仲裁优先级和写仲裁优先级之后,然后重建电路可以开始工作。
两组配置寄存器交替工作流程:
1)在电路开始工作前,先将两层网络的配置分别配置到每个模块的配置寄存器a和配置寄存器b,然后电路可以开始工作,工作时使用配置寄存器a中的配置进行第一层网络的工作;
2)当处于第一个取数控制单元完成当前层的工作后,将本层工作完成信号送往取数控制单元的通路选择器和cpu,然后取数控制单元的通路选择器立刻将取数控制单元的寄存器由配置寄存器a改为配置寄存器b,也就是下一个网络层的配置,取数控制单元可以立刻进入下一层的工作处理。同时,cpu在收到取数控制单元的本层工作完成信号后,对配置寄存器a中的配置进行配置更新,更新为第三层网络的配置;
3)当卷积乘加运算单元完成第二层网络的运算工作后,同样的将本层工作完成信号送往卷积乘加运算单元的寄存器选通控制单元和cpu,然后卷积乘加运算单元的通路选择器立刻将卷积运算单元的寄存器由第二层的配置寄存器b改为配置寄存器a,也就是第三层网络的配置寄存器,卷积乘加运算单元可以立刻进入第三层的工作处理,同时,cpu在收到卷积乘加运算单元的本层工作完成信号后,对配置寄存器b中的配置进行配置更新,更新为第四层网络的配置;
4)激活运算单元、反卷积运算单元、池化运算单元都遵照上面所述的顺序进行工作,不依赖于前后单元的工作状态,可以实现完全流水作业。
专用电路的工作包括两个过程:网络训练过程和实际使用过程;
网络训练过程在网络训练服务器上完成,是个软件执行过程,具体过程见下面的网络训练过程;
实际使用过程,就是将网络结构参数导入控制单元、将网络结构导入主存储器中,然后cpu开始先将两层网络的配置分别配置到取数控制单元、卷积乘加运算单元、激活运算单元、反卷积运算单元、池化运算单元的配置寄存器a和配置寄存器b,然后按照上面的两组配置寄存器交替工作流程依次完成所有层的运算,最终将运算结果输出。
网络训练过程,包括以下步骤:
步骤1,采用均方误差(mse)作为代价函数;利用随机梯度下降法和网络的反向传播来最小化均方误差以调整网络的参数,网络权重的更新过程如下:
式中:δk代表上一次的权重更新值,l代表层数,k代表网络的迭代次数,η是学习率,
步骤2,通过最小化重建得到的结果和参考图像之间的差值,来不断调整网络参数,
δk代表上一次的权重更新值,l代表层数,k代表网络的迭代次数,η是学习率,
参见图2,超分辨率图像的重建方法(该算法是一中神经网络运算结构),包括以下步骤:
步骤1,第一层为输入层,输入一个低分辨图像dl;
步骤2,第二至第六层为卷积层,低分辨率的图像经过卷积层的卷积运算获得一系列的特征图,这些特征图经过非线性映射成为高分辨率的图像块;
步骤3,第七层为反卷积层,经过反卷积层的反卷积运算进一步提高图像块的分辨率;
步骤4,最终由第八层输出重建的高分辨率的图像dh。
下表1为经典的fsrcnn与本发明网络结构比较,可以看出相比fsrcnn网络,csrnet减少了c7和c8两个卷积层,并且本发明结构的第一层卷积核大小为3x3,而fsrcnn的卷积核为5x5,通过这两个网络结构上的调整,可以大幅降低神经网络运算量。
fsrcnn与本发明csrnet网络结构比较
表1,内容为fsrcnn的网络结构
表2,内容为本发明提出的网络结构
所述的卷积运算,卷积层是卷积神经网络的核心组成部分,具有局部连接和权值共享特征,本发明的卷积运算可由下面公式来表示:
fi=σ(wc(i)*fi-1+bi),(1)
式中:fi代表第i个卷积层的输出,fi-1代表第i-1个卷积层的输出,上一层的输出作为下一层的输入,wc(i)代表第i个卷积层的权重;卷积权重对应的是一个数量为n、大小为fxf的滤波器组,n和f的值需要具体进行设置,*代表卷积操作,bi代表第i层的偏置;其中,偏置的维数始终与该层卷积核的数量保持一致,σ代表激活函数,卷积操作可以很好的提取特征,通过bp(backpropagation)的误差反向传播,可以根据不同任务,得到对于这个任务最好的一个参数,学习出相对于这个任务最好的卷积核;对于每个卷积层需要设置的几个参数为:卷积核的大小、卷积核的数目(number)、卷积操作的步长(stride)以及零填充(pad)的大小,具体的乘加实现电路,较为常见。
激活函数
使用prelu作为激活函数,表达式为σ=max(0,y)+amin(0,y),其中a是负y的可学习的斜率系数;
所述的反卷积运算,过一个反卷积层实现了最终的重建过程,反卷积层在这里相当于上采样操作,通过调整反卷积层的步长来实现对采样因子的调整,采用相对较大的卷积核提升重建质量,该过程可以由下面公式来表示:
f=σ(wd·f5+b),(2)
其中f代表反卷积层的输出,wd代表反卷积层的权重参数,·代表反卷积操作,f6代表最后一个卷积层的输出,b代表偏置,步长根据网络采样因子的大小进行相应的调整且始终大于1,假设输入反卷积层的图像大小为i,反卷积层参数为:核的大小rxr、步长s,填充大小为p,那么经过反卷积之后的输出图像的大小为:
o=s(i-1)+r-2p,(4)。