第一章 緒論
1.3 相關文獻回顧與探討
近年來有不少學者紛紛投入進行應用於人形偵測的 HOG 硬體化加速的相關研 究[27-35],在使用硬體加速 HOG 運算速度的研究中,大致分成兩方面,一方面是 使用場式可程式閘陣列(Field Programmable Gate Array,FPGA)搭配硬體描述語言 (Hardware Description Language,HDL)進行設計,另外一方面即是以全客戶設計型 (Full Custom Design)或者標準單元設計型(Cell Based Design)實際進行超大型積體
6
電路(Very Large Scale Integration,VLSI)晶片設計。其中有部分研究僅包含 HOG 硬體化,另外一部分的研究則是包含 HOG 硬體化與整套人形偵測系統。
R. Kadota[27]等人提出了一些方法用以簡化 HOG 的計算,並以 Altera Stratix II FPGA 進行 HOG 的硬體化設計。Pei-Yin Chen[28]等人提出將 HOG 中較複雜的計 算修改使用近似的方法,以減少硬體成本,並使用台積電(TSMC)0.13 微米製程的 元件庫(Cell Library)進行 HOG 的 VLSI 電路設計。M. Hemmati[29]等人則採用 Xilinx Zynq-7000 的 FPGA 設計出在 HDTV 的解析度(1920x1080)之下可達到 60FPS 的 HOG 計算速度。雖然以上文獻中提到的速度均可達到即時(Real-Time),但是只有 包含 HOG 的計算結果,忽略了資料的輸入與輸出以及將其應用至整套人形偵測系 統中其餘模組所需要的運算時間。而在 M. Hatto[30]等人的方法中,需要保留一張 Frame 中所有 Detection Window 的 HOG Feature,該作者採取了 HOG 硬體化的同 時降低 HOG Feature 的精度用以節省記憶體空間(Data Reduction)。但也降低了 2.68%的準確率(Accuracy)。
另外在 S. Bauer[31-32]等人的研究中則是採用 FPGA 結合電腦顯示卡上的圖形 處理單元(Graphics Processing Unit,GPU)進行人形偵測系統的建立,他們在電腦上 安裝 PCI-e 介面的 Camera Link 影像擷取卡,影像透過 Camera Link 介面進入後利 用該擷取卡上的 Spartan 3 XC3S 4000 FPGA 進行 HOG 的運算,運算完畢的 HOG 特徵向量傳送到電腦的中央處理器(CPU)進行正規化(Normalization )之後再將其傳 送到 GPU,進行 SVM 的分類運算,最後再將分類結果傳回 CPU 進行人形位置的 標示。其缺點是影像的輸入來源必須採用 Camera Link 的介面,且其 HOG 特徵向 量的計算是針對整張 Frame,這意味著其偵測視窗的大小、掃描移動步數等的設定 上必須固定,在系統的應用上較不靈活。K. Mizuno[33-34]等人則提到高性能的處 理器與沉重的計算成本雖然可以達到即時的物件偵測,但是高性能的處理器需要 高功率消耗,所以不適合應用於使用電池的系統,因此提出低功率的 HOG 特徵提 取器的設計,並且分別使用 FPGA 與 VLSI 進行全硬體化的人形偵測系統設計。
A. Suleiman[35]等人也提到低功率上的問題,例如將系統應用在無人飛行載具
7
(Unmanned Aerial Vehicle,UAV)上,則受限於電池的問題,消耗功率不能太高,
並且提到多尺度支持(Multi-Scale Support)用以解決人形大小不一致的問題,其方法 是利用原始圖像進行 12 次縮放產生 12 層的金字塔圖像,但其設計僅有模擬結果,
尚未能實際應用。從以上文獻中可以發現,人形偵測系統的建立除了基本純軟體 的方法之外,也有純硬體的方法,以及結合軟體與硬體優點的軟硬體整合三種方 式,這三種方法各有優缺點。
純軟體的方法在應用方面的靈活性是最高的,若在軟體程式設計時有考慮到 在實際應用上的相關參數問題,那麼之後系統即可以在不增加成本的情況之下簡 單的透過參數的調整,即可達到各種不同場景的應用,甚至也能應用於人形之外 的物件偵測。但是一般純軟體在運算速度上通常較硬體的方法慢,若要使用純軟 體達到即時偵測的需求,需要高性能的處理器,這意味著需要高成本與高耗電量,
系統體積也無法縮小,無法達到可攜式或內建於監視器等需求。
純硬體的方法在應用方面的靈活性是最低的,例如在人形偵測系統實際應用 上,針對不同場景中的人形大小不一致的問題,大多數文獻的設計為了節省運算 量,都是針對整張 Frame 進行 HOG 的基本單位,即大小為 8x8 的 Cell 特徵向量計 算,因此偵測視窗的大小、掃描移動步數等設定是固定的,在晶片完成後即不能 調整。若輸入影像中的人形大小與偵測視窗大小差異太大,則系統就無法偵測到 了。即使引入多尺度支持(Multi-Scale Support),其效果仍是有限,無法達到萬用性。
但是純硬體的運算速度相較於其他兩種方法是最快的,例如 K. Mizuno[33-34]等人 的文章中提到他們設計的系統在速度上可以達到 1920x1080@30 FPS,但是其偵測 視窗大小固定為 64x128,偵測視窗移動步數固定為 8 Pixels,也就是說,其輸入的 來源影像有限制,不能應用於任意場景。另外還有來源影像的輸入與結果的輸出 問題,在純硬體的設計上,通常需要使用特殊介面的攝影機進行來源影像的拍攝,
若是事先拍攝好的影片檔案則不能進行偵測。偵測完畢的結果如何儲存與也是一 個問題,在相關文獻中通常是直接輸出螢幕顯示結果,其偵測結果的數據往往無 法進一步的分析與利用。
8
軟硬體整合的方法,即本研究使用的方法,是結合軟體的高靈活性與硬體的 高速運算速度,將系統中的參數設定等問題,以及運算較不花時間的模組交由軟 體端處理。而系統中最耗時的 HOG 特徵向量則交由硬體端計算,如以一來即可兼 顧靈活性以及運算速度,且軟體端對於處理器性能的要求較不高,意味著可以顧 及系統的成本與體積。但是軟體與硬體間資料的傳輸速度瓶頸是軟硬體協同運作 的設計中不可忽視的一環,不論在任何應用中,運作花費的傳輸時間往往遠大於 硬體運算時間。