999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV圖像處理的無(wú)人機(jī)影像拼接技術(shù)研究

2021-05-11 08:15:10劉洪江曹玉香李佳梅鋒方愛(ài)季維虎
城市勘測(cè) 2021年2期
關(guān)鍵詞:特征融合

劉洪江,曹玉香,李佳,梅鋒,方愛(ài),季維虎

(1.杭州市勘測(cè)設(shè)計(jì)研究院,浙江 杭州 310012; 2.浙江工商大學(xué)公共管理學(xué)院,浙江 杭州 310018;3.杭州市錢投集團(tuán)科技與數(shù)信部,浙江 杭州 310016)

1 引 言

隨著無(wú)人機(jī)技術(shù)的發(fā)展,無(wú)人機(jī)遙感已在眾多行業(yè)得到廣泛應(yīng)用。在新型測(cè)繪與智慧城市建設(shè)領(lǐng)域,無(wú)人機(jī)航攝正發(fā)揮越來(lái)越重要的作用,尤其在防災(zāi)減災(zāi)、應(yīng)急救援、自然資源監(jiān)測(cè)、三維城市重建等領(lǐng)域取得重要進(jìn)展。目前實(shí)際應(yīng)用中,航空正射影像的制作方式主要是借助攝影測(cè)量影像處理系統(tǒng)在數(shù)字高程模型的輔助下將航拍序列影像制作正射影像,或者利用多種軟件與地形圖輔助制作正射影像[1],制作周期長(zhǎng),自動(dòng)化程度低,無(wú)法滿足應(yīng)急需要。

近年來(lái),國(guó)內(nèi)外對(duì)無(wú)人機(jī)影像快速拼接技術(shù)的研究很多,但多數(shù)局限在算法本身的研究和優(yōu)化。業(yè)界也推出了很多優(yōu)秀的無(wú)人機(jī)傾斜攝影處理軟件,如Smart3D、PhotosSan、Pix4D等。這些軟件在三維建模方面性能優(yōu)異,能很好地實(shí)現(xiàn)無(wú)人機(jī)影像快速拼接。快速影像生產(chǎn)制作程序繁多、流程復(fù)雜,不夠便捷,而且價(jià)格昂貴。針對(duì)影像快速拼接單一任務(wù)需求的輕量化的軟件工具并不多見(jiàn),所以在快速影像生產(chǎn),尤其是應(yīng)急測(cè)繪影像生產(chǎn)中瓶頸凸顯。

單幅影像通常無(wú)法覆蓋航攝測(cè)區(qū)范圍,因此大范圍影像生產(chǎn)需要對(duì)多幅影像進(jìn)行鑲嵌、拼接[6]。通過(guò)研究影像快速拼接技術(shù),可以獲得寬視域、高分辨率的圖像[2],基于OpenCV圖像處理技術(shù)及其豐富的算法,可以高效率解決無(wú)人機(jī)影像快速拼接的問(wèn)題。本文在OpenCV算法庫(kù)的基礎(chǔ)上,采用Python開(kāi)發(fā)語(yǔ)言,圍繞無(wú)人機(jī)影像的特征檢測(cè)與匹配、單應(yīng)性矩陣計(jì)算、圖像透視變換、重疊區(qū)域圖像融合等問(wèn)題進(jìn)行研究和試驗(yàn),實(shí)現(xiàn)了影像的快速、高效、自動(dòng)化拼接。

2 OpenCV及SIFT算法

OpenCV是基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它具備輕量且高效的特點(diǎn)——由一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法[3]。OpenCV采用C語(yǔ)言進(jìn)行優(yōu)化,而且在多核計(jì)算機(jī)上面,其運(yùn)行速度會(huì)更快。近年在圖像識(shí)別、圖像分割、圖像匹配、機(jī)器視覺(jué)等領(lǐng)域取得了廣泛的應(yīng)用。

