吴忠躺衫网络科技有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>在MaaXBoard RT上運行幾乎任何TensorFlow模型

在MaaXBoard RT上運行幾乎任何TensorFlow模型

2022-10-31 | zip | 5.75 MB | 次下載 | 2積分

資料介紹

描述

設置

電路板設置

  • 將 MaaXBoard 攝像頭插入音頻插孔旁邊的 MIPI-CSA 攝像頭連接器
  • 將顯示器插入電路板背面的 MIPI-DSI 連接器
  • MCU 鏈路插入 JTAG 連接器。如圖所示,將接地、TXD 和 RXD 引腳連接到 MaaXBoard RT 上的 Pi 接頭。將 MCU 鏈接的另一端插入主機 PC 的 USB 端口
  • 將 5V、3A 電源連接到 MaaXBoard 上的 USB-C 端口為其供電。
?
?
?
pYYBAGNY3-2AFBSnABUOqo8dWQU645.jpg
?
1 / 3 ?將 MaaXBoard 攝像頭插入音頻插孔旁邊的 MIPI-CSA 攝像頭連接器。
?

我建議為您的 MIPI 相機創建一個支架,以便輕松定位以識別物體。我的是用 OpenBeam 做的,但你可以用木頭、冰棒棍和電工膠帶,或者你周圍的任何東西。

軟件設置

  • 在您的計算機上下載并安裝最新版本的MCUXpresso IDE 。您需要一個恩智浦帳戶。他們有適用于 Windows、Mac 和 Linux 的二進制文件。
  • 登錄NXP SDK Builder ,點擊“Select Development Board”,搜索 RT1170 以找到i.MX RT 1170 SDK 注意:MaaXBoard RT 自定義 SDK 即將發布。
  • 通過將 SDK 拖放到 MCUXPresso 的“已安裝的 SDK”部分來安裝 SDK
  • 下載這個項目的代碼(在代碼部分找到它)
  • 點擊 MCUXpresso 中的“import project(s) from file system”,導入剛剛下載的壓縮文件
  • 選擇項目,點擊“下一步”,點擊“完成”即可導入剛剛下載的項目
?
?
?
poYBAGNY3_CAf17XAAE3bzhZInM404.png
?
1 / 11
?

測試示例代碼

  • 選擇“調試”以構建代碼并將其加載到您的板上。
  • 如果這是您第一次調試項目,則必須從找到的調試探針列表中選擇“啟動配置”。選擇調試探針并且用戶單擊“確定”后,IDE 將自動為該調試探針創建默認啟動配置文件。
  • 選擇“運行”。您應該會在 LCD 上看到攝像頭圖像。嘗試將物體放在相機前,看看您的模型是否會檢測到它們。您可以在MaaX_v2_tensorflow_lite_micro_label_image_cm7 > doc > labels.txt下查看可檢測對象的完整列表有些物品可能很難找到(例如,我碰巧沒有歐洲火蠑螈)。然而,橙子在名單上,它們似乎工作正常。
pYYBAGNY3_KAfSBTAACHgVoPSz8268.png
?

包含的模型是 i.MX SDK eIQ 示例中包含的 Mobilenet v.1 的默認版本。雖然快速且輕巧,但它不是很準確。您會看到它通常無法識別圖像中的任何內容:

Inference time: 172 ms

Detected: No label detected (0%)

這里列出了一個有用的 Tensorflow Lite 圖像分類模型列表,以及它們的準確性、速度(以四核 CPU 為基準)和大小。我們使用的默認模型與列表中的第一個模型最相似。它的 top-1 準確率為 39.5%,這意味著模型的最高預測只有大約 39.5% 的時間是正確的標簽

選擇新模型和/或數據集

在這里,我們的任務是圖像分類,所以我們只考慮圖像分類模型。I.MX RT 板有幾種不同的模型類型示例:

pYYBAGNY3_aAKHG8AADzBDLLBrw009.png
?

根據您的圖像分類需求,您可能需要具有一定準確性或速度的模型。確定特定模型是否可以在特定設備上運行基于:

  • 推理運行需要多長時間?相同的模型在功能較弱的設備上運行需要更長的時間。
  • 是否有足夠的非易失性內存來存儲權重、模型本身和推理引擎?
  • 是否有足夠的 RAM 來跟蹤模型的中間計算和輸出?您可能需要增加堆大小以提高性能。

盡管 MaaXBoard RT 有一個浮點單元并且能夠運行浮點模型,但最好對模型進行量化以考慮大小和速度。

