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

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

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

高通AI Hub:輕松實(shí)現(xiàn)Android圖像分類

大大通 ? 2024-11-26 01:03 ? 次閱讀

上一篇博文“Qualcomm AI Hub介紹”。高通AI Hub為開發(fā)者提供了一個強(qiáng)大的平臺,以優(yōu)化、驗(yàn)證和部署在Android設(shè)備上的機(jī)器學(xué)習(xí)模型。這篇文章將介紹如何使用高通AI Hub進(jìn)行圖像分類的程式碼開發(fā),并提供一個實(shí)際的例子來展示其在Android平臺上的應(yīng)用。

程式碼介紹

高通AI Hub支持多種機(jī)器學(xué)習(xí)框架,如TensorFlow Lite、Quancomm AI Engine Direct和ONNX Runtime,并能夠?qū)⒂?xùn)練好的模型轉(zhuǎn)換為優(yōu)化的on-device執(zhí)行格式。開發(fā)者可以通過AI Hub的模型庫,選擇適合自己應(yīng)用需求的模型,并進(jìn)行相應(yīng)的優(yōu)化。此外,AI Hub還提供了詳細(xì)的on-device性能分析工具,幫助開發(fā)者了解模型在實(shí)際設(shè)備上的運(yùn)行情況。

于官方提供的Github ai-hub-apps進(jìn)行下載,使用Android Studio開啟app/android,就可以看到ImageClassification、SemanticSegmentation及SuperResolution,本篇博文介紹ImageClassification程式碼的部分及執(zhí)行,使用Android Studio開啟專案畫面如下圖:

wKgaomdFfweABGA5AAOeSe1BmGg453.png


ImageProcessing.java

里面有一個靜態(tài)方法 resizeAndPadMaintainAspectRatio,其功能是調(diào)整圖片大小,同時維持圖片的寬高比(Aspect Ratio)。如果圖片無法完全符合給定的輸出尺寸,則會加入填充區(qū)域(padding),使得最終輸出的圖片符合要求的寬度和高度。

TFLiteHelpers.java:

TensorFlow Lite (TFLite) 的輔助工具,用于為 TensorFlow Lite 模型建立解譯器(interpreter)和相應(yīng)的硬件加速委派(delegate),例如 GPU 或 NPU。主要功能是根據(jù)指定的硬件加速選項(xiàng),自動嘗試為 TFLite 模型分配不同的硬件委派來優(yōu)化推論性能。

CreateInterpreterAndDelegatesFromOptions

用于根據(jù)指定的優(yōu)先級順序,創(chuàng)建 TFLite 解譯器并分配硬件加速委派。它會根據(jù)委派的優(yōu)先順序來嘗試分配不同的委派類型,如 GPU 或 NPU,并在無法使用時降級至 CPU 運(yùn)算(例如使用 XNNPack 提供的 CPU 加速)。

CreateInterpreterFromDelegates

此函式實(shí)際上是根據(jù)之前創(chuàng)建的委派來生成解譯器。主要負(fù)責(zé)配置 TFLite 解譯器的參數(shù),例如 CPU 線程數(shù)和是否使用 XNNPack 作為后備計算選項(xiàng)。若解譯器創(chuàng)建失敗,則會記錄失敗原因并返回 null。

CreateDelegate

此函式根據(jù)指定的委派類型(如 GPUv2 或 QNN_NPU)創(chuàng)建對應(yīng)的硬件委派。每一個委派都有對應(yīng)的函式進(jìn)行初始化,例如 CreateGPUv2Delegate 或 CreateQNN_NPUDelegate。

CreateGPUv2Delegate

這個函式負(fù)責(zé)創(chuàng)建和配置 GPUv2 委派,它會將 GPU 設(shè)定為最大性能模式,允許使用浮點(diǎn)精度 FP16 進(jìn)行計算,來提升 GPU 運(yùn)行效率。

CreateQNN_NPUDelegate

此函式負(fù)責(zé)為支持 Qualcomm NPU 的裝置創(chuàng)建 QNN 委派,根據(jù)裝置支持的硬件類型來選擇使用 DSP 或 HTP 來加速推論計算。

ImageClassification.java:

基于 TensorFlow Lite 的影像分類器,用來從給定的影像中推測出最有可能的物件類別。主要的功能包括模型的加載、預(yù)處理影像、推論以及后處理推論結(jié)果,并且能夠返回處理時間等性能資訊。

ImageClassification

功能:從指定的模型和標(biāo)簽路徑中創(chuàng)建影像分類器。

參數(shù):

context:應(yīng)用程式的上下文。

modelPath:模型文件的路徑。

labelsPath:標(biāo)簽文件的路徑。

delegatePriorityOrder:指定計算單元優(yōu)先順序(例如 GPU、CPU 等)。

preprocess

功能:將輸入的影像預(yù)處理為模型可以接受的格式。

步驟:

檢查影像尺寸是否符合模型的輸入要求,必要時進(jìn)行縮放。

根據(jù)模型的數(shù)據(jù)類型(如 FLOAT32 或 UINT8)轉(zhuǎn)換影像數(shù)據(jù)。

postprocess

功能:將模型輸出的結(jié)果轉(zhuǎn)換為可讀取的標(biāo)簽(類別)。

步驟:

讀取模型的輸出。

根據(jù)預(yù)測值選出信心最高的幾個結(jié)果(TOP-K),并轉(zhuǎn)換為對應(yīng)的標(biāo)簽名稱。

predictClassesFromImage()

功能:對給定的影像進(jìn)行分類,返回最有可能的類別。

步驟:
進(jìn)行預(yù)處理(preprocess)。

使用解釋器進(jìn)行推論。

后處理輸出結(jié)果(postprocess)。

返回分類結(jié)果。

findTopKFloatIndices() 和 findTopKByteIndices()

功能:從模型輸出的數(shù)據(jù)中找出信心最高的 K 個結(jié)果,分別處理 float 和 byte 類型的輸出。

實(shí)現(xiàn):使用優(yōu)先佇列(PriorityQueue)來追蹤最大值,并返回這些最大值對應(yīng)的索引

MainActivity.java:

使用 TensorFlow Lite 來進(jìn)行影像分類。它主要負(fù)責(zé)初始化 UI 元件、管理影像選擇與處理、并進(jìn)行模型推論。如果執(zhí)行時發(fā)生圖像讀取錯誤問題,需要在loadImageFromStringAsync函式做調(diào)整:

// try (InputStream inputImage = getAssets().open("images/" + imagePath))

try (InputStream inputImage = getAssets().open( imagePath))

模型及App執(zhí)行

TFLite模型:

模型部分可以依據(jù)AI Hub提供的Image Classification選項(xiàng)的TFLite模型,下載自己所需的模型,并放置于ImageClassification/src/main/assets檔案夾底下,修改Android Studio內(nèi)的 gradle.properties,修改:classification_tfLiteModelAsset=xxxxxxx.tflite

程式運(yùn)作:

高通AI Hub提供的Android程式碼,除了在高通提供相關(guān)芯片的開發(fā)板上執(zhí)行,也可以在擁有高通芯片的手機(jī)上執(zhí)行,實(shí)機(jī)測試是使用小米11手機(jī)。

執(zhí)行結(jié)果如下方Gif動畫,App最下方Image透過下拉式選單選擇內(nèi)建的三張圖片或相簿圖片,選擇完成后上方會出現(xiàn)選擇的圖片,按下RUN MODEL按鈕即可開始推論,當(dāng)然也可以選擇CPU Only體驗(yàn)一下沒有硬件加速的推論時間,而All Hardware則會使用QNN_NPU + GPUv2 + XNNPack等硬件加速。

wKgaomdFfwiAMYJTAHYriBtf1IA347.gif

小結(jié)

本篇博文就到這里,通過高通AI Hub Android開發(fā)者可以更輕松地將先進(jìn)的AI模型集成到他們的應(yīng)用中。高通AI Hub的文檔和模型庫提供了豐富的資源,幫助開發(fā)者探索和實(shí)現(xiàn)AI領(lǐng)域的應(yīng)用。

參考

ai-hub-apps

AI Hub Image Classification

Q&A

問:如何獲取高通AI Hub Model的ImageClassification模型?

答:您可以訪問高通AI Hub的GitHub頁面或官方網(wǎng)站,這里提供了模型的開源代碼和安裝指南。

