TW118 智慧型即時監控系統之SoPC設計

排名 獲獎學生 學校 指導教授
冠軍 李世安、江慶京、余家潤 淡江大學電機系 翁慶昌

1. 設計介紹

1.1 設計目的  
由於國際間恐怖攻擊事件頻傳,所以安全監控市場逐漸受到重視,此外,網路基礎建設的日趨健全亦推動兼具網路化和智慧化功能的IP視訊監控系統之日益普及。由於全球安全產業之快速成長,台灣安全產業在近年來的產值亦快速的提升。根據拓墣產業研究所TRI預估,至2011年時,全球安全產業市場規模將可以達到3,134億美元,並且超過PC市場的3,126億美元,同時預估國內安全產業產值至2015年時可達到4,000億新台幣。近年來監控攝影機數目隨著人身安全需求亦快速地增加,其將造成後端監控人員更大的負擔。根據安全監控業者的統計,當警衛緊盯眾多監視螢幕22分鐘後,視覺疲勞將造成警衛對95%的活動失去反應。所以安全監控大廠除了在監控影像的畫質上多做努力外,也期望運用影像監控軟體強大的智慧分析功能來彌補警衛人力的不足。傳統類比監控的人力監看成本高、突發狀況回應效率低、資料搜尋和系統整合容易出現落差,早已無法滿足目前龐大的市場需求。目前視訊監控應用市場正快速地成長,並且從類比閉路電視(CCTV)轉型至IP/網路視訊監控設備。拓墣產業研究所TRI認為優質的監控影像搭配即時的影像智慧分析將是未來安全監控重要的發展趨勢。因此本作品「智慧型即時監控系統之SoPC設計」擬使用軟硬體共同設計的觀念,並且以較低成本開發較高畫質及較高效能的方式來設計實現一個具有智慧功能的即時監視系統,希望對於提升台灣整體視訊監控產業的應用及發展能有所貢獻。

應用領域: 視訊監控產業

目標的使用者: 一般消費者或是保全監控業者。

1.2 作品介紹

    本作品「智慧型即時監控系統之SoPC設計」之設計方式為利用多主系統架構設計為基礎,在FPGA晶片內設計多個主控端程式搭配Nios II處理器來實現一個可以即時處理辨識影像目標物的演算法以及設計可以同時加快影像擷取與影像顯示的速度之硬體處理電路模組,並且以SoPC (System on a Programmable Chip)技術來實現,此外,將監控畫面資訊透過網路傳送至遠端的監控設備,進行遠端監控與錄影存證。設計實現本作品需要使用很多的技術與技巧,主要有軟硬體共同設計的SoPC技術、FPGA設計、網路通訊設計、影像系統建立、人體膚色辨識、嵌入式系統軟體設計、硬體驅動程式設計與監控端人機介面設計等。本作品使用友晶科技所開發的 DE2多媒體平台來進行設計,由於DE2開發板整合相當多的硬體資源,如SDRAMSD CardEthernetFlashSRAM與文字型LCD,而且穩定性非常高,所以DE2開發板讓本作品的開發設計有很大的發展空間。

    目前一般市面上具有物體偵測功能之監控系統大都是在後端利用具有高速運算特性的電腦來做物體的偵測,也就是這些監控系統都是先將前端CMOS感測器或CCD感測器所擷取的影像資料傳送到遠端的監控端,然後由監控端做影像分析並且將結果記錄在儲存器裡。本作品與目前市面上的監控系統主要不同的地方在於本作品是採用前端處理技術,當前端的影像端將影像擷取進來後,本作品立即在前端的FPGA晶片內做物體的偵測辨識,然後將辨識的結果再傳到監控端做記錄。由於網路的傳輸常會有資料遺失以及在前端所處理的影像未受到壓縮,所以前端之物體偵測結果的正確率會較高。此外,本作品之後端的監控設備只需要具有網路連結、顯示播放影像畫面與儲存資料的功能即可,其可以免除目前監控系統在監控端需要一台高性能運算的電腦在後端做影像處理辨識的需求,所以本作品可以大量節省監控端的資源預算,即使是手機也可以透過網路輕輕鬆鬆來監控欲監控的區域。

2. 功能描述