大小:MaaXBoard 配備 256 Mb 超閃存。Tensorflow Lite 標簽圖像項目為 35.4Mb,其中 5.5 個是模型本身。

我可以從 Tensorflow Lite 模型列表中看到,量化 MobileNet v2 比 V1 準確得多,同時仍然相當小且速度快:

pYYBAGNY3_iAMK9sAAASUWm9zw8810.png
?

重新訓練您的模型(可選)

您可以按原樣使用該模型,或者如果您希望在自定義數據集上對其進行訓練,您可以使用遷移學習來重新訓練您的模型。

遷移學習的完整說明在此處的恩智浦遷移學習實驗室中,您可以在此處找到與遷移學習實驗室相關的更多信息,了解如何收集或選擇數據您需要一個帶標簽的圖像數據集進行訓練(最好使用 MaaXBoard RT 相機收集的數據進行訓練),并且您還需要在您的 PC 上安裝正確版本的 Python 和 Tensorflow。

轉換您的模型以在 MCUXpresso 中使用

在這一步中,我們將把我們的模型轉換為 C 頭文件,這些頭文件可以添加到 MCUXpresso 中的項目中,然后加載到 MaaXBoard RT 上。這其實很簡單。它只需要 Vim,如果你在 Mac 或 Linux 上應該已經可用。

如果在 Windows 上,請安裝Vim 8.1 :在該軟件包內有一個名為 xxd.exe 的二進制轉換程序,需要名為 xxd。xxd 是一個 hexdump 實用程序,可用于在文件的十六進制轉儲和二進制形式之間來回轉換。在這種情況下,該實用程序用于將 tflite 二進制文件轉換為可添加到 eIQ 項目的 C/C++ 頭文件。

  • 安裝后,將 vim 添加到您的可執行 PATH(如果還沒有的話):
?
?
?
poYBAGNY3_uAczxdAABnecaPa3w485.png
?
1 / 4
?
  • 通過打開 Windows 命令提示符并在命令提示符中鍵入“xxd -v”來驗證 PATH 設置是否正確。您不應收到有關無法識別的命令的任何錯誤。
  • 使用 xxd 實用程序將 .tflite 二進制文件轉換為可導入嵌入式項目的 C 數組。

如果使用 Windows 命令提示符:

xxd -i mobilenet_v2_1.0_224_quant.tflite > model_data.h

如果使用 Windows Powershell:

xxd -i mobilenet_v2_1.0_224_quant.tflite | out-file -encoding ASCII mobilenet_v2_1.0_224_quant.h
  • 該模型需要稍作修改以將其集成到 MCUXpresso SDK 中。打開model_data.h文件并對文件頂部進行以下更改。還要記下數組名稱,因為它將在下一節中使用:

#include

#define MODEL_NAME "mobilenet_v1_0.25_128_quant_int8"

#define MODEL_INPUT_MEAN 127.5f

#define MODEL_INPUT_STD 127.5f

