本發(fā)明涉及高速成像技術(shù)領(lǐng)域,特指一種分塊最小二乘回歸高速相機(jī)壓縮圖像重建方法。
背景技術(shù):
在空氣動(dòng)力學(xué)、流體力學(xué)、爆炸力學(xué)等諸多學(xué)科研究領(lǐng)域中,通常需要使用高速攝像機(jī)觀測(cè)快速變化的物理或化學(xué)現(xiàn)象。在實(shí)際應(yīng)用中,受相機(jī)數(shù)據(jù)傳輸接口帶寬限制,高速相機(jī)拍攝的海量圖像數(shù)據(jù)只能存儲(chǔ)于相機(jī)內(nèi)存中。高速相機(jī)在極短時(shí)間內(nèi)產(chǎn)生海量圖像數(shù)據(jù),通常高達(dá)10GB,而高速相機(jī)內(nèi)存容量有限,難以實(shí)現(xiàn)大容量圖像數(shù)據(jù)存儲(chǔ),從而導(dǎo)致無(wú)法長(zhǎng)時(shí)間拍攝高分辨率視頻。
目前,在實(shí)際應(yīng)用中,通常采取循環(huán)錄制方式進(jìn)行拍攝,這種拍攝方式會(huì)覆蓋已拍攝圖像,而產(chǎn)生信息丟失問(wèn)題。為實(shí)現(xiàn)高速相機(jī)長(zhǎng)時(shí)間拍攝,高速相機(jī)廠商提供了“thin-out”拍攝模式,通過(guò)降低成像分辨率或幀率,以減小相同拍攝時(shí)間內(nèi)圖像數(shù)據(jù)、增加錄像時(shí)間。但是,這種以犧牲成像分辨率或幀率,來(lái)延長(zhǎng)拍攝時(shí)間的“thin-out”模式,帶來(lái)的直接后果是:當(dāng)分辨率過(guò)低時(shí),不能滿(mǎn)足定量或定性分析需求;當(dāng)幀率過(guò)低時(shí),無(wú)法完整地捕捉快速變化對(duì)象。因此,從延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)角度,非常有必要對(duì)高速相機(jī)拍攝圖像進(jìn)行壓縮后,再存儲(chǔ)或傳輸。
圖像數(shù)據(jù)是高度冗余的,這決定了其具有可壓縮性。通過(guò)圖像壓縮,可以在保證一定信息量前提下,大大降低圖像數(shù)據(jù)量,有利于圖像存儲(chǔ)和傳輸?,F(xiàn)有的圖像壓縮方法,多采用JPEG、MPEG、H.264、H.265等壓縮算法或標(biāo)準(zhǔn),這些算法或標(biāo)準(zhǔn)的優(yōu)點(diǎn)是能夠極大降低圖像數(shù)據(jù)量,缺點(diǎn)是算法復(fù)雜非常高,即便采用專(zhuān)用硬件也只能實(shí)現(xiàn)低幀率視頻(1920*1080,120@fps)壓縮,難以應(yīng)用于幀率為1000fps以上的高速相機(jī)中。
近期,申請(qǐng)?zhí)枮?01510717618.4的發(fā)明專(zhuān)利《一種延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法》”提出了一種可在FPGA上進(jìn)行高速相機(jī)圖像實(shí)時(shí)壓縮以延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法。該方法為解決高速相機(jī)圖像壓縮提供了一條新思路。其基本方法是:如圖1所示,在攝像機(jī)端進(jìn)行圖像壓縮(a)、在計(jì)算機(jī)端進(jìn)行圖像重建(b)。
具體步驟如下:
1)在攝像機(jī)端,設(shè)置1個(gè)標(biāo)記矩陣F,如圖2所示,標(biāo)記矩陣F大小為w*h,元素取值為0或1,w是采集圖像寬度、h是采集圖像高度;根據(jù)標(biāo)記矩陣F中元素取值,對(duì)輸入圖像Io進(jìn)行壓縮:當(dāng)F(u,v)=0時(shí),不采集像素p(u,v,q),當(dāng)F(u,v)=1時(shí),采集像素p(u,v,q),得到壓縮圖像Ic,下標(biāo)c表示Ic為壓縮圖像, (u,v)是標(biāo)記矩陣坐標(biāo),也是圖像像素坐標(biāo);如圖1所示,Io上畫(huà)“X”的像素被丟棄、不采集,未畫(huà)“X”的像素被采集,Io中的下標(biāo)o表示Io為輸入圖像;
2)在計(jì)算機(jī)端,創(chuàng)建大小為w*h的空白圖像I,根據(jù)標(biāo)記矩陣F,構(gòu)建圖3所示查找表L;根據(jù)查找表L將壓縮圖像Ic中像素填充到空白圖像I對(duì)應(yīng)像素位置,得到重排序圖像Is,下標(biāo)s表示Is為重排序圖像;在重排序圖像Is中,已填充的像素來(lái)源于壓縮圖像Ic,未填充的像素是需要估計(jì)其像素值的;通過(guò)開(kāi)關(guān)中值濾波估計(jì)未填充像素的像素值,完成壓縮圖像重建,得到重建圖像Ir。
《一種延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法》專(zhuān)利中的仿真試驗(yàn)證明了上述方法的有效性,但是,該專(zhuān)利的圖像重建算法,在圖像重建質(zhì)量、速度方面,還需進(jìn)一步提升。特別是,當(dāng)壓縮率較高時(shí),比如等于99%時(shí),該專(zhuān)利的圖像重建算法需要選擇較大的圖像濾波窗口,才能保證所有未采集像素被恢復(fù)出來(lái)。然而,較大尺寸濾波窗口,不但引起圖像模糊問(wèn)題、導(dǎo)致重建圖像質(zhì)量下降,而且明顯增加圖像重建時(shí)間。
為提升高速相機(jī)壓縮圖像重建質(zhì)量,本發(fā)明公開(kāi)一種分塊最小二乘回歸高速相機(jī)壓縮圖像重建方法。試驗(yàn)結(jié)果表明,該方法的壓縮圖像重建質(zhì)量明顯優(yōu)于《一種延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法》專(zhuān)利方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種高質(zhì)量、快速的高速相機(jī)壓縮圖像重建方法,用于提升高速相機(jī)壓縮圖像重建質(zhì)量。本發(fā)明采用的技術(shù)方案是,對(duì)圖像進(jìn)行分塊處理后,利用已知像素構(gòu)建最小二乘回歸模型,估計(jì)未知像素取值,具體操作步驟如下:
第一步:根據(jù)壓縮標(biāo)記矩陣F,對(duì)壓縮圖像Ic進(jìn)行像素重排序,得到重排序圖像Is
第1.1步:根據(jù)相機(jī)拍攝圖像寬度w、高度h、像素深度b,圖像寬度、高度單位為像素,取值范圍為(0,10000000),像素深度b單位為bits,取值范圍為(1~100),生成一幅空白圖像I,空白圖像I的寬度為w、高度為h、像素深度為b,空白圖像I中任意像素可表示為p(u,v,q),u、v分別為像素行坐標(biāo)、列坐標(biāo), q為像素值,q的取值范圍為(0~2b-1);
第1.2步:從壓縮標(biāo)記矩陣F左上角開(kāi)始,按“Z”字型掃描F中元素,當(dāng)F(u,v)=1時(shí),在查找表L中記錄F(u,v)的行坐標(biāo)u、列坐標(biāo)v,得到大小為2*K的查找表L;
第1.3步,根據(jù)查找表L,把壓縮圖像Ic中像素填充到空白圖像I對(duì)應(yīng)位置,得到重排序圖像Is;
第二步:對(duì)重排序圖像Is進(jìn)行分塊
把重排序圖像Is劃分為M*N個(gè)、大小為s'*l的圖像塊,s'、l的單位為像素,取值范圍為[0~1000000000],M=[h/s'+0.4999999999],N=[w/l+0.4999999999],其中“/”表示除法操作,“[]”表示按四舍五入取準(zhǔn)則進(jìn)行取整數(shù)操作;優(yōu)選地,s'、l的取值關(guān)系,滿(mǎn)足s'/l=h/w,且使h/s'、w/l可整除;
第三步:以圖像塊為單位,采用最小二乘回歸方法估計(jì)重排序圖像Is內(nèi)未知像素,得到重建圖像Ir
第3.1步:以圖像塊為單位,在重排序圖像Is中,以第(m,n)個(gè)圖像塊為中心,取(2*a+1)*(2*a+1)個(gè)圖像塊構(gòu)成大尺寸圖像塊,其中a的取值范圍為0~50,此時(shí),位于中心;其中m、n分別是圖像塊的橫、縱坐標(biāo),m取值范圍為1~M,n取值范圍為1~N;
第3.2步:將大尺寸圖像塊中已填充像素標(biāo)記為已知像素t、內(nèi)未填充像素標(biāo)記為未知像素e,所有已知像素構(gòu)成已知像素集、像素值為,所有未知像素集構(gòu)成未知像素集,T中元素個(gè)數(shù)為x,E中元素個(gè)數(shù)為y;
第3.3步,計(jì)算已知像素之間的圖像坐標(biāo)歐式距離矩陣:
(1)
其中,是像素與像素之間的圖像坐標(biāo)歐式距離,i,j是已知像素的標(biāo)號(hào),取值范圍為[1~x];
令,其中是矩陣轉(zhuǎn)置操作,是矩陣取逆操作;
第3.4步,計(jì)算圖像塊中未知像素E與大尺寸圖像塊中已知像素T的圖像坐標(biāo)歐式距離:
(2)
其中,是第y個(gè)未知像素與第x個(gè)已知像素的圖像坐標(biāo)歐式距離;
第3.5步,計(jì)算 (3)
其中,Qe中元素即為圖像塊中y個(gè)未知像素的像素估計(jì)值Qe;將Qe寫(xiě)回重排序圖像Is中對(duì)應(yīng)像素位置;
以圖像塊為處理單位,重復(fù)步驟第3.1~3.5步,遍歷重排序圖像Is中圖像塊,完成所有未知像素估計(jì),得到重建圖像Ir。
在本發(fā)明第三步中,采用最小二乘回歸方法估計(jì)未知像素取值的原理是:如圖5所示,可以把圖像看著一個(gè)2維線性系統(tǒng),像素坐標(biāo)(u,v)是線性系統(tǒng)的輸入,像素值q是線性系統(tǒng)輸出。給定一組已知像素,根據(jù)未知像素與已知像素之間的位置關(guān)系,可通過(guò)線性系統(tǒng)預(yù)測(cè)未知像素的像素值。
根據(jù)圖像的局部平滑性,在已知像素集T中,任意一個(gè)像素p,可由其鄰近像素G={g1,...,gk}線性表示:
(4)
其中,qp是像素p的像素值,是第i個(gè)鄰近像素gi的像素值,是像素p與第i個(gè)鄰近像素gi的圖像空間距離,wi是與第i個(gè)鄰近像素gi的加權(quán)權(quán)重;
加權(quán)權(quán)重wi與鄰近像素gi對(duì)應(yīng),可將兩者乘積看作線性回歸系數(shù),那么式(4)可重新寫(xiě)為下面的線性方程:
(5)
根據(jù)式(5),當(dāng)線性回歸系數(shù)ai已知時(shí),利用已知像素t與未知像素e之間的圖像空間距離,即可估計(jì)出未知像素的像素值qe:
(6)
其中,ai是與第i個(gè)已知素ti對(duì)應(yīng)的線性回歸系數(shù),是未知像素e與第i個(gè)已知像素ti的圖像空間距離;
采用最小二乘回歸方法進(jìn)行壓縮圖像重建的具體操作步驟如下:
第3.1步:根據(jù)已知像素集T,估計(jì)最小二乘回歸系數(shù)A
回歸系數(shù)可由n個(gè)已知像素學(xué)習(xí)得到,n個(gè)已知像素t的線性回歸方程可表示為:
(7)
式(7)寫(xiě)成矩陣形式為:
(8)
其中,,
Q和D已知,需要估計(jì)回歸系數(shù)A,最優(yōu)回歸系數(shù)應(yīng)使已知像素的線性回歸誤差最小,即滿(mǎn)足最小二乘條件:
(9)
式(9)的解為:
(10)
給定未知像素集E的圖像坐標(biāo),計(jì)算未知像素集E與已知像素集T的圖像距離矩陣后,通過(guò)式(3)的線性預(yù)測(cè)模型,即可估計(jì)出未知像素集E的像素值。
本發(fā)明的有益效果:
1)如圖5所示,將圖像看著一個(gè)二維線性系統(tǒng),通過(guò)線性回歸預(yù)測(cè)方法,利用已知像素與未知像素間距離,在最小平方誤差準(zhǔn)則,通過(guò)線性回歸方法估計(jì)未知像素取值,可顯著提升壓縮圖像重建質(zhì)量。如圖7所示,以Lena圖像為例,與“一種延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法”重建結(jié)果對(duì)比,其中A是原始輸入圖像,B、C是壓縮率為90%、99%時(shí),《一種延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法》重建結(jié)果;D、E是壓縮率為90%、99%時(shí),本發(fā)明方法在圖像塊尺寸為s'=32、l=32、a=0時(shí)重建結(jié)果;F、G是壓縮率為90%、99%時(shí),本發(fā)明方法在圖像塊尺寸為s'=32、l=32、a=1時(shí)重建結(jié)果。從B、C與F、G對(duì)比結(jié)果可以看出,本發(fā)明方法優(yōu)于《一種延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法》。
2)通過(guò)圖像分塊重建,可顯著提高圖像重建速度,相比直接對(duì)整幅圖像進(jìn)行最小二乘回歸估計(jì),計(jì)算速度可以提高5倍。
3)通過(guò)擴(kuò)展最小二乘回歸訓(xùn)練中參考鄰域尺寸,增加已知像素?cái)?shù)量,可提升重建質(zhì)量,增加重建圖像塊之間的平滑性,減少圖像塊邊界處突兀,可有效消除圖像分塊產(chǎn)生的塊效應(yīng)。從D、E與F、G對(duì)比結(jié)果可以看出,通過(guò)擴(kuò)展參考鄰域,可以有效消除塊效應(yīng)。比如D中Lena的右眼處存在明顯塊效應(yīng),E中整幅圖像存在塊效應(yīng),而F、G重建結(jié)果,整體平滑。
附圖說(shuō)明
圖1是高速壓縮圖像壓縮及重建處理流程。
圖中,Io是輸入圖像,方格中數(shù)值為圖像像素值,Ic是壓縮圖像,F(xiàn)是圖像壓縮標(biāo)記矩陣,Is是重排序圖像,L是重排序用查找表,Ir是重建圖像,Io圖像上畫(huà)“x”的像素被丟棄、不被采集,未畫(huà)“x”的像素被采集。
圖2是標(biāo)記矩陣F示意圖。
圖中,方格表示矩陣F中元素,取值為1表示在圖像壓縮過(guò)程中當(dāng)前位置像素被保留;取值為0表示在圖像壓縮過(guò)程中當(dāng)前位置像素被丟棄,“……”是省略符。
圖3是查找表L示意圖。
圖中,第一行為F中取值為1的元素的行坐標(biāo),第二行為F中取值為1的元素的列坐標(biāo),“……”是省略符。
圖4是劃分已知像素、未知像素示意圖。
圖中,t為已知像素,e為未知像素。
圖5 圖像線性系統(tǒng)示意圖。
圖6 參考鄰域構(gòu)建示意圖。
圖7 圖像重建結(jié)果對(duì)比。
圖中,A是原始輸入圖像,B、C分別是壓縮率為90%、99%時(shí),“一種延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法”重建結(jié)果;D、E分別是壓縮率為90%、99%時(shí),本發(fā)明方法在圖像塊尺寸為s'=32、l=32、a=0時(shí)重建結(jié)果;F、G分別是壓縮率為90%、99%時(shí),本發(fā)明方法在圖像塊尺寸為s'=32、l=32、a=1時(shí)重建結(jié)果。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
實(shí)施例1
給定分辨率為1024*1024、深度為b=8bits的Lena圖像,先按照《一種延長(zhǎng)高速相機(jī)拍攝時(shí)長(zhǎng)的方法》中方法,對(duì)Lena圖像進(jìn)行壓縮,壓縮率為90%,得到壓縮圖像Ic、和標(biāo)記矩陣F。
第一步:根據(jù)壓縮圖像Ic、壓縮圖像標(biāo)記矩陣F,構(gòu)建待重建圖像Ir
第1.1步:生成一幅空白圖像I,大小為1024*1024,像素深度b=8bits;
第1.2步:從壓縮標(biāo)記矩陣F左上角開(kāi)始,按“Z”字型掃描,當(dāng)F(u,v)=1時(shí),在查找表L中記錄F(u,v)的行坐標(biāo)u、列坐標(biāo)v,得到大小為2*K的查找表L;
第1.3步,根據(jù)查找表L,把壓縮圖像Ic中像素填充到空白圖像I對(duì)應(yīng)位置,得到重排序圖像Is。
第二步:對(duì)重排序圖像Is進(jìn)行分塊
設(shè)定圖像塊尺寸為:s'=32、l=32,把重排序圖像Is劃分為大小為s'*l的圖像塊。
第三步:以圖像塊為單位,采用最小二乘回歸方法估計(jì)重排序圖像Is內(nèi)未知像素,得到重建圖像Ir
第3.1步:設(shè)定a=1,以圖像塊為單位,在重排序圖像Is中,如圖6所示,以第(m,n)個(gè)圖像塊為中心,取(2*a+1)*(2*a+1)個(gè)圖像塊構(gòu)成大尺寸圖像塊作為參考鄰域,此時(shí),位于參考鄰域中心;其中m、n分別是圖像塊的橫、縱坐標(biāo);
第3.2步:將參考鄰域中已填充像素標(biāo)記為已知像素t,構(gòu)成已知像素集,像素值為,將圖像塊內(nèi)未填充像素標(biāo)記為未知像素e,構(gòu)成未知像素集,T中元素個(gè)數(shù)為x,E中元素個(gè)數(shù)為y;
第3.3步,計(jì)算已知像素之間的圖像坐標(biāo)歐式距離矩陣 ,其中,,是像素與像素之間的圖像坐標(biāo)歐式距離,i,j是已知像素的標(biāo)號(hào),取值范圍為[1~x],令,其中是矩陣轉(zhuǎn)置操作,是矩陣取逆操作;
第3.4步,計(jì)算圖像塊中未知像素E與大尺寸圖像塊中已知像素T的圖像坐標(biāo)歐式距離: ,其中,是第y個(gè)未知像素與第x個(gè)已知像素的圖像坐標(biāo)歐式距離;
第3.5步,計(jì)算,Qe中元素即為圖像塊中y個(gè)未知像素的像素估計(jì)值Qe,將Qe寫(xiě)回重排序圖像Is中對(duì)應(yīng)像素位置;
以圖像塊為處理單位,重復(fù)步驟第3.1~3.5步,遍歷重排序圖像Is中圖像塊,完成所有未知像素估計(jì),得到重建圖像Ir。
實(shí)施例2
與實(shí)施例1不同之處為,圖像壓縮率設(shè)定為95%。
實(shí)施例3
與實(shí)施例1不同之處為,圖像壓縮率設(shè)定為99%。
實(shí)施例4
與實(shí)施例1不同之處為,圖像深度為12bits。
實(shí)施例5
與實(shí)施例1不同之處為,圖像深度為16bits。
實(shí)施例6
與實(shí)施例1不同之處為,圖像深度為24bits。
實(shí)施例7
與實(shí)施例1不同之處為,圖像塊大小為:s'=32、l=32。
實(shí)施例8
與實(shí)施例1不同之處為,圖像塊大小為:s'=64、l=64。
實(shí)施例9
與實(shí)施例1不同之處為,圖像塊大小為:s'=128、l=128。
實(shí)施例10
與實(shí)施例1不同之處為,圖像塊大小為:s'=128、l=128,a=2。
實(shí)施例11
與實(shí)施例1不同之處為,圖像塊大小為:s'=128、l=128,a=3。