本作品主要有三個部分:(1) DE2硬體端、(2) uClinux嵌入式系統網路通訊與(3) Windows監控端。其功能特性分別介紹如下:

(1) DE2硬體端

    在智慧型網路監控系統之設計實現上,本作品參考友晶公司所提供的DE2參考設計(reference design)電路,完成以下硬體電路介面之建立。

1.      Nios II 軟核心處理器

2.      DM 9000A 網路端控制界面

3.      FLASH記憶體控制介面

4.      LCD文字型顯示器控制介面

5.      SD CARD控制介面

6.      兩個 32M BSDRAM控制介面

7.      JTAG UART控制介面

8.      一個UART控制介面

9.      一個系統Timer、一個高速度Timer

10.  Red LEDGreen LED控制IO

11.  4Button按鈕開關

12.  I 2C 傳輸介面

13.  SPI傳輸介面

14.  PS2滑鼠介面

此外,設計以下硬體加速電路來加速軟體執行速度。

1.      硬體浮點運算器

2.      CMOS驅動控制電路

3.      Bayer Pattern 轉換RGB硬體電路

4.      CMOS Avalon-MM介面

5.      LCM液晶顯示驅動控制電路

6.      LCM Avalon-MM介面

7.      人體膚色辨識硬體加速電路

(2) uClinux嵌入式系統網路通訊

在軟體部分,本作品於DE2內置入uClinux嵌入式作業系統來負責網路通訊部份。並撰寫人體膚色辨識演算法於系統內,搭配人體膚色辨識硬體加速電路來加速影像處理的速度。在網路通訊部分,網路傳輸壓縮格式為Motion JPEG,本作品具有下列特性:

  1. 網路連線方式使用TCP/IP
  2. 可使用參數切換使用ServerClient
  3. DE2板啟動時即開始嘗試連接主機
  4. 埠號及IP位址可以在執行期間更改
  5. 須知道ServerIP位址方可連線(Server要固定IP)

(3) Windows監控端

   

    在監控端,本作品具有錄影功能,當在監控期間,則每隔1秒自動儲存畫面。當在待機期間,則每隔一分鐘儲存一張畫面。在監控端的顯示上,本作品具有下列功能特性:

  1. 顯示目前監控畫面
  2. 顯示目前Replay畫面(可快速搜尋畫面之功能)
  3. 顯示日期時間
  4. 目前影像顯示擷取與辨識解析度為352×256,回放為352×240
  5. 自動壓縮影片功能,支援MPEG-4壓縮功能
  6. 設定錄影檔案大小
  7. 顯示DE2連線狀態
  8. 顯示網路傳輸速率
  9. 可自由設定監控任一網路攝影機功能
  10. 調整CMOS攝影機的擷取顏色及亮度
  11. 字幕及攝影機名稱
  12. 遠端備份
  13. 紀錄監控日期及時間
  14. 支援動態文字顯示
  15. 遠端觀看
  16. 查詢錄影檔案
  17. 可儲存入侵時資訊以方便存證與影像調閱,避免浪費儲存媒體與難以檢索

3. 效能參數

  本作品的功能眾多且複雜,若全部由Nios II處理器來處理影像的擷取、顯示與辨識以及網路傳輸,則Nios II處理器的處理效能將會非常低落。圖1為傳統Nios II處理器在影像擷取與顯示的系統架構圖,由於擷取CMOS模組的1280×1024影像資料以及顯示影像資料在LCM液晶顯示模組的工作均是由Nios II處理器來處理,所以其每秒的擷取速度為1~2 FPS (Frame Per Second)。本作品採用如圖2所示的Avalon-MM (Avalon Memory Mapped)設計方式,增加兩個Master硬體電路來分別負責影像的擷取與顯示,讓Nios II處理器可以專心負責影像辨識的部份,所以其擷取與顯示速度為19 FPS。表1為此兩種設計方式之效能比較表,其速度差了將近10倍。本文為再加快顯示速度,因此採用640X480的擷取模式,可達到30FPS的速度。

 

1 傳統Nios II處理器在影像擷取與顯示的系統架構圖

2 Avalon-MM架構在影像擷取與顯示的系統架構圖

1 傳統Nios II處理器架構與Avalon-MM架構處理方式之實驗結果

