第六章 結論與未來工作
6.2 未來工作
由實驗結果來看,在本系統實作 SURF 演算法之效能有待改善,因此提出下 列四項做為未來的改善方向:
1. 分析各項運算的時間,使 DSP 記憶體及 EMIF 介面的使用達到最佳化。
2. 本 系 統 最 初 的 電 路 規 劃 主 要 希 望 能 運 用 在 機 器 人 進 行 嵌 入 式 影 像 處 理 , 故 FPGA 選 用 Altera 公 司 低 消 耗 功 率 及 高 性 價 比 的 Cyclone II 系 列 , 型 號 為 EP2C35F672C6。但電路設計時有先預留 FPGA 的升級空間,可以選擇同系
列 中 最 高 等 級 並 且 封 裝 同 樣 是 672-Pin FineLine BGA 的 EP2C70F672C6 。 表6-1 是兩者的內部資源 比較,由表中可看出 2C70 的邏輯單元是 目前的 2 倍多,記憶體位元大約是2.38 倍,嵌入式乘法器的數量大約是 4.28 倍。
3. 以目前實作的 SURF 演算法來看,尋找興趣點的程序具有規律性,但興趣點 的產生與畫面有關而沒有一定的規則。因此,可以進一步將 Fast-Hessian 興 趣 點 偵 測器以FPGA 來實現,當找到興趣點之後先存入雙時脈 FIFO,再由 DSP 讀出後進行 SURF 描述子的計算,如此可以 讓 DSP 與 FPGA 採用類似 Pipeline 方式同步進行運算以提高計算效能。除此之外,由於 CMOS 影像感 測器是逐列地輸出影像資料,而計算 SURF 描述子最大需要以興趣點為中心 計 算20s X 20s 方形區域內的 Haar 小波響應,此時 CMOS 影像感測器的輸 出卻 尚 未達 到可計算 Haar 小波響應的列數,故 FPGA 無法在偵測到興趣點 後 立即 計算 描述 子 。 因此 將 描 述 子 的計 算 放 在DSP ,而 DSP 與 FPGA 之間 儲存興趣點的FIFO 正好可當做緩衝區。
4. 在電路設計方面,考慮將 DSP 與 FPGA 模組分成兩個獨立的電路板,兩者之 間以Piggyback 的方式連接。如此不但可以進一步縮小尺寸,而且可以個別 對FPGA 或 DSP 進行更新與升級,甚至也能夠改變組合的方式,例如:使用 近年發展快速的ARM 處理器等。
最後,此系統並沒有限定只能實現 SURF 演算法,初期只是先以 SURF 來評 估並驗證系統功能。 因此往後還需多做不同的演算法實作,藉以收集更多 的實驗 數據,或者另外研究演算法實現於本系統 的評估方式。如此一來,就可以有準則 來判斷此系統是否適用於新的演算法。
表6-1 FPGA EP2C35F672 與 EP2C70F672 內部資源比較 EP2C35F672 EP2C70F672
LEs 33,216 68,416
M4K RAM blocks 105 250
Total RAM bits 483,840 1,152,000
Embedded Multipliers 35 150
PLLs 4 4
參考文獻
[1] Herbert Bay, Andreas Ess, Tinne Tuytelaars and Luc Van Gool, "SURF: Speeded Up Robust Features," Computer Vision and Image Understanding , Vol.110, No.3, 2008, pp.346-359.
[2] Anthony Rowe, Charles Rosenberg and Illah Nourbakhsh, "A Low Cost Embedded Color Vision System," in Proceedings of IROS 2002, Switzerland, 2002, pp.208-213.
[3] Stephanie McBader and Peter Lee, "An FPGA Implementation of a Flexible, Parallel Image Processing Architecture Suitable for Embedded Vision Systems," in Proceedings of the International Parallel and Distributed Processing Symposium, Nice, France, 2003, pp.228-232.
[4] Vanderlei Bonato, Adriano K. Sanches, M.M. Fernandes, João M. P. Cardoso, E.D.V.
Simoes and Eduardo Marques, "A Real Time Gesture Recognition System for Mobile Robots," in Proceedings of International Conference on Informatics in Control, Automation, and Robotics, Setúbal, Portugal, 2004, pp.207-214.
[5] P. Chalimbaud and F. Berry, "Design of an Imaging System based on FPGA Technology and CMOS Imager," in Proceedings of IEEE International Conference on
Field-Programmable Technology, Brisbane-Australia, 2004, pp407-411.
[6] Stefan Mahlknecht, Roland Oberhammer and Gregor Novak, "A Real-time Image Recognition System for Tiny Autonomous Mobile Robots," in Proceedings of the 10th IEEE Real-Time and Embedded Technology and Applications Symposium, Toronto, Canada, 2004, pp.324-330.
[7] Fen Xu, Jian-Jun Zeng and Yun-Long Zhang, "Design of a DSP-based CMOS Imaging System for Embedded Computer Vision," in Proceedings of IEEE Conference on Cybernetics and Intelligent Systems, Chengdu, China, 2008, pp430-433.
[8] P.A. Viola and M.J. Jones, "Rapid Object Detection Using a Boosted Cascade of Simple Features," in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Hawaii, 2001, pp.511–518.
[9] Christopher Evans, "Notes on the OpenSURF Library," http://www.chrisevansdev.com/
computer-vision-opensurf.html, 2009.
[10] Alexander Neubeck and Luc Van Gool, "Efficient Non-Maximum Suppression," in Proceedings of the 18th International Conference on Pattern Recognition , Hong Kong, 2006.
[11] M. Brown and D.G. Lowe, "Invariant features from interest point groups," in
Proceedings of British Machine Vision Conference, Cardi , Wales, ff 2002, pp.656–665.
[12] Texas Instruments Inc., "TMS320C6000 DSP External Memory Interface (EMIF) Reference Guide," SPRU266E, 2008.
[13] Altera Corporation, "Cyclone II Device Handbook," Volume 1, 2006.
[14] OminVision Technologies, Inc. "OV7649 Color CMOS VGA(640x480) CAMERACHIP Datasheet," 2004.
[15] OminVision Technologies, Inc. "OmniVision Serial Camera Control Bus(SCCB) Functional Specification," Ver. 2.2, 2007.
[16] Texas Instruments Inc., "TMS320C6000 Chip Support Library API Reference Guide,"
SPRU401J, 2004.
[17] Spansion Inc., "Am29LV320D Datasheet," 2005.
[18] Texas Instruments Inc., "Creating a Second-Level Bootloader for FLASH Bootloading on TMS320C6000 Platform With Code Composer Studio," Application Report,
SPRA999A1, 2006.
[19] Texas Instruments Inc., "TMS320C6000 Tools: Vector Table and Boot ROM Creation,"
Application Report, SPRA544D, 2004.
[20] 盧怡仁, 蔡偉和, "單晶片於數位信號處理的應用-以 TMS320C6000 的開發平台為 例" 文魁資訊, 台北, 民國九十六年。
[21] Cypress Semiconductor Corp., "EZ-USB FX2LP™ USB Microcontroller-High Speed USB Peripheral Controller," Rev. R, 2010.
[22] Cypress Semiconductor Corp., "EZ-USB® Technical Reference Manual," Rev. C, 2010.
[23] Cypress Semiconductor Corp., "Cypress CyAPI Programmer's Reference," 2011.
[24] Texas Instruments Inc., "TMS320C620x/C642x McBSP: UART," Application Report, SPRA633C, 2008.
[25] Altera Corporation, "Avalon Interface Specifications," ver. 11.0, 2011.
[26] Altera Corporation, "Understanding Metastability in FPGAs," ver. 1.2, 2009.
[27] Texas Instruments Inc., "Creating a Second-Level Bootloader for FLASH Bootloading on TMS320C6000 Platform With Code Composer Studio," Application Report,
SPRA999A1, 2006.
[28] Texas Instruments Inc., "TMS320C6000 EMIF to External Flash Memory," Application Report, SPRA568A, 2002.
[29] D. G. Lowe, “Distinctive Image Features from Scale-invariant Keypoints,” International Journal of Computer Vision, 2004, pp.91-110.
[30] Štefan Badura and Stanislav Foltán, “Advanced scale-space, invariant, low detailed feature recognition from images - car brand recognition,” in Proceedings of the
International Multiconference on Computer Science and Information Technology, Wisla, 2010, pp.19-23.