随着市场的国际化和我国物流业的不断发展, 仓储已经成为物流过程中的重要一环。仓储安全是仓储正常有效工作的保障, 任何恶性事故都会造成巨大的生命财产安全和严重的环境损害。目前国内大多数仓储部门都没有一套完整的监控机制, 相当一部分仓储中心尚无环境监控信息系统, 仍使用人工监控方法, 耗时耗力, 效率极低。有些则采用简单的温度、湿度显示记录仪表, 这些传统的设备功能单一、可靠度不高, 少部分仓储中心使用了视频监控系统, 但大部分采用的是数据的有线传输方式, 现场布线复杂, 扩展性差, 远不能满足现代化的要求。因此, 开发一款基于无线传输的仓储图像采集装置, 以达到对仓储中心的环境监控、预警、事故告警以及回溯等功能就具有重要意义。但由于仓储监控系统采集的数据量巨大, 尤其是视频数据量, 很难实现数据的无线实时传输, 因此对采集到的仓储图像进行有效压缩, 以减少传输的数据量就非常必要。在对仓储图像进行压缩时, 主要利用仓储图像的帧内相关性和帧间相关性, 文章通过小波变换编码和运动估计与补偿算法分别消除帧内和帧间数据冗余。
在消除帧内相关性时, 往往利用变换编码, 常用的变换有霍特林变换、离散余弦变换、小波变换等。理论上, 霍特林变换在图像处理的图像压缩方面是最优的, 但霍特林变换每次针对不同的输入数据, 必须重新计算其统计特性, 计算比较复杂, 因此霍特林变换的实际应用较少。人们提出了算法较为简单的离散余弦变换。但随着研究和应用的深入, 离散余弦变换编码的缺点也逐步显现出来, 例如在低比特率环境下, 压缩图像会出现飞蚊噪声和方块效应[1]。近年来发展起来的小波分析技术和多分辨分析理论, 成为研究图像压缩的有力工具。基于离散小波变换的图像压缩有许多新的性能特点, 例如高压缩率、同时支持有损和无损压缩、支持渐进传输、支持ROI等[2]。因此本文采用小波图像编码来消除仓储图像帧内相关性。
小波在图像压缩领域的应用较为成功, 较早得到应用的是小波指纹图像压缩[3], 近年来, 小波图像压缩应用到了很多领域, 例如在对雷达图像、水下图像等特殊领域中, 小波变换编码都取得了较好的压缩效果[4,5], 但针对仓储图像的小波压缩研究则较为少见。小波图像压缩主要由小波变换和压缩编码两个模块组成。
小波图像变换的常用方法是采用二维离散小波变换, 图像经小波变换后, 其数据总量与原图像相等, 即小波变换本身并不具有压缩功能。小波变换的定义如下:
其逆变换为:
其中:, 式中:为傅里叶变换, Cψ取有限值。
二维离散小波变换是将二维图像在不同尺度上进行分解, 分解的结果为:近似分量c A、水平细节分量c H、垂直细节分量c V和对角细节分量c D。为充分体现小波变换的多尺度分析, 本文采用二维小波变换的Mallat算法。Mallat算法为Mallat提出的快速塔式分解算法, 即将仓储图像经过二维小波变换分解为一系列尺度、方向和空间局部变化的子带。二维小波分解的Mallat算法如图1所示。
做一次小波变换后, 4个子仓储图像c A、c H、c V、c D按照从左至右, 从上至下的摆放次序, 由递归过程可以看出, 一幅仓储图像经过三级二维小波变换的塔式结构如图2所示。
本文采用matlab软件对仓储图像进行三级小波分解, 由于三级小波分解程序类似, 因此只列举仓储图像的一级小波分解程序。
X=imread ('F:\cangchu.jpg') ;%读入仓储图像
X=rgb2gray (X) ;
subplot (221) ;imshow (X) ;%显示原始仓储图像
title ('原始仓储图像') ;
[C, S]=wavedec2 (X, 3, 'db1') ;%对图像进行三级'db1'小波分解
ca1=appcoef2 (C, S, 'db1', 1) ;%提取尺度1的低频系数
ch1=detcoef2 ('h', C, S, 1) ;%提取尺度1的水平方向高频系数
cv1=detcoef2 ('v', C, S, 1) ;%提取尺度1的垂直方向高频系数
cd1=detcoef2 ('d', C, S, 1) ;%提取尺度1的斜线方向高频系数
A1=[ca1, ch1;cv1, cd1];
subplot (222) , imshow (A1, []) ;%显示仓储图像的一级小波分解
title ('仓储图像的一级小波分解') 。
运行结果如图3-图6所示。
图3为原始仓储图像, 图4为仓储图像的一级小波分解, 图中的四个部分 (从左至右, 从上至下) 分别代表LL1, HL1, LH1, HH1。图5和图6分别为仓储图像的二级和三级小波分解, 其各个部分与图4类似。
从实验结果可以看出, 一个仓储图像作小波分解后, 可以得到一系列不同分辨率的子仓储图像。对于一个仓储图像, 最主要的部分是低频部分, 其低频部分保留了图像的大部分信息, 高分辨率子图像上大部分点的数值都接近于0, 因此, 在对仓储图像进行压缩时, 可以利用小波分解, 舍弃仓储图像的高频部分而只保留低频部分。通过上述的小波变换, 可以很好地去除仓储图像的帧内相关性, 减少数据冗余。
为了获得更高效的小波压缩方案, 必须要解决小波系数及其位置信息的编码问题。1992年, Lewis和Knowles[6]最早提出了小波零树编码算法, 该算法的最大优点是利用了不同分辨率子带之间小波系数的相关性。但Levis和Knowles的零树编码算法没有考虑孤立零点的情况, 其算法存在一定的不足。Shapiro考虑了孤立零点的情况, 并于1993年提出了嵌入零树小波编码算法, 简称EZW算法[7]。这是一种有效并且计算简单的图像压缩技术。EZW算法需多遍扫描编码小波系数图像, 其中每一遍扫描包含以下四个步骤。
(1) 选择阈值。对于L级小波变换, EZW算法应用一系列的阈值T0, T1, …, TL-1来确定小波系数的重要性, 其中, Ti=Ti-1/2, i为扫描次数, i=1, 2, …, L-1。初始阈值的选择方法为, 其中, {ci, j}是L级小波变换的变换系数。
(2) 主扫描。对于当前阈值Ti-1, 按照小波系数的Mortan扫描顺序依次处理。对于正的重要元素、负的重要元素、零树根和孤立零点分别用P、N、T、Z来表示, 用一个主扫描表记录这些输出符号。第i次扫描结束后, 将输出符号为P或N的系数的相应位置加标记 (或置为0) , 以免在下一次主扫描时再对它们进行编码。
(3) 第三, 辅扫描。对主扫描表中输出符号为P或N的小波系数依据量化器进行量化。量化器的输入间隔为[Ti-1, 2Ti-1) , 将其等分为两个区间, 分别是[Ti-1, 1.5Ti-1) 和[1.5Ti-1, 2Ti-1) 。若小波系数属于第一个区间, 则输出量化符号“0”, 重构值为1.25Ti-1;若小波系数属于第二个区间, 则输出量化符号“1”, 重构值为1.75Ti-1。输出的符号“0”或“1”由一个辅扫描表记录。
(4) 输出编码信息。编码器输出两类信息, 第一类是给解码器的信息, 包括阈值、主扫描表和辅扫描表;第二类是用于下一次扫描的信息, 包括阈值及重要系数序列。
运用EZW算法进行空间小波树递归编码, 可以有效剔除对高频系数的编码, 大大提高小波系数的编码效率, 因此本文采用EZW算法对小波分解图像进行压缩编码。
由于仓储环境中大部分时间不存在运动目标, 仓储图像帧间信息往往相差不大, 因此除了利用图像帧内的相关性进行帧内压缩之外, 还应充分利用序列图像在时间轴方向上的相关性进行压缩编码, 即帧间编码。帧间运动补偿技术是消除时间冗余的最基本和最重要的方法, 谢洪图等[8]提出了一种基于冗余离散小波变换的自适应运动估计算法, 进一步论证了运动估计与补偿算法在经离散小波变换后的仓储图像中的有效性。因此本文采用运动估计和运动补偿来消除仓储图像帧间的冗余。
在利用运动估计与补偿算法消除仓储图像的帧间数据时, 主要分为两个步骤。第一步是运动估值, 即在相邻的仓储图像帧中估计运动物体的位移值;第二步是运动补偿, 即利用所得到的运动估值进行仓储图像帧间的预测编码。
目前采用的运动补偿算法主要有两种:一是使用前向运动估值, 在传送时需要传送运动矢量;二是使用递归运动估计, 运动矢量根据已传送的像素计算得到。这两种运动补偿算法所对应的运动估值算法分别为块匹配算法 (BMA) 和像素递归算法 (PRA) , 这是目前使用最广泛的两种算法[9]。由于PRA算法的最小搜索单元是像素点, 所以对物体的运动有较高的灵敏度, 位移估值精度也高, 对于复杂运动画面具有较强的适应性。但PRA算法运算代价大, 硬件实现的复杂度高, 不适用于多功能仓储采集装置的嵌入式开发, 并且在仓储环境中, 很少出现复杂的运动画面, 块匹配算法的位移估值精度已符合仓储安全监控的要求, 因此, 在对仓储图像进行运动补偿时, 采用块匹配算法。
块匹配算法通过对仓储图像序列中的两帧图像间子块的匹配来进行运动估值。在此算法中, 仓储图像被分成子块, 子块中所有像素的运动矢量被认为是相同的。其中, 运动估值的目标是搜索位移矢量, 从预测出, 位移矢量的搜索过程对当前仓储图像帧中待匹配块W和参考仓储图像帧的相应块进行匹配, 寻找最小匹配误差。位移矢量, 其中S为搜索区域。在上传信息时, 多功能仓储监控设备需将搜索到的位移矢量d传送给上位机, 进一步完成运动补偿。
由于仓储环境具有运动目标较少出现的特性, 因此, 经过运动补偿帧间预测的仓储图像与参考仓储图像的差别往往不大, 即预测误差较小, 从而所需存储和上传的参考仓储图像帧的数量会大大减少, 极大地降低了仓储监控图像的压缩率, 方便仓储图像的本地存储和无线传输。
图7为原始图像, 图8至图10分别是第一、二、三次小波变换编码后的图像。
matlab实验结果如下:
原始图像的大小:
第一次变换编码图像的大小:
第二次变换编码图像的大小:
第三次变换编码图像的大小:
实验结果表明, 小波变换编码对仓储图像压缩的效果较好, 经过第一、二、三次变换编码后, 仓储图像的数据量分别为原始图像的25%、6%、1.6%。小波第二次变换编码对仓储图像的压缩效率较高, 且图像压缩效果符合仓储安全监控的要求, 虽然小波第三次变换编码进一步减少了仓储图像的数据量, 但其画面较为模糊, 不符合仓储安全监控的要求, 故采用小波二次变换编码。
仓储图像中具有运动目标少、图像变化不大的特点, 因此, 在采用小波变换编码来消除仓储图像帧内数据冗余的同时, 本文还采用了运动估计与补偿算法来消除仓储图像的帧间数据冗余。
实验结果表明, 使用小波变化编码可以极大地降低仓储图像的数据量, 并且在压缩后的图像中可以辨别出仓储环境中异常情况的发生, 符合仓储安全监控的要求, 因此, 可以将小波变换编码引入仓储监控领域。同时, 本文又根据仓储图像的特点, 论证了运动估计与补偿算法在仓储图像压缩领域的有效性与可行性。
本文为实现仓储图像数据的压缩提供了一定的基础, 但还有一些需要改进的地方, 例如如何通过编程将小波变换编码和运动估计与补偿算法进行结合, 如何将程序植入硬件以实现基于无线传输的多功能仓储图像采集装置的开发, 有待进一步研究。
上一篇: 中厚板仓储的信息化管理
下一篇: 密封物资仓储温湿度检测与监控系统