使用方法

解析度大小

影像擷取速度(FPS)

傳統Nios II處理器架構

1280X1024

1~2

Avalon-MM架構

1280X1024

19

640X480

32

此外,以Nios II處理器用C語言軟體設計方式撰寫人體膚色辨識處理程式,其整體的速度非常慢,且效率非常差,但是利用軟硬體共同設計的方式,將人體膚色辨識的一些模組改用硬體電路來處理時,則整體的速度將可以大大提升,其結果比較如表2所示。

2 人體膚色辨識之各模組所需處理時間表

區塊名稱

C語言軟體來實現所需之時間(ms)

FPGA硬體加速器來實現所需之時間(ms)

Image Grabber

5.0540 (Nios II處理器計算)

Image Filter

1.9436

0

Face Skin Detection

2000.5688

57.3770

(硬體浮點數)

12.9417

(查表法)

Image Enhancement

53.1687

0.0084 (FPGA硬體加速)

Edge Detection

11.4535 (Nios II處理器計算)

Object Segment

4.3904 (Nios II處理器計算)

Object Display

0.1340

0.0829(使用FPGA硬體加速)

總時間

(Nios II處理器)

2076.713

 (Nios II+硬體浮點數計算器)

 78.3662

(Nios II+查表法)

33.9309

4. 設計架構

本作品設計方式為利用多主系統架構設計為基礎,在FPGA晶片內,設計多個主控端程式搭配Nios II處理器實現一個可以即時處理辨識影像目標物的演算法以及設計可以同時加快影像擷取與影像顯示的速度之硬體處理電路模組,並且以SOPC (System on a Programmable Chip)技術來實現。其系統架構如圖3所示。整個系統架構主要有5個部分:(1) 數位相機、(2) DE2-70開發板、(3) 液晶顯示面板、(4) uClinux作業系統及(5) 遠端監控設備。其設計架構分別說明如下:

3 系統架構圖

1.         數位相機模組(TRDB_DC2)

此相機模組會擷取高畫質數位影像進來,其影像格式為Bayer Pattern的原始資料格式。解析度最高為1280X1024大小。本作品利用Avalon MM架構設計硬體加速電路來加速影像資料的擷取,本作品所設計規劃之硬體擷取數位影像流程如圖4所示,其中CMOS擷取模組(CMOS Capture Module) 主要功能在與CMOS擷取模組做訊號的交握溝通,並將影像的原始資料擷取進來供後端RAW2RGB模組處理使用。RAW2RGB模組(Raw to RGB Module)主要在於將影像原始資料轉換成RGB彩色資料。CMOS 主控端模組(CMOS Master Module)主要在處理將影像資料送入Avalon Bus的溝通協定。

4 數位相機擷取數位影像流程圖

2.         LCM液晶顯示面板(LCM Module)

        本液晶顯示面板之解析度為320X240,顯示速度可達每秒30 FPS。本作品利用Avalon MM架構設計硬體加速顯示電路來加速影像資料顯示在LCM上,圖5為所設計規劃之液晶顯示控制器流程圖,其中LCM主控端模組(CMOS Master Module) 主要在處理將影像資料從SDRAM透過Avalon Bus傳出來的溝通協定。LCM控制器模組(LCM Controller Module) 主要負責與LCM顯示模組的訊號溝通與處理動作。

5 液晶顯示控制器流程圖

3.         DE2-70開發板

DE2-70開發板是整個系統的核心,也是整個作品的核心。從硬體電路的建立到軟體程式的執行,都是在此開發板上完成。本作品的DE2硬體設計架構如圖6所示,主要有4大項:網路端控制器、CMOS加速器電路、LCM加速器電路與影像處理加速電路,其中Image Filter主要是用硬體實現的方式來將所擷取的影像先做低通濾波的前處理。Image Enhances則是利用硬體實現的方式來將影像資料做侵蝕與擴張的影像處理。

6 DE2-70主要硬體設計架構圖

   


4.         嵌入式uClinux作業系統

