第二章 安全監控系統
圖 2.1 為本計劃所研發的全方位安監控自動車,我們在以它的功能來完成本 論文的研究。自動車上所搭載的配備包括攝影機系統、攝影機升降機構和全向輪 機構,表 1 為其自動車之規格,在 2.2 節會詳細描述其設計與運作。
車體直徑 45cm
車體高度 65cm
全向輪(X4): 直徑 12cm
升降行程 40cm
最快升降速度 13cm/s 最快平移速度 25cm/s
電源 12V
表 1: 全方位安全監控自動車之規格表 圖 2.1: 全方位安全監控自動車
全向輪 全景攝影機
PTZ 攝影機
紅外線攝 影機
圖 2.2 為完整的安全監控系統架構圖,從圖中得知此系統主要由三個部份所 組成,分別為輸入/輸出裝置、虛擬實境引擎以及伺服端的自動車;藉由虛擬實 境引擎來建構場景和自動車,並且模擬出各種攝影機的功能,經由螢幕呈現出 來,我們再由鍵盤及滑鼠來下達控制命令,透過網路連線來遠端遙控自動車。
繪圖引擎
3D模組
材質貼圖 編譯軟體
鍵盤&滑鼠
螢幕
網路通訊
實體自動車
圖 2.2: 安全監控系統架構圖
輸入裝置 虛擬實境引擎 輸出裝置
近端 遠端
2.1 輸入/輸出裝置與虛擬實境引擎
我們利用一台個人電腦來實現虛擬的安全監控系統,其輸入和輸出裝置分別 為鍵盤滑鼠以及螢幕,電腦規格為 Celeron(R) CPU 2.60GHz,1.0GB RAM,作業 系統則是 Microsoft Windows XP。軟體則需要編譯軟體、繪圖軟體,繪圖軟體以 及繪圖引擎,編譯軟體方面我們採用 Microsoft Visual C++ 6.0 編譯器,使用的程 式即為 C++。表 1 為硬體規格以及軟體工具,繪圖引擎方面我們也是採用微軟公 司所開發的 DirectX 繪圖引擎[22]-[23],此繪圖引擎常常被拿來開發 3D 遊戲,所 以我們用此引擎來發展我們所需要 3D 場景。目前在虛擬實境的繪圖技巧中,絕 大部分以三維繪圖方式來表現實體,而虛擬實境和一般立體動畫兩者之間的差異 在於一般立體動畫中,是屬於被動的形式,預先繪製靜態場景中所有的物件,接 著就是使所有場景中物件產生隨時間而變化的動畫設定,讓畫面中的場景變化看 起來是連續的畫面,而虛擬實境的電腦繪圖是以及時的方式呈現,可讓使用者任 意在場景中游走;在繪圖方面包括 3D 物件的幾何模型建構,以及虛擬實境的繪 圖引擎,將在以下做說明。
Personal Computer
Intel Celeron 2.6GHz 1.0 GB RAM
Operation System Microsoft Windows XP
Simulation Manager
DirectX 9.0
Microsoft Visual C++ 6.0 Network TCP/IP
3D Modeling Package 3D Studio Max 5.0
Input Device
Keyboard Mouse 表 2: 週邊配備
2.12.1 3D 建模工具
虛擬場景中需要多種的 3D 物件,可製作此類的模型軟體像: 3ds Max 軟體、
AutoCAD 軟體等,我們主要運用 3ds Max 軟體進行建構,這是一套可應用於美工 的幾何造型,功能很強大的軟體,除了可繪製模型和製作動畫,還可執行多種檔 案的匯入及匯出的功能,此軟體廣泛應用於各種行業中像是建築、室內或家具設 計、工業廠品設計、電玩遊戲設計、動畫製作或是傳播影視業等[27]。
3ds Max 也將 NURBS 曲面建模功能加進來,使用 NURBS 曲面建立模型最大 優點就是自由曲面建立容易,它是一種以函數曲線來定義物體外型的建模技術,
近年來,由於電腦的運算能力及繪圖各方面的功能增強,使得 NURBS 曲面建模 已經變為 3D 模型製作的趨勢。軟體本身內建相當多的基本物件,像是立方體、
球體、椎體、圓柱體等,可方便提供使用者使用工具,調整物體的基本參數快速 建立模型,等建立好模型再將某一材質指定給模型,此動作就叫做貼圖,另外可 以利用貼圖技巧,利用簡單的物體來表現複雜的物件,無須為了呈現出非常複雜 的模型,而大量的使用複合的 3D 物件,比如說要表現石磚結構的地面,只需選 擇適當的材質,且利用簡單的幾何物體形狀,就可以製作出非常真實的感覺。
在 3ds max 中可以設定七種視角,包括上(Top)、下(Bottom)、前(Front)、後 (Back)、左(Left)、右(Right)以及透視(Perspective),由這七種視角讓使用者在製作 物件模型時,隨時切換到不同的視角,不但可以隨時檢視圖形的外觀,也可以將 圖形建立在正確的位置;在 3ds max 中定義兩大座標系統,分別為場景座標系統 和物件座標系統,如圖 2.3 所示:
場景座標系統是採用世界座標系統的定義,基本上是個絕對座標系統,負責 3ds max 場景方位的指示,3ds max 中以紅線代表 X 軸,恆指向右為正,綠線代表 Y 軸,恆指向前為正,藍線表 Z 軸,恆指向上為正。物件座標系統可充分協助使 用者配合移動、旋轉比例變化等變動指令,其用來協助指示方位,因為要將此物 件在三度空間中定位時,適時地將物件座標系統按照其需要做轉換,可產生精確 的定位效果。
一個 3D 物件的架構模型(Wireframe Model)是將空間中很多 3D 的點連接成 線,進而構成以線段型態資料為主的 3D 模型,其可視為三角型所構成的,因此 建構越真實的物件或場景,則必須運用較多的多邊形,但會帶給電腦中的處理器 越大的負擔,而會降低虛擬環境即時模擬的效能,所以我們就利用貼圖的技巧,
以簡化組成物件之多邊形的數目,讓計算量可以降低。
圖 2.3: 3ds max 之座標系統
2.1.2 繪圖引擎
本論文的實驗中,需要使用到電腦繪圖的工具以製作場景的影像;使用者透 過 I/O 設備與視窗系統(Windows system)互動,常見的視窗系統如 Microsoft Windows 系列的作業系統,應用程式及其模型則建構在圖學函式庫(Graphics library)之上,所謂圖學函式庫是一個常式(routine)的工具集,包含低階的程式碼,
雖 然 工 作 與 圖 形 的 硬 體 設 備 很 密 切 , 但 通 常 是 不 會 限 定 設 備 (Device-independent),顯示設備包括顯示卡和其驅動程式以及顯示器等部份,常 見的圖學函式庫有 OpenGL、DirectX、WTK 等。
在這我們是採用 Microsoft DirectX,DirectX 是一組低階的應用程式介面 (API),供製作遊戲與其他高效能多媒體使用。它支援二維(2-D)與三維(3-D)的圖 形、聲音效果與音樂、輸入設備,以及多人使用遊戲這類的網路程式等。在版本 7.0 之前的 DirectX 裡面,是由 DirectDraw 來負責 2D,由 Direct3D 來負責 3D 繪圖,
也就是說 2D 和 3D 是由不同的元件來負責的,雖然它們都是進行畫面顯示的元 件,但使用的程序有所不同,因此同時使用 2D 和 3D 的時候,必須先完成很複 雜的前置程序。在 DirectX 8.0 的時候,DirectDraw 和 Direct3D 整合在 DirectX Graphics,就是為了解決這樣的問題;DirectX Graphics 可以負責 2D 和 3D 的部份。
因為它的出現,2D 和 3D 之間的隔閡已被消除,我們也就可以更輕鬆地來進行繪 圖部分的程式設計,例如我們可以把 2D 圖像顯示在 3D 圖像的一部份,也可以 把 3D 圖像當成 2D 圖像來進行加工。但是,在 DirectX 8.0 之後負責繪圖工作的 DirectX Graphics,和 DirectX 7.0 之前的 DirextDraw+Direct3D 的結構有很大的差 別,因此它們的使用方法也有很大的差異。DirectX Graphics 的優點在於它提供了 Windows 的標準 API 所沒有的高度繪圖功能,和讓各種圖像檔(BMP/JPG 等)的載 入,以及圖像的透明化/半透明化等處理變得更簡單的方法,為了協助加快程式 開發的速度,微軟建立了 D3D 程式庫, D3D 程式庫與一些有用的函式包裝在一
起,用來處理與圖形相關的適宜,像是網格(mesh)、紋理(texture)、字型(font)、數 學運算(math)等。在最低的層次上,網格可能由數以千計的頂點與多邊形構成,
所有內容都需要複雜的處理。Direct3D 本身就擁有 3-D 的檔案格式,可用來儲存 3-D 模型的資訊,包括頂點、表面、法向量、與紋理資料,與紋理資料這個檔案 格式被稱為.X,.X 檔案的副檔名就是.X,它的彈性非常大。它可以是文字的格式,
讓編輯作業可以更容易進行,它也可以是二進位的格式,讓檔案的容量更小,也 更容易保護內容。
在 DirectX 中的座標系統與平常使用的卡式座標系定義不太相同,一般使用 的卡氏座標系為右手座標系如圖 2.4(a),DirectX 座標系則為左手座標系如圖 2.4(b)。
X 軸 Y 軸
Z 軸
X 軸 Y 軸
Z 軸
結合輸入/輸出裝置以及虛擬實境引擎,我們可以得到一個完整的圖 2.5 虛擬 實境操作介面。3D 模型必須先經過轉檔轉成.X 檔才能匯入 DirectX 中,並且要 與材質貼圖放在同一資料夾之下才能確保程式執行時能夠呈現出完整的模型;最 後我們利用 Visual Studio C++來編譯器整個程式,讓虛擬實境呈現在電腦螢幕
(a)DirectX 座標系統 (b)卡氏座標系統 圖 2.4: (a) DirectX 座標系統和(b)卡氏座標系統
上,再經由滑鼠和鍵盤輸入命令來控制虛擬實境中的物件。
DirectX
3D 模組 (.X 檔)
材質貼圖 (.bmp 檔)
Visual Studio C++
鍵盤&滑鼠
輸入裝置虛擬實境引擎輸出裝置
電腦螢幕
圖 2.5: 虛擬實境操作示意圖
2.2 自動車系統
自動車系統主要以工業電腦為控制中心,此系統又可分為三個子系統,分別 為影像系統、攝影機升降機構和全向輪機構,如圖 2.6。
在全向輪機構方面是由四個全向輪所構成的移動平台,攝影機升降機構是由 升降平台及轉角機構所組成,我們能利用升降平台上升及下降來調整攝影機的視 角(圖 2.7),使攝影機可以各種高度與角度下,進行無死角之掃瞄,如圖 2.8 所示,
當升降平台上升時可增加攝影機的視角範圍進而提升安全巡邏的效率。
IPC
攝影機升降機構
全向輪機構
全景攝影機旋轉機構
無線網路卡 紅外線攝影機 全景攝影機 PTZ攝影機
影像系統攝影機升降機構全向輪機構
圖 2.6: 自動車系統
影像系統包含如圖 2.9 所示包括(a)環場攝影機、(b)PTZ 攝影機與(c)紅外線 攝影機;環場攝影機是一種可以同時取得 360 度全方位場景影像的攝影機,故能 讓自動車減少拍攝的死角,並且能夠提供準確的定位;PTZ 攝影機是一種可以左 右、上下原地旋轉,並且可以改變鏡頭焦距的攝影機;紅外線影像攝影機是熱影 像或稱溫譜圖之取像裝置,可將人與周圍環境溫度記錄下來,進行各種影像處理
(a)升降平台上升之狀態 (b)升降平台之下降狀態
圖 2.7: 全方位安全監控自動車之移動平台與升降平台,(a)升降平台上升之 狀態和(b)升降平台之下降狀態
圖 2.8: 利用升降平台來增加攝影機的視角 升 降
與分析的工作,因為人體的溫度有一侷限的範圍(約在 36 度~37 度),可利用此特 性進行影像處理,將人體位置定位出來。
在通訊的方面我們藉由網路讓使用者能夠與遠端的自動車連結(圖 2.10),在 這裡我們採用 TCP/IP 的通訊協定,將 client 端使用者所下達的命令送至 serve 端 的自動車,並且接收 serve r 的攝影機資訊呈現在 client 端的螢幕上,藉由攝影 機所拍攝到的畫面來監控整個環境的變化。
Internet
Client 端 Serve 端
使用者
(a)環場攝影機 (b)PTZ 攝影機 (c)紅外線攝影機 圖 2.9: 影像裝置:(a)環場攝影機,(b)PTZ 攝影機和(c)紅外線攝影機。
圖 2.10: 網路通訊示意圖。
Server 端
在本章節所提到的自動車以及攝影機系統是由各不同實驗室所研究開發出 來的,在此感謝宋開泰老師的學生韓孟儒學長協助開發自動車,以及本實驗室的 博班學長陳豪宇開發升降平台;攝影機方面,紅外線攝影機感謝莊仁輝老師的學 生協助支援,另外 PTZ 以及全景攝影機由蔡文祥校長的實驗室提供,感謝這些 實驗室的同學以及學長的協助,我才能完成本論文。