圖像拼接是將處于同一場(chǎng)景的多張圖像之間建立對(duì)應(yīng)關(guān)系[4],關(guān)鍵是圖像匹配。目前基于無(wú)人機(jī)獲取的圖像,拼接主要采用2種方法:一是利用無(wú)人機(jī)POS數(shù)據(jù)對(duì)影像進(jìn)行拼接,由于無(wú)人機(jī)自身因素和氣流的影響,一般無(wú)法得到較為精確的飛行姿態(tài);第二種方法是采用基于圖像區(qū)域特征的匹配[5]。SIFT算法是一種典型的基于特征的圖像匹配方法,應(yīng)用領(lǐng)域很廣。SIFT算法首先通過(guò)預(yù)處理對(duì)圖像進(jìn)行去噪以及修正,然后利用高斯差分函數(shù)構(gòu)造多尺度空間,在不同尺度空間影像上檢測(cè)具有方向信息的局部極值點(diǎn),最后將極值點(diǎn)精確定位,去除不穩(wěn)定的點(diǎn),根據(jù)極值點(diǎn)臨近像素,生成特征描述子,再進(jìn)行歸一化處理[4]。由于SIFT算法能夠解決圖像平移、方向及角度改變、光照改變等問(wèn)題,無(wú)人機(jī)在不同時(shí)間、不同角度拍攝兩幅或多幅含有重疊區(qū)域的圖像,依舊可以獲得較好的拼接效果[2],所以在處理無(wú)人機(jī)影像匹配中應(yīng)用較多。

OpenCV計(jì)算機(jī)視覺(jué)庫(kù)對(duì)SIFT算法有著很好的支持,尤其是到了3.0以后,OpenCV對(duì)SIFT特征提取進(jìn)行了系統(tǒng)性的重構(gòu),簡(jiǎn)化了SIFT算法功能的調(diào)用,其代碼背后的理論和代碼實(shí)現(xiàn)的技術(shù)以及各種提升速度和效率的方法對(duì)圖像處理的應(yīng)用具有很大的幫助。opencv-python3.4.2以后的版本,SIFT算法包申請(qǐng)了專利保護(hù),不能正常使用,所以安裝opencv-python時(shí)要選擇3.4.2以前的版本。

3 影像拼接步驟

3.1 特征點(diǎn)提取

無(wú)人機(jī)影像拼接的第一步就是特征點(diǎn)提取。OpenCV視覺(jué)庫(kù)有很多特征點(diǎn)的定義,比如sift、surf、harris角點(diǎn)、ORB等,它們各有優(yōu)勢(shì)。采用SIFT特征來(lái)實(shí)現(xiàn)圖像拼接比較常用,盡管計(jì)算量大,但其穩(wěn)定性和精確度都很好。

OpenCV Python中SIFT特征點(diǎn)檢測(cè),是通過(guò)建立SIFT生成器,檢測(cè)SIFT特征點(diǎn)并描述算子來(lái)實(shí)現(xiàn)。

descriptor=cv2.xfeatures2d.SIFT_create()

(kps,features)=descriptor.detectAndCompute(gray,None)

3.2 特征點(diǎn)匹配

獲得圖像的特征點(diǎn)向量集合以后,就需要對(duì)特征點(diǎn)進(jìn)行匹配,即圖像A中的特征點(diǎn),根據(jù)其歐式距離的相似度,尋找圖像B中對(duì)應(yīng)的特征點(diǎn)。圖像的特征點(diǎn)數(shù)目很多,因此SIFT算法中采用了kd-tree的數(shù)據(jù)結(jié)構(gòu),降低了時(shí)間復(fù)雜度,大大提高了特征點(diǎn)搜索的效率。

匹配完成后,還應(yīng)根據(jù)一定的規(guī)則(如最近歐式距離與次近歐式距離的比值)進(jìn)行篩選,以選取優(yōu)秀的匹配點(diǎn)。

matcher=cv2.BFMatcher()

rawMatches=matcher.knnMatch(featuresA,featuresB,2)

matches=[]

for m in rawMatches:

iflen(m) == 2 and m[0].distance < m[1].distance*ratio:

matches.append((m[0].trainIdx,m[0].queryIdx))

3.3 圖像配準(zhǔn)

得到了兩幅待拼接圖的匹配點(diǎn)集后,接下來(lái)就要進(jìn)行圖像的配準(zhǔn),即將兩張圖像轉(zhuǎn)換為同一坐標(biāo)系下。這時(shí)需要使用OpenCV的findHomography函數(shù)來(lái)求單應(yīng)性變換矩陣。需要注意的是,findHomography函數(shù)所要用到的點(diǎn)集是float32類型的,所以需要對(duì)得到的點(diǎn)集再作一次處理,將其轉(zhuǎn)換為float32類型的點(diǎn)集。

單應(yīng)性變換矩陣的計(jì)算,需要繼續(xù)篩選可靠的匹配點(diǎn),使得匹配點(diǎn)更為精確。當(dāng)有效數(shù)據(jù)比無(wú)效數(shù)據(jù)要少的時(shí)候,最小二乘法就失效。因此本文采用RANSAC算法,即Random Sample Consensus (隨機(jī)一致性采樣)。RANSAC算法是隨機(jī)選擇幾個(gè)點(diǎn),用一個(gè)函數(shù)去擬合這幾個(gè)點(diǎn),給定一個(gè)σ,統(tǒng)計(jì)出在σ范圍之內(nèi)的點(diǎn)的個(gè)數(shù),也就是統(tǒng)計(jì)這個(gè)擬合函數(shù)的誤差率,當(dāng)誤差率小于一定值的時(shí)候停止迭代。

