本发明涉及嵌入式系统、图像压缩编码技术领域,尤其涉及图像压缩方法及基于arm多核异构处理器的图像压缩系统。
背景技术:
原始图像中存在冗余信息,直接传输与存储原始图像数据需要占据大量带宽与存储空间资源,因此需要设计高效的图像压缩方案。图像压缩技术通过采用各种方法去除图像中的冗余数据从而减少用于表征图像内容的总数据量。结合视觉显著性的优化编码方法,考虑人眼视觉系统对图像语义感知的选择性和偏向性,通过调整分配编码资源控制图像中不同区域的失真程度,进一步去除视觉冗余,实现节省码率的同时仍保证图像的主观质量,成为越来越多研究人员关注的热点。
相比于传统基于手工设计特征的显著性检测算法,深度学习方法可以充分挖掘数据潜在特征,具有强大的表征学习能力,算法的适应性更好,但也具有计算量大硬件成本高的缺点。
新一代高效视频编码hevc/h.265标准方案由国际运动图像专家组mpeg和国际电信联盟的视频编码专家组vceg组成的视频编码联合工作组jct-vc提出,仍然基于传统的混合编码框架,但在各个模块上都实现了技术创新,包括更加灵活的块划分模式、多角度的预测模式、基于dct的分像素插值滤波、高效的自适应算术编码以及波形并行处理技术等等,编码效率相比于上一代h.264/avc提高了一倍,但编码复杂度也急剧增加。
综上可知图像压缩性能的提高建立在复杂的算法基础上,在实际应用中对硬件的性能资源以及软件算法的优化部署提出了更高的要求,整体实现方案的效率至关重要。
基于fpga的设计方案逻辑单元配置灵活,但需要设计编写全部的控制逻辑与完整的算法底层逻辑,复杂算法的开发难度较大,实际应用中fpga难以独立完成复杂的数据处理任务。
技术实现要素:
本发明的目的在于克服现有技术缺陷,提出了及一种智能图像压缩处理方法及系统。
为了实现上述目的,本发明提出了一种图像压缩方法,所述方法包括:
对采集的原始图像进行归一化预处理;
基于深度神经网络对预处理后的图像进行显著性检测,得到全局显著图;
基于预设的图像块尺寸对全局显著图进行划分,基于划分的全局显著图对量化参数进行调整,得到量化参数调整结果;
基于量化参数调整结果对预处理后的图像进行hevc帧内自适应量化编码,得到压缩编码的图像。
作为上述方法的一种改进,所述方法还包括预先建立和训练resnet50模型,用于提取输入图像的特征图;所述resnet50模型包括依次连接的卷积层、平均池化层和全连接层。
作为上述方法的一种改进,所述基于深度神经网络对预处理后的图像进行显著性检测,得到全局显著图;具体包括:
将预处理后的图像输入预先建立和训练好的resnet50模型,对resnet50模型全连接层的输出张量y进行数值排序,得到排名前五的元素ci及对应索引列表c:
c={ci},i=1,2,3,4,5
根据索引列表c依次读取平均池化层与全连接层之间的权重
其中,ak为第卷积层k个通道特征图,relu()表示线性修正函数:
其中,v表示线性修正函数的变量;
对融合特征图sal进行上采样插值运算,转换为原始图像的尺寸,得到全局显著图salout。
作为上述方法的一种改进,所述基于预设的图像块尺寸对全局显著图进行划分,基于划分的全局显著图对量化参数进行调整,得到量化参数调整结果;具体包括:
根据全局显著图salout计算得到全局平均显著度salavg;
按照预设的图像块尺寸对全局显著图salout进行划分,得到若干个图像块;
遍历所有图像块,计算每个图像块的平均显著度salcu_avg以及总体显著度salcu_sum;
根据每个图像块的平均显著度salcu_avg与全局平均显著度salavg,计算得到全局显著性对比权重ω以及对应的加权量化分量qpweighted:
根据每个图像块的总体显著度salcu_sum进行对数运算得到感知量化分量qpsal_offset;
根据预设的初始量化参数,结合加权量化分量qpweighted和感知量化分量qpsal_offset,计算得到对应图像块的量化参数偏移量,进而得到图像中所有图像块对应的量化参数调整结果。
作为上述方法的一种改进,所述基于量化参数调整结果对预处理后的图像进行hevc帧内自适应量化编码,得到压缩编码的图像;具体包括:
基于预设的图像块尺寸,将预处理后的图像划分为若干个块单元,根据量化参数调整结果调整不同块单元的量化参数,依次进行帧内预测、变换、量化、熵编码以及环路滤波,得到压缩编码的图像。
一种终端设备,包括:包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的方法。
一种存储介质,包括:包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的方法。
一种基于arm多核异构处理器的图像压缩系统,所述系统通过arm多核异构处理器实现,其特征在于,所述系统包括:图像采集模块、预处理模块、显著性检测模块、量化参数调整模块和hevc编码模块;
所述图像采集模块,用于采集原始图像;
所述预处理模块,用于对采集的原始图像进行归一化预处理,图像尺寸符合要求;
所述显著性检测模块,用于基于深度神经网络对预处理后的图像进行显著性检测,得到全局显著图;所述深度神经网络为resnet50模型,用于提取输入图像的特征图;所述resnet50模型包括依次连接的卷积层和全连接层;
所述量化参数调整模块,用于基于预设的图像块尺寸对全局显著图进行划分,基于划分的全局显著图对量化参数进行调整,得到量化参数调整结果;
所述hevc编码模块,用于基于量化参数调整结果对预处理后的图像进行hevc帧内自适应量化编码,得到压缩编码的图像。
作为上述系统的一种改进,所述系统还包括深度神经网络加载模块和图像存储模块,其中,
所述深度神经网络加载模块,用于加载预先建立和训练好的resnet50模型文件。
所述图像存储模块,用于存储压缩编码的图像。
与现有技术相比,本发明的优势在于:
1、本发明设计基于多层神经网络进行图像显著性检测,相较于传统算法泛化能力更强;
2、本发明设计基于显著度对图像各编码单元进行量化参数调整,充分利用显著性特征实现编码资源更加合理的分配;
3、本发明设计一套基于tengine框架的异构智能图像压缩系统,高效利用软硬件资源,编码性能更优。
附图说明
图1是本发明实施例1的图像压缩方法流程图;
图2是本发明实施例4的基于arm多核异构处理器的图像压缩系统整体结构框图;
图3是本发明实施例4的算法子系统的设计流程图;
图4是本发明实施例4的预处理模块设计流程图;
图5是本发明实施例4的hevc编码模块实现方案。
具体实施方式
下面结合附图和实施例对本发明的技术方案进行详细的说明。
实施例1
如图1所示,本发明的实施例1提出了一种智能图像压缩处理方法,所述方法包括:
步骤1)对采集的原始图像进行归一化预处理;
步骤2)基于深度神经网络对预处理后的图像进行显著性检测,得到全局显著图;具体包括:
将预处理后的图像输入预先建立和训练好的resnet50模型,对resnet50模型全连接层的输出张量y进行数值排序,得到排名前五的元素ci及对应索引列表c:
c={ci},i=1,2,3,4,5
根据索引列表c依次读取平均池化层与全连接层之间的权重
其中,ak为第卷积层k个通道特征图,relu()表示线性修正函数:
其中,v表示线性修正函数的变量;
对融合特征图sal进行上采样插值运算,转换为原始图像的尺寸,得到全局显著图salout。
resnet50模型,用于提取输入图像的特征图;具体包括依次连接的卷积层、平均池化层和全连接层。
步骤3)基于全局显著图引导编码单元对量化参数进行调整,得到量化参数调整结果;具体包括:
根据全局显著图salout计算得到全局平均显著度salavg;
按照预设的图像块尺寸对全局显著图salout进行划分,得到若干个图像块;
遍历所有图像块,计算每个图像块的平均显著度salcu_avg以及总体显著度salcu_sum;
根据每个图像块的平均显著度salcu_avg与全局平均显著度salavg,计算得到全局显著性对比权重ω以及对应的加权量化分量qpweighted:
根据每个图像块的总体显著度salcu_sum进行对数运算得到感知量化分量qpsal_offset;
根据预设的初始量化参数,结合加权量化分量qpweighted和感知量化分量qpsal_offset,计算得到对应图像块的量化参数偏移量,进而得到图像中所有图像块对应的量化参数调整结果。
步骤4)基于量化参数调整结果对预处理后的图像进行hevc帧内自适应量化编码,得到压缩编码的图像。具体包括:
基于预设的图像块尺寸,将预处理后的图像划分为若干个块单元,根据量化参数调整结果调整不同块单元的量化参数,依次进行帧内预测、变换、量化、熵编码以及环路滤波,得到压缩编码的图像。
实施例2
一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例1的方法。
实施例3
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行实施例1的方法。
实施例4
如图2所示,本实施例提出了一种基于tengine框架的图像压缩系统。arm处理器具有较强的事务管理功能,外围软硬件接口简单,在控制方面具有更加标准化和通用性的优势,基于arm体系处理器和内核源码开放的linux系统进行算法设计开发周期短、扩展性强。本实施例的目的在于设计一种基于tengine前端推理框架的智能图像压缩系统,考虑人眼视觉感知特性,结合基于深度神经网络的视觉显著性检测算法和显著度引导的量化参数调整算法,在嵌入式系统上实现语义感知的hevc帧内自适应量化编码,基于异构加速库高效利用硬件资源,实现算法性能优化。
本发明基于软硬件协同设计的思想,算法部分主要采用c语言,系统实现采用异构架构平台,在eaidk-610操作系统应用层,通过交叉编译方式,以软件形式运行智能图像压缩算法的主体程序,使用前端推理框架tengine进行数据交互与硬件资源调度。
该系统包括算法子系统和rk3399子系统以及ov9750高清相机、usb接口、microsd卡等若干外设。算法子系统主要包括预处理模块、显著性检测模块、量化参数调整模块和hevc编码模块,算法子系统实现图像归一化、尺度变换等预处理操作、基于神经网络的显著图提取以及顶层程序调用。rk3399子系统基于big.little大小核组合架构,集成了双核cortex-a72和四核cortex-a53cpu处理器以及四核malit860gpu处理器,支持异构运算,完成智能压缩算法的实现。高清相机负责图像采集,usb接口实现神经网络模型文件的加载,microsd卡提供数据存储空间。本发明提出一种基于视觉显著性的自适应图像量化编码算法,部署在基于tengine框架的arm多核异构处理器系统中。tengine是一种开源推理框架,支持加载主流框架的模型文件,提供标准的应用程序接口可以调用不同的硬件计算资源进行异构加速,利用c/c 对嵌入式平台进行编程开发。
图3所示为算法子系统相关的程序流程图,包括以下步骤:
(1)初始化:打开相机设备设置数据格式,申请数据缓冲区;
(2)图像数据采集:读取数据缓冲区的图像,通过内存映射方式将帧缓冲区地址映射到内存空间进行数据采集,并对其做格式转换处理;
(3)显著图提取:加载预训练模型resnet50,输入图像数据,提取最后一层卷积输出的多层特征图、平均池化层与全连接层之间的权重矩阵以及全连接层输出的向量矩阵,利用权重矩阵对多层特征图进行加权求和得到融合特征图,然后进行归一化、上采样等后处理得到与原始图像尺寸相同的显著图结果;
(4)量化参数分配:按照编码单元大小划分全局显著图,依次遍历各编码单元级的显著图区域,通过计算全局显著性对比权重与局部显著度分数得到各区域的量化参数偏移量,最终得到与图像编码单元划分尺寸一致的量化参数偏移矩阵;
(5)图像编码:将原图像与量化参数偏移矩阵一起输入到hevc编码模块中进行自适应量化编码,输出得到图像压缩数据;
(6)后处理:释放缓冲区内存空间,关闭相机设备。
预处理模块、显著性检测模块和量化参数调整模块的整体设计流程如图4所示。其中基于多层深度特征的显著区域提取模块利用推理框架tengine提供的高度可扩展接口实现神经网络在嵌入式设备上的高效运行,主要包括以下步骤:
(1)对输入图像进行归一化预处理,并将图像尺寸转换为神经网络模型输入要求,宽高均为224;
(2)创建tengine图,加载已经训练转换好的resnet50模型及权重参数文件,申请相应的内存空间,调用run函数运行模型文件获取输出张量数据,基于深度卷积神经网络进行特征提取需要进行大量的卷积运算,运算量大且计算重复性高,调用acl加速库,进行cpu/gpu异构混合调度,首先将输入数据切分,将神经网络中的卷积、池化、全连接层运算输入gpu进行计算,其余交由cpu执行运算;
(3)将全连接层输出张量y中各个元素的索引、数据按照数值大小进行排序得到排名前五的元素及对应索引列表c:
c={ci},i=1,2,3,4,5
(4)根据索引列表依次读取平均池化层与全连接层之间的权重wc,对最后一层卷积层输出的特征图进行加权求和操作,得到合并的融合特征图;
(5)对融合特征图进行上采样插值运算,转换为原始输入图像的尺寸,输出得到显著图结果sal;
(6)最后释放tengine图占用的内存资源。
量化参数调整模块包括以下步骤:
(1)对输出显著图结果计算全局平均显著度salavg,然后按照编码单元尺寸进行划分得到若干个图像块;
(2)遍历所有图像块,计算每个图像块的平均显著度salcu_avg以及总体显著度salcu_sum
(3)根据每个图像块的平均显著度与全局平均显著度比值计算全局显著性对比权重ω以及对应的加权量化分量qpweighted,如下式:
(4)根据每个图像块的总体显著度进行对数运算得到感知量化分量:
(5)根据初始量化参数输入结合加权量化分量和感知量化分量计算得到对应编码单元的量化参数偏移值,最终输出得到图像所有编码单元对应的量化参数偏移矩阵。
hevc编码模块的实现采用开源的kvazaar解决方案,该方案基于模块化设计,简化了平台移植和并行化的实现难度,帧内图像压缩编码框架组成如图5所示,关键模块包括编码控制、编码器、帧内预测、后处理滤波等模块,各模块之间互相联系互相影响。编码流程首先将输入图像划分为基本的块单元,根据帧内预测方法对块单元进行预测,得到原始块与预测信号之差,即预测残差。接着对预测残差进行变换和量化处理,量化参数根据量化参数偏移矩阵进行调整确定。对于得到的量化后的变换系数,再进一步经过熵编码得到编码数据,即压缩后的图像数据。整个编码过程采用帧内预测消除图像的空间冗余,通过变换量化处理降低频域冗余与数据冗余,再通过算术编码进一步减低统计冗余,最后通过滤波处理降低编码图像失真。
本发明的具体实施流程包括以下步骤:
(1)连接电源启动eaidk-610平台,引导fedora内核系统启动,初始化外设驱动程序;
(2)通过usb接口将训练好的神经网络模型权重参数、配置等文件拷贝到linux系统相应目录下;
(3)下载、编译、执行算法子系统代码生成一系列配置库文件及可执行文件;
(4)在算法子系统中使用命令行调用可执行文件,依次开启相机设备执行图像采集、图像编码预处理,通过异构调度资源实现并行加速,完成显著图提取和量化参数调整等相关操作,然后继续执行编码算法,输出保存得到图像压缩文件。
本发明实现一套基于arm异构处理器的结合视觉显著性的高效智能图像压缩编码系统,相比于标准的图像压缩编码实现方案,本发明能够在保证图像编码质量的同时有效降低编码比特数,提高编码效率。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
