1. 程式人生 > >影象的上取樣 下采樣

影象的上取樣 下采樣

目的

縮小影象(或稱為下采樣(subsampled)或降取樣(downsampled))的主要目的:

1、使得影象符合顯示區域的大小;

2、生成對應影象的縮圖。

放大影象(或稱為上取樣(upsampling)或影象插值(interpolating))的主要目的是放大原影象,從而可以顯示在更高解析度的顯示裝置上。

對影象的縮放操作並不能帶來更多關於該影象的資訊, 因此影象的質量將不可避免地受到影響。然而,確實有一些縮放方法能夠增加影象的資訊,從而使得縮放後的影象質量超過原圖質量的。

原理

下采樣原理:對於一幅影象I尺寸為MN,對其進行s倍下采樣,即得到(M/s)(N/s)尺寸的得解析度影象,當然s應該是M和N的公約數才行,如果考慮的是矩陣形式的影象,就是把原始影象s*s視窗內的影象變成一個畫素,這個畫素點的值就是視窗內所有畫素的均值:

上取樣原理:影象放大幾乎都是採用內插值方法,即在原有影象畫素的基礎上在畫素點之間採用合適的插值演算法插入新的元素。

插值演算法分類

對插值演算法分類比較混亂,各人有各人的分類演算法。文獻《影象插值技術綜述》中簡略的將插值演算法分為傳統插值、 基於邊緣的插值和基於區域的插值3類,作為初學者入門明晰插值演算法還是有幫助。
1.傳統差值原理和評價
在傳統影象插值演算法中,鄰插值較簡單,容易實現,早期的時候應用比較普遍。但是,該方法會在新影象中產生明顯的鋸齒邊緣和馬賽克現象。雙線性插值法具有平滑功能,能有效地克服鄰法的不足,但會退化影象的高頻部分,使影象細節變模糊。在放大倍數比較高時,高階插值,如雙三次和三次樣條插值等比低階插值效果好。這些插值演算法可以使插值生成的畫素灰度值延續原影象灰度變化的連續性,從而使放大影象濃淡變化自然平滑。但是在影象中,有些畫素與相鄰畫素間灰度值存在突變,即存在灰度不連續性。這些具有灰度值突變的畫素就是影象中描述物件的輪廓或紋理影象的邊緣畫素。在影象放大中,對這些具有不連續灰度特性的畫素,如果採用常規的插值演算法生成新增加的畫素,勢必會使放大影象的輪廓和紋理模糊,降低影象質量。

2.基於邊緣的影象插值演算法
為了克服傳統方法的不足, 提出了許多邊緣保護的插值方法,對插值影象的邊緣有一定的增強, 使得影象的視覺效果更好, 邊緣保護的插值方法可以分為兩類: 基於原始低分辨影象邊緣的方法和基於插值後高解析度影象邊緣的方法。基於原始低解析度影象邊緣的方法:( 1)首先檢測低解析度影象的邊緣, 然後根據檢測的邊緣將畫素分類處理, 對於平坦區域的畫素,採用傳統方法插值;對於邊緣區域的畫素, 設計特殊插值方法, 以達到保持邊緣細節的目的。(2)基於插值後高解析度影象邊緣的方法這類插值方法:首先採用傳統方法插值低解析度影象,然後檢測高解析度影象的邊緣,最後對邊緣及附近畫素進行特殊處理, 以去除模糊, 增強影象的邊緣。
3.基於區域的影象插值演算法
首先將原始低解析度影象分割成不同區域,然後將插值點對映到低解析度影象, 判斷其所屬區域, 最後根據插值點的鄰域畫素設計不同的插值公式, 計算插值點的值。

CNN中的池化操作

取樣層是使用 pooling的相關技術來實現的,目的就是用來降低特徵的維度並保留有效資訊,一定程度上避免過擬合。但是pooling的目的不僅僅是這些,他的目的是保持旋轉、平移、伸縮不變形等。

取樣有最大值取樣,平均值取樣,求和區域取樣和隨機區域取樣等。池化也是這樣的,比如最大值池化,平均值池化,隨機池化,求和區域池化等。

  • mean-pooling,即對鄰域內特徵點只求平均,
  • max-pooling,即對鄰域內特徵點取最大。

根據相關理論,特徵提取的誤差主要來自兩個方面:(1)鄰域大小受限造成的估計值方差增大;(2)卷積層引數誤差造成估計均值的偏移。一般來說,mean-pooling能減小第一種誤差,更多的保留影象的背景資訊,max-pooling能減小第二種誤差,更多的保留紋理資訊。

  • Stochastic-pooling則介於兩者之間,通過對畫素點按照數值大小賦予概率,再按照概率進行亞取樣,再平均

來源:https://blog.csdn.net/stf1065716904/article/details/78490868 https://blog.csdn.net/majinlei121/article/details/46742