1. 程式人生 > >關於在fpga上進行目標檢測、跟蹤的設計

關於在fpga上進行目標檢測、跟蹤的設計

對於目標檢測、跟蹤一般的科研,主要是使用matalab,VS,VC6.0結合opencv(開源計算機視覺庫)進行開發。主要是使用一下兩個方法【通過論文總結】
一、 使用matalab,選定檢測、識別的演算法,弄懂演算法的含義,新增自己的改進方案。編寫matalab程式碼(主要是C、C++)。運用視訊檢測集,對演算法的精確性、魯棒性進評測,並與未改進的演算法對比,突出自己提出演算法的優勢。
二、使用VC、VS進行關於win32控制檯程式的開發,主要開發出的產品是MFC的.exe專案。可以新增一些資料分析(曲線圖)和視訊控制的功能。

如何在fpga上進行開發(主要是結合自己的時間安排)
一、選定演算法(主要是可以在硬體上易於實現)
二、在matalab、opencv上實現演算法(弄懂演算法)
三、改進演算法,編寫軟體程式碼,實現
四、利於matalab將演算法匯出為verilog語言,或者通過vivado的HLS將自己編寫的C演算法(就是一個函式)和測試程式、資料在HLS上測試,通過後對演算法進行IP打包
五、進行其他模組的開發,資料的獲取(CCD、CMOS獲取),資料的處理(ITU656轉ITU601),資料的顏色空間的額裝換(對於人臉監測,需要轉為HIS),資料的儲存(可以先測試640*480的視訊資料,不使用DDR,驗證演算法),演算法對資料的處理,資料的後端顯示(視訊的時序要求)

自己簡化的開發方法:
直接使用視訊播放盒輸出480PHDMI的視訊資料;對資料進行處理演算法處理(主要保證在下一幀到來之前,完成對第一幀的演算法計算、處理,在第二幀資料進來時,就用第一幀的結果對第二幀資料進行處理、輸出;對第二幀資料進行演算法計算,將其結果供第三幀資料使用。必須滿足時序的要求=》不然就會在第二幀來時,演算法還沒計算完成,那麼就會出現丟幀的現象【這會出現目標檢測、追蹤的丟失】);輸出到顯示屏上,檢視結果。

下一個階段的工作:
① 弄清meanshift演算法的含義,結合軟體演算法進行理解
② 編寫軟體實現的程式碼
③ 弄會一個zedboard的專案,主要是學會vivado的開發流程,方法(怎麼進行演算法的開發、怎麼進行驅動的開發,sdk中的開發【基於硬體的C程式碼】),AXI中的AXI-stream

http://blog.sina.com.cn/s/blog_651c92d301012onv.html
④ 弄清系統的一個架構