本發(fā)明涉及圖像信息處理領(lǐng)域,特別涉及一種圖像拼接方法和生成裝置。
背景技術(shù):
圖像是人類獲取視覺信息的一種重要途徑。全景圖像(視頻)因其能給人以良好的沉浸式體驗(yàn),越來越受到人們的關(guān)注。廣角鏡頭在一定程度上可以獲取寬視角的圖像,但是其通常具有以下缺點(diǎn),如拍攝范圍過大導(dǎo)致細(xì)節(jié)分辨率下降,圖像邊緣扭曲變形,鏡頭過于昂貴。由此,采用多鏡頭拼接的方法成為獲取全景圖的一種有效方法。全景圖像拼接,具體而言就是將多幅來自同一場景的有重疊區(qū)域的小尺寸圖像,經(jīng)過配準(zhǔn)和變換之后,合成為一幅高質(zhì)量的、較大的全景圖。該技術(shù)在計(jì)算機(jī)視覺、圖像處理和計(jì)算機(jī)圖形學(xué)等方面都有著重要的應(yīng)用。
現(xiàn)有技術(shù)中的圖像拼接方法,其步驟如圖1所示,包括圖像輸入、圖像預(yù)處理、圖像配準(zhǔn)、圖像變換、圖像融合、輸出全景圖。
圖像預(yù)處理,包括數(shù)字圖像處理的基本操作(如去噪、邊緣提取、直方圖處理等)、建立圖像的匹配模板以及對圖像進(jìn)行某種變換(如傅里葉變換、小波變換等)等操作。
圖像配準(zhǔn),就是采用一定的匹配策略,找出待拼接圖像中的模板或特征點(diǎn)在參考圖像中對應(yīng)的位置,進(jìn)而確定兩幅圖像之間的變換關(guān)系。
圖像變換,就是根據(jù)模板或者圖像特征之間的對應(yīng)關(guān)系,計(jì)算出數(shù)學(xué)模型中的各參數(shù)值,從而建立兩幅圖像的數(shù)學(xué)變換模型,進(jìn)而根據(jù)建立的數(shù)學(xué)轉(zhuǎn)換模型,將待拼接圖像轉(zhuǎn)換到參考圖像的坐標(biāo)系中。
圖像融合,就是將待拼接圖像的重合區(qū)域進(jìn)行融合得到拼接重構(gòu)的平滑無縫全景圖像。
在圖像融合的過程中,如果圖像序列的重疊區(qū)域中存在運(yùn)動的物體,通常會造成同一物點(diǎn)在圖像重疊區(qū)域中的絕對位置不同,即產(chǎn)生“鬼影(重影)現(xiàn)象”,極大地?fù)p害了融合的效果。最優(yōu)縫合線法因其對輸入拼接圖像重疊比例限制小等優(yōu)點(diǎn)成為為解決“鬼影現(xiàn)象”,提高融合的效果的首選方案。
所述最優(yōu)縫合線搜索即是尋找一條自圖像頂端到底端的最優(yōu)路徑使得縫合線經(jīng)過位置的差異圖像像素值之和最小。差異圖像一般可定義為兩幅圖像重疊區(qū)域的差圖。換言之,即將縫合線經(jīng)過位置的差異圖像像素值之和定義為一個最小化目標(biāo)函數(shù),尋找使得該目標(biāo)函數(shù)最小的一條縫合線,是一個典型的組合優(yōu)化問題。
有關(guān)最優(yōu)縫合線搜索方面的研究,目前常用的方法包括傳統(tǒng)的基于圖切割、最短路徑、動態(tài)規(guī)劃的方法和非傳統(tǒng)的基于智能優(yōu)化算法的方法,如模擬退火、遺傳算法等。傳統(tǒng)方法最大的缺陷在于無法找到全局最優(yōu),如專利公開號為CN103489154A的專利文獻(xiàn),公開了一種基于目標(biāo)塊檢測的縫合線實(shí)時調(diào)整方法,其能夠?qū)崟r對縫合線進(jìn)行局部調(diào)整,使縫合線繞開運(yùn)動目標(biāo),避免縫合線的全局跳變,但無法找到全局最優(yōu)的縫合線?;谥悄軆?yōu)化算法的方法在理論上可以找到全局最優(yōu),因此,在最優(yōu)縫合線搜索方面的應(yīng)用越來越廣泛。
一般地,為求得圖像在每行上的最優(yōu)拼接點(diǎn),基于智能優(yōu)化算法的縫合線優(yōu)選方法需要定義一個與圖像像素高相等維數(shù)的向量作為染色體,其中染色體的每一位基因代表每一行圖像的最優(yōu)拼接點(diǎn)??紤]到圖像高度(像素個數(shù))可能是幾千甚至上萬,如對于3840×1920(寬×高)的圖像,為尋找最優(yōu)縫合線,需要定義一個1920維的向量,一般的智能優(yōu)化算法會隨著搜索空間(1920個變量)的增大而性能急劇降低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是:提供一種圖像拼接方法和生成裝置,其最優(yōu)縫合線的確定方法能處理大規(guī)模決策變量,提高縫合線的質(zhì)量,提高生成的全景圖像的效果。
本發(fā)明的解決方案第一方面是這樣實(shí)現(xiàn)的:一種圖像拼接方法,包括圖像配準(zhǔn)、圖像融合和圖像輸出步驟,具體地,將經(jīng)過圖像配準(zhǔn)的源圖像,根據(jù)最優(yōu)縫合線進(jìn)行圖像融合,生成輸出全景圖像,所述最優(yōu)縫合線的確定方法包括以下步驟:
S1、構(gòu)建圖像A和B的差圖diffAB,設(shè)已知圖像A和B重疊區(qū)域相同、大小相等且已配準(zhǔn),則圖像A和B的差圖diffAB為圖像A和B的像素值歸一化之后的差的絕對值,其中圖像A、B和差圖diffAB的寬和高分別為W和H;
S2、參數(shù)設(shè)置,設(shè)進(jìn)化代數(shù)為maxGen,種群規(guī)模為N,當(dāng)前代數(shù)為gen,且gen=1;初始化種群為S,是指隨機(jī)生成N條備選縫合線,即N個長度為H的染色體;
S3、基于差圖diffAB計(jì)算N條備選縫合線的適應(yīng)度,挑選出適應(yīng)度值最大的染色體Smin;
S4、若gen大于maxGen,則跳轉(zhuǎn)到第六步;否則,將染色體的H個變量隨機(jī)分為k組,即k個子染色體;
S5、對分組后的變量逐組優(yōu)化,每組運(yùn)行T代,初始化i=1;
S5.1、基于第i組變量構(gòu)建染色體種群Si,具體操作為將當(dāng)前種群S的每個染色體中除第i組變量之外的所有變量的值用Smin染色體相應(yīng)位置的變量值代替;此外,令t=1;
S5.2、基于差圖diffAB計(jì)算種群Si中染色體的適應(yīng)度值,挑選出適應(yīng)度值最大的染色體Smin;
S5.3、基于染色體的適應(yīng)度值,使用輪賭盤策略選擇出N個較好的染色體;
S5.4、針對步驟S5.3中選擇出的較好的染色體,使用交叉變異算子生成新的N個染色體;
S5.5、令gen=gen+1,t=t+1,若t小于T,則跳轉(zhuǎn)到S5.3;
否則
令i=i+1,若i>k,則跳轉(zhuǎn)到步驟S4;
否則跳轉(zhuǎn)到步驟S1;
S6、輸出經(jīng)步驟S5逐組優(yōu)化后的當(dāng)前適應(yīng)度值最大的一個染色體Smax作為最優(yōu)縫合線s。
本發(fā)明的另一技術(shù)方案在于在上述基礎(chǔ)之上,在所述步驟S1之前,還包括圖像灰度化處理步驟,具體為將彩色圖像A和B轉(zhuǎn)換為灰度圖像。
本發(fā)明的另一技術(shù)方案在于在上述基礎(chǔ)之上,在所述步驟S1中圖像A和B的差圖diffAB具體為:
diffABij=abs(Aij-Bij)/max(Aij,Bij),其中i和j表示圖像的第i行和第j列。
本發(fā)明的另一技術(shù)方案在于在上述基礎(chǔ)之上,在所述步驟S2中隨機(jī)生成N條備選縫合線具體為:
隨機(jī)生成N個長度為H的向量,向量中每個變量的值為整數(shù)且在閉區(qū)間[1,W]內(nèi)。
本發(fā)明的另一技術(shù)方案在于在上述基礎(chǔ)之上,在所述步驟S3中基于差圖diffAB計(jì)算N條備選縫合線的適應(yīng)度的方法具體為:
設(shè)備選縫合線為Si,其適應(yīng)度值為
本發(fā)明的另一技術(shù)方案在于在上述基礎(chǔ)之上,在所述步驟S4中將染色體的H個變量隨機(jī)分為k組的具體方法為:
將自然數(shù)列1到H隨機(jī)打亂,選取第1個到第個變量作為第一組變量,第個到第個作為第二組變量,依次類推,將第個到第變量作為第k-1組變量,剩余變量作為第k組變量,即前k-1組每組個變量,第k組個變量。
本發(fā)明的另一技術(shù)方案在于在上述基礎(chǔ)之上,在所述步驟S5.3中使用輪賭盤策略選擇出N個較好的染色體的方法具體為:
設(shè)有個體sa,sb,sc對應(yīng)的適應(yīng)度分別為2,3,1,其相應(yīng)的累計(jì)概率則為2/6,(2+3)/6,(2+3+1)/6,生成一個隨機(jī)數(shù)為rand,若rand<2/6,選中個體sa,如果2/6<rand<(2+3)6,選中個體sb,如果(2+3)/6<rand<(2+3+1)/6,選中個體sc。
本發(fā)明的另一技術(shù)方案在于在上述基礎(chǔ)之上,在所述步驟S5.4中使用交叉變異算子生成新的N個染色體的方法具體為:
交叉算子:首先隨機(jī)從種群S中選擇兩個個體作為父代染色體,設(shè)為s1和s2,每個染色體即代表一條備選縫合線,且有H個基因位,每個基因位代表了一個縫合點(diǎn);其次檢測s1和s2是否滿足交叉條件,即s1和s2中是否存在起止位置相同的基因序列且其起止位置的基因值相等,若不滿足則重新選擇兩個個體,否則進(jìn)行交叉操作,即交換s1和s2中處于該段基因序列除起止位置的基因值之外的其他基因值;
變異算子:首先從交叉操作產(chǎn)生的新種群中隨機(jī)選擇一個個體,記為s3;其次,針對每一位基因(從1到H),以概率0.9判別是否進(jìn)行變異操作,即若rand<0.9,不進(jìn)行變異操作,否則執(zhí)行變異操作,其中rand為一個位于0到1之間的隨機(jī)數(shù);然后,針對要進(jìn)行變異的基因位進(jìn)行如下處理,如第k個基因位,若其相鄰兩個基因位的值c_k-1和c_k+1相等,則等概率將c_k-1,c_k或c_k+1的賦值于c_k;若其相鄰兩個基因位的值c_k-1和c_k+1相差為1,則令c_k=c_k-1;否則不進(jìn)行任何操作。
本發(fā)明的解決方案第二方面是這樣實(shí)現(xiàn)的:一種圖像拼接生成裝置,包括:
圖像配準(zhǔn)模塊,用于找出待拼接圖像中的模板或特征點(diǎn)在參考圖像中對應(yīng)的位置,進(jìn)而確定兩幅圖像之間的變換關(guān)系;
圖像融合模塊,用于根據(jù)最優(yōu)縫合線將待拼接圖像的重合區(qū)域進(jìn)行融合,得到拼接重構(gòu)的平滑無縫全景圖像,其中所述最優(yōu)縫合線的確定包括以下步驟:
S1、構(gòu)建圖像A和B的差圖diffAB,設(shè)已知圖像A和B重疊區(qū)域相同、大小相等且已配準(zhǔn),則圖像A和B的差圖diffAB為圖像A和B的像素值歸一化之后的差的絕對值,其中圖像A、B和差圖diffAB的寬和高分別為W和H;
S2、參數(shù)設(shè)置,設(shè)進(jìn)化代數(shù)為maxGen,種群規(guī)模為N,當(dāng)前代數(shù)為gen,且gen=1;初始化種群為S,是指隨機(jī)生成N條備選縫合線,即N個長度為H的染色體;
S3、基于差圖diffAB計(jì)算N條備選縫合線的適應(yīng)度,挑選出適應(yīng)度值最大的染色體Smin;
S4、若gen大于maxGen,則跳轉(zhuǎn)到第六步;否則,將染色體的H個變量隨機(jī)分為k組,即k個子染色體;
S5、對分組后的變量逐組優(yōu)化,每組運(yùn)行T代,初始化i=1;
S5.1、基于第i組變量構(gòu)建染色體種群Si,具體操作為將當(dāng)前種群S的每個染色體中除第i組變量之外的所有變量的值用Smin染色體相應(yīng)位置的變量值代替;此外,令t=1;
S5.2、基于差圖diffAB計(jì)算種群Si中染色體的適應(yīng)度值,挑選出適應(yīng)度值最大的染色體Smin;
S5.3、基于染色體的適應(yīng)度值,使用輪賭盤策略選擇出N個較好的染色體;
S5.4、針對步驟S5.3中選擇出的較好的染色體,使用交叉變異算子生成新的N個染色體;
S5.5、令gen=gen+1,t=t+1,若t小于T,則跳轉(zhuǎn)到S5.3;
否則
令i=i+1,若i>k,則跳轉(zhuǎn)到步驟S4;
否則跳轉(zhuǎn)到步驟S1;
S6、輸出經(jīng)步驟S5逐組優(yōu)化后的當(dāng)前適應(yīng)度值最大的一個染色體Smax作為最優(yōu)縫合線s。
本發(fā)明的解決方案第三方面是這樣實(shí)現(xiàn)的:一種圖像拼接生成裝置,包括:
存儲器、處理器、通信總線和攝像頭,其中,所述存儲器、所述處理器和所述攝像頭通過所述通信總線通信;
所述攝像頭用于獲取基準(zhǔn)圖像和待配準(zhǔn)圖像;
所述存儲器用于存放程序,所述處理器用于執(zhí)行所述存儲器存儲的程序;所述程序用于執(zhí)行以下步驟:
圖像配準(zhǔn),用于找出待拼接圖像中的模板或特征點(diǎn)在參考圖像中對應(yīng)的位置,進(jìn)而確定兩幅圖像之間的變換關(guān)系;
圖像融合,用于根據(jù)最優(yōu)縫合線將待拼接圖像的重合區(qū)域進(jìn)行融合,得到拼接重構(gòu)的平滑無縫全景圖像,其中所述最優(yōu)縫合線的確定方法包括以下步驟:
S1、構(gòu)建圖像A和B的差圖diffAB,設(shè)已知圖像A和B重疊區(qū)域相同、大小相等且已配準(zhǔn),則圖像A和B的差圖diffAB為圖像A和B的像素值歸一化之后的差的絕對值,其中圖像A、B和差圖diffAB的寬和高分別為W和H;
S2、參數(shù)設(shè)置,設(shè)進(jìn)化代數(shù)為maxGen,種群規(guī)模為N,當(dāng)前代數(shù)為gen,且gen=1;初始化種群為S,是指隨機(jī)生成N條備選縫合線,即N個長度為H的染色體;
S3、基于差圖diffAB計(jì)算N條備選縫合線的適應(yīng)度,挑選出適應(yīng)度值最大的染色體Smin;
S4、若gen大于maxGen,則跳轉(zhuǎn)到第六步;否則,將染色體的H個變量隨機(jī)分為k組,即k個子染色體;
S5、對分組后的變量逐組優(yōu)化,每組運(yùn)行T代,初始化i=1;
S5.1、基于第i組變量構(gòu)建染色體種群Si,具體操作為將當(dāng)前種群S的每個染色體中除第i組變量之外的所有變量的值用Smin染色體相應(yīng)位置的變量值代替;此外,令t=1;
S5.2、基于差圖diffAB計(jì)算種群Si中染色體的適應(yīng)度值,挑選出適應(yīng)度值最大的染色體Smin;
S5.3、基于染色體的適應(yīng)度值,使用輪賭盤策略選擇出N個較好的染色體;
S5.4、針對步驟S5.3中選擇出的較好的染色體,使用交叉變異算子生成新的N個染色體;
S5.5、令gen=gen+1,t=t+1,若t小于T,則跳轉(zhuǎn)到S5.3;
否則
令i=i+1,若i>k,則跳轉(zhuǎn)到步驟S4;
否則跳轉(zhuǎn)到步驟S1;
S6、輸出經(jīng)步驟S5逐組優(yōu)化后的當(dāng)前適應(yīng)度值最大的一個染色體Smax作為最優(yōu)縫合線s。
本發(fā)明所述的圖像拼接方法和生成裝置,其最優(yōu)縫合線的確定方法中,將圖象重疊區(qū)域的差圖作為搜索空間,定義了與圖像高相等維數(shù)的向量作為染色體(備選縫合線),其中,染色體的每一位基因代表了差圖中每一行的最優(yōu)拼接點(diǎn)。染色體(備選縫合線)的適應(yīng)度值定義為差圖上拼接點(diǎn)所在位置的像素值之和的倒數(shù)。同時,尋優(yōu)過程中還利用了分而治之的策略,即將每個染色體隨機(jī)分為若干段子染色體,分別優(yōu)化各段子染色體,最后組合子染色體優(yōu)化的結(jié)果作為最優(yōu)縫合線。通過隨機(jī)分組優(yōu)化策略,可以處理大規(guī)模決策變量,有效提高縫合線的質(zhì)量。因此,本發(fā)明所述的圖像拼接方法和生成裝置,較之于現(xiàn)有的基于圖切割等縫合線搜索的方法,不僅能更準(zhǔn)確地找到全局最優(yōu)縫合線,而且有效提高了圖像拼接效果。
附圖說明
構(gòu)成本發(fā)明的一部分的附圖用來提供對本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。
圖1為現(xiàn)有技術(shù)中圖像拼接方法的基本流程圖。
圖2為本發(fā)明一種實(shí)施方式中圖像拼接方法中縫合線優(yōu)選方法的流程圖;
圖3為圖2中縫合線優(yōu)選方法中的交叉算子操作示意圖;
圖4為本發(fā)明一種實(shí)施方式所述縫合線優(yōu)選方法中兩幅重疊區(qū)域相同、大小相等且已配準(zhǔn)的源圖像;
圖5為圖4中兩幅圖像的像素值歸一化差圖;
圖6為圖4中兩幅圖像采用本發(fā)明圖像拼接方法中縫合線優(yōu)選方法得到的拼接圖像及縫合線。
圖7為本發(fā)明一種實(shí)施方式中電子設(shè)備的硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)描述,本部分的描述僅是示范性和解釋性,不應(yīng)對本發(fā)明的保護(hù)范圍有任何的限制作用。此外,本領(lǐng)域技術(shù)人員根據(jù)本文件的描述,可以對本文件中實(shí)施例中以及不同實(shí)施例中的特征進(jìn)行相應(yīng)組合。
本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三”“第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例例如能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
本發(fā)明實(shí)施例如下,請參見圖2,一種圖像拼接方法,包括圖像配準(zhǔn)、圖像融合和圖像輸出步驟,具體地,將經(jīng)過圖像配準(zhǔn)的源圖像,根據(jù)最優(yōu)縫合線進(jìn)行圖像融合,生成輸出全景圖像,所述最優(yōu)縫合線的確定方法具體實(shí)施步驟如下:
第一步、構(gòu)建圖像A和B的差圖diffAB,已知圖像A和B重疊區(qū)域相同、大小相等且已配準(zhǔn),構(gòu)建圖像A和B的差圖diffAB;其中A、B和diffAB的寬和高(像素個數(shù))分別記為W和H。具體操作方法如下:
1)若A和B均為灰度圖像,則diffAB定義為圖像A和B的像素值歸一化之后的差的絕對值,即diffABij=abs(Aij-Bij)/max(Aij,Bij),i和j表示圖像的第i行和第j列。
2)若A和B為彩色圖像,需將A和B先轉(zhuǎn)換為灰度圖像,然后按照1)計(jì)算diffAB,其中可使用Matlab 2010(a)提供的函數(shù)rgb2grey進(jìn)行彩色圖到灰度圖的轉(zhuǎn)換;
第二步、初始化智能優(yōu)化算法參數(shù),包括進(jìn)化代數(shù)(maxGen),種群規(guī)模(N),當(dāng)前代數(shù)(gen)為1;初始化種群S即指隨機(jī)生成N條備選縫合線(N個長度為H的染色體);具體操作方法如下:
1)令maxGen=20;N=100;gen=0;
2)隨機(jī)生成N個長度為H的向量,向量中每個變量的值為整數(shù)且在閉區(qū)間[1,W]內(nèi);其中可使用Matlab 2010(a)提供的函數(shù)randi(W,[1,H])生成滿足條件的1個向量。譬如si=(3 4 5 6 7 7 6 5),則表示待拼接的兩幅圖像每行的最優(yōu)拼接點(diǎn)自上而下,依次為第3,4、5、6、7、7、6、5個像素(從左至右)所在的位置,其中H=8。因此最終的全景圖中,選擇使用圖像A位于縫合線左側(cè)的部分,圖像B位于縫合線右側(cè)的部分,或者A位于縫合線右側(cè)的部分,圖像B位于縫合線左側(cè)的部分。
第三步、基于差圖diffAB計(jì)算N條備選縫合線(染色體)的適應(yīng)度,挑選出適應(yīng)度值最大的染色體Smin;具體操作方法如下:
對于一條備選縫合線(染色體)si,其適應(yīng)度值為譬如diffAB一個3*4的差圖,si的值為(2 1 2),
則的si適應(yīng)度為1/(3+2+4)=1/9。
第四步、若gen大于maxGen,則轉(zhuǎn)第六步,否則將染色體的H個變量隨機(jī)分為k組,具體操作如下:將自然數(shù)列1到H隨機(jī)打亂,選取第1個到第個變量作為第一組變量,第個到第個作為第二組變量,依次類推,將第個到第變量作為第k-1組變量,剩余變量作為第k組變量,即前k-1組每組個變量,第k組個變量;
第五步、對分組后的變量逐組優(yōu)化,每組運(yùn)行T代,初始化i=1;
1)基于第i組變量構(gòu)建染色體種群Si。具體操作如下:
將當(dāng)前種群S的每個染色體中除第i組變量之外的所有變量的值用s染色體相應(yīng)位置的變量值代替。譬如H=8,N=4,k=4,第一組變量包括第1個和第2個變量,s為(2 3 3 3 4 5 6 6)。其中S為{(1 2 3 4 5 6 7 8),(2 2 3 3 4 5 6 5),(1 2 3 4 4 5 5 4),(1 2 2 2 3 4 6 7)},那么基于第1組變量構(gòu)建的新的染色體種群S1就是{(1 2 3 3 4 5 6 6),(2 2 3 3 4 5 6 6),(1 2 3 3 4 5 6 6),(1 2 3 3 4 5 6 6)};
此外,令t=1;
2)基于差圖diffAB計(jì)算種群Si中染色體的適應(yīng)度值,挑選出適應(yīng)度值最大的染色體Smin;具體操作與第三步相同。
3)基于染色體的適應(yīng)度值,使用輪賭盤策略選擇出N個較好的染色體;具體操作如下:譬如有個體sa,sb,sc對應(yīng)的適應(yīng)度分別為2,3,1,其相應(yīng)的累計(jì)概率則為2/6,(2+3)/6,(2+3+1)/6。生成一個隨機(jī)數(shù)為rand,若rand<2/6,選中個體sa,如果2/6<rand<(2+3)6,選中個體sb,如果(2+3)/6<rand<(2+3+1)/6,選中個體sc,以此類推。
4)針對選擇出的染色體,使用交叉變異算子生成新的N個染色體;具體交叉變異算子設(shè)計(jì)如下:
a)交叉算子:首先隨機(jī)從種群S中選擇兩個個體(記為s1和s2)作為父代染色體。如圖3所示,每個染色體即代表一條備選縫合線,且有H個基因位,每個基因位代表了一個縫合點(diǎn);其次檢測s1和s2是否滿足交叉條件,即s1和s2中存在起止位置相同的基因序列且其起止位置的基因值相等,若不滿足則重新選擇兩個個體,否則進(jìn)行交叉操作,即交換s1和s2中處于該段基因序列除起止位置的基因值之外的其他基因值。如起止位置相同的兩段基因序列,s1={g1,g2,g3,g4,g5,g6},s2={q1,q2,q3,q4,q5,q6},若g1等于q1且g6等于q6,那么滿足交叉條件,交換位于中間的基因值,得到s1’={g1,q2,q3,q4,q5,g6}和s2’={q1,g2,g3,g4,g5,q6},作為兩個新個體。
b)變異算子:首先從交叉操作產(chǎn)生的新種群中隨機(jī)選擇一個個體,記為s3,其基因值分別為{c_1,c_2,c_3,…,c_H}。其次,針對每一位基因(從1到H),以概率0.9判別是否進(jìn)行變異操作,即若rand<0.9,不進(jìn)行變異操作,否則執(zhí)行變異操作(rand為一個位于0到1之間的隨機(jī)數(shù))。然后,針對要進(jìn)行變異的基因位,如第k個基因位,若其相鄰兩個基因位的值c_k-1和c_k+1相等,則等概率將c_k-1,c_k或c_k+1的賦值于c_k;若其相鄰兩個基因位的值c_k-1和c_k+1相差為1,則令c_k=c_k-1;否則不進(jìn)行任何操作。
5)gen=gen+1,t=t+1,若t小于T,轉(zhuǎn)入3)否則
令i=i+1,若i>k,則轉(zhuǎn)入第四步,否則轉(zhuǎn)入1);
第六步、輸出當(dāng)前適應(yīng)度值最大的一個染色體Smax作為最優(yōu)縫合線s。
如圖4至圖6所示,為利用本發(fā)明所述圖像拼接方法中縫合線優(yōu)選方法找到的最優(yōu)縫合線。其中,圖4中左右圖像為重疊區(qū)域相同、大小相等且已配準(zhǔn)的源圖像,其中H=1920,圖像寬W=300。圖5為圖4中兩幅圖像的像素值歸一化之后的差圖。設(shè)定分組個數(shù)k=10,分組運(yùn)行代數(shù)T=10,算法迭代次數(shù)maxGen=1000。采用本發(fā)明所述的圖像拼接方法和生成裝置,按照上述參數(shù),執(zhí)行最優(yōu)縫合線確定步驟,進(jìn)行最優(yōu)縫合線搜索,找到的最優(yōu)縫合線及生成的拼接圖像如圖6所示。
本發(fā)明還提供一種圖像拼接生成裝置,其包括:
圖像配準(zhǔn)模塊,用于找出待拼接圖像中的模板或特征點(diǎn)在參考圖像中對應(yīng)的位置,進(jìn)而確定兩幅圖像之間的變換關(guān)系;
圖像融合模塊,用于根據(jù)最優(yōu)縫合線將待拼接圖像的重合區(qū)域進(jìn)行融合,得到拼接重構(gòu)的平滑無縫全景圖像,其中所述最優(yōu)縫合線的確定包括以下步驟:
S1、構(gòu)建圖像A和B的差圖diffAB,設(shè)已知圖像A和B重疊區(qū)域相同、大小相等且已配準(zhǔn),則圖像A和B的差圖diffAB為圖像A和B的像素值歸一化之后的差的絕對值,其中圖像A、B和差圖diffAB的寬和高分別為W和H;
S2、參數(shù)設(shè)置,設(shè)進(jìn)化代數(shù)為maxGen,種群規(guī)模為N,當(dāng)前代數(shù)為gen,且gen=1;初始化種群為S,是指隨機(jī)生成N條備選縫合線,即N個長度為H的染色體;
S3、基于差圖diffAB計(jì)算N條備選縫合線的適應(yīng)度,挑選出適應(yīng)度值最大的染色體Smin;
S4、若gen大于maxGen,則跳轉(zhuǎn)到第六步;否則,將染色體的H個變量隨機(jī)分為k組,即k個子染色體;
S5、對分組后的變量逐組優(yōu)化,每組運(yùn)行T代,初始化i=1;
S5.1、基于第i組變量構(gòu)建染色體種群Si,具體操作為將當(dāng)前種群S的每個染色體中除第i組變量之外的所有變量的值用Smin染色體相應(yīng)位置的變量值代替;此外,令t=1;
S5.2、基于差圖diffAB計(jì)算種群Si中染色體的適應(yīng)度值,挑選出適應(yīng)度值最大的染色體Smin;
S5.3、基于染色體的適應(yīng)度值,使用輪賭盤策略選擇出N個較好的染色體;
S5.4、針對步驟S5.3中選擇出的較好的染色體,使用交叉變異算子生成新的N個染色體;
S5.5、令gen=gen+1,t=t+1,若t小于T,則跳轉(zhuǎn)到S5.3;
否則
令i=i+1,若i>k,則跳轉(zhuǎn)到步驟S4;
否則跳轉(zhuǎn)到步驟S1;
S6、輸出經(jīng)步驟S5逐組優(yōu)化后的當(dāng)前適應(yīng)度值最大的一個染色體Smax作為最優(yōu)縫合線s。
本發(fā)明實(shí)施例的技術(shù)方案可應(yīng)用于電子設(shè)備,例如:手機(jī)、平板、相機(jī)或其他帶有攝像頭的電子設(shè)備等,對此本發(fā)明不作限制,本發(fā)明實(shí)施例的電子設(shè)備的硬件結(jié)構(gòu)如圖7所示,圖7為本發(fā)明實(shí)施例電子設(shè)備的硬件結(jié)構(gòu)示意圖,本實(shí)施例的電子設(shè)備中包含主板,主板上安裝有存儲器101、處理器102、通信總線103和攝像頭104。在所示圖像拼接生成裝置中,存儲器101、處理器102和攝像頭104通過通信總線103進(jìn)行通信,通過攝像頭獲取生成全景圖像所需的原始照片,包括:基準(zhǔn)圖像和待配準(zhǔn)圖像,通過處理器對基準(zhǔn)圖像和待配準(zhǔn)圖像進(jìn)行處理,通過存儲器存儲基準(zhǔn)圖像和待配準(zhǔn)圖像以及處理器處理過程中產(chǎn)生的中間過程的圖像以及得到的一些處理數(shù)據(jù)等。其中處理器用于執(zhí)行所述存儲器存儲的程序;所述程序用于執(zhí)行以下步驟:
圖像配準(zhǔn),用于找出待拼接圖像中的模板或特征點(diǎn)在參考圖像中對應(yīng)的位置,進(jìn)而確定兩幅圖像之間的變換關(guān)系;
圖像融合,用于根據(jù)最優(yōu)縫合線將待拼接圖像的重合區(qū)域進(jìn)行融合,得到拼接重構(gòu)的平滑無縫全景圖像,其中所述最優(yōu)縫合線的確定方法包括以下步驟:
S1、構(gòu)建圖像A和B的差圖diffAB,設(shè)已知圖像A和B重疊區(qū)域相同、大小相等且已配準(zhǔn),則圖像A和B的差圖diffAB為圖像A和B的像素值歸一化之后的差的絕對值,其中圖像A、B和差圖diffAB的寬和高分別為W和H;
S2、參數(shù)設(shè)置,設(shè)進(jìn)化代數(shù)為maxGen,種群規(guī)模為N,當(dāng)前代數(shù)為gen,且gen=1;初始化種群為S,是指隨機(jī)生成N條備選縫合線,即N個長度為H的染色體;
S3、基于差圖diffAB計(jì)算N條備選縫合線的適應(yīng)度,挑選出適應(yīng)度值最大的染色體Smin;
S4、若gen大于maxGen,則跳轉(zhuǎn)到第六步;否則,將染色體的H個變量隨機(jī)分為k組,即k個子染色體;
S5、對分組后的變量逐組優(yōu)化,每組運(yùn)行T代,初始化i=1;
S5.1、基于第i組變量構(gòu)建染色體種群Si,具體操作為將當(dāng)前種群S的每個染色體中除第i組變量之外的所有變量的值用Smin染色體相應(yīng)位置的變量值代替;此外,令t=1;
S5.2、基于差圖diffAB計(jì)算種群Si中染色體的適應(yīng)度值,挑選出適應(yīng)度值最大的染色體Smin;
S5.3、基于染色體的適應(yīng)度值,使用輪賭盤策略選擇出N個較好的染色體;
S5.4、針對步驟S5.3中選擇出的較好的染色體,使用交叉變異算子生成新的N個染色體;
S5.5、令gen=gen+1,t=t+1,若t小于T,則跳轉(zhuǎn)到S5.3;
否則
令i=i+1,若i>k,則跳轉(zhuǎn)到步驟S4;
否則跳轉(zhuǎn)到步驟S1;
S6、輸出經(jīng)步驟S5逐組優(yōu)化后的當(dāng)前適應(yīng)度值最大的一個染色體Smax作為最優(yōu)縫合線s。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。