亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenSceneGraph的校園可視化系統(tǒng)研究與實(shí)現(xiàn)

        2020-03-15 10:15:18劉子桓
        現(xiàn)代計(jì)算機(jī) 2020年4期
        關(guān)鍵詞:漫游可視化攝影

        劉子桓

        (四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)

        0 引言

        隨著信息技術(shù)的不斷發(fā)展,校園信息化水平不斷提升,智慧校園建設(shè)應(yīng)運(yùn)而生??梢暬侵腔坌@信息化的基礎(chǔ),通過可視化系統(tǒng)既能向師生展示校園風(fēng)貌,又能方便校方對校園進(jìn)行管理。因此,研究實(shí)現(xiàn)校園可視化系統(tǒng)具有重大意義。

        實(shí)現(xiàn)校園可視化需要校園的模型數(shù)據(jù),然而通過手工建模的方式創(chuàng)建校園模型需要花費(fèi)大量的人力和時(shí)間,不能滿足智慧校園可視化建設(shè)需求。近年來,隨著無人機(jī)技術(shù)的飛速發(fā)展,對可視化建模提供了巨大支持[1]。無人機(jī)技術(shù)結(jié)合傾斜攝影測量技術(shù),改變了以往遙感影像只能從單一方向拍攝的現(xiàn)狀,實(shí)現(xiàn)多臺設(shè)備從不同的角度進(jìn)行數(shù)據(jù)采集的功能[2]。通過使用搭載多臺傾斜攝影測量設(shè)備的無人機(jī),能準(zhǔn)確、真實(shí)客觀地反映校園實(shí)際情況,滿足了快速生成校園三維模型的需求。同時(shí),隨著硬件不斷升級以及計(jì)算機(jī)圖形學(xué)的快速發(fā)展,以O(shè)penSceneGraph為代表的一系列場景可視化系統(tǒng)和渲染引擎日益成熟[3]。三維數(shù)據(jù)可視化技術(shù)不斷進(jìn)步,為實(shí)現(xiàn)校園可視化建設(shè)提供了巨大幫助。

        本文以實(shí)現(xiàn)智慧校園建設(shè)中校園可視化目標(biāo),設(shè)計(jì)實(shí)現(xiàn)一套可視化系統(tǒng)用于校園模型數(shù)據(jù)可視化。校園模型數(shù)據(jù)來自于無人機(jī)拍攝的校園影像,系統(tǒng)以O(shè)penSceneGraph作為三維渲染引擎,對校園模型數(shù)據(jù)進(jìn)行調(diào)度、渲染。同時(shí),為了更好地向用戶展示校園風(fēng)貌,系統(tǒng)支持場景漫游功能,用戶能選擇不同的漫游方式,在校園場景中進(jìn)行漫游。

        1 相關(guān)技術(shù)

        1.1 傾斜攝影測量技術(shù)簡介

        傾斜攝影測量與正射影像測量不同,正射影像測量只能從單一角度對物體進(jìn)行拍攝。而使用搭載多個(gè)相機(jī)的飛行平臺,能同時(shí)從垂直方向和四個(gè)傾斜方向五個(gè)不同角度采集數(shù)據(jù)[4]。同時(shí)傾斜攝影測量技術(shù)具有體量小、真實(shí)度高、花費(fèi)低等特點(diǎn),在場景可視化建設(shè)中能快速收集數(shù)據(jù),降低場景三維建模成本。與此同時(shí),由于傾斜攝影測量技術(shù)采用多個(gè)相機(jī)進(jìn)行拍攝,在建模時(shí)紋理可以批量提取,相比正射影像測量后期需要手工處理紋理偏差付出的代價(jià)小很多。

        傾斜攝影測量技術(shù)日漸成熟,處理傾斜攝影測量數(shù)據(jù)的軟件也推陳出新。目前,處理傾斜攝影測量數(shù)據(jù)的軟件市場大都是由國外公司把控,主要代表有法國Acute3D的Smart3DCapture、美國Pictometry公司的Pictometry系統(tǒng)、徠卡公司的LPS[5]工作站等。通過這些軟件,能將傾斜攝影測量得到的數(shù)據(jù)進(jìn)行自動處理,快速地生成場景模型。通常來說,上述軟件通過傾斜攝影測量數(shù)據(jù)進(jìn)行三維場景建模一般包括以下幾個(gè)步驟:

        (1)獲取原始數(shù)據(jù):一般來說,通過傾斜攝影測量數(shù)據(jù)進(jìn)行三維場景建模需要正射影像、傾斜影像以及POS(Position and Orientation System)數(shù)據(jù)三種數(shù)據(jù),這些數(shù)據(jù)都能由無人機(jī)的各種傳感器提供。

        (2)原始數(shù)據(jù)處理:主要是對正射影像、傾斜影像進(jìn)行篩選,通過空中三角測量計(jì)算(Aerotriangulation)、幾何糾正等手段將原始數(shù)據(jù)轉(zhuǎn)化為大規(guī)模的點(diǎn)云數(shù)據(jù)。

        (3)模型構(gòu)建:有了大規(guī)模點(diǎn)云數(shù)據(jù),就能通過點(diǎn)云的拼接和重建技術(shù)實(shí)現(xiàn)點(diǎn)云的三維重建,生成幾何模型。然后將得到幾何模型通過原始影像進(jìn)行紋理映射,最后即可輸出具有真實(shí)感的場景三維模型。

        經(jīng)過以上幾個(gè)步驟,就能實(shí)現(xiàn)拍攝的傾斜攝影圖像到三維場景建模的轉(zhuǎn)化。圖1顯示了通過傾斜攝影技術(shù)進(jìn)行三維場景建模的一般流程。

        1.2 OpenSceneGraph三維引擎簡介

        OpenSceneGraph是一個(gè)基于工業(yè)圖形標(biāo)準(zhǔn)OpenGL的高層次圖形開發(fā)API接口。通過它,程序員能更加快速便捷地創(chuàng)建高性能、跨平臺的交互式圖形程序[6]。作為一個(gè)開源圖形引擎,OpenSceneGraph具有很多封裝庫,通過這些庫提供的功能,用戶能方便地開發(fā)程序,實(shí)現(xiàn)自己的需求。常用的庫有以下幾種[7]:

        (1)osg庫:它包含OpenSceneGraph引擎的核心內(nèi)容,提供三維引擎所需的一些基本功能,定義一些數(shù)據(jù)結(jié)構(gòu),如用于向量和矩陣運(yùn)算的類,以及用于描述渲染狀態(tài)的類等等。

        (2)osgDB庫:它包含文件處理和加載部分,通過它能實(shí)現(xiàn)對文件讀寫以及模型處理相關(guān)功能。一般來說用于場景可視化的數(shù)據(jù)量都比較大,直接對整個(gè)場景進(jìn)行渲染是不可能的。osgDB中的DatabasePager提供了對數(shù)據(jù)進(jìn)行管理的方式,在實(shí)際渲染過程中加載不同的細(xì)節(jié)層次(Level Of Detail,LOD)模型進(jìn)行渲染,同時(shí)使用PagedLOD技術(shù)[8]對過期的模型進(jìn)行卸載并從內(nèi)存中移除,保證內(nèi)存不會超出限制。

        (3)osgGA庫:它是提供交互控制功能的部分,通過它能實(shí)現(xiàn)平臺無關(guān)的用戶交互控制。

        (4)osgViewer庫:它提供渲染相關(guān)功能,包括場景、視口、視窗等相關(guān)部分。

        由以上幾個(gè)模塊,可以組成一個(gè)具備基礎(chǔ)交互功能的渲染程序,它的基本結(jié)構(gòu)如圖2所示。

        圖2 基于OpenSceneGraph的渲染程序示意圖

        2系統(tǒng)實(shí)現(xiàn)

        2.1 校園傾斜攝影測量數(shù)據(jù)采集

        為了實(shí)現(xiàn)校園可視化系統(tǒng),首先需要得到校園的模型數(shù)據(jù)。本文通過搭載多個(gè)相機(jī)和多種傳感器的無人機(jī)進(jìn)行對校園進(jìn)行數(shù)據(jù)采集,通過傾斜攝影測量技術(shù),獲取用于建模的數(shù)據(jù)。為了取得傾斜攝影測量數(shù)據(jù),需要事先規(guī)劃無人機(jī)飛行線路,將無人機(jī)運(yùn)行軌跡設(shè)定好。本文數(shù)據(jù)采集使用了無人機(jī)的往返飛行模式,無人機(jī)在設(shè)定好的路線往返飛行,并且在每次掉頭同時(shí)移動一定的偏移量,達(dá)到對一片區(qū)域覆蓋拍攝的目的。同時(shí),為保證良好的拍攝效果,將無人機(jī)飛行高度設(shè)定在距地面30至50米上空,并將相機(jī)光圈值設(shè)定為f/5、曝光時(shí)間為1/320秒進(jìn)行拍攝。

        本文通過無人機(jī)進(jìn)行傾斜攝影測量方式,對校園進(jìn)行了拍攝,實(shí)際采集到有效數(shù)據(jù)共計(jì)6967張圖片,每張圖片分辨率為5472×3648,共計(jì)為大小55.4GB。

        2.2 傾斜攝影測量數(shù)據(jù)自動建模

        為了處理通過無人機(jī)拍攝的傾斜攝影測量數(shù)據(jù),本文采用Smart3DCapture對采集到的數(shù)據(jù)進(jìn)行自動建模處理。實(shí)現(xiàn)傾斜攝影測量數(shù)據(jù)自動建模步驟如下:

        (1)導(dǎo)入數(shù)據(jù):將拍攝數(shù)據(jù)導(dǎo)入到Smart3DCapture中。因?yàn)檐浖淮文芴幚淼臄?shù)據(jù)量有限(不能超過30G像素),加之實(shí)驗(yàn)環(huán)境硬件設(shè)備的限制,本文將拍攝到的6967張圖片分成7個(gè)數(shù)據(jù)包分別處理,每個(gè)數(shù)據(jù)包約為1000張圖片,大小在8GB左右,大約有20G像素。

        (2)空中三角測量計(jì)算:將拍攝數(shù)據(jù)導(dǎo)入到Smart3DCapture中后,Smart3DCapture會根據(jù)圖片帶有的POS信息進(jìn)行空中三角測量計(jì)算。它會進(jìn)行關(guān)鍵點(diǎn)提取,分析POS數(shù)據(jù),得到點(diǎn)云數(shù)據(jù)。

        (3)三維重建及紋理映射處理:將得到的點(diǎn)云數(shù)據(jù)進(jìn)行三維重建,產(chǎn)生如圖3所示的網(wǎng)格模型。完成后再進(jìn)行紋理映射處理即可輸出模型數(shù)據(jù)。輸出模型文件時(shí)會要求選擇輸出的模型格式,本文渲染引擎使用OpenSceneGraph,為了方便使用,輸出的模型文件格式選擇 OpenSceneGraph Binary(OSGB)格式。

        圖3 三維重建產(chǎn)生的網(wǎng)格模型

        2.3 校園可視化系統(tǒng)實(shí)現(xiàn)

        本文將校園可視化系統(tǒng)分為三個(gè)模塊進(jìn)行實(shí)現(xiàn),如圖4所示。下面分別介紹各個(gè)模塊的具體功能和實(shí)現(xiàn)。

        圖4 校園可視化系統(tǒng)架構(gòu)示意圖

        (1)初始化模塊

        初始化模塊對整個(gè)系統(tǒng)進(jìn)行初始化,由以下幾個(gè)子模塊組成:

        ①系統(tǒng)初始化子模塊:系統(tǒng)啟動后會讀取初始化文件InitValue.ini,將文件中記錄系統(tǒng)初始化的內(nèi)容加載到系統(tǒng)中來,并記錄到結(jié)構(gòu)體SInitValue中,之后再通過SInitValue的值對系統(tǒng)進(jìn)行設(shè)置。SInitValue的聲明如下:

        其中WindowWidth和WindowHeight分別為程序窗口寬和高。OSGBFilePath表示使用Smart3DCapture生成的OSGB模型文件所在目錄。BeginTileNumber和EndTileNumber表示加載模型的開始塊序號和終止塊序號,通過這兩個(gè)序號可以控制整個(gè)校園模型是否全部加載。當(dāng)BeginTileNumber大于EndTileNumber時(shí)認(rèn)為加載全部模型,其他情況則加載序號為BeginTile-Number到EndTileNumber之間每一個(gè)模型塊(Tile)。

        ②場景瀏覽器初始化子模塊:在系統(tǒng)初始化子模塊完成后,場景瀏覽器初始化子模塊讀取SceneViewer-Config.cfg文件,將場景瀏覽器有關(guān)的設(shè)置加載到系統(tǒng)中來,并完成場景設(shè)置。主要設(shè)置參數(shù)有LightSource和MaximumNumberOfPageLOD兩個(gè)。對光源的設(shè)置包括光源的位置、數(shù)量以及它們的Ambient、Diffuse、Specular三種材質(zhì)分量的設(shè)定。MaximumNumberOf-PageLOD則是用來控制OpenSceneGraph中PagedLOD數(shù)量最大值,其作用是防止內(nèi)存占用過多。OpenScene-Graph處理MaximumNumberOfPageLOD的值有兩種情況:當(dāng)MaximumNumberOfPageLOD被設(shè)置為0時(shí),使用超期刪除模式,DatabasePager會依據(jù)系統(tǒng)運(yùn)行的幀號刪除過期的LOD子節(jié)點(diǎn);而當(dāng)MaximumNumberOf-PageLOD大于0時(shí),使用超過數(shù)量刪除模式,當(dāng)系統(tǒng)中LOD子節(jié)點(diǎn)數(shù)量大于這個(gè)值時(shí),DatabasePager開始刪除內(nèi)存中的LOD子節(jié)點(diǎn)直到LOD子節(jié)點(diǎn)數(shù)量小于MaximumNumberOfPageLOD為止。

        ③漫游器初始化子模塊:在場景瀏覽器初始化完成之后,漫游器初始化子模塊開始運(yùn)行,將SceneVisitorConfig.cfg中的內(nèi)容加載到系統(tǒng)中來,記錄到結(jié)構(gòu)體SVisitorConfig中,以便后續(xù)漫游模塊使用。SVisitor-Config的聲明如下:

        其中VisitorDefaultPosition表示漫游器的初始位置。VisitStrategy表示使用的漫游模式。ChangeDirectionFrameID、ResetVisitorFrameID、BoundaryWidth以及BoundaryLength是在使用隨機(jī)漫游模式時(shí)才會生效的值,分別表示每經(jīng)過ChangeDirectionFrameID幀改變漫游器的方向以及每經(jīng)過ResetVisitorFrameID幀重置漫游器位置。BoundaryWidth和BoundaryLength表示邊界長和寬的最大值,當(dāng)漫游器超出邊界時(shí)會隨機(jī)重置位置。

        (2)渲染模塊

        渲染模塊由OpenSceneGraph完成。在Open-SceneGraph引擎中,一次渲染循環(huán)過程主要由Viewer-Base對象響應(yīng)事件、更新場景圖以及對場景圖進(jìn)行渲染三個(gè)部分組成。它采用遍歷的方式,對不同的過程做出不同的響應(yīng)。

        在校園可視化系統(tǒng)中,通過渲染模塊對系統(tǒng)初始化子模塊中加載的模型塊進(jìn)行響應(yīng),系統(tǒng)遍歷所有加載的模型塊,完成渲染工作。對于這些模型塊來說,它們在校園可視化系統(tǒng)的渲染模塊中會經(jīng)過以下處理步驟:

        ①事件遍歷:事件遍歷就是對Viewer的實(shí)際操作做出響應(yīng),包括UI的控制、鍵盤的響應(yīng)、相機(jī)的回調(diào)等操作。在校園可視化系統(tǒng)中,沒有太多復(fù)雜的事件需要響應(yīng)。除去響應(yīng)計(jì)時(shí)器對遍歷事件開始的時(shí)間和結(jié)束時(shí)間的記錄操作外,主要響應(yīng)的操作是通過漫游控制模塊傳入的對相機(jī)進(jìn)行的鍵盤操作、鼠標(biāo)操作以及窗口大小改變等UI控制操作。

        ②更新遍歷:更新遍歷主要完成對場景圖的更新。在校園可視化系統(tǒng)中,主要是通過DatabasePager對模型塊進(jìn)行內(nèi)存管理,包括刪除過期模型塊的LOD子節(jié)點(diǎn),加入新的期望顯示模型塊的LOD子節(jié)點(diǎn)等操作。

        ③渲染遍歷:渲染遍歷主要完成對場景圖的渲染相關(guān)工作。在校園可視化系統(tǒng)中,主要是包括對場景中視錐體外的模型進(jìn)行剔除,對需要渲染的節(jié)點(diǎn)進(jìn)行渲染兩個(gè)基本功能。

        (3)漫游控制模塊

        漫游控制模塊提供漫游方式控制,包括自由操作模式,隨機(jī)漫游模式和指定路線漫游模式。無論是使用哪種漫游方式,漫游控制模塊本質(zhì)上都是通過對相機(jī)的View Matrix進(jìn)行操作,改變相機(jī)在場景中的位置以及觀察視角來實(shí)現(xiàn)的。下面介紹本文中的三種操作模式具體實(shí)現(xiàn)。

        ①自由操作模式:實(shí)現(xiàn)用戶在校園中進(jìn)行自由漫游的功能。通過響應(yīng)鍵盤按鍵以及鼠標(biāo)轉(zhuǎn)動實(shí)現(xiàn)類似于第一人稱相機(jī)操控器的功能。要實(shí)現(xiàn)這一功能,首先編寫自己的事件響應(yīng)類CMovementHandler,它繼承自osgGA::GUIEventHandler基類,通過重寫virtual bool handle(const GUIEventAdapter&,GUIActionAdapter&)函數(shù)來實(shí)現(xiàn)自己對鍵盤鼠標(biāo)事件進(jìn)行響應(yīng)。之后,通過osgViewer::Viewer::addEventHandler(osgGA::EventHandler*)函數(shù)將CMovementHandler加入到事件響應(yīng)隊(duì)列中,等待Viewer進(jìn)行事件遍歷處理事件。

        ②隨機(jī)漫游模式:用戶在設(shè)定漫游模式為隨機(jī)漫游模式時(shí),初始化模塊的SVisitorConfig對象會根據(jù)讀入的數(shù)據(jù)設(shè)置隨機(jī)漫游的參數(shù)。每當(dāng)漫游需要改變方向或者重置位置時(shí),漫游控制模塊會產(chǎn)生一個(gè)取值范圍為-1到1的浮點(diǎn)隨機(jī)數(shù)RandomFloat作為隨機(jī)數(shù)因子控制轉(zhuǎn)向方向以及重置位置坐標(biāo)。這個(gè)隨機(jī)數(shù)因子采用c++中std標(biāo)準(zhǔn)庫的default_random_engine作為隨機(jī)數(shù)產(chǎn)生引擎,采用uniform_real_distribution連續(xù)均勻分布方式產(chǎn)生-1到1的浮點(diǎn)隨機(jī)數(shù)。通過設(shè)置隨機(jī)漫游方式,用戶無需操作就能在一定的區(qū)域范圍內(nèi)隨機(jī)漫游。當(dāng)用戶漫游到感興趣的地點(diǎn)時(shí),可以通過按鍵中斷隨機(jī)漫游模式,進(jìn)入自由操作模式,從而對感興趣地點(diǎn)進(jìn)行自由查看。

        ③指定線路漫游模式:當(dāng)漫游模式被設(shè)置為指定線路漫游模式時(shí),系統(tǒng)會加載預(yù)先指定好的路徑文件,再根據(jù)文件的內(nèi)容改變每一幀相機(jī)的View Matrix,從而達(dá)到按指定線路漫游的目的。同隨機(jī)漫游模式一樣,用戶也可以通過按鍵中斷漫游過程,進(jìn)入自由操作模式。

        3 系統(tǒng)實(shí)際運(yùn)行效果

        通過無人機(jī)對校園進(jìn)行數(shù)據(jù)采集,對完成傾斜攝影測量數(shù)據(jù)自動建模,將校園模型數(shù)據(jù)加載到校園可視化系統(tǒng)中進(jìn)行顯示,得到的系統(tǒng)實(shí)際運(yùn)行效果如圖5所示。

        圖5 校園可視化系統(tǒng)實(shí)際運(yùn)行效果圖

        4 結(jié)語

        校園可視化系統(tǒng)能提供給學(xué)生、家長、教師以及社會各界人士直觀認(rèn)識學(xué)校的機(jī)會,并且在智慧校園建設(shè)中,校園場景的可視化也是重要的一環(huán)。本文基于OpenSceneGraph設(shè)計(jì)開發(fā)一套校園可視化系統(tǒng),系統(tǒng)利用無人機(jī)拍攝的傾斜攝影測量數(shù)據(jù),使用Smart3DCapture對其進(jìn)行自動建模,并將創(chuàng)建好的模型加載到OpenSceneGraph中用于可視化。同時(shí),校園可視化系統(tǒng)提供了不同的漫游方式,滿足用戶以多種方式在校園場景中進(jìn)行漫游的需求。

        猜你喜歡
        漫游可視化攝影
        基于CiteSpace的足三里穴研究可視化分析
        基于Power BI的油田注水運(yùn)行動態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        基于CGAL和OpenGL的海底地形三維可視化
        “融評”:黨媒評論的可視化創(chuàng)新
        傳媒評論(2019年4期)2019-07-13 05:49:14
        霹靂漫游堂
        NASA漫游記
        WZW—bewell攝影月賽
        旅游縱覽(2014年8期)2014-09-10 07:22:44
        最美的攝影
        焦點(diǎn)(2014年3期)2014-03-11 23:03:43
        攝影42℃展版
        邊走邊看:漫游海底 夢想成真
        国产91大片在线观看| 亚洲国产高清在线一区二区三区| 视频一区欧美| 久久精品国产亚洲精品色婷婷| 白浆出来无码视频在线| 日韩精品极品在线观看视频| 日本高清一区二区三区在线观看 | 久久精品丝袜高跟鞋| 亚洲精品午睡沙发系列| 中文字幕一区二区三区四区在线| 精品一区二区亚洲一二三区| 亚洲午夜狼人综合影院| 欧美成人免费全部| 夜夜揉揉日日人人| 大伊香蕉精品视频一区| 久久99精品综合国产女同| 精品国产精品国产偷麻豆| 午夜精品一区二区三区在线观看| 亚洲AV日韩AV高潮喷潮无码| 国产一区二区三区青青草| 亚洲 中文 欧美 日韩 在线| 99精品电影一区二区免费看| 91久久精品一二三区蜜桃| 日韩中文字幕一区二区二区| 97无码免费人妻超级碰碰夜夜| 另类亚洲欧美精品久久不卡| 澳门精品一区二区三区| 午夜无码一区二区三区在线观看| 99精品国产综合久久久久五月天| 亚洲AⅤ男人的天堂在线观看| 国产精品亚洲综合久久系列| 三级全黄的视频在线观看| 欧美日韩中文制服有码| 国产一级黄色性生活片| 精品国产一区二区三区色搞| 欧美日韩中文国产一区发布| 少妇熟女淫荡丰满| 少妇又色又爽又高潮在线看| 又色又爽又黄还免费毛片96下载| 无码一级视频在线| 一区二区三区四区午夜视频在线|