作者:Arm 工程部主任軟件工程師Michael Platings
對于在云端及邊緣等環境中運行的數百萬個人工智能 (AI) 工作負載,以及各類需要理解攝像頭和視頻數據的 AI 應用來說,計算機視覺 (CV) 都在其中起著關鍵作用。Arm KleidiCV 是一個針對 Arm CPU 優化的性能關鍵型例程的開源庫。該軟件庫專為集成到各種計算機視覺框架而設計,能夠為 Arm 平臺上的計算機視覺工作負載提供最佳性能,并且無需應用開發者進行額外編程或開發。
計算機視覺的重要性
在消費電子設備中,攝像頭質量是消費者選擇手機時的一大關鍵因素。但是,攝像頭的質量不僅與鏡頭或傳感器有關。從光子擊中攝像頭傳感器到圖像顯示在屏幕的過程中,圖像數據須經過多次轉換,其中通常包括但不限于:熱像素校正、白平衡、去馬賽克、降噪、陰影校正、幾何校正、色彩校正、色調曲線調整、邊緣增強、縮放和裁剪等。
上述部分轉換應由專用硬件完成,然而許多轉換在軟件中執行時表現更佳。在軟件中執行可以帶來出色的靈活性,使攝像頭管線設計者能夠快速迭代其構想,打造優異的攝像體驗,進而使產品在市場中脫穎而出。
性能因素
攝像頭管線不僅要生成高品質圖像,還要能夠快速運行。既要讓消費者能夠以 60fps 幀率錄制 4K 視頻,又可以快速拍攝優質的靜態圖像。用戶想要記錄下的一些美好瞬間稍縱即逝,如果攝像頭喚醒時間過長,那即使具備拍出漂亮照片的攝像功能,也只是勞而無功。因此,要拍出令人驚艷的好照片,就最好在軟件中運行攝像頭管線,而且相關軟件需要能夠快速運行。
Arm 對構成圖像處理基本要素的許多運算進行了高度優化,充分善用現有和未來 Arm CPU 的功耗和效率。我們是如何做到的?KleidiCV 不使用普通的 C 函數,而是使用 Arm C 語言擴展 (Arm C Language Extensions, ACLE) intrinsics 編寫而成,可直接映射到功能強大的 Arm 單指令多數據 (SIMD) 指令。每個 KleidiCV 函數都有三種不同的實現方式,分別針對 Neon、SVE2 或 Streaming SVE 和 SME2。KleidiCV 會自動檢測其所運行的硬件,并據此選擇合適的實現方式。
KleidiCV 是一個小型,但不斷增長的簡單卻快速的圖像底層運算集合。其中包括:
RGB 和 BGR(含和不含 alpha 通道)、灰度和 YUV 之間的色彩轉換
高斯模糊
膨脹和腐蝕
索貝爾算子
調整圖像大小
KleidiCV 可用作輕量級獨立圖像處理庫,此外還可作為非常熱門的 OpenCV 庫的一部分無縫使用。如果你已經在使用 OpenCV,那么可以輕松啟用 KleidiCV 來加速圖像處理。
KleidiCV 的速度
通過 OpenCV 的基準測試,我們可以了解 KleidiCV 如何能夠加速 OpenCV。代碼使用 Android NDK 26d 構建而成。以下基準測試顯示了 KleidiCV 在三星 Galaxy S22 手機上搭載的 Arm Cortex-X2 核心上的性能提升情況,其中圖像尺寸為 1920*1080。
目前,KleidiCV 不提供內置的多線程支持。圖像處理是一個“易并行”問題,因此原則上,可以輕松地為 KleidiCV 添加多線程,但我們仍在不斷完善 API,致力于為開發者提供在多任務環境中使用異構 CPU 時所需的控制功能。為了使比較更有意義,我們的基準測試在 OpenCV 中禁用了多線程?;鶞蕼y試顯示的是單核性能。
各個運算的基準測試得分各有不同。在某些情況中,性能取得了小幅提升,而在更好的情況下,KleidiCV 的運行時間比標準 OpenCV 要短得多。不同運算的平均提升率超過 75%。
若想詳細了解我們如何運行基準測試,可以在 KleidiCV 資源庫中查看我們使用的腳本。
獲取方式
在 Java 項目中,要想獲取啟用 KleidiCV 的 OpenCV,最簡單的方法是使用 OpenCV 4.10 Maven 包,開發者可訪問以下鏈接,獲取相關資源。
或者,在使用 CMake 構建 OpenCV 4.10 時,添加參數 -DWITH_KLEIDICV=ON,即可啟用 KleidiCV 0.1。
你也可以將 KleidiCV 構建為獨立的庫。
安全和測試
Arm 非常重視安全問題。安全開發生命周期已融入到我們工作的方方面面。在可能的情況下,KleidiCV 函數將驗證其參數,例如參數超出有效范圍時,將返回錯誤。該項目包含大量自動測試。核心庫代碼的分支覆蓋率非常高,遠遠超過 99%,且行覆蓋率達到 100%。
開源
KleidiCV 以符合 Apache 許可證 2.0 版的源代碼形式提供。
初期階段
KleidiCV 庫會不斷增加更多功能。歡迎開發者在我們的 GitLab 資源庫中提出反饋意見或問題。
-
ARM
+關注
關注
134文章
9084瀏覽量
367384 -
圖像處理
+關注
關注
27文章
1289瀏覽量
56722 -
計算機視覺
+關注
關注
8文章
1698瀏覽量
45976
原文標題:Arm KleidiCV 0.1 助力開發者釋放圖像處理能力
文章出處:【微信號:Arm社區,微信公眾號:Arm社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論