金 龍
(湖南科技大學(xué),湖南 湘潭 411201)
基于Google Maps全景圖的出租車道路模擬駕駛系統(tǒng)
金 龍
(湖南科技大學(xué),湖南 湘潭 411201)
在出租車行業(yè)中,“繞路”占據(jù)民事糾紛或投訴的最大比例,造成這種情況的原因除了駕駛員職業(yè)道德因素外,很大一部分原因在于駕駛員對(duì)道路的熟悉程度不夠。從基于圖像的虛擬現(xiàn)實(shí)技術(shù)特點(diǎn)入手,分析了將全景虛擬展示方法用于出租車駕駛員熟悉道路培訓(xùn)的可行性和有效性,最后介紹了Google Maps全景圖與模擬駕駛設(shè)備相結(jié)合的培訓(xùn)系統(tǒng)的具體實(shí)現(xiàn)。
google maps;street view;全景圖;模擬駕駛
出租車從業(yè)人員素質(zhì)培訓(xùn)中,很少有將道路熟悉培訓(xùn)列入培訓(xùn)內(nèi)容的,駕駛員只能從現(xiàn)實(shí)中積累經(jīng)驗(yàn),然而這種方法周期長(zhǎng)、成本高,還經(jīng)常因走錯(cuò)路線被乘客投訴。詳細(xì)論述了全景虛擬展示在模擬道路環(huán)境的實(shí)現(xiàn)原理,并運(yùn)用地理信息系統(tǒng)(GIS)結(jié)合出租車行業(yè)需求,為司機(jī)提供快速查詢街道詳情、模擬行車引導(dǎo),建立一套模擬培訓(xùn)系統(tǒng)。
虛擬現(xiàn)實(shí) VR(Virtual Reality)是以沉浸性、交互性和構(gòu)想性為基本特征的計(jì)算機(jī)高級(jí)人機(jī)界面,通過(guò)計(jì)算機(jī)技術(shù)模擬出一個(gè)逼真的視覺(jué)、聽(tīng)覺(jué)、觸覺(jué)一體化的三維虛擬環(huán)境,使參與者獲得與現(xiàn)實(shí)世界一樣的空間體驗(yàn)。隨著數(shù)字圖像處理設(shè)備及數(shù)字圖像技術(shù)的發(fā)展,基于圖像的虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用越來(lái)越廣泛[1]。
全景虛擬展示,是基于圖像的虛擬現(xiàn)實(shí)技術(shù),使用專用相機(jī)在離散的觀測(cè)點(diǎn)捕捉360°空間范圍場(chǎng)景的全部圖像信息,再由圖像處理軟件進(jìn)行拼接,組織為虛擬全景空間,用戶可以在該空間內(nèi)以觀測(cè)點(diǎn)為中心環(huán)視,從而虛擬出一個(gè)現(xiàn)實(shí)環(huán)境中的場(chǎng)景[2]。全景虛擬展示具有照片質(zhì)量的真實(shí)感,適合風(fēng)景旅游、城市街道、室內(nèi)環(huán)境的展示等。全景虛擬展示技術(shù)主要有以下優(yōu)點(diǎn):
1)數(shù)據(jù)易于采集。僅需要在適當(dāng)點(diǎn)采集圖像信息,數(shù)據(jù)量小,不會(huì)消耗過(guò)多的時(shí)間和計(jì)算機(jī)資源,有利于實(shí)現(xiàn)對(duì)連續(xù)場(chǎng)景的漫游。
2)成本低廉。不需要專用虛擬現(xiàn)實(shí)硬件設(shè)備,如三維頭盔、數(shù)據(jù)手套、數(shù)據(jù)衣等,僅需要一臺(tái)普通電腦就足夠了。
3)逼真度高。由于圖像信息是實(shí)際場(chǎng)景的照片,因此,基于圖像的虛擬現(xiàn)實(shí)場(chǎng)景會(huì)有照片質(zhì)量的真實(shí)感。
4)無(wú)需幾何建模。建立幾何模型是一個(gè)既費(fèi)時(shí)又費(fèi)力的工作,基于圖像的虛擬現(xiàn)實(shí)場(chǎng)景是由照片拼接而成的封閉空間,不需要復(fù)雜的幾何建模。
5)便于網(wǎng)絡(luò)傳輸。與其它建模方式相比,全景圖數(shù)據(jù)的體積更小,適于網(wǎng)絡(luò)應(yīng)用[8]。
地理信息系統(tǒng)GIS(Geographic Information System)是一門集計(jì)算機(jī)科學(xué)、信息學(xué)、地理學(xué)等多門科學(xué)為一體的新興學(xué)科,它是在計(jì)算機(jī)軟件和硬件支持下,運(yùn)用系統(tǒng)工程和信息科學(xué)的理論,科學(xué)管理和綜合分析具有空間內(nèi)涵的地理數(shù)據(jù),以提供對(duì)規(guī)劃、管理、決策和研究所需信息的空間信息系統(tǒng)。
當(dāng)今GIS已經(jīng)不再被看作為一個(gè)技術(shù)系統(tǒng)或是計(jì)算機(jī)系統(tǒng),而已被看作是一門學(xué)科,一門技術(shù)。是地圖學(xué),攝影測(cè)量與遙感,地理學(xué),計(jì)算機(jī)科學(xué)與技術(shù)等多門學(xué)科綜合發(fā)展的產(chǎn)物,是一種重要的空間數(shù)據(jù)處理、集成和應(yīng)用工具。
基于Google Maps全景圖的出租車道路模擬駕駛系統(tǒng)是Web和GIS相結(jié)合,即利用Web技術(shù)來(lái)擴(kuò)展和完善地理信息系統(tǒng)的一項(xiàng)新技術(shù)。
Google公司于 2005年推出了在線地圖軟件 Google Maps,并公布了Google Maps API,API由JavaScript實(shí)現(xiàn)。Google Maps包含了大量的、多層次的影像。它為我們提供了一個(gè)開(kāi)放的平臺(tái)。
基于Google Maps全景圖的出租車道路模擬駕駛系統(tǒng)使用了Google Maps全景圖,它是Google Maps的一項(xiàng)特色服務(wù),能夠通過(guò)輸入坐標(biāo)或地名觀賞當(dāng)?shù)亟志叭皥D。
全景虛擬展示在駕駛培訓(xùn)中的應(yīng)用主要是對(duì)道路,建筑等進(jìn)行展示,給駕駛員一種身臨其境的體驗(yàn),使用者可以通過(guò)操作方向盤等駕駛設(shè)備360°的觀看周圍場(chǎng)景。
與實(shí)地熟悉道路相比該系統(tǒng)有很多優(yōu)點(diǎn)。首先,該系統(tǒng)有較大的靈活性和多樣性,能方便的在各個(gè)地點(diǎn)間進(jìn)行訓(xùn)練,還能夠?qū)崿F(xiàn)街道名,地名,建筑物的查詢;其次,由于采用了地理信息系統(tǒng)技術(shù),該系統(tǒng)能夠?qū)θ我鈨牲c(diǎn)間的最短路徑進(jìn)行分析并進(jìn)行模擬對(duì)比駕駛,顯而易見(jiàn)的糾正駕駛員的錯(cuò)誤;最后,使用該系統(tǒng)還能夠有效的提高安全性,提高培訓(xùn)效率,有效的減少資源消耗,大大降低運(yùn)營(yíng)成本,為創(chuàng)建節(jié)約型社會(huì)提供了一條新思路[4]。
由于 Java語(yǔ)言所特有的平臺(tái)無(wú)關(guān)性,網(wǎng)絡(luò)分布性等特性,使得它成為該系統(tǒng)開(kāi)發(fā)的主要語(yǔ)言,此外,系統(tǒng)還使用了Google Maps API和JavaScript腳本語(yǔ)言,系統(tǒng)的運(yùn)行僅需要tomcat支持和通暢的網(wǎng)絡(luò)環(huán)境。根據(jù)功能和開(kāi)發(fā)方式不同,系統(tǒng)按如下方案進(jìn)行設(shè)計(jì)。
圖1
虛擬駕駛培訓(xùn)系統(tǒng)提供了三大功能:自駕車漫游,查詢街道詳情,模擬行車引導(dǎo)。
系統(tǒng)將整個(gè)業(yè)務(wù)分為表示層、邏輯層、數(shù)據(jù)層三層結(jié)構(gòu)。其中表示層位于最外層,是展現(xiàn)給用戶的界面,負(fù)責(zé)處理用戶請(qǐng)求并返回處理結(jié)果;邏輯層在體系結(jié)構(gòu)中處于數(shù)據(jù)層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用,負(fù)責(zé)響應(yīng)用戶請(qǐng)求,并通過(guò)Ajax技術(shù)與數(shù)據(jù)層進(jìn)行交互,處理來(lái)自模擬駕駛設(shè)備的數(shù)據(jù);數(shù)據(jù)層負(fù)責(zé)與模擬駕駛設(shè)備進(jìn)行通信,獲取駕駛設(shè)備的操作參數(shù)。系統(tǒng)結(jié)構(gòu)如圖1所示。
系統(tǒng)從Google數(shù)據(jù)庫(kù)獲取Google Maps全景圖數(shù)據(jù),并通過(guò)JNI技術(shù)從信息采集卡獲取模擬駕駛設(shè)備操作數(shù)據(jù)。用戶通過(guò)操作模擬駕駛設(shè)備與Google Maps全景圖進(jìn)行交互。
圖2 模擬駕駛設(shè)備
另外,由于開(kāi)發(fā)方式不同,系統(tǒng)又將Google Maps服務(wù)器、表示層和部分邏輯層的歸為圖形部分;模擬駕駛設(shè)備、數(shù)據(jù)層和部分邏輯層歸為駕駛部分。模擬駕駛設(shè)備采用的是上海碩博科教設(shè)備有限公司生產(chǎn)的SB-2009型汽車駕駛模擬器,如圖2所示。
1)JNI技術(shù)
JNI是Java Native Interface的縮寫,它允許Java代碼和其他語(yǔ)言的代碼進(jìn)行交互。JNI是為了本地已編譯語(yǔ)言,尤其是C和C++而設(shè)計(jì)的,當(dāng)已經(jīng)有了一個(gè)用其他語(yǔ)言寫成的庫(kù)或程序,而你希望在Java程序中使用它時(shí),JNI可以實(shí)現(xiàn)這一目標(biāo)。JNI還可以使用一些舊的庫(kù),與硬件、操作系統(tǒng)進(jìn)行交互,或者提高程序的性能。JNI標(biāo)準(zhǔn)能夠保證本地代碼能工作在任何Java虛擬機(jī)下。
該系統(tǒng)使用了模擬駕駛設(shè)備,該設(shè)備的操作信息采集卡接口是用C++語(yǔ)言編寫的,因此需要使用JNI技術(shù)。使用JNI技術(shù)與本地C++代碼交互,會(huì)喪失平臺(tái)的可移植性,但虛擬駕駛培訓(xùn)本身為專有系統(tǒng),可接受一定的可移植性損失。
2)prototype.js
prototype.js是Sam Stephenson寫的一個(gè)非常優(yōu)雅的,兼容標(biāo)準(zhǔn)的JavaScript基礎(chǔ)類庫(kù),對(duì)JavaScript做了大量的擴(kuò)展,而且很好的支持Ajax,能幫助使用者輕松建立有高度互動(dòng)的Web 2.0特性的客戶端頁(yè)面。
這個(gè)程序包里面包含了許多預(yù)定義的對(duì)象和通用性方法,使用這些方法能夠減少大量的重復(fù)編碼和慣用法。系統(tǒng)中使用prototype類庫(kù)不但減少了代碼量而且對(duì)于Ajax的支持使得系統(tǒng)能夠異步的請(qǐng)求模擬駕駛設(shè)備的操作數(shù)據(jù),使得用戶體驗(yàn)更加流暢。
3.3.1 表示層
該系統(tǒng)使用了Google Maps全景圖數(shù)據(jù)。Google Maps為開(kāi)發(fā)者提供了用于二次開(kāi)發(fā)的API,其接口函數(shù)由JavaScript實(shí)現(xiàn),通過(guò)API可以操作全景圖進(jìn)行瀏覽、漫游,并通過(guò)設(shè)置定時(shí)器以車輛行駛速度為參數(shù)定時(shí)的加載地圖。其實(shí)現(xiàn)流程如下:
圖3 全景圖顯示流程
3.3.2 邏輯層
系統(tǒng)邏輯層主要負(fù)責(zé)響應(yīng)用戶請(qǐng)求和處理從數(shù)據(jù)層獲取的數(shù)據(jù),更新車輛行駛參數(shù),以控制全景圖的方向,刷新速度等。系統(tǒng)使用了prototype.js類庫(kù)和Ajax技術(shù)以異步的方式發(fā)送請(qǐng)求并從數(shù)據(jù)層獲取數(shù)據(jù)。
其中,a表示方向盤轉(zhuǎn)動(dòng)參數(shù),a'表示行駛方向角度變化;v表示油門大小參數(shù),v'表示v對(duì)應(yīng)的行駛速度。
倒車和加速操作將通過(guò)全景圖的顯示方向和刷新速度來(lái)控制,此外,系統(tǒng)會(huì)記錄當(dāng)前位置的前后兩景圖像,以便能夠較迅速和流暢的響應(yīng)前進(jìn)和倒車操作。
3.3.3 數(shù)據(jù)層
數(shù)據(jù)層負(fù)責(zé)與模擬駕駛設(shè)備交互,從信息采集卡中讀取數(shù)據(jù),信息采集卡中的程序由C++編寫,因此需要通過(guò)JNI進(jìn)行實(shí)現(xiàn)。其實(shí)現(xiàn)步驟是:
1)將C++編寫的文件生成動(dòng)態(tài)連接庫(kù)
2)將DLL文件放置到系統(tǒng)path變量所指定的任何目錄中
3)將C++程序中的方法在Java類中進(jìn)行一個(gè)本地化聲明
4)通過(guò)Java的程序加載DLL動(dòng)態(tài)鏈接,這樣執(zhí)行到本地方法時(shí),虛擬機(jī)會(huì)從已加載的DLL中尋找到被Java調(diào)用的本地方法。
系統(tǒng)主要提供了3個(gè)功能:查詢街道詳情,自駕車漫游,模擬行車引導(dǎo)。如圖4所示。
查詢街道詳情:是由用戶輸入所要查詢的地點(diǎn)或街道名稱后,系統(tǒng)自動(dòng)搜索最匹配的位置,并顯示該地點(diǎn)的全景圖,進(jìn)而查看該地點(diǎn)環(huán)境或從該點(diǎn)開(kāi)始漫游。若該地點(diǎn)沒(méi)有全景圖數(shù)據(jù),系統(tǒng)將顯示距離該點(diǎn)距離最近的全景圖數(shù)據(jù)。
自駕車漫游:在進(jìn)入某地點(diǎn)全景圖以后,操作模擬駕駛設(shè)備,全景圖的視野也會(huì)隨之變化,用戶可以自由的在城市街道中穿行。在交叉路口處,系統(tǒng)將根據(jù)距離路口最近的采樣點(diǎn)時(shí)方向盤角度來(lái)決定轉(zhuǎn)彎方向。系統(tǒng)設(shè)置靜止不動(dòng),也就是油門沒(méi)有踏下的時(shí)候,操作方向盤不能夠改變視角。此外,將檔位放至R擋,全景圖視野將會(huì)掉轉(zhuǎn)180°行駛。
模擬行車引導(dǎo):用戶輸入起始點(diǎn)和目的地后,系統(tǒng)首先顯示起始點(diǎn)的全景圖,同時(shí)生成一條最短路徑顯示在地圖上,用戶從起始點(diǎn)開(kāi)始行駛,系統(tǒng)會(huì)記錄經(jīng)過(guò)的路線,與系統(tǒng)生成的路徑進(jìn)行對(duì)比顯示,用戶將對(duì)自己所犯的錯(cuò)誤一目了然。如果用戶對(duì)當(dāng)?shù)芈窙r不熟,點(diǎn)擊“自動(dòng)駕駛”按鈕,系統(tǒng)將會(huì)自動(dòng)引導(dǎo)車輛沿最短路徑行駛至目的地,用戶不需要再操作模擬駕駛設(shè)備。
圖4 系統(tǒng)效果圖
本系統(tǒng)將模擬駕駛設(shè)備和Google Maps全景圖結(jié)合起來(lái),為駕駛員培訓(xùn)或需要熟悉道路的人員提供了一個(gè)安全、方便、高效的平臺(tái)。通過(guò)該系統(tǒng),用戶能夠身臨其境的在城市中漫游,直觀明了的糾正駕駛路線。
在此基礎(chǔ)上,系統(tǒng)還擬將多視點(diǎn)全景圖與平滑漫游技術(shù)引入進(jìn)來(lái),進(jìn)一步提升系統(tǒng)的真實(shí)感和沉浸感[5]。
[1] 劉思鳳,賈金原.基于 Web的虛擬旅游環(huán)境的開(kāi)發(fā)及其關(guān)鍵技術(shù)[J].計(jì)算機(jī)應(yīng)用研究,2008,25(9).
[2] 全政環(huán).360°全景技術(shù)的應(yīng)用和發(fā)展歷程[J].電腦知識(shí)與技術(shù),2010,6(3):713-715.
[3] 劉思鳳,賈金原.基于 FLASH 的湛江虛擬旅游全景漫游與導(dǎo)航系統(tǒng)[J].廣東海洋大學(xué)學(xué)報(bào),2009,29(3).
[4] 董志貴,王金武,秦佳,劉建生.基于 GIS和虛擬現(xiàn)實(shí)技術(shù)的駕駛訓(xùn)練、績(jī)效測(cè)評(píng)系統(tǒng)開(kāi)發(fā)[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào),2008,39(1):124-128.
[5] 李怡靜,張劍清.多視點(diǎn)全景圖與平滑漫游的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程:圖形圖像處理,2009,35(12).
[6] Google. Google Maps API[EB/OL].http://code.google.com/intl/zh-CN/apis/maps/documentation/re ference.html.
[7] 羅立宏,陳志.Google Earth在旅游景點(diǎn)展示中的應(yīng)用[J].計(jì)算機(jī)工程:開(kāi)發(fā)研究與設(shè)計(jì)技術(shù),2009,35(3).
[8] 張建立.基于X3D和Panorama的虛擬校園建設(shè)[J].高等職業(yè)教育—天津職業(yè)大學(xué)學(xué)報(bào):2009,18(6).
[9] 鄢志武,馬祥山,吳麗.旅游景區(qū)三維全景虛擬展示研究—以云南石林世界地質(zhì)公園為例[J].理論與實(shí)踐:理論月刊,2009,(4).
Design and Implementation of a Taxi Road Training System Based on Google Maps Panorama
In the taxi industry, the "detour" occupies the largest share of disputes or complaints. This situation may not only result from the fact that the driver’s ethical factor, but also for the driver is not sufficiently familiar with the road. Start with image-based virtual reality technology to the features of virtual panoramic display methods, discusses the realistic feasibility of the use for training taxi drivers to familiar with the road. And finally introduces the panorama of Google Maps and driving simulator training equipment combined system.
google maps;street view;panorama;simulated driving
TP311
A
1008-1151(2012)05-0028-03
2012-03-21
金龍(1983-),男,黑龍江大慶人,湖南科技大學(xué)碩士研究生,研究方向?yàn)閃ebGIS與移動(dòng)計(jì)算。