羅林
摘要:在景點(diǎn)導(dǎo)游系統(tǒng)、戶外廣告等增強(qiáng)現(xiàn)實(shí)系統(tǒng)中,戶外建筑物識(shí)別有較大的應(yīng)用價(jià)值。本文討論了一種戶外建筑物的識(shí)別方法,其特點(diǎn)是把整個(gè)系統(tǒng)分為服務(wù)器/客戶端設(shè)計(jì)。設(shè)計(jì)中,在服務(wù)器端可以利用服務(wù)器強(qiáng)大的計(jì)算及存儲(chǔ)能力來(lái)計(jì)算感興趣區(qū)域(POI)的建筑物的ORB特征;客戶端通過(guò)攝像頭等設(shè)備抓取視頻幀并獲取當(dāng)前視頻幀的ORB特征傳遞給服務(wù)器;服務(wù)器通過(guò)漢明距離匹配這兩組ORB特征,得到最匹配的建筑物信息返回給客戶端。為了提高識(shí)別效率,預(yù)先將POI劃分成二維網(wǎng)格,并根據(jù)客戶端的GPS信息定位在其中一個(gè)單元格中,匹配時(shí),只需要遍歷比較已定位單元格的8個(gè)鄰域中的建筑物即可。
關(guān)鍵詞:建筑物識(shí)別;ORB;GPS;服務(wù)器
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)28-0127-02
Outdoor Building Identification Method Based on ORB Features
LUO Lin
(Guangzhou University Huaruan Software College, Guangzhou 510990, China)
Abstract: In the scenic spot guide system, outdoor advertising and other augmented reality system, outdoor building identification has great application value. This paper discuss a method for the identification of outdoor buildings, which divide the system into server / client component. In this design, on the server side can use servers powerful computing and storage capacity to calculate the orb features of region of interest (POI) buildings; client through video cameras capture video frames and obtain the orb features of current video frame and send it to the server; the server use hamming distance matching method match the two sets of orb feature, get the best matches of the building information and send it back to the client. In order to improve the recognition efficiency, POI is divided into grids, and according to the client's GPS information, location the client in one of the cells, do matching work, only need to traverse and compare to the 8 neighbourhood cells building .
Key words:building identification;ORB;GPS;Server
1 概述
“城市增強(qiáng)現(xiàn)實(shí)是當(dāng)前增強(qiáng)現(xiàn)實(shí)的應(yīng)用熱點(diǎn),在城市增強(qiáng)現(xiàn)實(shí)中往往使用提示信息來(lái)為用戶做出與城市內(nèi)建筑景物等相關(guān)的提示”[1],這些提示信息可以用作公共信息服務(wù)或者戶外廣告,具有極大的應(yīng)用價(jià)值。
要實(shí)現(xiàn)城市建筑物的增強(qiáng)現(xiàn)實(shí)信息提示的關(guān)鍵點(diǎn)是要實(shí)現(xiàn)建筑物的識(shí)別。在城市增強(qiáng)現(xiàn)實(shí)應(yīng)用中的典型場(chǎng)景是用戶手持如iPhone這樣的移動(dòng)設(shè)備,將其攝像頭對(duì)準(zhǔn)場(chǎng)景中保持一小段時(shí)間,應(yīng)用程序則需要根據(jù)攝像頭捕獲的視頻幀與預(yù)先獲取的建筑物的參考圖像匹配,并根據(jù)匹配的結(jié)果,在移動(dòng)設(shè)備的屏幕上顯示出相應(yīng)的提示信息。
實(shí)現(xiàn)圖像匹配,可以利用SIFT、SURF、ORB等算法抽取圖像的特征點(diǎn)。其中SIFT、SURF算法準(zhǔn)確度較高,但執(zhí)行效率較低,不適合應(yīng)用在實(shí)時(shí)運(yùn)行的環(huán)境中。而“在計(jì)算速度方面,ORB是SIFT的100倍左右,是SURF的10倍左右,可以滿足實(shí)時(shí)的特征匹配”[2]。因此,在建筑物識(shí)別時(shí),可以利用ORB[3]算法抽取圖像特征點(diǎn),然后使用漢明距離匹配視頻幀圖像與參考圖像。
在建筑物識(shí)別時(shí),應(yīng)用程序會(huì)預(yù)先生成具有興趣點(diǎn)(POI)的若干建筑物的ORB特征。如果應(yīng)用的范圍比較廣,建筑物較多,那么進(jìn)行ORB特征匹配時(shí),需要匹配檢測(cè)的圖像太多,會(huì)嚴(yán)重拖慢匹配速度,用戶體驗(yàn)不好。而iPhone這樣的移動(dòng)設(shè)備具有GPS芯片,可以得到自身的GPS信息,所以,可以利用GPS信號(hào)對(duì)建筑物參考圖像進(jìn)行篩選,只匹配移動(dòng)設(shè)備周圍有限的建筑參考圖像,提高匹配速度。
由于移動(dòng)設(shè)備的性能限制,也為了便于更新系統(tǒng)中各建筑物的信息,在是建筑物識(shí)別系統(tǒng)時(shí),應(yīng)該分為服務(wù)器端及客戶端應(yīng)用程序。如圖1的活動(dòng)圖所示。
2 服務(wù)器設(shè)計(jì)
如圖1,服務(wù)器需要不停監(jiān)聽(tīng)客戶端發(fā)送過(guò)來(lái)的識(shí)別信息,并做出響應(yīng)。因此采用高效的服務(wù)器模型有助于提高整個(gè)系統(tǒng)的性能,給使用者帶來(lái)較好的體驗(yàn)。在目前的網(wǎng)絡(luò)通信開(kāi)發(fā)庫(kù)中,BOOST.Asio“以其良好的性能,靈活的用法,支持高并發(fā)的IO處理,以及強(qiáng)大的跨平臺(tái)支持,逐漸成為C++網(wǎng)絡(luò)庫(kù)的工業(yè)化標(biāo)準(zhǔn),被越來(lái)越多的網(wǎng)絡(luò)應(yīng)用作為基礎(chǔ)框架”[4]。 因此服務(wù)器通信層的設(shè)計(jì)可以采用BOOST.Asio開(kāi)發(fā)庫(kù)作為底層網(wǎng)絡(luò)通信技術(shù)手段,并利用其異步通信機(jī)制創(chuàng)建一個(gè)高效的基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信層[5]。服務(wù)器與客戶端的通信協(xié)議表1所示:
圖2所示網(wǎng)格是將系統(tǒng)所包含的區(qū)域按同樣寬度及高度w劃分成網(wǎng)格,將用戶的GPS坐標(biāo)整除w就可以快速定位到網(wǎng)格中的某一個(gè)單元格上。假設(shè)p是用戶GPS定位到的單元格,那么系統(tǒng)只需要用p周圍的8個(gè)鄰域中的建筑物進(jìn)行特征匹配,而超出這8個(gè)鄰域的其他單元格中的建筑物因?yàn)榫嚯xp較遠(yuǎn)而不用考慮。如圖2,只需要匹配建筑物A、B的ORB特征,而C、D、E因?yàn)榫嚯x較遠(yuǎn),不需要計(jì)算,從而提高了系統(tǒng)的性能。
如表1,客戶端還會(huì)上傳當(dāng)前視頻幀的特征點(diǎn)數(shù)組k2及特征描述數(shù)組d2,服務(wù)器要用這些信息與數(shù)據(jù)庫(kù)中記錄的p點(diǎn)附近的建筑物做特征匹配,其方法是遍歷p點(diǎn)附近的建筑物參考圖像,得到它們存在數(shù)據(jù)庫(kù)中的特征點(diǎn)k1及特征點(diǎn)描述序列d1,利用OpenCV庫(kù)中的cv::BFMatcher對(duì)象的match方法按照漢明距離做匹配d1、d2,得到匹配點(diǎn)集合matches。將matches按照漢明距離做升序排序,取一定數(shù)量(假定100個(gè))的匹配點(diǎn)放到集合good_matches中。在good_matches中還有可能存在錯(cuò)誤的匹配,為了剔除這些錯(cuò)誤的匹配,可以使用RANSAC算法對(duì)good_matches中的匹配點(diǎn)進(jìn)行篩選。通過(guò)篩選后,對(duì)于正確的匹配,在good_matches集合中還能保留較多的匹配點(diǎn),而錯(cuò)誤的匹配在good_matches集中中只能留下很少的匹配點(diǎn),如圖3所示。而具有較多匹配點(diǎn)的參考圖像即當(dāng)前視頻幀中所包含的建筑物,將該建筑物相應(yīng)的提示信息發(fā)送給客戶端。
(a)正確的匹配(較多匹配點(diǎn))
(b)錯(cuò)誤的匹配(很少匹配點(diǎn))
3 客戶端設(shè)計(jì)
客戶端基于iPhone設(shè)計(jì)。其步驟如下:
1)客戶端的功能首先要打開(kāi)攝像頭捕獲視頻。在IOS平臺(tái)可以使用AvFoundation類庫(kù)中的AVCaptureSession對(duì)象打開(kāi)攝像頭捕獲視頻。在AVCaptureSession的委托方法captureOutput里將捕獲到的數(shù)據(jù)轉(zhuǎn)換為OpenCV中的Mat對(duì)象vm,便于下一步處理;
2)同服務(wù)器,用OpenCV視覺(jué)庫(kù)中的ORB特征檢測(cè)對(duì)象提取vm的特征點(diǎn)序列k2,特征點(diǎn)描述序列d2;
3)使用IOS定位服務(wù)得到GPS信息,即使用CoreLocation.framework中的CLLocationManager對(duì)象開(kāi)啟定位服務(wù),在其委托方法中得到GPS信息g;
4)將g、k3、d3按照表1所示通信協(xié)議打包數(shù)據(jù)幀,使用socket發(fā)送給監(jiān)聽(tīng)的服務(wù)器,等待服務(wù)器返回匹配結(jié)果;
5)如果匹配,則在屏幕上用標(biāo)簽或者文本框等控件將服務(wù)器返回的提示信息顯示出來(lái),否則不顯示任何信息。
客戶端設(shè)計(jì)時(shí)要注意,特征匹配比對(duì)是耗時(shí)的,所以在客戶端不能在每幀都發(fā)送待匹配的信息,可以采用標(biāo)記來(lái)記錄服務(wù)器匹配是否完成,在已經(jīng)完成了匹配驗(yàn)證的情況下,再發(fā)送新的視頻幀。
4 結(jié)語(yǔ)
本文討論了一種基于ORB特征匹配的戶外建筑物識(shí)別方法,使用此方法能較快從視頻幀圖像中識(shí)別出目標(biāo)建筑物,并受旋轉(zhuǎn)、光照等影響較小,具有較強(qiáng)的健壯性及容錯(cuò)性。該方法在戶外景點(diǎn)導(dǎo)游或者戶外建筑物廣告等熱點(diǎn)應(yīng)用中有較高的實(shí)用價(jià)值。在今后的工作中,需要進(jìn)一步提高這種方法的匹配速度,使用戶體驗(yàn)有更進(jìn)一步的提升。
參考文獻(xiàn):
[1] 葛林,莊曉斌,華煒,萬(wàn)華根.面向城市增強(qiáng)現(xiàn)實(shí)的高融合度信息標(biāo)注方法[J].系統(tǒng)仿真學(xué)報(bào),2014,26(9):2015-2022.
[2] 任結(jié),周余,于耀,等.基于 ORB 自然特征的 AR 實(shí)時(shí)系統(tǒng)實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2012,
[3] 肖斌,江弋,林凡.基于 ORB 和 KLT 的移動(dòng)增強(qiáng)現(xiàn)實(shí)三維注冊(cè)算法[J].計(jì)算機(jī)與現(xiàn)代化,2014(3):57-60.
[4] 吳克松,陳浩然,董建平.基于IOCP的Boost.Asio的研究及在高清MCU中的應(yīng)用[J].數(shù)據(jù)通信,2015(2):11-14.
[5] 胡楊,梁防昕.異步模型Asio的應(yīng)用與分析[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2008(11):69-72.