極大化提高即時特徵提取效率
FPGA blob 分析簡介
高效的特徵提取:專注於重要事項
特徵提取功能可將原始影像資料,轉變成有價值的數位特色,驅動如物件偵測與分類等任務。該技術專注於關鍵影像特徵、降低資料量,可以加速即時處理速度。我們的示範比較了同時在 FPGA 與 CPU 架構上進行典型的特徵提取流程: debayering、色彩空間轉換、HSI 閾值、形態篩選和 blob 分析,你會看到 FPGA 管線化如何大幅強化即時效能。
右圖顯示這些步驟如何將影像轉換為電腦能夠詮釋的格式。在最後一步,將樂高方塊辨識為一個 64 位元格式的 blob;左邊的數字表示其邊框,右邊的數字則顯示其面積。
FPGA 管線:具備高 FPS,不造成 CPU 負荷
我們使用 5MP CXP-12 相機以 122 fps 的速度進行示範,比較上述步驟在電腦 CPU 與在影像擷取卡上使用 VisualApplets 的情形,結果如下:
CPU:速度降至 9 fps;CPU 使用率達 100%
FPGA:速度維持 122 fps;CPU 負載僅 9%
有什麼收穫?對於複雜且分秒必爭的視覺任務,FPGA 管線可確保最佳性能,以最小的 CPU 負載保持高速運作。接下來,我們將深入探討為什麼直接在 FPGA 上運行 blob 分析,會帶來如此巨大的差異。
了解 blob 分析的作用
Blob 分析可識別並分析二進位影像中的連接區域 (blob),提取關鍵影像資料,例如物件大小、形狀、位置、面積和連接性。
雖然很多人認為 FPGA 在影像擷取卡上的作用,僅限於影像處理,但實際上其功能遠遠不只如此。Blob 分析通常會在影像處理的最後階段進行,在各產業一般都以 CPU 來進行。不過,因為 Blob 分析的資源需求,將其處理流程轉移到 FPGA 上,將能大幅降低 CPU 負荷,且能提高整體的系統效能。
為什麼在 FPGA 上執行 blob 分析會有如此差異?
在另一項示範中,我們使用一台 25 MP 的 CXP-12 相機,以 72 fps 運作,比較在 CPU 與FPGA 上使用 blob 分析來檢測一張具有 51 x 51 點 (2601 個 blob) 的點陣測試圖。在維持相機的最高取像速度 (72 fps) 時,結果十分清楚,如右側表格所示。
Blob 分析是運算密集的作業,當以 CPU 執行時,會顯著拖慢即時任務,在如組裝生產線上的缺陷偵測等關鍵應用上會造成延遲。將 blob 分析改以 FPGA 執行,能大幅降低 CPU 負荷,以最小延遲來維持系統全速運作。
應用的意義:轉化即時效能
在困難的即時應用,例如高速網狀檢測系統內,以 FPGA 來執行影像預處理與分析作業,可以將處理範圍限縮在有缺陷的區域內,將 PC 的資料負載減少到僅僅一小部分。這種簡化的作業方式係由我們簡單易用的 FPGA 程式設計軟體 VisualApplets所驅動,帶來快速、有效的處理結果,且將延遲縮減到最小程度。我們的 FPGA 解決方案使用單次完成演算法,只要一次運作就能處理影像,使用最低電腦運算資源,以最佳化即時應用。
強化您的應用FPGA blob 分析的主要優勢
高效的資料處理:在管道的早期進行預處理,減少資料負載。
不增加延遲:在不犧牲速度的情況下,提供即時效能。
系統性能增強: 將相機和系統功能發揮到極致。
用途多元:非常適合快速移動和複雜的環境。
此方案所用產品
想實施類似的方案嗎?這些產品能有所助益。