Github:https://github.com/EdgeAIWithRTT/Project7-Cifar10_Cube_Art-Pi
RT-AK 及 Art-Pi 簡介
目前該項目為 RT-AK 的示例 Demo,基于 ART-PI 硬件平臺和 Cifar10 數據集。
RT-AK: RT-Thread AI Toolkit,RT-Thread AI 套件。
RT-AK 是 RT-Thread 團隊為 RT-Thread 實時操作系統所開發的 AI 套件,能夠一鍵將 AI 模型部署到 RT-Thread 項目中,讓用戶可以 在統一的 API 之上進行業務代碼開發,又能在目標平臺上獲極致優化的性能,從而更簡單方便地開發端側 AI 應用程序。
在 RT-AK 支持下,僅需要一行命令,即可將 AI 模型部署到 RT-Thread 系統中:
1$ python rt_ai_tools.py --model xxx.。。
我們將致力于降低嵌入式 AI 落地的難度和門檻。
Art-Pi:
使用 Tensorflow2.5.0 進行模型量化
我們已提供 keras 模型量化為 tflite 模型的代碼 鏈接。注意一定要下載 tensorflow2.5.0 及以上版本,否則會轉化失敗。該鏈接中還有量化后的 tflite 的推理代碼。目錄如下:
一。 將 Cifar10 分類模型 部署至 Art-Pi (不搭建LCD)
1. 項目總結
該項目不需要任何驅動,僅將 AI 模型部署至 Art-Pi 硬件平臺,并利用其元件進行 AI 模型推理,最后在終端輸出模型推理結果相關信息。
2. 空項目工程創建
該項目是基于 ART-PI 的模板工程,初始工程來于 RT-Thread 新建工程
經過 RT-AK 轉換之后得到的一個完整的項目工程
3. RT-AK 的使用
cd 到 aitools.py 所在目錄,打開 cmd 命令行窗口,輸入以下命令即可獲得集成 AI 模型的完整項目工程。
1python aitools.py --project=C:UsersAdminDesktopArt-Pi_cifar10_without_lcd
2--model=C:UsersAdminDesktopArt-piArt-Pi_cifar10modelcifar10_int8.tflite
3--model_name=cifar10
4--platform=stm32
5--ext_tools=C:UsersAdminDesktopRTAK-toolsstm32ai-windows-5.2.0windows # x_cube_ai 工具
4. 集成 AI 模型的項目工程的編譯和燒錄
這里我們使用 RT-Thread Studio 進行編譯和燒錄
5. AI 應用開發
我們提供了一個實例代碼 cifar10_app.c,在終端命令行中輸入 cifat10_app.c,即可獲得輸出
6. 自定義數據
該項目提供了自定義數據生成代碼 save_img.py
二。 將 Cifar10 分類模型 部署至 Art-Pi, 并搭建LCD
1. 項目總結
該項目應用了 LCD 驅動相關代碼,使用 RT-AK 將 AI 模型部署至 Art-Pi 硬件平臺之后,利用其元件進行 AI 模型推理, 并對模型輸出結果進行處理,最后將模型輸入圖片和輸出相關信息顯示到 LCD 上。
使用 RT-Thread Studio 創建的空白工程不包含 LCD 驅動代碼,所以務必使用我們提供的模板工程。
2. RT-AK 的使用
RT-AK 的 gitlab 倉庫已經開源,可以自行到倉庫上克隆到本地 PC。
cd 到 RT-AK 的 rt_ai_tools 文件夾, 在目錄輸入 cmd 打開命令行窗口。其中 aitools.py 是核心代碼,使用改代碼我們可以輸入相關命令參數即可快速將 AI 模型 部署至支持的硬件平臺上面。
在 cmd 命令行窗口輸入以下命令,參數很好理解,看名字就知道它的意思了。
1python aitools.py --project=C:UsersAdminDesktopArt-Pi_cifar10_with_lcd
2--model=C:UsersAdminDesktopArt-piArt-Pi_cifar10modelcifar10_int8.tflite
3--model_name=cifar10
4--platform=stm32
5--ext_tools=C:UsersAdminDesktopRTAK-toolsstm32ai-windows-5.2.0windows # x_cube_ai 工具
運行結果:
通過這部轉換,我們得到的項目工程就集成了 AI 模型, 然后我們可以在上面做相關應用開發,最后編譯和燒錄到開發板上。
我們需要在 applications 中書寫我們的應用代碼,我們給出一個示例 cifar10_app.c ,下面介紹下里面的文件:
1卷 軟件 的文件夾 PATH 列表
2卷序列號為 E67E-D1CA
3D:。
4 cifar10_app.c // ai 模型推理應用代碼實現5 main.c // artpi LED 閃爍燈例程原 main 函數,未改動6 rt_ai_cifar10_model.c // 與 STM32 平臺相關的模型聲明文件7 rt_ai_cifar10_model.h // 存放 ai 模型輸入輸出等相關信息文件8 SConscript
3. cifar10_app.c 核心代碼和自定義數據
3. 1 核心代碼
頭文件:
模型輸入數據和 LCD 顯示的數據:(兩者大小不同,Art-Pi 中的 LCD 尺寸為 320x240, 所以顯示的圖片尺寸要滿足這個大小,而模型輸入大小則根據具體模型而言,該項目中的 cifar10 模型輸入數據大小為 32x32)
模型運行核心代碼:
1// cifar10_app.c 2 3.。。
4 5// 注冊模型的代碼在 rt_ai_cifar10_model.c 文件下的第43行,代碼自動執行 6// 模型的相關信息在 rt_ai_cifar10_model.h 文件 7// find a registered model handle 8model = rt_ai_find(RT_AI_CIFAR10_MODEL_NAME); // 找到模型 9.。。
10result = rt_ai_init(model, work_buffer); // 初始化模型,傳入輸入數據11.。。
12result = rt_ai_run(model, ai_run_complete, &ai_run_complete_flag); // 模型推理一次13.。。
14/* 獲取模型輸出結果 */15uint8_t *out = (uint8_t *)rt_ai_output(model, 0);
3. 2 自定義數據集
如何使用自己的圖片,生成可以在 Art-Pi 中運行的數據?我們已經提供數據生成代碼 save_img.py。目錄如下
在 svae_img.py 文件中修改參數,相關輸入會打印到對應 .txt 文件中。然后將 .txt 文件中的信息復制到 cifar10_app.c 文件中,修改參數即可。
4. 集成 AI 模型的項目工程的編譯和燒錄
這里我們使用 RT-Thread Studio 進行編譯和燒錄:
5. 效果呈現
開機屏幕是白色的,當在終端輸入 cifar10_app 之后會有 1s 的 logo 顯示,然后黑屏。之后終端輸出推理結果。
編輯:jq
-
AI
+關注
關注
87文章
28877瀏覽量
266239
原文標題:使用 RT-AK 部署 Cifar10 模型至 Art-Pi
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論