1. 程式人生 > >FPGA影象處理之路

FPGA影象處理之路

下面論述FPGA在影象處理領域中的地位:
影象處理,它是一個非常廣義的概念,它包含影象增強,影象復原,影象重建,影象分析,模式識別,計算機視覺等N多個應用方向。這些應用技術有許多在本質上是相通的,但是不同應用領域的關注點往往是不同的。 從網路上的開源情況來看,FPGA在影象處理方面的主要應用一直處於影象的預處理階段。
什麼叫影象的預處理?例如影象的畸變校正,濾波器處理,邊緣檢測、顏色檢測和閾值處理等。這些預處理都有一些共同的特徵,演算法較為簡單,操作重複性強等。但是,除了預處理,FPGA就不能做點別的嗎?有的哦,影象處理類似一個三層金字塔,分為底層,中間層,高層。
這裡寫圖片描述
影象處理金字塔有三層,分別針對的是畫素級、特徵級和目標級。一個成熟的影象處理應用應該同時涵蓋這三層。
在畫素層,我們可以對影象做一些變換,目的是增強影象的有用資訊,同時抑制任何不相關的資訊(如噪聲)。然後通過對預處理後的影象做分割操作實現影象從畫素級到特徵級的過度,分割操作可以理解為檢測影象中具有一些共同性質的區域。針對這些區域,依據一個或多個分類法則,將區域歸類到一些預先設定的特徵型別中作為後期識別的資料集。此時的資料已經不僅僅是影象了,其中包含了豐富的特徵資訊,如物體的位置資訊等。在金字塔高層,依靠獲取的特徵,如有必要還可以將這些特徵集作為學習的訓練集來建立專用的模型,藉助模型來實現識別,進而用來對實時採集的影象進行描述。

一言以蔽之,FPGA在影象處理中的應用尚處於未成熟狀態,網路上可供借鑑的大多是預處理方面的資源,而關於使用FPGA去做特徵和目標層次的處理還是十分複雜的,大多數高層次的應用還處於研發階段,具體說吧,主要是高校和大公司會去做這方面的研究與應用,而且因為是研發階段,所以使用的FPGA套件是十分昂貴的,不計成本。顯然這種實現方式是不符合商用的。因此,當你真正用一個全新的“較低廉”的“高效”的硬體方式實現了一個效果十分出色的影象處理演算法,那麼你當真是非常了不起的了。

用FPGA做影象處理往往需要考慮除演算法之外的更多問題,如時序約束,儲存器頻寬不足,資源不足,計算問題,這些問題都制約著FPGA在影象處理領域的發展。

FPGA主要用於通訊,IC驗證,高速介面,高速匯流排等。對於成熟的高速電路,比如路由晶片,交換機晶片一般內部結構比較穩定,使用專用IC。FPGA主要用於需要頻繁修改的高速數位電路,當專用功能的數位電路成熟,並且有一定量上的市場需求,就會放棄FPGA,轉而流片生產專用功能的IC。