隨著市場的國際化和我國物流業的不斷發展, 倉儲已經成為物流過程中的重要一環。倉儲安全是倉儲正常有效工作的保障, 任何惡性事故都會造成巨大的生命財產安全和嚴重的環境損害。目前國內大多數倉儲部門都沒有一套完整的監控機制, 相當一部分倉儲中心尚無環境監控信息系統, 仍使用人工監控方法, 耗時耗力, 效率極低。有些則采用簡單的溫度、濕度顯示記錄儀表, 這些傳統的設備功能單一、可靠度不高, 少部分倉儲中心使用了視頻監控系統, 但大部分采用的是數據的有線傳輸方式, 現場布線復雜, 擴展性差, 遠不能滿足現代化的要求。因此, 開發一款基于無線傳輸的倉儲圖像采集裝置, 以達到對倉儲中心的環境監控、預警、事故告警以及回溯等功能就具有重要意義。但由于倉儲監控系統采集的數據量巨大, 尤其是視頻數據量, 很難實現數據的無線實時傳輸, 因此對采集到的倉儲圖像進行有效壓縮, 以減少傳輸的數據量就非常必要。在對倉儲圖像進行壓縮時, 主要利用倉儲圖像的幀內相關性和幀間相關性, 文章通過小波變換編碼和運動估計與補償算法分別消除幀內和幀間數據冗余。
在消除幀內相關性時, 往往利用變換編碼, 常用的變換有霍特林變換、離散余弦變換、小波變換等。理論上, 霍特林變換在圖像處理的圖像壓縮方面是最優的, 但霍特林變換每次針對不同的輸入數據, 必須重新計算其統計特性, 計算比較復雜, 因此霍特林變換的實際應用較少。人們提出了算法較為簡單的離散余弦變換。但隨著研究和應用的深入, 離散余弦變換編碼的缺點也逐步顯現出來, 例如在低比特率環境下, 壓縮圖像會出現飛蚊噪聲和方塊效應[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%。小波第二次變換編碼對倉儲圖像的壓縮效率較高, 且圖像壓縮效果符合倉儲安全監控的要求, 雖然小波第三次變換編碼進一步減少了倉儲圖像的數據量, 但其畫面較為模糊, 不符合倉儲安全監控的要求, 故采用小波二次變換編碼。
倉儲圖像中具有運動目標少、圖像變化不大的特點, 因此, 在采用小波變換編碼來消除倉儲圖像幀內數據冗余的同時, 本文還采用了運動估計與補償算法來消除倉儲圖像的幀間數據冗余。
實驗結果表明, 使用小波變化編碼可以極大地降低倉儲圖像的數據量, 并且在壓縮后的圖像中可以辨別出倉儲環境中異常情況的發生, 符合倉儲安全監控的要求, 因此, 可以將小波變換編碼引入倉儲監控領域。同時, 本文又根據倉儲圖像的特點, 論證了運動估計與補償算法在倉儲圖像壓縮領域的有效性與可行性。
本文為實現倉儲圖像數據的壓縮提供了一定的基礎, 但還有一些需要改進的地方, 例如如何通過編程將小波變換編碼和運動估計與補償算法進行結合, 如何將程序植入硬件以實現基于無線傳輸的多功能倉儲圖像采集裝置的開發, 有待進一步研究。
上一篇: 中厚板倉儲的信息化管理
下一篇: 密封物資倉儲溫濕度檢測與監控系統