0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Arm KleidiCV開源庫加速圖像處理性能

Arm社區(qū) ? 來源:Arm社區(qū) ? 作者:Arm社區(qū) ? 2024-09-03 11:32 ? 次閱讀

作者:Arm 工程部主任軟件工程師Michael Platings

對于在云端及邊緣等環(huán)境中運行的數(shù)百萬個人工智能 (AI) 工作負載,以及各類需要理解攝像頭和視頻數(shù)據(jù)的 AI 應(yīng)用來說,計算機視覺 (CV) 都在其中起著關(guān)鍵作用。Arm KleidiCV 是一個針對 Arm CPU 優(yōu)化的性能關(guān)鍵型例程的開源庫。該軟件庫專為集成到各種計算機視覺框架而設(shè)計,能夠為 Arm 平臺上的計算機視覺工作負載提供最佳性能,并且無需應(yīng)用開發(fā)者進行額外編程或開發(fā)。

計算機視覺的重要性

消費電子設(shè)備中,攝像頭質(zhì)量是消費者選擇手機時的一大關(guān)鍵因素。但是,攝像頭的質(zhì)量不僅與鏡頭或傳感器有關(guān)。從光子擊中攝像頭傳感器到圖像顯示在屏幕的過程中,圖像數(shù)據(jù)須經(jīng)過多次轉(zhuǎn)換,其中通常包括但不限于:熱像素校正、白平衡、去馬賽克、降噪、陰影校正、幾何校正、色彩校正、色調(diào)曲線調(diào)整、邊緣增強、縮放和裁剪等。

上述部分轉(zhuǎn)換應(yīng)由專用硬件完成,然而許多轉(zhuǎn)換在軟件中執(zhí)行時表現(xiàn)更佳。在軟件中執(zhí)行可以帶來出色的靈活性,使攝像頭管線設(shè)計者能夠快速迭代其構(gòu)想,打造優(yōu)異的攝像體驗,進而使產(chǎn)品在市場中脫穎而出。

性能因素

攝像頭管線不僅要生成高品質(zhì)圖像,還要能夠快速運行。既要讓消費者能夠以 60fps 幀率錄制 4K 視頻,又可以快速拍攝優(yōu)質(zhì)的靜態(tài)圖像。用戶想要記錄下的一些美好瞬間稍縱即逝,如果攝像頭喚醒時間過長,那即使具備拍出漂亮照片的攝像功能,也只是勞而無功。因此,要拍出令人驚艷的好照片,就最好在軟件中運行攝像頭管線,而且相關(guān)軟件需要能夠快速運行。

Arm 對構(gòu)成圖像處理基本要素的許多運算進行了高度優(yōu)化,充分善用現(xiàn)有和未來 Arm CPU 的功耗和效率。我們是如何做到的?KleidiCV 不使用普通的 C 函數(shù),而是使用 Arm C 語言擴展 (Arm C Language Extensions, ACLE) intrinsics 編寫而成,可直接映射到功能強大的 Arm 單指令多數(shù)據(jù) (SIMD) 指令。每個 KleidiCV 函數(shù)都有三種不同的實現(xiàn)方式,分別針對 Neon、SVE2 或 Streaming SVE 和 SME2。KleidiCV 會自動檢測其所運行的硬件,并據(jù)此選擇合適的實現(xiàn)方式。

KleidiCV 是一個小型,但不斷增長的簡單卻快速的圖像底層運算集合。其中包括:

RGB 和 BGR(含和不含 alpha 通道)、灰度和 YUV 之間的色彩轉(zhuǎn)換

高斯模糊

膨脹和腐蝕

索貝爾算子

調(diào)整圖像大小

KleidiCV 可用作輕量級獨立圖像處理庫,此外還可作為非常熱門的 OpenCV 庫的一部分無縫使用。如果你已經(jīng)在使用 OpenCV,那么可以輕松啟用 KleidiCV 來加速圖像處理。

KleidiCV 的速度