uClinux是將Linux 移植到微控制處理器上的 Linux kernel。目前 uClinux 已經將 Linux kernel 移植(porting)到許多不同的處理器架構上,uClinux 所支援的處理器有M68kColdFireARMSparcNEC v850H8/300OPENcores OR1000Altera NIOS Xilinx MicroblazeuClinux 目前移植的 kernel 最新版本為kernel 2.0.39 kernel 2.4.32 kernel 2.6.17

uClinux-dist是將所有uClinux會使用到的功能元件都打包在一起的一種工具套件。使用 uClinux-dist 可以很方便的設定 Linux kernel root filesystem,並且透過 uClinux-dist Makefile 環境,我們就可以很方便的做跨平台編譯。針對不同平台所需要的其它處理工作(如 FLAT 格式轉換、.text/.data 節區的切割等等),uClinux-dist 也會自動幫我們完成。

使用 uClinux-dist 的主要好處有:

l          簡化編譯過程

l          不需下達雜複的 arm-elf-gcc 參數

l          不需下達雜複的 arm-elf-ld 參數

l          自動進行 kernel .text/.section 節區處理

l          ELF 格式轉 FLAT 格式

l          自動進行 VMA LMA 的位址重新對應

l          處理不同平台的新增節區設定

 

由於編譯完成的 uClinux kernel 還需要針對硬體平台做許多處理才能下載到實驗板使用,例如:針對不同的程式起啟位址重新調整所有節區的VMA/LMA 位址,因此若透過 uClinux-dist 的整合環境,便可以簡化我們的工作。

本作品利用uClinux - JotSpot Wiki網站所提供的如何掛載uClinux for Nios II的設計步驟,於DE2-70內置入uClinux作業系統。並透過其中的網路功能,將影像辨識資料傳送到遠端監控系統做監控。接下來將介紹()人體膚色辨識的設計與()網路通訊的方法。


()人體膚色辨識之設計

本作品之人體膚色辨識程式依照圖7的流程圖設計7個辨識模組:(1) 影像濾波器 (Image Filter)(2) 影像擷取器 (Image Grabber)(3) 人體膚色偵測 (Face Skin Detection)(4) 影像增強處理 (Image Enhancement)(5) 邊緣偵測 (Edge Detection)(6) 目標物分割 (Object Segment)(7) 目標物顯示 (Object Display),其分別介紹如下:

(1) 影像濾波器:主要的目的為緩和顏色的差異,讓處理過後的影像有低通濾波的效果,其可濾除一些雜訊。

(2) 影像擷取器:主要是將影像資料從CMOS擷取模組擷取RGB資料進來,並將其縮小為大小的圖形給後端程式做影像處理與判斷。

(3) 人體膚色偵測:主要是分析影像中的像素資料是否為人體的膚色範圍,在此我們進行影像二值化,當輸入顏色為膚色時記錄為1,否則為0

(4) 影像增強處理:主要是將二值化後的影像資料做侵蝕及膨脹等動作處理,此動作可消除影像中之雜訊。

(5) 邊緣偵測:偵測人體膚色邊緣資料,我們將畫面上的每一點跟該點的右邊、右下與下方做比較,若是有不同的數值的話便表示此點為邊緣點。

(6) 目標物分割:主要將搜尋影像中的目標點,利用DBSCL演算法來搜尋出目標物的數目與位置,將太小的物件,以及長寬比例與人體長寬比例差異太大的物件先濾除,之後在經由臉部與毛髮會相連的方式來做最後的判定。

(7) 目標物顯示:顯示目標物範圍,將目標物的數目與範圍顯示在螢幕上。

 

7 人體膚色辨識處理流程

()網路端程式設計

在網路端的軟體設計流程如圖8所示。本作品在網路傳輸的設計上,使用TCP的傳輸協定。本作品的網路通訊協定設計封包如圖9所示。

8 伺服端程式流程圖

9伺服器傳送資料時的封包資料流(切割->傳輸->再組合)


5.         遠端監控

在遠端監控上,本作品用一台筆記型電腦來作為系統的監控端。在監控人機介面的設計與實現上,主要有3項:(1)設計架構、(2)圖片擷取影像流程及(3)儲存與壓縮,其分別介紹如下:

1. 設計架構

