資料介紹
描述
設(shè)置
電路板設(shè)置
- 將 MaaXBoard 攝像頭插入音頻插孔旁邊的 MIPI-CSA 攝像頭連接器。
- 將顯示器插入電路板背面的 MIPI-DSI 連接器
- 將 MCU 鏈路插入 JTAG 連接器。如圖所示,將接地、TXD 和 RXD 引腳連接到 MaaXBoard RT 上的 Pi 接頭。將 MCU 鏈接的另一端插入主機(jī) PC 的 USB 端口。
- 將 5V、3A 電源連接到 MaaXBoard 上的 USB-C 端口為其供電。
![pYYBAGNY3-2AFBSnABUOqo8dWQU645.jpg](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY3-2AFBSnABUOqo8dWQU645.jpg)
我建議為您的 MIPI 相機(jī)創(chuàng)建一個(gè)支架,以便輕松定位以識(shí)別物體。我的是用 OpenBeam 做的,但你可以用木頭、冰棒棍和電工膠帶,或者你周圍的任何東西。
軟件設(shè)置
- 在您的計(jì)算機(jī)上下載并安裝最新版本的MCUXpresso IDE 。您需要一個(gè)恩智浦帳戶。他們有適用于 Windows、Mac 和 Linux 的二進(jìn)制文件。
- 登錄NXP SDK Builder ,點(diǎn)擊“Select Development Board”,搜索 RT1170 以找到i.MX RT 1170 SDK 。注意:MaaXBoard RT 自定義 SDK 即將發(fā)布。
- 通過(guò)將 SDK 拖放到 MCUXPresso 的“已安裝的 SDK”部分來(lái)安裝 SDK
- 下載這個(gè)項(xiàng)目的代碼(在代碼部分找到它)
- 點(diǎn)擊 MCUXpresso 中的“import project(s) from file system”,導(dǎo)入剛剛下載的壓縮文件
- 選擇項(xiàng)目,點(diǎn)擊“下一步”,點(diǎn)擊“完成”即可導(dǎo)入剛剛下載的項(xiàng)目
![poYBAGNY3_CAf17XAAE3bzhZInM404.png](https://file.elecfans.com/web2/M00/73/89/poYBAGNY3_CAf17XAAE3bzhZInM404.png)
測(cè)試示例代碼
- 選擇“調(diào)試”以構(gòu)建代碼并將其加載到您的板上。
- 如果這是您第一次調(diào)試項(xiàng)目,則必須從找到的調(diào)試探針列表中選擇“啟動(dòng)配置”。選擇調(diào)試探針并且用戶單擊“確定”后,IDE 將自動(dòng)為該調(diào)試探針創(chuàng)建默認(rèn)啟動(dòng)配置文件。
- 選擇“運(yùn)行”。您應(yīng)該會(huì)在 LCD 上看到攝像頭圖像。嘗試將物體放在相機(jī)前,看看您的模型是否會(huì)檢測(cè)到它們。您可以在MaaX_v2_tensorflow_lite_micro_label_image_cm7 > doc > labels.txt下查看可檢測(cè)對(duì)象的完整列表。有些物品可能很難找到(例如,我碰巧沒(méi)有歐洲火蠑螈)。然而,橙子在名單上,它們似乎工作正常。
![pYYBAGNY3_KAfSBTAACHgVoPSz8268.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY3_KAfSBTAACHgVoPSz8268.png)
包含的模型是 i.MX SDK eIQ 示例中包含的 Mobilenet v.1 的默認(rèn)版本。雖然快速且輕巧,但它不是很準(zhǔn)確。您會(huì)看到它通常無(wú)法識(shí)別圖像中的任何內(nèi)容:
Inference time: 172 ms
Detected: No label detected (0%)
這里列出了一個(gè)有用的 Tensorflow Lite 圖像分類模型列表,以及它們的準(zhǔn)確性、速度(以四核 CPU 為基準(zhǔn))和大小。我們使用的默認(rèn)模型與列表中的第一個(gè)模型最相似。它的 top-1 準(zhǔn)確率為 39.5%,這意味著模型的最高預(yù)測(cè)只有大約 39.5% 的時(shí)間是正確的標(biāo)簽。
選擇新模型和/或數(shù)據(jù)集
在這里,我們的任務(wù)是圖像分類,所以我們只考慮圖像分類模型。I.MX RT 板有幾種不同的模型類型示例:
![pYYBAGNY3_aAKHG8AADzBDLLBrw009.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY3_aAKHG8AADzBDLLBrw009.png)
根據(jù)您的圖像分類需求,您可能需要具有一定準(zhǔn)確性或速度的模型。確定特定模型是否可以在特定設(shè)備上運(yùn)行基于:
- 推理運(yùn)行需要多長(zhǎng)時(shí)間?相同的模型在功能較弱的設(shè)備上運(yùn)行需要更長(zhǎng)的時(shí)間。
- 是否有足夠的非易失性內(nèi)存來(lái)存儲(chǔ)權(quán)重、模型本身和推理引擎?
- 是否有足夠的 RAM 來(lái)跟蹤模型的中間計(jì)算和輸出?您可能需要增加堆大小以提高性能。
盡管 MaaXBoard RT 有一個(gè)浮點(diǎn)單元并且能夠運(yùn)行浮點(diǎn)模型,但最好對(duì)模型進(jìn)行量化以考慮大小和速度。
大?。?/font>MaaXBoard 配備 256 Mb 超閃存。Tensorflow Lite 標(biāo)簽圖像項(xiàng)目為 35.4Mb,其中 5.5 個(gè)是模型本身。
我可以從 Tensorflow Lite 模型列表中看到,量化 MobileNet v2 比 V1 準(zhǔn)確得多,同時(shí)仍然相當(dāng)小且速度快:
![pYYBAGNY3_iAMK9sAAASUWm9zw8810.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY3_iAMK9sAAASUWm9zw8810.png)
- 通過(guò)單擊tflite&pb從Tensorflow 托管模型頁(yè)面下載模型
- 您應(yīng)該得到一個(gè)壓縮文件:mobilenet_v2_1.0_224_quant.tgz,然后您可以解壓縮以訪問(wèn) tflite 模型。
重新訓(xùn)練您的模型(可選)
您可以按原樣使用該模型,或者如果您希望在自定義數(shù)據(jù)集上對(duì)其進(jìn)行訓(xùn)練,您可以使用遷移學(xué)習(xí)來(lái)重新訓(xùn)練您的模型。
遷移學(xué)習(xí)的完整說(shuō)明在此處的恩智浦遷移學(xué)習(xí)實(shí)驗(yàn)室中,您可以在此處找到與遷移學(xué)習(xí)實(shí)驗(yàn)室相關(guān)的更多信息,了解如何收集或選擇數(shù)據(jù)集。您需要一個(gè)帶標(biāo)簽的圖像數(shù)據(jù)集進(jìn)行訓(xùn)練(最好使用 MaaXBoard RT 相機(jī)收集的數(shù)據(jù)進(jìn)行訓(xùn)練),并且您還需要在您的 PC 上安裝正確版本的 Python 和 Tensorflow。
轉(zhuǎn)換您的模型以在 MCUXpresso 中使用
在這一步中,我們將把我們的模型轉(zhuǎn)換為 C 頭文件,這些頭文件可以添加到 MCUXpresso 中的項(xiàng)目中,然后加載到 MaaXBoard RT 上。這其實(shí)很簡(jiǎn)單。它只需要 Vim,如果你在 Mac 或 Linux 上應(yīng)該已經(jīng)可用。
如果在 Windows 上,請(qǐng)安裝Vim 8.1 :在該軟件包內(nèi)有一個(gè)名為 xxd.exe 的二進(jìn)制轉(zhuǎn)換程序,需要名為 xxd。xxd 是一個(gè) hexdump 實(shí)用程序,可用于在文件的十六進(jìn)制轉(zhuǎn)儲(chǔ)和二進(jìn)制形式之間來(lái)回轉(zhuǎn)換。在這種情況下,該實(shí)用程序用于將 tflite 二進(jìn)制文件轉(zhuǎn)換為可添加到 eIQ 項(xiàng)目的 C/C++ 頭文件。
- 安裝后,將 vim 添加到您的可執(zhí)行 PATH(如果還沒(méi)有的話):
![poYBAGNY3_uAczxdAABnecaPa3w485.png](https://file.elecfans.com/web2/M00/73/89/poYBAGNY3_uAczxdAABnecaPa3w485.png)
- 通過(guò)打開(kāi) Windows 命令提示符并在命令提示符中鍵入“xxd -v”來(lái)驗(yàn)證 PATH 設(shè)置是否正確。您不應(yīng)收到有關(guān)無(wú)法識(shí)別的命令的任何錯(cuò)誤。
- 使用 xxd 實(shí)用程序?qū)?.tflite 二進(jìn)制文件轉(zhuǎn)換為可導(dǎo)入嵌入式項(xiàng)目的 C 數(shù)組。
如果使用 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 中。打開(kāi)model_data.h文件并對(duì)文件頂部進(jìn)行以下更改。還要記下數(shù)組名稱,因?yàn)樗鼘⒃谙乱还?jié)中使用:
#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) = {
更改后應(yīng)如下所示:
![pYYBAGNY3_2AH8l1AABEBQaQziM973.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY3_2AH8l1AABEBQaQziM973.png)
轉(zhuǎn)換您的標(biāo)簽
如果您使用的是現(xiàn)有模型,它應(yīng)該帶有一個(gè)labels.txt文件(在 mobilenet 的情況下,它被稱為 mobilenet_labels.txt)。附加的 python 腳本,replace_label_text.py,應(yīng)該將一個(gè)正常的行分隔的labels.txt文件轉(zhuǎn)換為與 C++ 一起工作的文件。將您的文件命名為“ labels.h ”
轉(zhuǎn)換后,它應(yīng)該如下所示:
![pYYBAGNY3_-AVJHeAAAYEYr8OTg102.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY3_-AVJHeAAAYEYr8OTg102.png)
修改示例項(xiàng)目
最后一步是采用TensorFlow Lite Label Image示例并對(duì)其進(jìn)行修改以使用新重新訓(xùn)練的模型。
將模型和標(biāo)簽文件導(dǎo)入 MCUXpresso
我們需要將上一節(jié)中生成的模型文件model_data.h和標(biāo)簽文件labels.h都導(dǎo)入到這個(gè)項(xiàng)目中。
- 通過(guò)右鍵單擊項(xiàng)目名稱找到此示例復(fù)制到的目錄位置,然后選擇Properties 。在出現(xiàn)的對(duì)話框中,單擊圖標(biāo)以在 Windows 資源管理器中打開(kāi)該目錄。
- 轉(zhuǎn)到剛剛打開(kāi)的MaaX_v2 _ tensorflow_lite_micro_label_image_cm7文件夾中的“源”目錄。它應(yīng)該類似于:C:\Users\nxp_training\MCUXpressoIDE_11.3.0_0522\workspace\MaaX_v2 _ tensorflow_lite_micro_label_image_cm7\source\model
- 在該模型目錄中,復(fù)制上一節(jié)中生成的model_data.h文件和labels.h文件。這些文件將替換現(xiàn)有的 model_data.h 和 labels.h 文件。完成后目錄應(yīng)如下所示:
![pYYBAGNY4AaAStV1AACMIDA_62w238.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY4AaAStV1AACMIDA_62w238.png)
修改示例源代碼
雙擊項(xiàng)目視圖中“source\model”文件夾下的model.cpp文件將其打開(kāi)。
第 15 和 16 行應(yīng)該引入模型和您的新模型 model_data.h:
![pYYBAGNY4AiAd0_PAAAK2N2hXKY847.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY4AiAd0_PAAAK2N2hXKY847.png)
在第 26 行左右,更改 API 調(diào)用以加載默認(rèn)模型,并將其替換為新頭文件中的新模型名稱 (model_data) 和模型長(zhǎng)度 (model_data_len)。它可能與下面列出的名稱略有不同。它應(yīng)該與 model_data.h 中的數(shù)組名稱和長(zhǎng)度相匹配( const char model_data[] __ALIGNED(16) = {):
![pYYBAGNY4AuAAp8BAAAu5W7NEmQ909.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY4AuAAp8BAAAu5W7NEmQ909.png)
為了減小項(xiàng)目的大小,Label Image示例僅支持默認(rèn) Mobilenet 模型所需的特定操作數(shù)。我們重新訓(xùn)練的模型使用了一些新的操作數(shù)。這些特定的操作數(shù)可以通過(guò)使用名為netron的應(yīng)用程序分析模型來(lái)確定,然后手動(dòng)添加操作數(shù),如 eIQ TensorFlow Lite 庫(kù)用戶指南第 7.1 節(jié)所述。或者,可以使用 BuiltinOpResolver 方法在項(xiàng)目中支持所有 TFLite 操作數(shù)。對(duì)于本實(shí)驗(yàn),我們將使用后一種方法,以提供與其他模型的最大兼容性。在model.cpp的第 33 或 34 行附近,注釋掉原來(lái)的解析器行。然后添加一個(gè)新行
tflite::AllOpsResolver micro_op_resolver;
![pYYBAGNY4A2AJDGDAAAO5MgQjkk087.png](https://file.elecfans.com/web2/M00/74/1B/pYYBAGNY4A2AJDGDAAAO5MgQjkk087.png)
這就是您需要進(jìn)行的所有修改!該應(yīng)用程序現(xiàn)在可以運(yùn)行了。
運(yùn)行演示
在 MCUXpresso 中,確保超閃存驅(qū)動(dòng)程序MaaXBoard_S26KS256.cfx位于Project Explorer下的 xip 文件夾中。然后,單擊“編輯項(xiàng)目設(shè)置”,導(dǎo)航到 MCU 設(shè)置,并確保在兩個(gè)位置都選擇了超閃存驅(qū)動(dòng)程序作為閃存驅(qū)動(dòng)程序。
![poYBAGNY4A-ACvH5AABFh3KqxfY945.png](https://file.elecfans.com/web2/M00/73/89/poYBAGNY4A-ACvH5AABFh3KqxfY945.png)
我選擇了Debug ,因?yàn)檫@一步即可構(gòu)建和調(diào)試項(xiàng)目。幾乎立即(哇,有 HyperFlash?。┪夷軌蛟?LCD 上看到相機(jī)的輸出。
我收集了label.h 中命名的東西的列表,例如橙子和一杯葡萄酒(下一次我將訓(xùn)練一個(gè)識(shí)別雞尾酒類型的模型,因?yàn)檫@將使測(cè)試步驟更加愉快)。
當(dāng)控制臺(tái)以 115200 波特打開(kāi)時(shí),我可以看到它打印每個(gè)對(duì)象的標(biāo)簽,因?yàn)槲覍⑺e到相機(jī)上,并且模型識(shí)別了它:
![pYYBAGNY4BiAaZzUABQzcJAz9mY285.jpg](https://file.elecfans.com/web2/M00/74/1C/pYYBAGNY4BiAaZzUABQzcJAz9mY285.jpg)
Inference time: 2537 ms
Detected: orange (61%)
----------------------------------------
Inference time: 2536 ms
Detected: red wine (54%)
----------------------------------------
雖然它比示例項(xiàng)目中提供的 MobileNet 模型慢了一點(diǎn),但它的準(zhǔn)確度要高得多,而且速度仍然足夠快,可以派上用場(chǎng)。在這個(gè)令人難以置信的微控制器上準(zhǔn)備和運(yùn)行模型的簡(jiǎn)單程度給我留下了深刻的印象。
- 快速部署Tensorflow和TFLITE模型在Jacinto7 Soc
- 在MaaXBoard Mini上使用Edge Impulse進(jìn)行安全帽檢測(cè)
- 使用Python進(jìn)行伺服PWM控制的MaaxBoard設(shè)置
- 通過(guò)MLIR將tensorflow2模型轉(zhuǎn)換到ncnn
- 【嵌入式AI入門日記】將 AI 模型移植到 RT-Thread 上(1)
- 【嵌入式AI入門日記】將 AI 模型移植到 RT-Thread 上(2)
- RT-Thread AI kit開(kāi)源:輕松實(shí)現(xiàn)一鍵部署AI模型至 RT-Thread
- SVPWM仿真模型資源下載 36次下載
- 通用航空器運(yùn)行排班及維修任務(wù)的優(yōu)化模型 6次下載
- 質(zhì)點(diǎn)彈簧模型在牙齦軟組織的仿真與應(yīng)用 4次下載
- 終端區(qū)管制運(yùn)行效率的集成綜合評(píng)估模型 5次下載
- TensorFlow的11個(gè)使用技巧整理說(shuō)明 3次下載
- TensorFlow深度學(xué)習(xí)PDF電子書免費(fèi)下載 9次下載
- 嵌入式實(shí)時(shí)操作系統(tǒng)RT-Thread的特點(diǎn)與體系結(jié)構(gòu)及移植方法詳細(xì)說(shuō)明 27次下載
- 深度學(xué)習(xí)入門教程之TensorFlow入門、原理與進(jìn)階實(shí)戰(zhàn)教程免費(fèi)下載 259次下載
- 如何使用Tensorflow保存或加載模型 1652次閱讀
- 如何在PSoC62 Evaluation kit開(kāi)發(fā)板上運(yùn)行RT-Thread呢? 1066次閱讀
- 如何使用TensorFlow構(gòu)建機(jī)器學(xué)習(xí)模型 1024次閱讀
- 使用SystemView工具分析瑞薩RA6M4芯片上RT-Thread的運(yùn)行情況 618次閱讀
- 基于OpenVINO C# API部署RT-DETR模型 787次閱讀
- 基于OpenVINO C++ API部署RT-DETR模型 901次閱讀
- 基于OpenVINO Python API部署RT-DETR模型 1017次閱讀
- 如何在ESP32上使用代碼運(yùn)行TensorFlow模型? 4818次閱讀
- 如何用TensorFlow進(jìn)行機(jī)器學(xué)習(xí)研究 1982次閱讀
- 基于tensorflow.js設(shè)計(jì)、訓(xùn)練面向web的神經(jīng)網(wǎng)絡(luò)模型的經(jīng)驗(yàn) 4126次閱讀
- 如何在AMD的GPU上運(yùn)行TensorFlow? 2.4w次閱讀
- TensorFlow Lite是TensorFlow針對(duì)移動(dòng)和嵌入式設(shè)備的輕量級(jí)解決方案 2.6w次閱讀
- TensorFlow是什么?如何啟動(dòng)并運(yùn)行TensorFlow? 1.6w次閱讀
- TensorFlow發(fā)表推文正式發(fā)布TensorFlow v1.9 3130次閱讀
- TensorFlow的框架結(jié)構(gòu)解析 7124次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論