通過 OpenCV 的基準測試,我們可以了解 KleidiCV 如何能夠加速 OpenCV。代碼使用 Android NDK 26d 構(gòu)建而成。以下基準測試顯示了 KleidiCV 在三星 Galaxy S22 手機上搭載的 Arm Cortex-X2 核心上的性能提升情況,其中圖像尺寸為 1920*1080。

目前,KleidiCV 不提供內(nèi)置的多線程支持。圖像處理是一個“易并行”問題,因此原則上,可以輕松地為 KleidiCV 添加多線程,但我們?nèi)栽诓粩嗤晟?API,致力于為開發(fā)者提供在多任務(wù)環(huán)境中使用異構(gòu) CPU 時所需的控制功能。為了使比較更有意義,我們的基準測試在 OpenCV 中禁用了多線程?;鶞蕼y試顯示的是單核性能。

wKgZombWg1qAJKo_AABcBljfPBg460.png

各個運算的基準測試得分各有不同。在某些情況中,性能取得了小幅提升,而在更好的情況下,KleidiCV 的運行時間比標準 OpenCV 要短得多。不同運算的平均提升率超過 75%。

若想詳細了解我們?nèi)绾芜\行基準測試,可以在 KleidiCV 資源庫中查看我們使用的腳本。

獲取方式

Java 項目中,要想獲取啟用 KleidiCV 的 OpenCV,最簡單的方法是使用 OpenCV 4.10 Maven 包,開發(fā)者可訪問以下鏈接,獲取相關(guān)資源。

或者,在使用 CMake 構(gòu)建 OpenCV 4.10 時,添加參數(shù) -DWITH_KLEIDICV=ON,即可啟用 KleidiCV 0.1。

wKgZombWg2SAOqHfAAAuaqncK7M279.jpg

你也可以將 KleidiCV 構(gòu)建為獨立的庫。

安全和測試

Arm 非常重視安全問題。安全開發(fā)生命周期已融入到我們工作的方方面面。在可能的情況下,KleidiCV 函數(shù)將驗證其參數(shù),例如參數(shù)超出有效范圍時,將返回錯誤。該項目包含大量自動測試。核心庫代碼的分支覆蓋率非常高,遠遠超過 99%,且行覆蓋率達到 100%。

開源

KleidiCV 以符合 Apache 許可證 2.0 版的源代碼形式提供。

初期階段

KleidiCV 庫會不斷增加更多功能。歡迎開發(fā)者在我們的 GitLab 資源庫中提出反饋意見或問題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9029

    瀏覽量

    366535
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1279

    瀏覽量

    56585
  • 計算機視覺
    +關(guān)注

    關(guān)注

    8

    文章

    1694

    瀏覽量

    45905

原文標題:Arm KleidiCV 0.1 助力開發(fā)者釋放圖像處理能力