在遠端監控設備上,本作品用一台筆記型電腦來作為系統的監控端,以Borland C++ Builder作為軟體開發平台。在遠端監控的設計上,本作品除了提供即時影像之外,亦提供錄影之功能,因此,在少容量卻能長時間錄影的目標下,本監控端在執行錄影動作時,並非將DE2-70傳送過來的影像串流全部儲存,而是每隔固定時間擷取一張圖片,當圖片總數到達一定數量之後,採用MPEG-4壓縮格式,將圖片壓縮轉換為AVI的錄影資料,監控端資料流程圖如圖10所示。

10 監控端資料流程圖

2. 擷取影像流程

當監控端透過Socket將影像串流接收存入記憶體後,監控端會即時的將影像畫面顯示在BCBTImage元件上,然而先前提到,在進行長時間的連續錄影時,並非將全部的影像畫面都儲存下來,而是會依照DE2-70回傳之影像狀態,將錄影行為分為即時錄影狀態及閒置狀態。當在進行即時錄影狀態時,即代表目前有目標經過進入畫面,因此需要即時連續的影像資料(預設為1/),方便之後查詢時能獲得較佳的資訊;在閒置狀態的情況下,監控端採取長時間取樣的動作(預設為60/),如此一來,即可避免在一般的情況下擷取太多相同的影片,造成儲存空間的浪費。

3. 圖片儲存與壓縮

有了上述的擷圖功能之後,雖然已能減少多餘的影像畫面了,但一張320*240bmp圖檔,依舊有225 KB的大小。當張數累積到4660張時,就有將近 1 G B的大小,這對硬碟資源來說依舊是很大的負荷,所以本作品在設計時亦加入*.bmp壓縮轉檔為*.avi的功能。圖片儲存與壓縮的步驟分別介紹如下:

    首先,本監控端在設計圖片存檔的時候,希望使系統運作連續,採行管線化(Pipeline)「先進先出」概念,因此並非使用單一資料夾來存放圖檔,而是利用一個開關與雙資料夾的方式,切換欲存入的資料夾,這樣的設計目的即是為了讓壓縮與存檔能夠同時進行,當資料夾內的圖片數到達某數量後,即切換至另一個資料夾內繼續儲存,而存滿的資料夾則可進行壓縮處理,資料轉換與壓縮示意圖如圖11所示。

 

11 資料轉換與壓縮示意圖

    然而,在監控系統中最重要的一個環節為即時性(Real-time),但由於在進行影片壓縮時,系統會將CPU大部分的資源分給壓縮的動作,導致監控畫面必須等待壓縮完成,如此一來,將會造成影像畫面的顯示不即時,因此,本監控端在這部分的設計將採用多執行緒(Multi-Thread),當要進行壓縮動作時,就動態生成一個新的執行緒來執行影片壓縮,執行緒的壽命直到壓縮完成。圖12為圖片儲存與壓縮的完整流程,其主要執行緒與壓縮執行緒分別介紹如下:

主要執行緒:

    (1) 選擇圖片暫存資料夾。

    (2) 將擷取下來的畫面存入暫存資料夾。

    (3) 計數器累加。

    (4) 判斷圖片數是否已達到要壓縮的數量。

    (5) 若為是,則切換資料夾、計數器歸零;若為否,則重複流程(1)(4)

    (6) 開啟壓縮執行緒。

壓縮執行緒:

    (1) 載入圖片。

    (2) 執行壓縮演算法。

    (3) 完成壓縮後將資料夾內的圖片全部清除。

    (4) 關閉執行緒。

 

 

12 監控端軟體設計流程圖

5. 設計方法

1. 實現方法

(1)  定義系統:包含微處理器、內部記憶體、外部設備與外部設備連接的腳位。

(2)  生成系統:利用SOPC Builder產生ptf系統文件。

(3)  硬體設計:利用硬體描述語言設計所需的元件與電路,並進行電路的編譯與模擬。

(4)  軟體設計:利用MATLAB撰寫影像處理的演算法,並利用Nios II IDE生成相關的標頭檔。

(5)  模擬:利用ModelSim進行模擬,若有問題則回到(2)修改系統再進行軟硬體共同設計。

(6)  驗證:將軟、硬體通過JTAG下載至DE2發展板上的RAMFlash上做物理驗證。