ptsA=np.float32([kpsA[i] for (_,i) in matches])

ptsB=np.float32([kpsB[i] for (i,_) in matches])

(H,status)=cv2.findHomography(ptsA,ptsB,cv2.RANSAC,reprojThresh)

最后是對(duì)采用單應(yīng)性變換矩陣對(duì)右圖像進(jìn)行透視變換,計(jì)算右圖像像素點(diǎn)在左圖像中的坐標(biāo),生成配準(zhǔn)圖像。

result=cv2.warpPerspective(imageB,H,(imageA.shape[1] + imageB.shape[1],imageA.shape[0]))

3.4 圖像融合

簡(jiǎn)單的圖像拼接方法,是直接將左圖像拷貝到配準(zhǔn)圖像。但是兩幅影像的拼接會(huì)不自然,原因在于拼接圖的交界處,兩幅圖像因?yàn)楣庹丈珴伞⑵ヅ渚鹊脑蚴沟眠^(guò)渡很不均勻,所以需要進(jìn)行特定的處理。本文采用的思路是加權(quán)融合,即在圖像的重疊區(qū)域?qū)⑾袼刂蛋匆欢ǖ臋?quán)值融合成新的圖像。

result[0:imageA.shape[0],0:x]=imageA[:,:x]

rows,right_col=imageA.shape[:2]

forcol in range(x,right_col):

forrow in range(rows):

if result[row,col,0]==0 and result[row,col,0]==0 and result[row,col,0]==0:

alpha=1.0

else:

alpha=((right_col-x)-(col-x))/float(right_col-x)

result[row,col]=imageA[row,col]*alpha+result[row,col]*(1-alpha)

注:x,right_col是重疊區(qū)的左右邊界。

4 結(jié)果及分析

本文以無(wú)人機(jī)航拍的照片為例進(jìn)行試驗(yàn)分析。像幅為 5 472×3 648,焦距 8.8 cm,感應(yīng)器尺寸 13.2 mm,如圖1所示。

圖1 無(wú)人機(jī)航拍圖像

特征點(diǎn)提取中,創(chuàng)建SIFT的SIFT_create函數(shù)有一個(gè)參數(shù)nfeatures,它是確定返回特征點(diǎn)的個(gè)數(shù)。因?yàn)闊o(wú)人機(jī)航拍影像分辨率非常高,特征點(diǎn)數(shù)量巨大,會(huì)大大影響后續(xù)的特征點(diǎn)匹配效率,甚至導(dǎo)致系統(tǒng)崩潰。所以需要對(duì)返回的特征點(diǎn)數(shù)進(jìn)行限定,經(jīng)試驗(yàn)比較,nfeatures=2 500時(shí),不會(huì)影響圖像匹配的效果。特征點(diǎn)匹配情況如圖2所示。

圖2 特征點(diǎn)匹配

根據(jù)匹配點(diǎn)計(jì)算出兩張圖像重疊區(qū)域的單應(yīng)性轉(zhuǎn)換矩陣,并由轉(zhuǎn)換矩陣對(duì)右圖像進(jìn)行透視變換,計(jì)算出其在左圖像坐標(biāo)系中的坐標(biāo),如圖3所示。

圖3 圖像配準(zhǔn)

最后是圖像的融合。簡(jiǎn)單的融合,把左圖像拷貝到配準(zhǔn)圖像即可,但在接縫處會(huì)出現(xiàn)明顯的色差。而且因?yàn)槠ヅ渚鹊脑颍瑫?huì)出現(xiàn)紋理錯(cuò)位的情況,如圖4所示。如果采用加權(quán)融合,就能很好地避免這個(gè)問(wèn)題。需要指出的是,加權(quán)融合是在重疊區(qū)域內(nèi)逐個(gè)像素進(jìn)行比較和計(jì)算,對(duì)圖像拼接處理的效率會(huì)有較大影響。采用加權(quán)融合后,航片拼接的結(jié)果如圖5、圖6所示。

圖4 圖像融合

圖5 圖像加權(quán)融合

圖6 圖像拼接結(jié)果

