本發(fā)明涉及計算機(jī)圖像處理領(lǐng)域,具體涉及一種圖像拼接方法及系統(tǒng)。
背景技術(shù):
隨著電子信息技術(shù)的發(fā)展,能夠記錄和獲取實時視頻信息的設(shè)備日漸普及,但是和人眼相比,單一攝像頭的監(jiān)控范圍和角度相對有限。廣角攝像頭又由于其昂貴的價格難以大范圍使用。
針對這個問題,目前在安防監(jiān)控中,經(jīng)常使用多個攝像頭進(jìn)行監(jiān)控,并將多個攝像頭拍攝獲取的圖像進(jìn)行圖像拼接獲得寬角度、大畫幅的監(jiān)控圖像。
但是實時視頻拼接對于實時性要求很高。在圖像拼接算法中,計算變換矩陣是其中關(guān)鍵的步驟,耗費的時間也較長。以一對同步幀為例,首先獲取兩圖像幀上重疊部分的匹配特征點,所謂匹配特征點即兩特征點在空間上表示同一點。然后根據(jù)獲取的匹配特征點求解單應(yīng)性矩陣,根據(jù)單應(yīng)性矩陣計算變換矩陣。后續(xù)圖像拼接過程中,根據(jù)變換矩陣將其中一幀上的所有像素點進(jìn)行表象變換(包括不重疊部分),確定其在另一幀圖像所在平面上的對應(yīng)位置。這一過程即為圖像拼接過程,之后再進(jìn)行圖像融合,以得到較好的拼接圖。實時視頻拼接要求每秒至少完成24幀圖像的拼接速度,才能滿足人眼對實時性的要求。
在多個攝像頭的條件下,實時視頻拼接技術(shù)需要處理的圖像數(shù)量會成倍增加。而隨著圖像像素的提高,表征圖像特征點匹配的變換矩陣也會變得復(fù)雜。如何能夠在多攝像頭、多特征點的條件下,實現(xiàn)實時視頻拼接的準(zhǔn)確、及時,是實時視頻拼接技術(shù)的一個難點。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種圖像實時拼接方法及系統(tǒng),以解決多攝 像頭圖像的實時拼接問題。
一方面,本發(fā)明提供一種圖像實時拼接方法,用于處理多攝像頭的同步幀圖像,包括:針對每幀圖像,如果所述同步幀圖像的拍攝焦距發(fā)生變化,則根據(jù)所述同步幀圖像構(gòu)建變換矩陣,并根據(jù)所述變換矩陣對所述同步幀圖像進(jìn)行拼接;針對每幀圖像,如果所述同步幀圖像的拍攝焦距沒有變化,則根據(jù)前幀圖像的變換矩陣對所述圖像進(jìn)行拼接。
優(yōu)選地,在第一次攝像時,根據(jù)所述同步幀圖像構(gòu)建變換矩陣。
優(yōu)選地,所述根據(jù)所述同步幀圖像構(gòu)建變換矩陣包括:從所述同步幀圖像中提取特征點;根據(jù)所述特征點求解單應(yīng)性矩陣;以及根據(jù)單應(yīng)性矩陣構(gòu)造所述變換矩陣。
優(yōu)選地,所述方法還包括:在根據(jù)變換矩陣對所述圖像進(jìn)行拼接后,對所述圖像進(jìn)行融合。
優(yōu)選地,在所述圖像的重疊區(qū)域或銜接處進(jìn)行指定寬度的融合。
優(yōu)選地,使用加權(quán)平均法對所述圖像進(jìn)行融合。
另一方面,本發(fā)明提供一種圖像實時拼接系統(tǒng),包括:圖像獲取模塊,用于獲取多個具有重疊區(qū)域的同步幀圖像;焦距獲取模塊,用于獲取所述同步幀圖像的拍攝焦距;判斷模塊,用于判斷所述同步幀圖像的拍攝焦距是否發(fā)生變化;合成模塊,用于根據(jù)所述判斷模塊的判斷結(jié)果,獲得不同的變換矩陣,并根據(jù)所述變換矩陣對所述同步幀圖像進(jìn)行拼接。
優(yōu)選地,所述合成模塊包括:特征點提取單元,用于從兩幅具有重疊局域的圖像中提取特征點,并對特征點進(jìn)行提純;單應(yīng)性矩陣求解單元,用于根據(jù)所述特征點求解單應(yīng)性矩陣;變換矩陣構(gòu)造單元,用于根據(jù)所述單應(yīng)性矩陣構(gòu)造變換矩陣;圖像拼接單元,用于根據(jù)變換矩陣對所述圖像進(jìn)行變換。
優(yōu)選地,所述圖像實時拼接系統(tǒng)還包括:圖像融合模塊,用于對所述圖像進(jìn)行融合。
優(yōu)選地,所述圖像融合模塊在所述圖像的重疊區(qū)域或銜接處進(jìn)行指定寬度的融合。
本發(fā)明實施例提供一種圖像實時拼接方法和系統(tǒng),用于完成多個不同角度的攝像頭的實時視頻拼接。所述方法包括:針對每幀圖像,如果 所述同步幀圖像的拍攝焦距發(fā)生變化,則根據(jù)所述同步幀圖像構(gòu)建變換矩陣,并根據(jù)所述變換矩陣對所述同步幀圖像進(jìn)行拼接;針對每幀圖像,如果所述同步幀圖像的拍攝焦距沒有變化,則根據(jù)前幀圖像的變換矩陣對所述圖像進(jìn)行拼接。
本發(fā)明實施例提供的圖像實時拼接方法,只在攝像頭的焦距,發(fā)生變化時,才構(gòu)造新的變換矩陣,其余情況下,復(fù)用已有的變換矩陣,在圖像拼接效果保持不變的情況下,通過減少變換矩陣的構(gòu)造次數(shù)和構(gòu)造時間,提高了圖像拼接速度,滿足了視頻拼接的實時性要求。
附圖說明
通過參照以下附圖對本發(fā)明實施例的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)點將更為清楚,在附圖中:
圖1是本發(fā)明實施例的多攝像頭監(jiān)控的應(yīng)用示例;
圖2是本發(fā)明實施例的圖像實時拼接方法的流程圖;
圖3是本發(fā)明另一實施例的圖像實時拼接方法的流程圖;
圖4是本發(fā)明實施例的圖像實時拼接系統(tǒng)的結(jié)構(gòu)圖;
圖5是本發(fā)明實施例的圖像實時拼接系統(tǒng)中的合成模塊的結(jié)構(gòu)圖。
具體實施方式
以下基于實施例對本發(fā)明進(jìn)行描述,但是本發(fā)明并不僅僅限于這些實施例。在下文對本發(fā)明的細(xì)節(jié)描述中,詳盡描述了一些特定的細(xì)節(jié)部分。對本領(lǐng)域技術(shù)人員來說沒有這些細(xì)節(jié)部分的描述也可以完全理解本發(fā)明。為了避免混淆本發(fā)明的實質(zhì),公知的方法、過程、流程沒有詳細(xì)敘述。另外附圖不一定是按比例繪制的。
附圖中的流程圖、框圖圖示了本發(fā)明實施例的系統(tǒng)、方法、裝置的可能的體系框架、功能和操作,流程圖和框圖上的方框可以代表一個模塊、程序段或僅僅是一段代碼,所述模塊、程序段和代碼都是用來實現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,所述實現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令可以重新組合,從而生成新的模塊和程序段。因此附圖的方框以及方框順序只是用來更好的圖示實施例的過程和步驟,而不應(yīng)以此作 為對發(fā)明本身的限制。
圖1是多攝像頭監(jiān)控的應(yīng)用示例。具體包括IP攝像頭103-105,交換機(jī)106和處理器107。在示例中的IP攝像機(jī)就是網(wǎng)絡(luò)攝像機(jī),它包括一個普通攝像機(jī)、視頻服務(wù)器、網(wǎng)卡、應(yīng)用軟件等。它將監(jiān)控信息的模擬信號轉(zhuǎn)換成數(shù)字信號,通過交換機(jī)106將采集到的數(shù)字信號圖像傳輸?shù)教幚砥?07進(jìn)行處理。該處理器107接收各個圖像,根據(jù)各個圖像的重疊區(qū)域拼接為一個整體的監(jiān)控圖像,再經(jīng)過顯示設(shè)備予以顯示。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,在本示例中各個攝像頭也可以是普通的攝像頭,通過模數(shù)轉(zhuǎn)換裝置將監(jiān)控圖像轉(zhuǎn)換成數(shù)字信號發(fā)送給處理器處理;各個攝像頭也可以分別和一個交換機(jī)連接,再連接到處理器;交換機(jī)也可以由其他數(shù)據(jù)傳輸設(shè)備或設(shè)備組合替換,只要能夠滿足數(shù)據(jù)傳輸功能即可。
圖2是本發(fā)明實施例的圖像實時拼接方法的流程圖。如圖2所示,所述圖像實時拼接方法包括步驟210-步驟260。
在步驟210中,獲得至少兩幅具有重疊區(qū)域的同步幀圖像。一般來說,在多個攝像頭的監(jiān)控中,攝像頭的安裝位置和角度比較固定,輕易不會發(fā)生改變。在本步驟中,從多個相鄰的攝像頭獲取的同步幀圖像中選擇兩幅具有重疊區(qū)域的圖像用于后續(xù)的圖像拼接。
在步驟220中,獲得攝像頭的焦距。攝像頭使用的鏡頭包括可變焦鏡頭和不可變焦鏡頭。可變焦鏡頭是在一定范圍內(nèi)可以變換焦距、從而得到不同寬窄的視場角,不同大小的影像和不同景物范圍的鏡頭。不可變焦鏡頭則沒有相應(yīng)功能。改變攝像頭的焦距,會導(dǎo)致拍攝范圍發(fā)生變化,以及拍攝圖像的重疊區(qū)域發(fā)生改變。因此,在每次進(jìn)行圖像拼接前,檢測一下攝像頭的鏡頭焦距,并記錄下來,在后續(xù)判斷中使用。應(yīng)當(dāng)注意的是,攝像頭焦距的變化,可能導(dǎo)致拍攝圖像的重疊區(qū)域遭到破壞,因此,在改變焦距時,攝像頭的位置可能也需要調(diào)整。
在步驟230中,判斷攝像頭的焦距和前次是否一致。在步驟220中,獲取攝像頭鏡頭焦距,在本步驟中,將獲得每個攝像頭的鏡頭焦距和前次拍攝進(jìn)行比較。如果和前次拍攝時一致,則表示兩次拍攝期間,攝像頭沒有進(jìn)行調(diào)焦,攝像頭拍攝角度沒有發(fā)生改變,可以沿用前次使用的 變換矩陣,執(zhí)行步驟250;反之,表示在此期間,攝像頭進(jìn)行過調(diào)焦,攝像頭的拍攝角度發(fā)生改變,需要重新構(gòu)造變換矩陣,執(zhí)行步驟240。
一般情況下,在第一次拍攝時,直接根據(jù)拍攝的同步幀圖像構(gòu)建變換矩陣?;蛘咭部梢栽谂臄z之前構(gòu)造好一個變換矩陣存儲到文件庫里,供第一次圖像拼接時候使用。
在步驟240中,根據(jù)同步幀圖像構(gòu)造變換矩陣。由于視角,拍攝時間,分辨率,光照強(qiáng)度,傳感器類型等的差異,待拼接的圖像往往存在平移,旋轉(zhuǎn),尺度變化,透視變形,色差,扭曲運動目標(biāo)遮擋等差別,拼接的關(guān)鍵就是找出一種最能體現(xiàn)待拼接圖形之間映射關(guān)系的變換矩陣。如前文所述,用以構(gòu)造變換矩陣的同步幀圖像具有重疊區(qū)域。構(gòu)造過程具體包括:從重疊區(qū)域中提取特征點,根據(jù)特征點求解單應(yīng)性矩陣,在根據(jù)重疊區(qū)域的單應(yīng)性矩陣擴(kuò)展到兩幅圖像的非重疊區(qū)域,生成變換矩陣。后續(xù)的實施例會對構(gòu)造過程進(jìn)行更詳細(xì)描述,在此不再贅述。
在步驟250中,根據(jù)變換矩陣對同步幀圖像進(jìn)行拼接。在拼接過程中,可以將需要拼接的同步幀圖像變換到同一坐標(biāo)系下。以A,A′為例,先把A固定,再把A′的所有像素點按照下面的公式求解在圖像A的坐標(biāo)系上對應(yīng)的坐標(biāo)位置:
其中,(u,v,h)為某個像素點在圖像A′的坐標(biāo)系的坐標(biāo)位置,(u′,v′,h′)為根據(jù)變換矩陣計算的對應(yīng)像素點在圖像A所在的坐標(biāo)系的坐標(biāo)位置。根據(jù)該方法獲得圖像A′上的所有像素點在圖像A上的坐標(biāo)位置。最后將圖像A′上的所有像素點都移動到圖像A上的坐標(biāo)系中就完成了圖像A和圖像A′的拼接。這個過程一般通過軟件程序完成。
上述圖像A和A′變換只是一個示例性的拼接方法,現(xiàn)有技術(shù)中還有其他的拼接方法,能夠滿足圖像拼接效果。例如,將示例中圖像A和A′均以同一參考坐標(biāo)系進(jìn)行平移,然后拼接。
在步驟260中,對同步幀圖像進(jìn)行融合。在步驟250中獲取的拼接后的監(jiān)控圖像可能由于不同角度的攝像頭獲取的圖像的顏色存在差異,可 能導(dǎo)致拼接后的圖像存在明顯的拼接縫隙,降低了用戶的視覺體驗,為了改善拼接效果,在拼接完成后,還可以進(jìn)一步包括顏色融合,以使拼接區(qū)域的顏色過渡自然。
在一個優(yōu)選的實施例中,采用加權(quán)平均法,將兩幅圖像重疊部分加權(quán)平均實現(xiàn)快速融合。對同步幀圖像的重疊區(qū)域的原始顏色進(jìn)行加權(quán)求平均值,使用加權(quán)平均后的數(shù)值對拼接后圖像的重疊區(qū)域的像素點賦值。
在本實施例中,考慮到建立變換模型是圖像實時拼接方法中比較占用時間和資源的環(huán)節(jié),在多次拍攝活動中,只要攝像頭的焦距沒有發(fā)生變化,則無需新建一個變換模型,使用前次的變換模型進(jìn)行圖像變換和融合,以此加快圖像拼接的速度。
在一個優(yōu)選的實施例中,融合過程指定寬度,例如指定200像素寬的重疊區(qū)域進(jìn)行顏色融合。在一些特定場景中,如果兩幅圖的光強(qiáng)導(dǎo)致的顏色區(qū)分并不明顯,可以減少融合的區(qū)域,以此加快圖像拼接的速度。
圖3是本發(fā)明另一個實施例的圖像實時拼接方法的流程圖。如圖3所示,所述圖像實時拼接方法包括步驟310-步驟380。
其中步驟310-步驟330和前述圖2所示的圖像實時拼接方法的步驟210-步驟230相同,這里不再贅述。
步驟340-步驟360詳細(xì)描述了根據(jù)同步幀圖像構(gòu)造變換矩陣的具體實施過程。
在步驟340中,從兩幅具有重疊區(qū)域的圖像中提取特征點。提取匹配特征點的方法有很多,如SIFT特征點檢測方法,也可采用SIFT的改進(jìn)算法(SURF),或者采用Harris,Susan角點檢測法及其相關(guān)改進(jìn)算法。此處為現(xiàn)有技術(shù),這里不再贅述。
在步驟350中,根據(jù)所述特征點求解單應(yīng)性矩陣。求解單應(yīng)性矩陣使用的也是現(xiàn)有技術(shù)。例如,利用匹配點的齊次坐標(biāo)來求解單應(yīng)性矩陣,或者根據(jù)試驗用flann匹配算法求解單應(yīng)性矩陣。在求解單應(yīng)性矩陣前,可以通過各種方式對特征點進(jìn)行提純,例如使用距離篩選的方式對特征點提純,提純的目的防止誤匹配點應(yīng)用于單應(yīng)性矩陣。
在步驟360中,根據(jù)單應(yīng)性矩陣構(gòu)造變換矩陣。單應(yīng)性矩陣表征兩 幅圖像重疊部分的變換關(guān)系,在獲得單應(yīng)性矩陣后,在根據(jù)變換后的坐標(biāo)系中計算出重疊區(qū)域的寬度,非重疊區(qū)域的寬度,計算非重疊區(qū)域的邊緣坐標(biāo),根據(jù)邊緣坐標(biāo)和寬度計算非重疊區(qū)域的變換矩陣,根據(jù)重疊區(qū)域和重疊區(qū)域的變換矩陣確定整體的變換矩陣。
步驟370-步驟380和前述圖2所示的圖像實時拼接方法的步驟250-步驟260相同,這里不再贅述。
在一個優(yōu)選的實施方式中,可以在每一次重新構(gòu)造一個變換矩陣時,從至少兩次拍攝的同步幀圖像中提取特征點用以建立單應(yīng)性矩陣,這是為了防止單一同步幀圖像在獲取時存在信號干擾,引起畫面扭曲或異常變化,或者由于光線較強(qiáng)時鏡面受反光影響圖像區(qū)域模糊。
本領(lǐng)域的普通技術(shù)人員可以理解,在對多個具有重疊區(qū)域的同步幀圖像進(jìn)行拼接時,可以使用倆倆拼接,先將相鄰的兩個圖像拼接,再和其他圖像進(jìn)行拼接。
圖4示出了一種圖像實時拼接系統(tǒng),包括圖像獲取模塊410、焦距獲取模塊420、判斷模塊430、合成模塊440和圖像融合模塊450。
圖像獲取模塊410用于獲取多個至少兩幅具有重疊區(qū)域的同步幀圖像。
焦距獲取模塊420用于獲取所述攝像頭的焦距。
判斷模塊430用于判斷所述攝像頭的焦距和前次拍攝時是否一致。
合成模塊440用于根據(jù)所述判斷模塊的判斷結(jié)果,獲得不同的變換矩陣,并根據(jù)所述變換矩陣對所述圖像進(jìn)行拼接。在攝像頭焦距發(fā)生變化時,構(gòu)造新的變換矩陣,否則使用已有的變換矩陣進(jìn)行圖像拼接。構(gòu)造變換矩陣的過程具體包括:從重疊區(qū)域中提取特征點,根據(jù)特征點求解單應(yīng)性矩陣,在根據(jù)重疊區(qū)域的單應(yīng)性矩陣擴(kuò)展到兩幅圖像的非重疊區(qū)域,生成變換矩陣。然后根據(jù)變換矩陣對圖像進(jìn)行變換,最后對整個圖像進(jìn)行裁剪切割,實現(xiàn)最終的無縫拼接。
圖像融合模塊450用于對所述圖像進(jìn)行融合。圖像融合方法優(yōu)選在同步幀圖像的重疊區(qū)域或銜接處進(jìn)行指定寬度的融合,以達(dá)到快速融合的目的。圖像融合模塊使拼接后的圖像銜接更自然。
在一個優(yōu)選的實施例中,采用加權(quán)平均法,將兩幅圖像重疊部分加權(quán) 平均實現(xiàn)快速融合。對同步幀圖像的重疊區(qū)域的原始顏色進(jìn)行加權(quán)求平均值,使用加權(quán)平均后的數(shù)值對拼接后圖像的重疊區(qū)域的像素點賦值。
圖5示出了合成模塊440的一個具體的實施例。合成模塊440包括:特征點提取單元4401、單應(yīng)性矩陣求解單元4402、變換矩陣構(gòu)造單元4403和圖像拼接單元4404。
特征點提取單元4401用于從兩幅具有重疊局域的圖像中提取特征點,并對特征點進(jìn)行提純。例如,通過距離篩選剔除誤匹配點。
單應(yīng)性矩陣求解單元4402用于根據(jù)所述特征點求解單應(yīng)性矩陣。
變換矩陣構(gòu)造單元4403用于根據(jù)所述單應(yīng)性矩陣構(gòu)造變換矩陣。
單應(yīng)性矩陣和變換矩陣的構(gòu)造方法是公知的技術(shù),在上述方法的實施例中也有所提及,這里不再贅述。
圖像拼接單元4404用于根據(jù)變換矩陣對所述圖像進(jìn)行變換。即根據(jù)變換矩陣對圖像進(jìn)行變換,使之圖像處于一個平面坐標(biāo)系里。例如,在三個攝像頭拍攝的圖像中,使用中間圖像的坐標(biāo)系作為參考坐標(biāo)系,左右相鄰的攝像頭拍攝的圖像都基于參考坐標(biāo)系構(gòu)造變換矩陣,然后根據(jù)變換矩陣進(jìn)行像素點變換,最終合成一個監(jiān)控畫面。
本發(fā)明實施例提供一種圖像實時拼接方法和系統(tǒng),用于完成多個不同角度的攝像頭的實時視頻拼接。所述方法包括:針對每幀圖像,如果所述同步幀圖像的拍攝焦距發(fā)生變化,則根據(jù)所述同步幀圖像構(gòu)建變換矩陣,并根據(jù)所述變換矩陣對所述同步幀圖像進(jìn)行拼接;針對每幀圖像,如果所述同步幀圖像的拍攝焦距沒有變化,則根據(jù)前幀圖像的變換矩陣對所述圖像進(jìn)行拼接。
本發(fā)明實施例提供的圖像實時拼接方法,只在攝像頭的焦距發(fā)生變化時,才構(gòu)造新的變換矩陣,其余情況下,復(fù)用已有的變換矩陣,在圖像拼接效果不變的情況下,通過減少變換矩陣的構(gòu)造次數(shù)和構(gòu)造時間,提高了圖像拼接速度,滿足了視頻拼接實時性要求。
本發(fā)明不限于上述示范性實施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。例如,在實際應(yīng)用中,可以不同的需要將上述模塊功能劃分為和本發(fā)明實施例不同的功能結(jié)構(gòu),或?qū)⒈景l(fā)明實施例中的幾個功能模塊合并和分解成不同 的功能結(jié)構(gòu)。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現(xiàn)。
以上所述僅為本發(fā)明的優(yōu)選實施例,并不用于限制本發(fā)明,對于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以有各種改動和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。