(7)  測試:結合CMOS影像模組與液晶顯示模組做監控系統的產品測試。

2.設計步驟

在設計上,本作品所使用到的軟硬體設備分別條列如下:

硬體設備:

1.      CMOS數位相機 (TRDB_DC2)

2.      DE2-70開發板

3.      液晶顯示面板 (TRDB_LCM)

4.      桌上型電腦或筆記型電腦做遠端監控用 (IBM X61筆記型電腦)

軟體工具:

1.      Quartus II 8.0開發工具

2.      Nios II EDS開發整合工具

3.      SOPC Builder

4.      Windows XPUBUNTU作業系統

5.      uClinux for Nios II開發套件

6.      Borland C++ Builder程式設計工具

7.      MATLAB

本作品的設計主要有2種:(1)硬體設計與(2)軟體設計,其設計步驟分別介紹如下:

2.1硬體設計

    在硬體設計上,主要有3個步驟:(1)定義系統、(2)生成系統與(3)硬體合成電路。其分別說明如下:

(1)   定義系統:將設計監控系統會使用到的微處理器、內部記憶體、外部記憶體與外部週邊等做適當的設定。本作品利用友晶科技所提供之DE2_70_NET之硬體修改,並加入所需的週邊與硬體加速電路,其完整的SOPC Builder如圖13所示,其中avalon_ccdavalon_ErosionDilationavalon_lcm為我們所實現的自訂元件,其電路元件圖分別如圖14、圖15與圖16所示。圖17為所產生之Nios II元件電路元件圖DE2_70_SOPC

13 SOPC builder元件設計圖

14 avalon_ccd自訂介面電路元件圖

15 avalon_ErosionDilation自訂介面電路元件圖

16 avalon_lcm自訂介面電路元件圖

17 Nios II系統方塊圖

(2)   生成系統:利用SOPC Builder生成系統文件*.ptf

(3)   硬體電路合成:在DE2_70_NET最頂層設計檔內加入友晶科技CMOS範例之CMOS_CaptureRAW2RGBLCM_Controller三個電路元件,並且將其做適當連接來擷取CMOS影像以及將影像顯示在LCM上。圖18、圖19與圖20分別是此三個模組之電路元件圖。完成硬體設計需要的硬體電路後並對FPGA腳位做設定與連接,最後進行電路的編譯與模擬,產生*.sof燒錄檔。

18 CMOS_Capture電路元件圖

19 RAW2RGB電路元件圖

20 LCM_Controller電路元件圖

2.2軟體設計

在軟體設計上,其步驟分別介紹如下:

1.      設計人體膚色辨識流程:先以MATLAB在電腦上實作整個辨識流程的演算法,確定演算法是可用的,即移植到Nios II平台做實現。

2.      網路通訊設計:本作品先依建立uClinux的開發環境,並利用硬體設計時產生之系統文件*.ptf來生成uClinxu的開機映像檔。並在uClinux環境下開發網路傳輸程式,將影像資料傳送到遠方的監控電腦。

3.      監控端電腦軟體設計:依據第2節所提之系統功能,將監控端的所有功能利用BCB Builder軟體建構出完整的監控介面。

當軟體與硬體都設計完成後,即可進入系統功能驗證的步驟。而當軟體與硬體功能都測試完成時即完成作品的設計。

l      監控端介面顯示介紹

在監控端介面上,主控視窗介面如圖21所示,主要有4個部分:(1)主要視窗、(2)重播及設定視窗、(3)資料視窗及(4)狀態條。其分別介紹如下:

21 主控視窗介面

主要視窗如圖22所示,主要有8項功能,其分別條列如下:

(1) 顯示連線狀態 (亮綠色表示連線)

(2) 目前播放檔名

(3) 目前時間

(4) 顯示錄影是否啟動 (Stay表示閒置、Record表示開始錄影)

(5) 監控畫面

(6) 基本狀態 (觸發事件的累積時間、擷圖速率、圖片計數器/總數)

(7) 啟動錄影按鈕

(8) 事件觸發警示燈 (亮紅色表示有人進入畫面)

 

22 主要視窗介紹

    在視窗介面的設計上,主要有(A) 重播視窗介面、(B) 基本設定視窗介面、(C) 網路視窗介面、(D) 顯示視窗介面及(E) 狀態條介面,其分別介紹如下:

A. 重播視窗介面如圖23所示,主要有4項功能,分別條列如下:

(1) 播放檔名

(2) 重播畫面(點取畫面可執行暫停)

(3) 影像收尋拉霸

(4) 播放時間

(5) 播放鍵

 

23 Replay視窗介面

B. 基本設定視窗介面如圖24所示,主要有5項功能,分別條列如下:

(1) 即時錄影狀態的擷取圖片速率

(2) 閒置狀態的擷取圖片速率

(3) 壓縮的圖片總數

(4) 壓縮後的播放速率(可設定為自動調整)

(5) 存檔鈕

 

24 Setup視窗介面

C. 網路視窗介面如圖25所示,主要有8項功能,分別條列如下:

(1) 網路連線選項

(2) 離線作業選項

(3) ServerIP位址

(4) ServerPort

(5) 建立連線按鈕

(6) 攝影機初始化

(7) 暫停攝影

(8) 關閉攝影機

 

25 Network視窗介面

D. 顯示視窗介面如圖26所示,主要有4項功能,分別條列如下:

(1) 即時訊息視窗

(2) 錄影檔列表

(3) 時間遮罩選項 (今天、這禮拜、這個月、任何時間)

(4) 錄影檔資料 (日期、事件觸發總時間、事件觸發百分比、檔案大小)

 

26 資料顯示視窗介面

E. 狀態條介面如圖27所示,主要有3項功能,分別條列如下:

(1) 顯示目前連線狀況

(2) 影像張數 (/)

(3) 壓縮狀況 (壓縮中、壓縮完成)

 

27 狀態條介面

6. 設計特點

本作品需要軟硬體共同設計方式來實現,在硬體設計上,需要用到的硬體週邊有FPGA晶片、SD CardSDRAMFlashEthernet。在軟體設計上,需要有C語言、Verilog程式語言與uClinux作業系統來撰寫辨識程式、錄影程式與網路通訊程式。基於以上所提到的硬體介面,友晶科技的DE2多媒體平台提供一個不錯的平台來設計完成作品。本作品要分別用Verilog程式語言來將硬體電路設計在FPGA晶片內以及C語言來設計Nios II處理器的應用程式,要整合軟體與硬體來完成本作品的難度是非常高的,所完成之作品具有下列的設計特性:

1.      在影像的擷取與顯示上,本作品用Avalon Memory-Mapped架構來加速影像的擷取與顯示,其設計原理類似多核心處理器一樣,可以同時有多個Master在動作,本作品設計兩個Master來分別處理影像的擷取與顯示,讓Nios II處理器可以專心處理影像之運算事務來達到即時處理的目的。

2.      在加速影像的處理上,本作品利用硬體浮點計算器來加速Nios II處理器的影像處理。此外,本作品利用Nios II處理器的custom_instruction功能以及Avalon Memory-Mapped架構來設計侵蝕、擴張與影像顯示的硬體加速器,此方式可以加速影像的處理。

3.      在影像硬體加速器之設計與實現上,本作品使用pipeline的設計方式來加速影像處理速度。在軟體之實現上,通常是採用迴圈處理方式,而硬體之實現是無法使用迴圈處理方式,因此軟體程式要轉換成硬體電路必須改用硬體電路的思考方式來設計。而用pipeline的方式來設計影像處理的硬體加速器確實可以加快影像處理的速度。

4.      uClinux作業系統之設計與實現上,本作品利用uClinux作業系統的網路環境,掛載網路驅動程式,設計網路傳輸的介面,可以有效的將影像資料通過網路傳輸到遠方監控端,其優點是可免去設計網路驅動程式部分,直接透過應用層設計傳輸程式,大大降低開發難度。

5.      在物體偵測與監視畫面影像資料的網路傳輸上,本作品除了可以提供即時監控之外,當前端的影像端將影像擷取進來後,本作品立即在前端的FPGA晶片內做物體的偵測辨識,當監視畫面有物體在移動時,則後端的監控系統將處於錄影監控的狀態,將每隔1秒就儲存目前的影像畫面,並且顯示警告訊息。當監視畫面沒有物體在移動時,則監控系統處於待機的狀態,將每隔1分鐘紀錄目前監視畫面的影像資料。目前一般市面上具有物體偵測功能之監控系統大都是在後端利用電腦的高速運算特性來做物體的偵測,本作品所提方式將可以避免處理的影像受到壓縮以及網路傳輸的過程而造成可能的資料遺失,因此物體偵測的結果正確率較高