問:部署模型時需要注意哪些性能和精度問題?

答:在部署模型時,您需要考慮模型的延遲、記憶體使用等性能指標(biāo),以及模型在特定設(shè)備上的精度。高通AI Hub提供了性能指標(biāo)和優(yōu)化指南,幫助您選擇最適合您需求的模型。

問:如果在部署過程中遇到問題,該如何解決?

答:如果在模型部署過程中遇到性能、精度或其他問題,您可以通過高通AI Hub的支持Slack 提交問題。此外,您也可以參考官方文檔中的疑難解答部分。

問:高通AI Hub Model可以在哪些設(shè)備上運(yùn)行?

答:高通AI Hub Model支持在多種設(shè)備上運(yùn)行,包括但不限于Snapdragon 845, Snapdragon 855/855+, Snapdragon 865/865+, Snapdragon 888/888+等多款芯片組的設(shè)備。

登錄大大通網(wǎng)站閱讀原文,提問/評論,獲取技術(shù)文檔等更多資訊!

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

    關(guān)注

    76

    文章

    7491

    瀏覽量

    190850
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3939

    瀏覽量

    127624
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5087

    瀏覽量

    97785
  • Qualcomm
    +關(guān)注

    關(guān)注

    8

    文章

    676

    瀏覽量

    52171
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60557
收藏 人收藏

    評論

    相關(guān)推薦

    ASTRA AI Hub詳細(xì)介紹

    ASTRA AI Hub以其強(qiáng)大的邊緣計算能力、低成本的AI升級方案、持續(xù)的產(chǎn)品價值提升、高級的視覺識別應(yīng)用以及端云智能交互的能力,為行業(yè)數(shù)字化轉(zhuǎn)型和消費(fèi)智能化升級提供了有力的支持。
    的頭像 發(fā)表于 10-24 16:23 ?219次閱讀
    ASTRA <b class='flag-5'>AI</b> <b class='flag-5'>Hub</b>詳細(xì)介紹

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測

    NPU。 應(yīng)用領(lǐng)域 圖像識別: NPU能夠迅速對圖像進(jìn)行分類、檢測和分割等操作,大大提升了處理效率。 語音識別: NPU實(shí)現(xiàn)了實(shí)時語音轉(zhuǎn)換和語音合成功能,為語音交互提供了更自然的體驗(yàn)。
    發(fā)表于 10-24 10:13

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子
    的頭像 發(fā)表于 08-23 14:58 ?784次閱讀
    RK3588 技術(shù)分享 | 在<b class='flag-5'>Android</b>系統(tǒng)中使用NPU<b class='flag-5'>實(shí)現(xiàn)</b>Yolov5<b class='flag-5'>分類</b>檢測-迅為電子

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測

    NPU。 應(yīng)用領(lǐng)域 圖像識別: NPU能夠迅速對圖像進(jìn)行分類、檢測和分割等操作,大大提升了處理效率。 語音識別: NPU實(shí)現(xiàn)了實(shí)時語音轉(zhuǎn)換和語音合成功能,為語音交互提供了更自然的體驗(yàn)。
    發(fā)表于 08-20 11:13

    計算機(jī)視覺怎么給圖像分類

    圖像分類是計算機(jī)視覺領(lǐng)域中的一項(xiàng)核心任務(wù),其目標(biāo)是將輸入的圖像自動分配到預(yù)定義的類別集合中。這一過程涉及圖像的特征提取、特征表示以及分類器的
    的頭像 發(fā)表于 07-08 17:06 ?799次閱讀

    光譜成像光源 實(shí)現(xiàn)對細(xì)微色差的分類

    光源在機(jī)器視覺中的重要性不容小覷,它直接影響到圖像的質(zhì)量,進(jìn)而影響整個系統(tǒng)的性能。然而自然光LED光源不能完全滿足實(shí)際需求,比如對細(xì)微的色差進(jìn)行分類,我們就需要考慮紅外光譜光源。所謂
    的頭像 發(fā)表于 06-08 08:34 ?731次閱讀
    <b class='flag-5'>高</b>光譜成像光源 <b class='flag-5'>實(shí)現(xiàn)</b>對細(xì)微色差的<b class='flag-5'>分類</b>

    AI Hub支持驍龍X系列,賦能Windows PC終端AI

    在Microsoft Build 2024開發(fā)者大會上,通技術(shù)公司宣布了重大進(jìn)展。公司擴(kuò)展了通?AI Hub,使其支持驍龍?X系列平臺,旨在幫助開發(fā)者更快地將創(chuàng)新產(chǎn)品推向市場。這一
    的頭像 發(fā)表于 05-27 10:16 ?536次閱讀

    OpenAI發(fā)布圖像檢測分類器,可區(qū)分AI生成圖像與實(shí)拍照片

    據(jù)OpenAI介紹,初步測試結(jié)果表明,該分類器在辨別非AI生成圖像與DALL·E 3生成圖像時,成功率高達(dá)近98%,僅有不到0.5%的非AI
    的頭像 發(fā)表于 05-09 09:57 ?483次閱讀

    AI Hub助力開發(fā)者解鎖終端側(cè)AI潛力

    在巴塞羅那世界移動通信大會(MWC)上,通技術(shù)公司宣布了其在AI領(lǐng)域的最新進(jìn)展,包括全新的AI Hub和前沿研究成果
    的頭像 發(fā)表于 03-04 16:15 ?816次閱讀

    通發(fā)布AI Hub平臺和Wi-Fi7芯片, 助力開發(fā)人員構(gòu)建AI模型和多終端用例

    最新Wi-Fi7技術(shù)和解決方案Fastconnect7900。同時,在終端側(cè)AI模型落地和芯片構(gòu)建上,通推出了AI Hub平臺賦能開發(fā)者。
    的頭像 發(fā)表于 02-28 16:28 ?1.8w次閱讀
    <b class='flag-5'>高</b>通發(fā)布<b class='flag-5'>AI</b> <b class='flag-5'>Hub</b>平臺和Wi-Fi7芯片, 助力開發(fā)人員構(gòu)建<b class='flag-5'>AI</b>模型和多終端用例

    通推出全新AI Hub,使AI推理速度最高提升4倍

    在今年的世界移動通信大會(MWC)上,通公司展示了其最新的技術(shù)成果——全新的AI Hub。這一創(chuàng)新平臺為開發(fā)者提供了全面優(yōu)化的AI模型
    的頭像 發(fā)表于 02-28 10:28 ?779次閱讀

    AI Hub為開發(fā)者開啟卓越終端側(cè)AI性能

    在今年的巴塞羅那世界移動通信大會(MWC)上,通技術(shù)公司再次引領(lǐng)AI技術(shù)的創(chuàng)新潮流,發(fā)布了其全新的AI Hub。這一創(chuàng)新平臺為開發(fā)者提
    的頭像 發(fā)表于 02-27 11:15 ?886次閱讀

    通在2024 MWC展示AI領(lǐng)域新突破

    在2024年巴塞羅那世界移動通信大會(2024 MWC)上,通技術(shù)公司展現(xiàn)了其在AI領(lǐng)域的最新成果,從全新的通?AI Hub到前沿研究突
    的頭像 發(fā)表于 02-27 10:57 ?1010次閱讀

    MWC2024:通推出全新AI Hub及前沿多模態(tài)大模型

    2024年世界移動通信大會(MWC)上,通再次展現(xiàn)其技術(shù)領(lǐng)導(dǎo)力,通過發(fā)布全新的AI Hub和展示前沿的多模態(tài)大模型技術(shù),推動了5G和AI
    的頭像 發(fā)表于 02-26 16:59 ?1304次閱讀

    IoT Hub是什么?IoT Hub的應(yīng)用場景

    IoT Hub是一個連接設(shè)備的平臺,它為物聯(lián)網(wǎng)開發(fā)者提供了一個安全、穩(wěn)定、高效的連接設(shè)備和管理設(shè)備數(shù)據(jù)的方式。IoT Hub支持多種物聯(lián)網(wǎng)協(xié)議(如MQTT),可以幫助開發(fā)者快速實(shí)現(xiàn)“設(shè)備-設(shè)備
    的頭像 發(fā)表于 02-02 17:25 ?2712次閱讀