文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    凌華科技推出嵌入式模塊計算機Express-IB,助力提升圖像處理性能

    凌華科技推出高圖像處理性能的COM Express嵌入式模塊計算機Express-IB,適用于需要高性能圖像處理的系統(tǒng)控制器以增加行車安全的
    發(fā)表于 12-10 22:10 ?1643次閱讀

    常用的Python圖像處理介紹

    本文主要介紹了一些簡單易懂最常用的 Python 圖像處理。
    的頭像 發(fā)表于 08-19 10:54 ?1962次閱讀

    Arm RAN加速資料

    Arm RAN加速(ArmRAL)包含一組用于加速電信應(yīng)用的功能,例如但不限于5G無線電接入網(wǎng)絡(luò)(RAN)。 Arm RAN
    發(fā)表于 08-08 07:46

    Arm RAN加速的參考文檔

    本書包含Arm RAN加速(ArmRAL)的參考文檔。這本書是由使用Doxygen的源代碼生成的。
    發(fā)表于 08-10 07:08

    Arm RAN加速23.01版參考指南

    本書包含Arm RAN加速(ArmRAL)的參考文檔。這本書是使用Doxygen從源代碼生成的
    發(fā)表于 08-11 07:06

    ARM性能入門(單機版)

    ARM性能ARM處理器上的高性能計算應(yīng)用程序提供優(yōu)化的標準核心數(shù)學(xué)
    發(fā)表于 08-25 06:36

    使用計算在Raspberry PI和HiKey 960上分析AlexNet

    夠更容易配置和優(yōu)化 Am 處理器運行的軟件。 AlexNet 是一個從 Arm Computer 中為 Raspberry Pi 設(shè)計的神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)( CNN) , 從 1 000 個圖像
    發(fā)表于 08-29 08:05

    性能加速的空間圖像處理開發(fā)FPGA協(xié)處理

    性能加速的空間圖像處理開發(fā)FPGA協(xié)處理器快速、精確的圖像數(shù)據(jù)的板上分類是現(xiàn)代衛(wèi)星
    發(fā)表于 04-27 08:30 ?15次下載

    淺談Vitis 加速 可擴展,靈活度高

    Vitis 加速 Vitis 統(tǒng)一軟件平臺包括一組廣泛的、性能優(yōu)化的開源,這些提供了即開即
    的頭像 發(fā)表于 11-23 15:45 ?1668次閱讀

    CV-CUDA 高性能圖像處理加速

    隨著短視頻 APP、視頻會議平臺以及 VR/AR 等技術(shù)的發(fā)展,視頻與圖像已逐漸成為全球互聯(lián)網(wǎng)流量的主要組成部分。包含我們平時接觸到的這些視頻圖像,也有很多是被 AI 和計算機視覺(CV)算法處理
    的頭像 發(fā)表于 11-18 22:10 ?1013次閱讀

    CV-CUDA 高性能圖像處理加速發(fā)布 Alpha 版本,正式向全球開發(fā)者開源

    CV-CUDA (Computer Vision – Compute Unified Device Architecture)高性能圖像處理加速
    的頭像 發(fā)表于 12-21 20:45 ?1067次閱讀

    Arm RAN 加速(RAN Acceleration Library, RAL)通過采用 BSD 開源許可證將代碼正式開源

    Arm RAN 加速(RAN Acceleration Library, RAL)通過采用 BSD 開源許可證將代碼正式
    的頭像 發(fā)表于 07-20 17:31 ?1723次閱讀

    Nvidia 通過開源提升 LLM 推理性能

    加利福尼亞州圣克拉拉——Nvidia通過一個名為TensorRT LLM的新開源軟件,將其H100、A100和L4 GPU的大型語言模型(LLM)推理性能提高了一倍。 正如對相同硬件一輪又一輪改進
    的頭像 發(fā)表于 10-23 16:10 ?599次閱讀

    Vitis加速:廣泛且性能優(yōu)化的開源

    Vitis 統(tǒng)一軟件平臺包括一組廣泛的、性能優(yōu)化的開源,這些提供了即開即用的加速功能,并且對現(xiàn)有應(yīng)用實現(xiàn)最小化代碼更改或零更改。
    的頭像 發(fā)表于 10-30 17:23 ?690次閱讀
    Vitis<b class='flag-5'>加速</b><b class='flag-5'>庫</b>:廣泛且<b class='flag-5'>性能</b>優(yōu)化的<b class='flag-5'>開源</b><b class='flag-5'>庫</b>

    用ARMxy ARM工業(yè)控制器自帶的1Tops算力實現(xiàn)高性能圖像處理

    ARMxy ARM工業(yè)控制器憑借其強大的性能、靈活的配置和高度集成的特性,尤其是其內(nèi)置的1Tops算力NPU(神經(jīng)網(wǎng)絡(luò)處理單元),在圖像識別領(lǐng)域展現(xiàn)出了良好的
    的頭像 發(fā)表于 08-20 11:55 ?340次閱讀
    用ARMxy <b class='flag-5'>ARM</b>工業(yè)控制器自帶的1Tops算力實現(xiàn)高<b class='flag-5'>性能</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>