6.      在監視畫面影像資料的儲存上,本作品在監控端用MPEG-4影像壓縮的方式來儲存影像端利用網路傳送到監控端的監視畫面影像資料,此方式可以減少監控端硬碟儲存空間。此外,由於監控系統處於待機的狀態時,影像端將每隔1分鐘才傳送目前監視畫面的影像資料給監控端,所以此方式亦可以大量減少硬碟的儲存空間,提供長時間的即時錄影(Real Time Recording)以及高品質的影像。此外,當需要搜尋錄影證據時,本作品的儲存方式將可以讓使用者快速地從儲存的資料中搜尋到特定的物件及相關影片,節省使用者寶貴的時間。

7.      在監控畫面之設計與實現上,本作品會自動將目前時間與目前畫面顯示,並且提供即時警示(Real-Time Alerting)來提高監視效率。安全人員不必浪費時間等待或盯著那些沒有任何意外發生的監視器螢幕。此外,在監控畫面上,方便做畫面搜尋時可以立即知道畫面的時間。

8.      在監控系統的解析度與價格上,本作品使用高解析度的CMOS感測器,其所擷取影像的畫面比一般傳統監控系統所採用的攝影機所擷取的畫面更加清楚,並且價格便宜。在影像端的安裝上,由於實現本作品所需的體積可以很小,所以本作品在影像端的安裝上將有很大的便利性與隱密性。此外,在FPGA硬體之設計與實現上,採用嵌入式FPGANIOS II處理器架構,由於只要FPGA晶片的容量夠大,就可以隨時更新FLASH韌體來將新的影像功能電路加進FPGA晶片內或者根據所需解決的問題來增加指令,使得產品的功能具有更高的彈性與擴充性,因此本作品在未來商品化時將有極高的競爭力。

7. 總結

友晶科技為提供 FPGA/ASIC 雛型、多媒體和影像市場等高端軟硬體解決方案的領導廠商,其所開發的DE2多媒體平台是一個非常適合學習Nios II處理器與FPGA硬體描述語言的開發平台,透過這個平台能讓我們有很大的空間來發揮想法與創意。這次很榮幸有機會參加「2008 Altera 亞洲創新設計大賽」,我們藉著這次參賽的機會提出一個必須整合影像處理與嵌入式系統概念才能實現的作品,在整個設計實現過程中,我們學習到更多的技術與知識,也讓我們了解很多軟硬體共同設計的技巧。

    本作品已完成智慧型即時監控系統的基本雛型,主要有人體膚色的辨識、網路傳輸至監控端以及監控端影像資料的顯示與儲存。未來可以加強改善的地方整理列舉如下:

1.      在前端之影像端,可以增加影像記錄的錄影功能,並將資料存於SD Card上。

2.      在影像處理上,可以提高人體膚色的辨識速率與準確性。

3.      在影像端的網路傳輸上,可以增加影像壓縮的硬體電路來改善網路傳輸速度。

4.      在警報系統上,可以增加警報前錄影功能與控制警報裝置。

5.      在警報通知上,可以增加網路遠端警報通知系統,將影像圖片透過指定E-mail FTP 位址傳送。

6.      錄影模式上,可以增加手動/ 預約/ 位移偵測/ 警報/ 遠端 等功能。

7.      加值開發上,可以增加設計其他的影像處理硬體IP進行加值開發例如,開發人流計數系統、人臉辨識系統、門禁系統或是火焰偵測警報系統等相關系統,並且提供簡易的整合介面。

    安全監控系統之相關產品近年逐漸朝小型化、彩色化、數位化、網路化與智慧化方向發展,連帶促使視訊監控產業發生劇烈變化。相信本作品使用軟硬體共同設計的觀念,並且以較低成本開發較高畫質及較高效能的方式,對於提升台灣整體視訊監控產業的應用及發展將有所貢獻。