亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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.杭州市錢(qián)投集團(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ú)法滿(mǎn)足應(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ī)影像快速拼接??焖儆跋裆a(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++類(lèi)構(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)了專(zhuān)利保護(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類(lèi)型的,所以需要對(duì)得到的點(diǎn)集再作一次處理,將其轉(zhuǎn)換為float32類(lèi)型的點(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所示。本文研究的方法基本能滿(mǎn)足小區(qū)域圖像快速拼接,并快速制作整體影像成果。其優(yōu)點(diǎn)是便捷、輕量,能根據(jù)需求量身定制,避免購(gòu)買(mǎi)昂貴商業(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è)特征
        国产亚洲精品综合在线网址| 亚洲日韩一区二区一无码| 欧洲极品少妇| 亚洲第一无码精品久久| 丰满人妻无套内射视频| 国产精品日韩经典中文字幕| 欧美video性欧美熟妇| 亚洲va欧美va国产综合| 国产极品美女到高潮视频| 中文字幕色资源在线视频| 无码熟妇人妻av在线影片最多| 国产亚洲一区二区手机在线观看| 久久国产乱子伦精品免费强| 饥渴少妇一区二区三区| 狠狠cao日日橹夜夜十橹| 亚洲性爱视频| av色综合网站| 色噜噜色哟哟一区二区三区| 绝顶高潮合集videos| 特级婬片国产高清视频| 久久久久国产亚洲AV麻豆| 男女视频在线观看一区二区| 亚洲国产亚综合在线区| 丰满少妇大力进入av亚洲| 狠狠干视频网站| 久久精品国产亚洲av豆腐| 成人麻豆日韩在无码视频| 欧美熟妇精品一区二区三区| 国产成人丝袜在线无码| 亚洲精品久久视频网站| 色婷婷综合久久久久中文字幕| 四虎永久免费影院在线| 综合人妻久久一区二区精品| 久久无码高潮喷水抽搐| 日本japanese少妇高清| 亚洲午夜久久久久中文字幕久| 美女被内射中出在线观看 | 一区二区在线观看日本免费| 免费无遮挡无码永久在线观看视频| 欧美巨大xxxx做受l| 果冻国产一区二区三区|