本發明涉及遙感圖像處理技術領域,尤其涉及一種影像處理方法和裝置。
背景技術:
遙感影像是監測地表動態以及人類活動對自然環境影響的寶貴數據資源,但由于遙感影像中不可避免地存在著大量云和云下陰影的遮擋,這就導致會產生大量數據缺失的影像,使得影像的利用率十分低下。據統計,全球年平均云覆蓋面積約為整個地表的三分之二,這就使得對影像的利用變得十分困難,因為數據缺失嚴重。另外,由于成像傳感器的系統性或偶發故障,也會造成影像中部分像元值的缺失,這也是導致影像存在數據缺失的一方面因素。
然而,即使是存在數據缺失的影像當中,也存在著很大一部分的正常數據,如果將這類影像直接放棄,影像中的正常數據就沒有得到有效的利用,這無疑將造成極大的信息浪費。
因此,如何對受損影像(即存在數據缺失的影像)進行修復,即修復受損影像中缺失的像元值,使受損影像能夠得到有效的利用,是亟待解決的技術問題。
技術實現要素:
有鑒于此,本發明實施例期望提供一種影像處理方法、裝置和計算機可讀存儲介質,以至少解決現有技術中的以上技術問題。
作為本發明實施例的一個方面,提供了一種影像處理方法,包括:
獲得原始影像序列,所述原始影像序列為影像采集設備針對同一地區在不同時間獲取的原始影像的集合;
從所述原始影像序列待修復的原始影像中選擇目標影像,并確定與所選目標影像對應的源影像,其中,針對每一幅被選的目標影像,其對應的源影像為所述原始影像序列中除所述被選的目標影像之外的至少一幅原始影像;
針對每一幅所述目標影像,按預設的優先級設定規則對其對應的各源影像進行優先級設定,并按所述優先級從高到低的順序依次選擇所述目標影像對應的各源影像對所述目標影像進行修復。
在一種具體實施方式中,在獲得的所述原始影像序列中,每一幅原始影像都進行了受損像元和正常像元的標記;
所述從原始影像序列待修復的原始影像中選擇目標影像,包括:根據所述原始影像序列中每一幅原始影像的受損像元和正常像元的標記,確定存在受損像元的原始影像為待修復的原始影像,并從所述待修復的原始影像中選擇所述目標影像。
在一種具體實施方式中,所述針對每一幅目標影像,按預設的優先級設定規則對其對應的各源影像進行優先級設定,包括:
根據所述各源影像被所述影像采集設備獲取的時間、以及所述目標影像被所述影像采集設備獲取的時間,計算其時間間隔,時間間隔越小的源影像的優先級越高,時間間隔越大的源影像的優先級越低。
在一種具體實施方式中,所述按優先級從高到低的順序依次選擇目標影像對應的各源影像對所述目標影像進行修復,包括:
在使用每一幅源影像對所述目標影像進行修復時,每當所述目標影像中的受損像元被修復,即將被修復的受損像元標記為正常像元;
在每一幅源影像對所述目標影像執行完修復操作后,判斷所述目標影像中是否還存在受損像元,如存在,則按優先級順序選擇下一幅源影像繼續對所述目標影像進行修復;如不存在,則確定所述目標影像被完全修復,并不再選擇后續源影像執行修復。
在一種具體實施方式中,所述使用每一幅源影像對所述目標影像進行修復,包括:
對所述源影像和目標影像用滑動窗口進行同步遍歷,以滑動窗口為單位進行影像修復,在當前滑動窗口的影像修復操作完成后,按預設的跳轉策略跳轉到下一個滑動窗口繼續執行修復操作,直至所述源影像和目標影像中的所有滑動窗口都執行完修復操作;
在執行每個滑動窗口內的影像修復操作時,將所述目標影像在對應滑動窗口內的正常像元組織成第一數據矩陣,將所述源影像在對應滑動窗口內的正常像元組織成第二數據矩陣;用所述第一數據矩陣和第二數據矩陣作為輸入,用帶有最大熵約束的最優運輸算法計算對應滑動窗口內源影像到目標影像的最優運輸計劃,所述最優運輸計劃用于描述對應滑動窗口內源影像的每個正常像元映射到目標影像中的相同位置而被賦予新像元值時,與對應窗口內所述目標影像的所有正常像元之間的連接權重;
對于所述滑動窗口內目標影像中的每一個受損像元,當源影像中相同位置的像元為正常像元時,將所述源影像中所述正常像元到所述滑動窗口內目標影像的所有正常像元之間的連接權重做歸一化處理后,根據所述歸一化處理后的連接權重計算所述滑動窗口內目標影像的所有正常像元的加權和,將所述加權和作為所述源影像中的正常像元映射到所述目標影像中同樣位置的受損像元的映射值,所述映射值即為賦予所述受損像元的新像元值,并隨之將所述已修復的受損像元標記為正常像元。
在一種具體實施方式中,所述預設的跳轉策略為:
計算在每一個滑動窗口內所述源影像和目標影像的正常像元比例的乘積,按所述乘積從大到小的順序執行所述滑動窗口的跳轉。
在一種具體實施方式中,所有滑動窗口的面積尺寸相同,且相鄰的滑動窗口之間具有一定的重疊區域,所述重疊區域占所述滑動窗口的面積比例為預設值。
在一種具體實施方式中,所述使用每一幅源影像對所述目標影像進行修復,還包括:在每個滑動窗口的影像修復操作完成后,將對應滑動窗口標記為已修復,當所有滑動窗口都標記為已修復時,表明這一幅源影像對所述目標影像的修復操作完成。
作為本發明實施例的另一個方面,提供了一種計算機可讀存儲介質,所述存儲介質中存儲有計算機可執行指令,所述指令適用于被計算機加載時執行前述本發明實施例所述的影像處理方法。
作為本發明實施例的再一個方面,提供了一種影像處理裝置,所述裝置包括:
處理器,用于執行計算機指令;
存儲器,用于存儲多條計算機指令,所述指令用于被處理器加載時執行前述本發明實施例所述的影像處理方法。
在本一種具體實施方式中,所述裝置還包括:影像采集器,用于采集原始影像;所述處理器可從所述影像采集器獲得原始影像序列。
本發明實施例采用上述技術方案,具有如下優點:
在同一地區不同時間獲取的原始影像之間進行交叉修復,能夠極大化地利用現有信息,提高了數據的利用率,使受損像元得到修復的機會得到較大提高;通過交叉修復,解決了現有技術中大部分原始像元受損而造成的影像利用率過低問題,能夠高質量的完成大量遙感影像的修復,減少信息損失,尤其保證了為熱點地區的連續監測提供充足的數據源。
另外,由于本發明實施例采用最優運輸算法來計算源影像和目標影像之間的映射關系,能夠更準確地將來自源影像的像元值過渡到目標影像當中,在視覺上使源影像中的像元經過映射后更自然地融入到目標影像當中,融為一體,不會顯得突兀。其次,采用最優運輸算法能夠直接計算多維數據之間的過渡關系,而遙感影像一般也都是多波段的,這就很大程度上簡化了處理流程,避免了每個波段單獨計算。
上述概述僅僅是為了說明書的目的,并不意圖以任何方式進行限制。除上述描述的示意性的方面、實施方式和特征之外,通過參考附圖和以下的詳細描述,本發明進一步的方面、實施方式和特征將會是容易明白的。
附圖說明
在附圖中,除非另外規定,否則貫穿多個附圖相同的附圖標記表示相同或相似的部件或元素。這些附圖不一定是按照比例繪制的。應該理解,這些附圖僅描繪了根據本發明公開的一些實施方式,而不應將其視為是對本發明范圍的限制。
圖1為本發明實施例一的影像處理方法的流程示意圖;
圖2為本發明實施例一中源影像和目標影像中滑動窗口的示意圖;
圖3為本發明實施例一中從矩陣s到矩陣t的連接權重的示意圖;
圖4為本發明實施例一中像元值映射與替換的示意圖;
圖5為本發明實施例二中原始影像序列的交叉修復流程圖;
圖6為本發明實施例二中源影像對目標影像的修復流程圖;
圖7為本發明實施例四的影像處理裝置的組成結構示意圖。
具體實施方式
在下文中,僅簡單地描述了某些示例性實施例。正如本領域技術人員可認識到的那樣,在不脫離本發明的精神或范圍的情況下,可通過各種不同方式修改所描述的實施例。因此,附圖和描述被認為本質上是示例性的而非限制性的。
本發明實施例嘗試利用已知信息對受損影像進行修復,考慮到:一個地區不可能永遠是被云覆蓋的,總有無云的時刻,因此可以利用同一地區不被云覆蓋期間獲得的正常像元,去修補該地區被云覆蓋期間的受損像元(也稱缺失的像元、或受污染的像元)。當然,對由于成像傳感器的系統性或偶發故障造成的影像受損,也可以利用未發生故障期間的正常像元去修補發生故障期間的受損像元。這其中主要涉及兩個方面:一方面,需要確定影像中的哪些像元是受損像元;另一方面,如何用同一地區不同時間獲取的影像進行交叉修復。
有鑒于此,本發明實施例提供了一種影像處理方法、裝置和計算機可讀存儲介質。下面結合具體實施例和附圖詳細說明。
實施例一
參見圖1,本發明實施例一提供了一種影像處理方法,包括:
步驟101,獲得原始影像序列,所述原始影像序列為影像采集設備針對同一地區在不同時間獲取的原始影像的集合。
所謂原始影像,是指由影像采集設備/影像采集器采集所得的影像,所述原始影像是未經過像元修補的影像,目的是減少誤差擴散(對像元的修補本身是存在誤差的,用修補的像元去再用作其他像元的修補,會導致誤差擴散)。
影像采集器針對同一地區在不同時間獲取的原始影像會存入一個集合,此一個集合即稱為一個原始影像序列。針對同一地區在不同時間獲取的原始影像之間是彼此正交的,即所有的原始影像上同一坐標的像元所覆蓋的地理范圍是一致的。
另外,還需對原始影像中的像元進行標記,區分受損像元和正常像元。這里需要說明的是,如果要修補的對象是被云或云下陰影遮擋的像元,則可以使用數據自帶的云掩膜來進行標記,或使用云檢測算法自行判斷像元是否受到云的污損。
如果要修補的對象是因各類故障而造成的缺失數據,例如條帶,則需要了解發生的規律或者缺失數據的填充值,以判斷任一像元是否為缺失值。也就是說,受損像元標記的具體方法根據污染源的不同可能會有所區別,但無論如何需要確保能夠判斷原始影像中的任一像元是否為受損像元,如此即可,本發明實施例不對受損像元的標記方法做過多限制,實際應用中凡是能夠標記受損像元和正常像元的方式方法應當都屬于本發明實施例要保護的范圍內。標記為受損就意味著該像元的值是未知的,是需要被修補的;而標記為正常則意味著該像元的值是已知的,是信息的提供者。
步驟102,從所述原始影像序列待修復的原始影像中選擇目標影像,并確定與所選目標影像對應的源影像,其中,針對每一幅被選的目標影像,其對應的源影像為所述原始影像序列中除所述被選的目標影像之外的至少一幅原始影像。
在原始影像序列中各原始影像都做受損像元和正常像元的標記后,從原始影像序列待修復的原始影像中選擇目標影像,可以采用以下方式進行:
根據原始影像序列中每一幅原始影像的受損像元和正常像元的標記,確定存在受損像元的原始影像為待修復的原始影像,并從待修復的原始影像中選擇目標影像。實際應用中,可以只從待修復的原始影像中選擇一幅或幾幅作為目標影像,當然,也可以將所有待修復的原始影像都選擇為目標影像,本發明實施例的目的即是對所選的目標影像進行修復。需要說明的是,本發明實施例既可以同時對多幅目標影像執行修復操作,也可以分時的依次對多幅目標影像分別執行修復操作,無論同時執行還是分時執行,針對每一幅目標影像的修復操作都是獨立進行的,都是用該目標影像對應的源影像進行修復,不同的目標影像其對應的源影像是不同的;但針對每一幅目標影像的修復操作所使用的方法原理是基本相同的,具體的修復方法原理會在后續詳細闡述。
還需要說明的是,針對每一幅被選的目標影像,在確定其對應的源影像時,即可以選擇原始影像序列中除被選目標影像之外的所有原始影像作為其源影像,也可以只選擇原始影像序列中除被選目標影像之外的部分原始影像作為其源影像。具體如何選擇可以根據實際需要來定,只要能滿足對受損影像的修復要求即可;選擇部分原始影像作為目標影像的源影像能夠減小運算量,節省計算機資源,而選擇所述所有的原始影像作為目標影響的源影像,則能夠獲得更優的影像修復效果。
步驟103,針對每一幅所述目標影像,按預設的優先級設定規則對其對應的各源影像進行優先級設定,并按所述優先級從高到低的順序依次選擇所述目標影像對應的各源影像對所述目標影像進行修復。
其中,針對每一幅目標影像,按預設的優先級設定規則對其對應的各源影像進行優先級設定,可以采用以下方式來進行:
根據各源影像被影像采集設備獲取的時間、以及目標影像被影像采集設備獲取的時間,計算其時間間隔,時間間隔越小的源影像的優先級越高,時間間隔越大的源影像的優先級越低。
按源影像被獲取的時間對源影像進行優先級排序是考慮到:各源影像對目標影像執行修復的先后順序是對最終的修復效果有影響的,一般認為影像獲取的時間越近,其所提供的信息的可靠性越強,因此優先選擇獲取時間與目標影像的獲取時間更接近的源影像執行修復操作,會獲得更優的影像修復效果。
具體的,按優先級從高到低的順序依次選擇目標影像對應的各源影像對目標影像進行修復,包括:
在使用每一幅源影像對所述目標影像進行修復時,每當所述目標影像中的受損像元被修復,即將被修復的受損像元標記為正常像元;
在每一幅源影像對所述目標影像執行完修復操作后,判斷所述目標影像中是否還存在受損像元,如存在,則按優先級順序選擇下一幅源影像繼續對所述目標影像進行修復;如不存在,則確定所述目標影像被完全修復,并不再選擇后續源影像執行修復,所述被完全修復是指所述目標影像中的所有像元均標記為正常像元(這其中既包括原始的正常像元,也包括被修復為正常像元的原始受損像元),所述目標影像中的所有受損像元均被修復為正常像元。
而使用每一幅源影像對目標影像進行修復的操作具體為:
對源影像和目標影像用滑動窗口進行同步遍歷,以滑動窗口為單位進行影像修復,在當前滑動窗口的影像修復操作完成后,按預設的跳轉策略跳轉到下一個滑動窗口繼續執行修復操作,直至源影像和目標影像中的所有滑動窗口都執行完修復操作;
在執行每個滑動窗口內的影像修復操作時,將目標影像在對應滑動窗口內的正常像元組織成第一數據矩陣,將源影像在對應滑動窗口內的正常像元組織成第二數據矩陣;用第一數據矩陣和第二數據矩陣作為輸入,用帶有最大熵約束的最優運輸算法計算對應滑動窗口內源影像到目標影像的最優運輸計劃,所述最優運輸計劃用于描述對應滑動窗口內源影像的每個正常像元映射到目標影像中的相同位置而被賦予新像元值時,與對應窗口內所述目標影像的所有正常像元之間的連接權重;
對于滑動窗口內目標影像中的每一個受損像元,當源影像中相同位置的像元為正常像元時,將源影像中所述正常像元到滑動窗口內目標影像的所有正常像元之間的連接權重做歸一化處理后,根據歸一化處理后的連接權重計算所述滑動窗口內目標影像的所有正常像元的加權和,將加權和作為源影像中的正常像元映射到目標影像中同樣位置的受損像元的映射值,所述映射值即為賦予受損像元的新像元值,并隨之將已修復的受損像元標記為正常像元。
以上可以看出,使用每一幅源影像對目標影像進行修復的操作,主要涉及以下技術手段:
一、滑動窗口的選擇
遙感圖像幅面一般較大,因此需要分塊修補,即使用滑動窗口,將整幅影像分成各個滑動窗口逐個修復。這里,既然分多個滑動窗口逐個修復,那么就會涉及到這多個滑動窗口按怎樣的先后順序來進行修復的問題,原則上本發明實施例不對多個滑動窗口的修復先后策略進行限制,理論上無論采用怎樣的先后順序,只要保證每個滑動窗口都能完成修復操作,即能完成對整幅影像的修復,因此,實際應用中采用任何滑動窗口的修復先后策略應當都屬于本發明實施例要保護的范圍。但發明人在實踐中發現,滑動窗口采用不同的修復先后策略,會對最終的影像修復效果造成影響,原因是:本發明實施例由于采用最優運輸算法生成源影像與目標影像間的映射關系,而已知的信息越多,對像元值所屬概率分布的描述就越準確,得出的最優運輸計劃也就越精確,因此優先選擇能夠提供最多已知信息的滑動窗口就能夠獲得更好的修復精確度。從而,本發明實施例提倡按滑動窗口中能夠提供的已知信息(即正常像元)量的多少來決定滑動窗口的修復先后;實際應用中,可以用來評價滑動窗口中已知信息量多少的方法有多種,本發明實施例不做限制,但任何可適用于本發明實施例的評價方法應當都屬于本發明實施例要保護的范圍。
本發明實施例在此提供一種用來評價滑動窗口中已知信息量多少的方法,即計算在每一個滑動窗口內源影像和目標影像的正常像元比例的乘積,依此來衡量滑動窗口中已知信息量的多少,乘積的取值越大代表滑動窗口中的已知信息量越多,反之,乘積的取值越小代表滑動窗口中的已知信息量越少。舉例說明,參見圖2,圖2中左側圖代表源影像,右側圖代表目標影像,圖中的白線方框1代表滑動窗口1,白線方框2代表滑動窗口2,源影像和目標影像中的滑動窗口1對應的是相同的物理位置,同樣,滑動窗口2對應的也是相同的物理位置,影像中的黑色區域代表正常像元所覆蓋的區域,白色區域代表被云遮擋的區域,灰色區域代表被云下陰影遮擋的區域;滑動窗口1在源影像中對應的區域內,正常像元比例(即滑動窗口1中正常像元的數量除以滑動窗口1內像元的總數,可以依據正常像元和受損像元的標記來進行數量統計)為70%,滑動窗口1在目標影像中對應的區域內,正常像元比例為10%,那么兩者的乘積70%*10%=0.07;滑動窗口2在源影像中對應的區域內,正常像元比例為75%,滑動窗口2在目標影像中對應的區域內,正常像元比例為15%,那么兩者的乘積75%*15%=0.1125;通過對比,0.1125大于0.07,那么滑動窗口2的已知信息量要多于滑動窗口1的已知信息量,從而在執行修復時,滑動窗口2先于滑動窗口1執行修復。
基于上述滑動窗口的已知信息量評價方法,在執行影像修復時,所述滑動窗口的跳轉策略可以為:計算在每一個滑動窗口內所述源影像和目標影像的正常像元比例的乘積,按所述乘積從大到小的順序執行所述滑動窗口的跳轉(即先跳轉到乘積大的滑動窗口,后跳轉到乘積小的滑動窗口)。例如:一組源影像和目標影像被劃分成8個滑動窗口,滑動窗口1對應的源影像和目標影像正常像元比例的乘積為0.75,滑動窗口2對應的源影像和目標影像正常像元比例的乘積為0.25,滑動窗口3對應的源影像和目標影像正常像元比例的乘積為0.40,滑動窗口4對應的源影像和目標影像正常像元比例的乘積為0.30,滑動窗口5對應的源影像和目標影像正常像元比例的乘積為0.125,滑動窗口6對應的源影像和目標影像正常像元比例的乘積為0.65,滑動窗口7對應的源影像和目標影像正常像元比例的乘積為0.05,滑動窗口8對應的源影像和目標影像正常像元比例的乘積為0.50;那么,通過比較,0.75>0.65>0.50>0.40>0.30>0.25>0.125>0.05,從而滑動窗口執行跳轉的順序依次為:滑動窗口1、滑動窗口6、滑動窗口8、滑動窗口3、滑動窗口4、滑動窗口2、滑動窗口5、滑動窗口7。如遇兩個或多個滑動窗口對應的所述正常像元的乘積相同,則可在這兩個或多個滑動窗口中隨機跳轉,或者,這兩個或多個滑動窗口按源影像中正向像元比例從高到低的順序依次跳轉。對于滑動窗口的跳轉,還需要說明的是,如果源影像在某一滑動窗口內沒有正常像元,或者目標影像在某一滑動窗口內沒有需要修補的受損像元(即都是正常像元),則該滑動窗口不需要修補,也就無需跳轉到該滑動窗口。
另外優選的,所有滑動窗口的面積尺寸相同,且相鄰的滑動窗口之間具有一定的重疊區域,所述重疊區域占所述滑動窗口的面積比例為預設值,例如,可以設定為50%,即采用相鄰彼此重疊50%的滑動窗口。滑動窗口的面積尺寸可以根據實際需要進行設定,例如,窗口的長與寬可設為整幅影像長與寬的八分之一,如果窗口尺寸過大導致計算緩慢,則可以適當縮小窗口尺寸,如果窗口尺寸過小導致某些窗口內的正常像元比例過小,則需要適當放大窗口尺寸。
所述對源影像和目標影像用滑動窗口進行同步遍歷,是指在每個滑動窗口內,對源影像和目標影像執行同步遍歷,遍歷是指逐行或者逐列掃描各個像元,例如,在滑動窗口內逐行掃描,即從第一行開始從左向右掃描逐個像元,之后再從第二行開始從左向右掃描逐個像元,以此類推。所謂同步是指,目標影像和源影像中滑動窗口的位置時刻保持一致,目標影像和源影像的滑動窗口同步移動。
二、計算最優運輸計劃
在選擇了一個滑動窗口之后,需要計算在該滑動窗口內源影像到目標影像的最優運輸計劃。計算前先根據受損像元標記只保留正常像元,然后將源影像和目標影像的正常像元分別組成矩陣,分別記為s(source)和t(target),此作為最優運輸算法的輸入,矩陣s(即前述的第二數據矩陣)和t(即前述的第一數據矩陣)中每一行代表一個像元,以下標作為行的索引,例如,s1表示矩陣s中的第一行,t1表示矩陣t中的第一行,以此類推。除此之外,還需要知道兩組輸入數據中每個像元值出現的概率,分別記為概率向量s和t,這里可以直接采用均勻分布,即認為每組數據中每個值出現的概率都是一樣的,均為該組數據總數的倒數;假設矩陣s中的像元總數為i,矩陣t中的像元總數為j,則概率向量s中的每一個值都等于1/i,概率向量t中的每一個值都等于1/j。
另外,考慮到不帶任何約束條件的最優運輸問題是一個線性規劃問題,直接求解計算時間較長,因此本發明實施例選擇使用帶有最大熵約束項的最優運輸算法(sinkhorndistance),這一方法可以使最優運輸問題轉化為有快速解的問題,極大提高運算速度。使用該方法引入了一個約束項的權重參數λ,λ是一個正實數,λ越大運算結果越精細,計算時間也越長,本發明實施例中一般將λ設置為50,可以較好的平衡運算精度和運算速度。另外,如果λ超過某一個值,會使計算精度超過現有計算機體系的上限,引起計算失敗,該值的大小根據具體的輸入數據而不同,如果對于某些輸入數據將λ設置為50依然過大,則需要減小λ,實際操作中可以先以5為步長,小于10之后以1為步長,逐步減小,直至找到能夠正確生成結果的λ。
帶有最大熵約束項的最優運輸問題可以用以下四個公式來描述:
mij=‖si-tj‖2(1)
其中,矩陣m是矩陣s和t各行之間的距離矩陣,本發明實施例采用歐式距離,例如矩陣m中第i行第j列的值mij記錄了si和tj之間的歐式距離。集合u(s,t)表示概率向量s和t之間所有可能的聯合概率分布。矩陣p表示概率向量s和t之間的一種聯合概率分布,也即一種運輸計劃,h(p)定義了矩陣p的信息熵,參數λ則決定了熵約束項的權重。本發明實施例就是要找參數λ下滿足公式(4)的最優運輸計劃pλ,其中<p,m>表示矩陣p和m之間的frobenius點積,即所有相同位置上元素乘積的和。最優運輸計劃的求解可以使用sinkhorn固定點迭代算法。
最優運輸計劃pλ實際上體現了從s到t的連接權重,因此將pλ按行歸一化之后就得到了從s到t的連接權重矩陣w。如圖3所示,圖3示出了一種從s到t的連接權重的示意,圖中的矩陣s由像元s1、s2、s3和s4組成,矩陣t由像元t1、t2和t3組成,wij表示si和tj之間的連接權重,如:w11表示了s1和t1之間的連接權重,w12表示了s1和t2之間的連接權重,w13表示了s1和t3之間的連接權重。
關于參數λ的選擇,λ是一個正實數,λ越大運算結果越精細,計算時間也越長,本發明實施例中一般將λ設置為50,可以較好的平衡運算精度和運算速度。另外,如果λ超過某一個值,會使計算精度超過現有計算機體系的上限,引起計算失敗,該值的大小根據具體的輸入數據而不同,如果對于某些輸入數據將λ設置為50依然過大,則需要減小λ,實際操作中可以先以5為步長,λ小于10之后以1為步長,逐步減小,直至找到能夠正確生成結果的λ。
三、計算映射值并替換受損像元
在上一步計算出的連接權重矩陣w當中,源影像當前窗口內的每個正常像元都會依照權重連接到目標影像窗口內所有的正常像元。對于目標影像當前窗口內每個受損的像元,以像元c為例,如果像元c在源影像窗口中對應位置的像元si是正常像元,那么該像元c就可以被修補;反之,如果像元c在源影像窗口中對應位置的像元si是受損像元,那么該像元c就不可被修補。
如果像元c可以被修補,那么修補的方式是用si到目標影像所有正常像元的連接權重,求目標影像所有正常像元的加權和,以此作為像元si映射到目標影像后的值,用這個值替換受損像元c的像元值。依然沿用上一步中的各參數符號,目標影像窗口內的正常像元矩陣為t,t中的像元總數為j,則
參見圖4,圖4展示了像元值映射與替換的過程。對于目標影像滑動窗口中所有的受損像元,依次檢查源影像中同樣位置上的像元是否是正常像元,如果是,則用計算出的像元映射值替換目標影像中原來受損像元的值;如果源影像中的相應像元也是受損像元,則該像元無法用當前的源影像進行修補,待原始影像序列中的其它影像作為源影像時繼續嘗試修補。將某滑動窗口的目標影像中所有能修補的受損像元都修補過之后,該窗口的修補完成。
四、判斷修復是否完成
在滑動窗口中目標影像的每一個受損像元被修復時,將該被修復的像元標記為正常像元;一個滑動窗口內的像元遍歷完成,即表明對該滑動窗口的修復操作完成,隨即將修復操作完成的滑動窗口標記為已修復,但修復操作完成并不代表對應滑動窗口內的所有受損像元都被修復成正常像元,對于相同位置處的源影像和目標影像像元都為受損像元的情形,是無法修復成正常像元的,只能依賴于其他相同位置處為正常像元的源影像才能將其修復成正常像元。如果一幅源影像中的所有滑動窗口都被標記為已修復,則表明該幅源影像對目標影像的修復操作已完成,從而判斷目標影像中是否還存在受損像元,如存在,則按修復的優先級順序選擇下一幅源影像繼續對所述目標影像進行修復;如不存在,則確定目標影像被完全修復(即目標影像中全部為正常像元,包括原始的正常像元、以及被修復為正常像元的原始受損像元),并不再選擇后續源影像執行修復(即使按所述優先級順序,還存在未對目標影像執行修復操作的源影像,也不再繼續,因為目標影像中已無需要修復的受損像元)。
需要說明的是,如果一個原始影像序列中存在多幅原始影像都需要被修復時,那么針對每一副需要修復的原始影像,當其被選擇為目標影像時,都按上述同樣的方法來執行修復。例如:一個原始影像序列包括a、b、c、d四幅原始影像,且這四幅原始影像都需要被修復,那么,在選擇原始影像a作為目標影像時,用b、c、d這三幅原始影像作為源影像對其執行修復,在選擇原始影像b作為目標影像時,可用a、c、d這三幅原始影像作為源影像對其執行修復,在選擇原始影像c作為目標影像時,可用a、b、d這三幅原始影像作為源影像對其執行修復,在選擇原始影像d作為目標影像時,可用a、b、c這三幅原始影像作為源影像對其執行修復。此也可稱為原始影像之間的交叉修復,即a為目標影像時,b可作為其源影像對其進行修復,而b為目標影像時,a則可作為其源影像對其進行修復。但需強調的一點是,作為源影像的必須是原始影像,不能是被修復過的影像,這是為了減少誤差擴散。另外,一個原始影像序列中,原始影像被選作目標影像的順序不做限制,待修復的原始影像被選為目標影像而執行修復操作的先后順序對各目標影像的最終被修復效果沒有影響。
通過實施本發明的實施例一,在同一地區不同時間獲取的原始影像之間進行交叉修復,能夠極大化地利用現有信息,提高了數據的利用率,使受損像元得到修復的機會得到較大提高;通過交叉修復,解決了現有技術中大部分原始像元受損而造成的影像利用率過低問題,能夠高質量的完成大量遙感影像的修復,減少信息損失,尤其保證了為熱點地區的連續監測提供充足的數據源。
另外,由于本發明實施例采用最優運輸算法來計算源影像和目標影像之間的映射關系,能夠更準確地將來自源影像的像元值過渡到目標影像當中,在視覺上使源影像中的像元經過映射后更自然地融入到目標影像當中,融為一體,不會顯得突兀。其次,采用最優運輸算法能夠直接計算多維數據之間的過渡關系,而遙感影像一般也都是多波段的,這就很大程度上簡化了處理流程,避免了每個波段單獨計算。
實施例二
下面再以包含有原始影像a、b、c、d的原始影像序列為例,并結合圖5所示的原始影像序列的交叉修復流程,以及圖6所示的每幅源影像對目標影像的修復流程,進一步詳細闡述本發明的影像處理方法。
影像采集器采集獲得針對同一地區不同時間的原始影像a、b、c、d,采集時間分別為同一月的1日、3日、4日、以及9日;對原始影像進行受損像元和正常像元的標記,該標記可以在影像采集器中進行,也可以在執行影像處理方法的處理器中進行,或者,也可以在除影像采集器和處理器之外的第三方設備中進行,本發明實施例不做限制。基于所述標記發現,原始影像a、b、c中都存在受損像元,需要被修復,原始影像d中不存在受損像元,不需要被修復,也就是說,原始影像a、b、c可以被選作為目標影像,原始影像d無需被選作目標影像。
從a、b、c中任選其一作為目標影像,假設選a作為目標影像,隨之確定目標影像a對應的源影像為原始影像b、c、d。根據原始影像被采集的時間,源影像b被采集的時間與目標影像a最接近,c次之,d再次之,因此,選擇用作修復目標影像a的源影像順序先后依次為b、c、d。在用源影像b為目標影像a執行完修復操作后,目標影像a中仍然存在受損像元,則繼續用源影像c為目標影像a執行修復操作;在用源影像c為目標影像a執行完修復操作后,目標影像a中仍然存在受損像元,則繼續用源影像d為目標影像a執行修復操作。之后,得到修復后的目標影像a。
在對目標影像a的修復操作執行完成后,判斷原始影像序列中還存在待修復的原始影像b,隨即將原始影像b選作目標影像,確定原始影像a、c、d作為其對應的源影像,對原始影像b執行修復操作。根據原始影像被采集的時間,源影像c被采集的時間與目標影像b最接近,a次之,d再次之,因此,選擇用作修復目標影像b的源影像順序先后依次為c、a、d。在用源影像c為目標影像b執行完修復操作后,目標影像b中仍然存在受損像元,則繼續用源影像a為目標影像b執行修復操作;在用源影像a為目標影像b執行完修復操作后,目標影像b中仍然存在受損像元,則繼續用源影像d為目標影像b執行修復操作。之后,得到修復后的目標影像b。
在對目標影像b的修復操作執行完成后,判斷原始影像序列中還存在待修復的原始影像c,隨即將原始影像c選作目標影像,確定原始影像a、b、d作為其對應的源影像,對原始影像c執行修復操作。根據原始影像被采集的時間,源影像b被采集的時間與目標影像c最接近,a次之,d再次之,因此,選擇用作修復目標影像c的源影像順序先后依次為b、a、d。在用源影像b為目標影像c執行完修復操作后,目標影像c中仍然存在受損像元,則繼續用源影像a為目標影像c執行修復操作;在用源影像a為目標影像c執行完修復操作后,目標影像c中仍然存在受損像元,則繼續用源影像d為目標影像c執行修復操作。之后,得到修復后的目標影像c。
在上述針對目標影像a、b、c的修復操作都執行完成后,即原始影像序列的交叉修復操作完成,得到的即為交叉修復后的影像序列。
再參見圖6,使用每一幅源影像對目標影像執行修復操作的原理都相同,下面只以源影像b對目標影像a執行修復操作為例進行說明。首先,源影像b和目標影像a用50%重疊的滑動窗口進行遍歷,在一個滑動窗口中的修復操作完成后,自動跳轉到下一個滑動窗口繼續執行修復操作,滑動窗口的跳轉策略為:計算在每一個滑動窗口內源影像和目標影像的正常像元比例的乘積,按乘積從大到小的順序執行滑動窗口的跳轉。在執行每個滑動窗口內的影像修復操作時,將目標影像在對應滑動窗口內的正常像元組織成第一數據矩陣,將源影像在對應滑動窗口內的正常像元組織成第二數據矩陣;用第一數據矩陣和第二數據矩陣作為輸入,用帶有最大熵約束的最優運輸算法計算對應滑動窗口內源影像到目標影像的最優運輸計劃,最優運輸計劃用于描述對應滑動窗口內源影像的每個正常像元映射到目標影像中的相同位置而被賦予新像元值時,與對應窗口內目標影像的所有正常像元之間的連接權重;而且,對于滑動窗口內目標影像中的每一個受損像元,當源影像中相同位置的像元為正常像元時,將源影像中正常像元到滑動窗口內目標影像的所有正常像元之間的連接權重做歸一化處理后,根據歸一化處理后的連接權重計算所述滑動窗口內目標影像的所有正常像元的加權和,將加權和作為源影像中的正常像元映射到目標影像中同樣位置的受損像元的映射值,映射值即為賦予受損像元的新像元值,并隨之將已修復的受損像元標記為正常像元。每執行完一個滑動窗口內的影像修復操作后,即將對應滑動窗口標記為已修復(當然,無需執行修復的滑動窗口也可標記為修復,無需執行修復的滑動窗口是指該滑動窗口內的目標影像中無需要修復的受損像元),當所有滑動窗口都標記為已修復時,源影像b對目標影像a的修復操作完成,得到的即是用原始影像a修復過后的目標影像a。
實施例三
本發明實施例三提供了一種計算機可讀存儲介質,所述存儲介質中存儲有計算機可執行指令,所述指令用于被計算機加載時執行以下的影像處理方法:
獲得原始影像序列,所述原始影像序列為影像采集設備針對同一地區在不同時間獲取的原始影像的集合;
從所述原始影像序列待修復的原始影像中選擇目標影像,并確定與所選目標影像對應的源影像,其中,針對每一幅被選的目標影像,其對應的源影像為所述原始影像序列中除所述被選的目標影像之外的至少一幅原始影像;
針對每一幅所述目標影像,按預設的優先級設定規則對其對應的各源影像進行優先級設定,并按所述優先級從高到低的順序依次選擇所述目標影像對應的各源影像對所述目標影像進行修復。
其中,在獲得的所述原始影像序列中,每一幅原始影像都進行了受損像元和正常像元的標記;
所述從原始影像序列待修復的原始影像中選擇目標影像,包括:根據所述原始影像序列中每一幅原始影像的受損像元和正常像元的標記,確定存在受損像元的原始影像為待修復的原始影像,并從所述待修復的原始影像中選擇所述目標影像。
其中,所述針對每一幅目標影像,按預設的優先級設定規則對其對應的各源影像進行優先級設定,包括:
根據所述各源影像被所述影像采集設備獲取的時間、以及所述目標影像被所述影像采集設備獲取的時間,計算其時間間隔,時間間隔越小的源影像的優先級越高,時間間隔越大的源影像的優先級越低。
其中,所述按優先級從高到低的順序依次選擇目標影像對應的各源影像對所述目標影像進行修復,包括:
在使用每一幅源影像對所述目標影像進行修復時,每當所述目標影像中的受損像元被修復,即將被修復的受損像元標記為正常像元;
在每一幅源影像對所述目標影像執行完修復操作后,判斷所述目標影像中是否還存在受損像元,如存在,則按優先級順序選擇下一幅源影像繼續對所述目標影像進行修復;如不存在,則確定所述目標影像被完全修復,并不再選擇后續源影像執行修復。
其中,所述使用每一幅源影像對所述目標影像進行修復,包括:
對所述源影像和目標影像用滑動窗口進行同步遍歷,以滑動窗口為單位進行影像修復,在當前滑動窗口的影像修復操作完成后,按預設的跳轉策略跳轉到下一個滑動窗口繼續執行修復操作,直至所述源影像和目標影像中的所有滑動窗口都執行完修復操作;
在執行每個滑動窗口內的影像修復操作時,將所述目標影像在對應滑動窗口內的正常像元組織成第一數據矩陣,將所述源影像在對應滑動窗口內的正常像元組織成第二數據矩陣;用所述第一數據矩陣和第二數據矩陣作為輸入,用帶有最大熵約束的最優運輸算法計算對應滑動窗口內源影像到目標影像的最優運輸計劃,所述最優運輸計劃用于描述對應滑動窗口內源影像的每個正常像元映射到目標影像中的相同位置而被賦予新像元值時,與對應窗口內所述目標影像的所有正常像元之間的連接權重;
對于所述滑動窗口內目標影像中的每一個受損像元,當源影像中相同位置的像元為正常像元時,將所述源影像中所述正常像元到所述滑動窗口內目標影像的所有正常像元之間的連接權重做歸一化處理后,根據歸一化處理后的連接權重計算所述滑動窗口內目標影像的所有正常像元的加權和,將所述加權和作為所述源影像中的正常像元映射到所述目標影像中同樣位置的受損像元的映射值,所述映射值即為賦予所述受損像元的新像元值,并隨之將所述已修復的受損像元標記為正常像元。
其中,所述預設的跳轉策略為:計算在每一個滑動窗口內所述源影像和目標影像的正常像元比例的乘積,按所述乘積從大到小的順序執行所述滑動窗口的跳轉。
其中,所有滑動窗口的面積尺寸相同,且相鄰的滑動窗口之間具有一定的重疊區域,所述重疊區域占所述滑動窗口的面積比例為預設值。
其中,所述使用每一幅源影像對所述目標影像進行修復,還包括:在每個滑動窗口的影像修復操作完成后,將對應滑動窗口標記為已修復,當所有滑動窗口都標記為已修復時,表明這一幅源影像對所述目標影像的修復操作完成。
實施例四
參見圖7,本發明實施例三提供了一種影像處理裝置,該裝置包括:處理器01,用于執行計算機指令;存儲器02,用于存儲多條計算機指令,所述指令用于被處理器加載時能夠執行本發明前述實施例的影像處理方法,方法的具體內容此處不再贅述。
進一步的,該裝置還可包括:影像采集器03,用于采集原始影像;處理器01可從影像采集器03處獲得原始影像序列。影像采集器03能夠將針對同一地區在不同時間采集的原始影像存儲在一起,形成一個原始影像序列。
綜上所述,通過實施本發明的實施例,在同一地區不同時間獲取的原始影像之間進行交叉修復,能夠極大化地利用現有信息,提高了數據的利用率,使受損像元得到修復的機會得到較大提高;通過交叉修復,解決了現有技術中大部分原始像元受損而造成的影像利用率過低問題,能夠高質量的完成大量遙感影像的修復,減少信息損失,尤其保證了為熱點地區的連續監測提供充足的數據源。
另外,由于本發明實施例采用最優運輸算法來計算源影像和目標影像之間的映射關系,能夠更準確地將來自源影像的像元值過渡到目標影像當中,在視覺上使源影像中的像元經過映射后更自然地融入到目標影像當中,融為一體,不會顯得突兀。其次,采用最優運輸算法能夠直接計算多維數據之間的過渡關系,而遙感影像一般也都是多波段的,這就很大程度上簡化了處理流程,避免了每個波段單獨計算。
在本發明所提供的幾個實施例中,應該理解到,所揭露的設備和方法,可以通過其它的方式實現。本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過應用指令相關的硬件來完成,前述的應用可以存儲于一計算機可讀取存儲介質中,該應用在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:移動存儲設備、rom、ram、磁碟或者光盤等各種可以存儲應用代碼的介質。
基于這樣的理解,本發明實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機、服務器、或者網絡設備等)執行本發明各個實施例所述方法的全部或部分。
而前述的存儲介質包括:移動存儲設備、rom、ram、磁碟或者光盤等各種可以存儲應用代碼的介質。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到其各種變化或替換,這些都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以所述權利要求的保護范圍為準。