人臉自動識別技術是模式識別、圖像處理等學科的一個最熱門研究課題之一。隨著社會的發展,各方面對快速有效的自動身份驗證的要求日益迫切,而人臉識別技術作為各種生物識別技術中最重要的方法之一,已經越來越多的受到重視。對于具有實時,快捷,低誤識率的高性能算法以及對算法硬件加速的研究也逐漸展開。 本文詳細分析了智能人臉識別算法原理,發展概況和前景,包括人臉檢測算法,人眼定位算法,預處理算法,PCA和ICA 算法,詳細分析了項目情況,系統劃分,軟硬件平臺的資源和使用。并在ISE軟件平臺上,用硬件描述語言(verilog HDL)對算法部分嚴格按照FPGA代碼風格進行了RTL 硬件建模,并對C++算法進行了優化處理,通過仿真與軟件算法結果進行比對,評估誤差,最后在VirtexII Pro FPGA 上進行了綜合實現。 主要研究內容如下: 首先,對硬件平臺xilinx的VirtexII Pro FPGA 上的系統資源進行了描述和研究,對存儲器sdram,RS-232 串口,JTAG 進行了研究和調試,對Coreconnect的OPB總線仲裁機理進行了兩種算法的比較,RTL 設計,仿真和綜合。利用ISE和VC++軟件平臺,對verilog和C++算法進行同步比較測試,使每步算法對應正確的結果。對軟硬件平臺的合理使用使得在項目中能盡可能多的充分利用硬件資源,制板時正確選型,以及加快設計和調試進度。其次,對人臉識別算法流程中的人臉檢測,人眼定位,預處理,識別算法分別進行了比較研究,選取其中各自性能最好的一種算法對其原理進行了分析討論。人臉檢測采用adaboost 算法,因其速度和精度的綜合性能表現優異。人眼定位采用小塊合并算法,因為它具有快速,準確,弱時實的特點。預處理算法采用直方圖均衡加平滑的算法,簡單,高效。 識別算法采用PCA 加ICA 算法,它能最大的弱化姿態和光照對人臉識別的影響。 最后,使用Verilog HDL 硬件描述語言進行算法的RTL 建模,在C++算法的基礎上,保證原來效果的前提下,根據FPGA 硬件特點對算法進行了優化。視頻輸入輸出是人臉識別的前提,它提供FPGA 上算法需要處理的數據,預處理算法在C++算法的基礎上進行了優化,最大的減少了運算量,提高了運算速度,16 位計算器模塊使得在算法實現時可以根據系統要求,在FPGA的ip 核和自己設計的模塊之間選擇性能更好的一個來調用,FIFO的設計提供同步和異步時鐘域的數據緩存。設計在ISE和VC++軟件平臺同時進行,隨時對verilog和C++數據進行監測和比對。全部設計模塊通過仿真,達到預定的性能要求,并在FPGA 上綜合實現。
標簽:
FPGA
人臉識別
算法
上傳時間:
2013-07-13
上傳用戶:李夢晗