const char model_data[] __ALIGNED(16) = {

更改后應如下所示:

pYYBAGNY3_2AH8l1AABEBQaQziM973.png
?

轉換您的標簽

如果您使用的是現有模型,它應該帶有一個labels.txt文件(在 mobilenet 的情況下,它被稱為 mobilenet_labels.txt)。附加的 python 腳本,replace_label_text.py,應該將一個正常的行分隔的labels.txt文件轉換為與 C++ 一起工作的文件。將您的文件命名為“ labels.h

轉換后,它應該如下所示:

pYYBAGNY3_-AVJHeAAAYEYr8OTg102.png
?

修改示例項目

最后一步是采用TensorFlow Lite Label Image示例并對其進行修改以使用新重新訓練的模型。

將模型和標簽文件導入 MCUXpresso

我們需要將上一節中生成的模型文件model_data.h和標簽文件labels.h都導入到這個項目中。

  • 通過右鍵單擊項目名稱找到此示例復制到的目錄位置,然后選擇Properties 在出現的對話框中,單擊圖標以在 Windows 資源管理器中打開該目錄。
  • 轉到剛剛打開的MaaX_v2 _ tensorflow_lite_micro_label_image_cm7文件夾中的“源”目錄。它應該類似于:C:\Users\nxp_training\MCUXpressoIDE_11.3.0_0522\workspace\MaaX_v2 _ tensorflow_lite_micro_label_image_cm7\source\model
  • 在該模型目錄中,復制上一節中生成的model_data.h文件和labels.h文件。這些文件將替換現有的 model_data.h 和 labels.h 文件。完成后目錄應如下所示:
?
?
?
pYYBAGNY4AaAStV1AACMIDA_62w238.png
?
1 / 2
?

修改示例源代碼

雙擊項目視圖中“source\model”文件夾下的model.cpp文件將其打開。

第 15 和 16 行應該引入模型和您的新模型 model_data.h:

pYYBAGNY4AiAd0_PAAAK2N2hXKY847.png
?

在第 26 行左右,更改 API 調用以加載默認模型,并將其替換為新頭文件中的新模型名稱 (model_data) 和模型長度 (model_data_len)。它可能與下面列出的名稱略有不同。它應該與 model_data.h 中的數組名稱和長度相匹配( const char model_data[] __ALIGNED(16) = {):

pYYBAGNY4AuAAp8BAAAu5W7NEmQ909.png
?

為了減小項目的大小,Label Image示例僅支持默認 Mobilenet 模型所需的特定操作數。我們重新訓練的模型使用了一些新的操作數。這些特定的操作數可以通過使用名為netron的應用程序分析模型來確定,然后手動添加操作數,如 eIQ TensorFlow Lite 庫用戶指南第 7.1 節所述。或者,可以使用 BuiltinOpResolver 方法在項目中支持所有 TFLite 操作數。對于本實驗,我們將使用后一種方法,以提供與其他模型的最大兼容性。在model.cpp的第 33 或 34 行附近,注釋掉原來的解析器行。然后添加一個新行

tflite::AllOpsResolver micro_op_resolver;

?
?
?
pYYBAGNY4A2AJDGDAAAO5MgQjkk087.png
?
1 / 2
?

這就是您需要進行的所有修改!該應用程序現在可以運行了。

運行演示

在 MCUXpresso 中,確保超閃存驅動程序MaaXBoard_S26KS256.cfx位于Project Explorer下的 xip 文件夾中然后,單擊“編輯項目設置”,導航到 MCU 設置,并確保在兩個位置都選擇了超閃存驅動程序作為閃存驅動程序。

?
?
?
poYBAGNY4A-ACvH5AABFh3KqxfY945.png
?
1 / 3 ?確保超閃存驅動程序 MaaXBoard_S26KS256.cfx 位于 Project Explorer 下的 xip 文件夾中
?

我選擇了Debug ,因為這一步即可構建和調試項目。幾乎立即(哇,有 HyperFlash!)我能夠在 LCD 上看到相機的輸出。

我收集了label.h 中命名的東西的列表,例如橙子和一杯葡萄酒(下一次我將訓練一個識別雞尾酒類型的模型,因為這將使測試步驟更加愉快)。

當控制臺以 115200 波特打開時,我可以看到它打印每個對象的標簽,因為我將它舉到相機上,并且模型識別了它:

?
?
?
pYYBAGNY4BiAaZzUABQzcJAz9mY285.jpg
?
1 / 2 ?檢測到:橙色 (61%)
?

Inference time: 2537 ms

Detected: orange (61%)

----------------------------------------

Inference time: 2536 ms

Detected: red wine (54%)

----------------------------------------

雖然它比示例項目中提供的 MobileNet 模型慢了一點,但它的準確度要高得多,而且速度仍然足夠快,可以派上用場。在這個令人難以置信的微控制器上準備和運行模型的簡單程度給我留下了深刻的印象。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
百家乐赔率技巧| 百家乐娱乐网站| 闲和庄百家乐官网赌场娱乐网规则| 在线百家乐官网博彩网| 金华市| 尚志市| 方城县| 高手百家乐官网赢钱法| 荣昌县| 百家乐官网打大必赢之法| 真人百家乐官网ea平台| 真人百家乐官网澳门娱乐城| 什么叫百家乐官网的玩法技巧和规则| 百家乐官网必赢法冯耘 | 百家乐2号程序| 澳门百家乐赌场文| 大发888娱乐下载网址| 澳门娱乐城开户| 崇阳县| 百家乐官网学院| 百家乐官网网开服表| 可以玩百家乐的博彩网站| 百家乐网上真钱娱乐| 百家乐大西洋| 大发888下载34| 永康市| 钱隆百家乐官网软件| 沙龙百家乐官网代理| 百家乐技巧何为百家乐之路| 星期八百家乐的玩法技巧和规则| 德州扑克怎么玩的| 百家乐官网2珠路投注法| 如何看百家乐官网的玩法技巧和规则 | 贵族百家乐的玩法技巧和规则| 大发888葡京下载地址| 百家乐官网游戏解密| 送现金百家乐官网的玩法技巧和规则 | 德州扑克过牌| 百家乐官网牌机的破解法| 太阳百家乐官网代理| 百家乐制胜法|