整體測(cè)區(qū)的圖像拼接結(jié)果如圖7所示。本文研究的方法基本能滿足小區(qū)域圖像快速拼接,并快速制作整體影像成果。其優(yōu)點(diǎn)是便捷、輕量,能根據(jù)需求量身定制,避免購(gòu)買昂貴商業(yè)軟件,缺點(diǎn)是不能實(shí)現(xiàn)高效率、高精度正射影像的制作。

圖7 整體測(cè)區(qū)拼接結(jié)果

5 結(jié) 論

本文以O(shè)penCV計(jì)算機(jī)視覺(jué)庫(kù)和SIFT算法為基礎(chǔ),采用Python開(kāi)發(fā)語(yǔ)言,對(duì)無(wú)人機(jī)航拍影像的拼接技術(shù)進(jìn)行了研究和試驗(yàn),取得了較好的結(jié)果,在實(shí)際生產(chǎn)中得到了應(yīng)用。但是本文沒(méi)有將這一拼接技術(shù)在不同測(cè)區(qū)進(jìn)行試驗(yàn)比較,所以在建筑物密集區(qū)域或大面積植被、水域分布的區(qū)域,拼接效果如何還需要進(jìn)一步研究。另外,由于受無(wú)人機(jī)航拍時(shí)的穩(wěn)定性、飛行姿態(tài)的影響,航拍圖像會(huì)有較大的變形,而拼接影像沒(méi)有經(jīng)過(guò)地面控制和正射糾正處理,其精度怎樣也有待進(jìn)一步評(píng)估。

猜你喜歡
特征融合
抓住特征巧觀察
一次函數(shù)“四融合”
村企黨建聯(lián)建融合共贏
融合菜
從創(chuàng)新出發(fā),與高考數(shù)列相遇、融合
寬窄融合便攜箱IPFS500
新型冠狀病毒及其流行病學(xué)特征認(rèn)識(shí)
《融合》
如何表達(dá)“特征”
不忠誠(chéng)的四個(gè)特征
主站蜘蛛池模板: 热热久久狠狠偷偷色男同| 亚洲国产精品日韩欧美一区| 欧美色图久久| 亚洲精品国偷自产在线91正片| 欧美日韩精品一区二区视频| 4虎影视国产在线观看精品| 亚洲综合精品香蕉久久网| 久久综合九色综合97婷婷| 国产精品成人一区二区不卡 | 中国国语毛片免费观看视频| julia中文字幕久久亚洲| 美女无遮挡免费视频网站| 在线精品亚洲一区二区古装| 尤物亚洲最大AV无码网站| 国产一国产一有一级毛片视频| 青青草综合网| 欧美在线精品怡红院| 97精品国产高清久久久久蜜芽| 91精品国产91久无码网站| 国产精品无码AV中文| 精品国产一二三区| 国产三级视频网站| 91av成人日本不卡三区| 88av在线播放| 亚洲乱码在线播放| 久久黄色一级视频| 四虎精品黑人视频| 91欧美亚洲国产五月天| 国产成人1024精品下载| 国产欧美精品专区一区二区| 欧美三级日韩三级| 国产在线自在拍91精品黑人| 久久久久国产精品免费免费不卡| 国产精品一区在线麻豆| JIZZ亚洲国产| 在线a网站| 黄色网在线免费观看| 欧美第九页| 在线视频一区二区三区不卡| h视频在线观看网站| 日韩欧美高清视频| 日韩成人在线网站| 久久久久九九精品影院| 欧美性爱精品一区二区三区| 国产农村1级毛片| 国产一区二区免费播放| 婷婷综合在线观看丁香| 狂欢视频在线观看不卡| 波多野结衣中文字幕久久| 亚洲 欧美 偷自乱 图片| 精品伊人久久久久7777人| 国产精品亚洲日韩AⅤ在线观看| 污视频日本| 欧美色视频在线| 久久99久久无码毛片一区二区| 尤物午夜福利视频| 最新国产精品鲁鲁免费视频| 亚洲一级毛片| 欧美三级视频网站| 婷婷在线网站| 日韩无码视频专区| 九九热精品视频在线| 毛片免费网址| 美女一级免费毛片| 久久先锋资源| 国产精品永久在线| 久久www视频| 大学生久久香蕉国产线观看| 国产成人精品18| 欧美日韩一区二区在线免费观看| 国产尤物视频在线| 精品色综合| 国产日韩精品欧美一区灰| 狠狠v日韩v欧美v| 成人av手机在线观看| 狠狠色狠狠色综合久久第一次| 亚洲第一色网站| 中国国产高清免费AV片| 99在线视频免费| 亚洲精品黄| 污污网站在线观看| 国产精品丝袜在线|