在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如何使用i.MX RT1060跨接MCU通過TensorFlow Lite實(shí)施數(shù)字識別

嵌入式星球 ? 2020-09-29 11:45 ? 次閱讀

i.MX RT1060交叉MCU同樣適用于經(jīng)濟(jì)高效的工業(yè)應(yīng)用以及需要顯示功能的高性能和數(shù)據(jù)密集型消費(fèi)類產(chǎn)品本文通過解釋如何實(shí)現(xiàn)一種嵌入式機(jī)器學(xué)習(xí)應(yīng)用程序來演示該基于Arm?Cortex?-M7的MCU的功能,該應(yīng)用程序可以檢測和分類用戶的手寫輸入。

為此,本文重點(diǎn)介紹流行的MNIST eIQ示例,該示例由幾個部分組成-數(shù)字識別由TensorFlow Lite模型執(zhí)行,并且GUI用于提高i.MX RT1060設(shè)備的可用性。

看一下MNIST數(shù)據(jù)集和模型


本文使用的數(shù)據(jù)集包括60,000個訓(xùn)練和10,000個手寫數(shù)字居中灰度圖像測試示例。每個樣本的分辨率為28x28像素:

圖1.MNIST數(shù)據(jù)集示例

樣本是從美國的高中生和人口普查局員工那里收集的。因此,數(shù)據(jù)集主要包含在北美書寫的數(shù)字示例。例如,對于歐洲風(fēng)格的數(shù)字,必須使用其他數(shù)據(jù)集。與該數(shù)據(jù)集一起使用時,卷積神經(jīng)網(wǎng)絡(luò)通常會提供最佳結(jié)果,甚至簡單的網(wǎng)絡(luò)也可以實(shí)現(xiàn)高精度因此,TensorFlow Lite是適合此任務(wù)的選項(xiàng)。

本文選擇的MNIST模型實(shí)現(xiàn)可在GitHub上作為正式的TensorFlow模型之一獲得,并且使用Python編寫。該腳本使用Keras庫以及tf.data,tf.estimator.Estimator和tf.layers API,并構(gòu)建了一個卷積神經(jīng)網(wǎng)絡(luò),可以在測試樣本上實(shí)現(xiàn)高精度:

圖2.所用模型的可視化。

相應(yīng)的模型定義如下圖3所示。

圖3.與模型可視化相對應(yīng)的模型定義。

什么是TensorFlow Lite?在本示例中如何使用?


TensorFlow是一個著名的深度學(xué)習(xí)框架,已被大型公司廣泛用于生產(chǎn)中。這是由Google開發(fā)和維護(hù)的開源,跨平臺深度學(xué)習(xí)庫。提供了一個低級Python API,它對經(jīng)驗(yàn)豐富的開發(fā)人員非常有用,并且提供了高級庫(例如本例中使用的庫)。此外,TensorFlow得到了廣大社區(qū)的支持,并獲得了Google的出色在線文檔,學(xué)習(xí)資源,指南和示例。

為了使受計算限制的機(jī)器(例如移動設(shè)備和嵌入式解決方案)能夠運(yùn)行TensorFlow應(yīng)用程序,Google開發(fā)了TensorFlow Lite框架,該框架不支持TensorFlow框架的全部操作。它允許此類設(shè)備在已轉(zhuǎn)換為TensorFlow Lite的預(yù)訓(xùn)練TensorFlow模型上進(jìn)行推理。作為回報,這些經(jīng)過轉(zhuǎn)換的模型無法進(jìn)行進(jìn)一步的訓(xùn)練,但可以通過量化和修剪等技術(shù)進(jìn)行優(yōu)化。

將模型轉(zhuǎn)換為TensorFlow Lite


上面討論的經(jīng)過訓(xùn)練的TensorFlow模型必須先轉(zhuǎn)換為TensorFlow Lite,然后才能在i.MX RT1060 MCU上使用。為此,使用tflite_convert對其進(jìn)行了轉(zhuǎn)換,并且出于兼容性原因,使用TensorFlow的1.13.2版來訓(xùn)練和轉(zhuǎn)換模型:

tflite_convert
--saved_model_dir=
--output_file=converted_model.tflite
--input_shape=1,28,28
--input_array=Placeholder
--output_array=Softmax
--inference_type=FLOAT
--input_data_type=FLOAT
--post_training_quantize
--target_opsTFLITE_BUILTINS

最后,使用xdd實(shí)用程序?qū)ensorFlow Lite模型轉(zhuǎn)換為二進(jìn)制數(shù)組,以供應(yīng)用程序加載:

xxd-iconverted_model.tflite>converted_model.h

xdd是一個十六進(jìn)制轉(zhuǎn)儲實(shí)用程序,可用于將文件的二進(jìn)制形式轉(zhuǎn)換為相應(yīng)的十六進(jìn)制轉(zhuǎn)儲表示形式,反之亦然。在這種情況下,TensorFlow Lite二進(jìn)制文件將轉(zhuǎn)換為可添加到eIQ項(xiàng)目的C / C ++頭文件。轉(zhuǎn)換過程和tflite_convert實(shí)用程序在eIQ用戶指南中進(jìn)行了詳細(xì)說明。該實(shí)用程序也在Google的官方文檔中進(jìn)行了描述。

嵌入式Wizard Studio快速入門

#ifdef__cplusplus
extern"C"{
#endif
/*Ccode*/
#ifdef__cplusplus
}
#endif


為了利用MIMXRT1060-EVK的圖形功能,該項(xiàng)目中包含一個GUI。為此,使用了嵌入式向?qū)tudio,這是一個IDE,用于為將在嵌入式設(shè)備上運(yùn)行的應(yīng)用程序開發(fā)GUI。盡管可以使用IDE的免費(fèi)評估版,但該版本限制了圖形用戶界面的最大復(fù)雜性,并且還在GUI上添加了水印。

Embedded Wizard Studio的優(yōu)點(diǎn)之一是能夠基于XNP的SDK生成MCUXpresso和IAR項(xiàng)目,這意味著在IDE中創(chuàng)建用戶界面后,開發(fā)人員可以立即在其設(shè)備上對其進(jìn)行測試。

IDE提供了放置在畫布上的對象和工具,例如按鈕,觸敏區(qū)域,形狀等。然后將其屬性設(shè)置為適合開發(fā)人員的需求和期望。所有這些工作都以直觀和用戶友好的方式進(jìn)行,并且大大加快了GUI開發(fā)過程。

但是,由于生成的GUI項(xiàng)目在C中,而qIQ示例在C / C ++中,因此,幾個轉(zhuǎn)換步驟必須將GUI項(xiàng)目與現(xiàn)有的eIQ應(yīng)用程序項(xiàng)目合并。因此,某些頭文件的內(nèi)容必須包含以下內(nèi)容:

此外,大多數(shù)源文件和頭文件已移至SDK的中間件文件夾中的新文件夾,并且添加了新的包含路徑以反映這些更改。最后,比較并正確合并了一些特定于設(shè)備的配置文件。

完成的應(yīng)用程序及其功能

該應(yīng)用程序的GUI顯示在觸敏LCD上。它包含一個用于輸入數(shù)字的輸入?yún)^(qū)域和一個顯示分類結(jié)果的區(qū)域。運(yùn)行推斷按鈕執(zhí)行推斷,清除按鈕清除輸入和輸出字段。應(yīng)用程序?qū)㈩A(yù)測的結(jié)果和置信度輸出到標(biāo)準(zhǔn)輸出。

圖4.示例應(yīng)用程序的GUI包含一個輸入字段,一個輸出字段和兩個按鈕。結(jié)果和置信度也會打印到標(biāo)準(zhǔn)輸出中。

TensorFlow Lite模型精度

如上所述,該模型在對美國風(fēng)格的手寫數(shù)字進(jìn)行分類時可以在訓(xùn)練和測試數(shù)據(jù)上實(shí)現(xiàn)高精度。但是,在本應(yīng)用程序中不是這種情況,主要是因?yàn)橛檬种冈贚CD上書寫的數(shù)字與用筆在紙上書寫的數(shù)字永遠(yuǎn)不會相同。這突出了在實(shí)際生產(chǎn)數(shù)據(jù)上訓(xùn)練生產(chǎn)模型的重要性。

為了獲得更好的結(jié)果,必須收集一組新的數(shù)據(jù)。此外,方法必須相同。在這種情況下,必須使用觸摸屏輸入來采集樣品以繪制數(shù)字。存在進(jìn)一步的技術(shù)來增加預(yù)測的準(zhǔn)確性。恩智浦社區(qū)網(wǎng)站包含使用遷移學(xué)習(xí)技術(shù)的演練。

實(shí)施細(xì)節(jié)

嵌入式向?qū)褂貌宀圩鳛橛|發(fā)器來對GUI交互做出反應(yīng),例如,當(dāng)用戶在輸入?yún)^(qū)域上拖動手指時。在這種情況下,插槽會在手指下方連續(xù)繪制一個像素寬的線。該行的顏色由主顏色常數(shù)定義。

清除按鈕的插槽將兩個字段中每個像素的顏色設(shè)置為背景色,運(yùn)行推斷按鈕將保存對輸入?yún)^(qū)域,基礎(chǔ)位圖以及該區(qū)域的寬度和高度的引用,然后將其傳遞給本機(jī)處理它們的C程序。

由于來自機(jī)器學(xué)習(xí)模型的位圖只有28x28像素大,并且輸入?yún)^(qū)域被創(chuàng)建為112x112正方形,以使應(yīng)用程序使用起來更加舒適,因此在縮小圖像時需要進(jìn)行額外的預(yù)處理。否則,該過程會使圖像失真太多。

首先,創(chuàng)建一個具有輸入?yún)^(qū)域尺寸的8位整數(shù)數(shù)組,并用零填充。然后,對圖像和數(shù)組進(jìn)行迭代,并將圖像中每個繪制的像素存儲為數(shù)組中的0xFF。處理輸入時,主要顏色的像素被認(rèn)為是白色,其他所有像素都被認(rèn)為是黑色。此外,每個像素都擴(kuò)大為3x3正方形以加粗線條,這將使圖像縮小更為安全。在將圖像縮放到所需的28x28分辨率之前,將圖形裁剪并居中以類似于MNIST圖像:

圖5.包含預(yù)處理輸入數(shù)據(jù)的數(shù)組的可視化。

當(dāng)應(yīng)用程序啟動時,將分配,加載和準(zhǔn)備機(jī)器學(xué)習(xí)模型。對于每個推理請求,模型的輸入張量都將帶有預(yù)處理輸入,并傳遞給模型。輸入必須逐像素復(fù)制到張量中,并且在此過程中必須將整數(shù)值轉(zhuǎn)換為浮點(diǎn)值。NXP應(yīng)用筆記包含了代碼的詳細(xì)內(nèi)存占用。

TensorFlow Lite:可行的解決方案


使用機(jī)器學(xué)習(xí)的手寫數(shù)字識別可能給嵌入式系統(tǒng)帶來問題,TensorFlow Lite提供了可行的解決方案。使用此解決方案,可以實(shí)現(xiàn)更復(fù)雜的用例,例如數(shù)字鎖上的引腳輸入字段。如本文所述,在實(shí)際生產(chǎn)數(shù)據(jù)上訓(xùn)練生產(chǎn)模型至關(guān)重要。本文中使用的培訓(xùn)數(shù)據(jù)由用筆寫在紙上的數(shù)字組成。反過來,當(dāng)用于檢測觸摸屏上繪制的數(shù)字時,這會降低模型的整體準(zhǔn)確性。此外,必須考慮到地區(qū)差異。

i.MX RT跨接MCU系列可以實(shí)現(xiàn)到各種嵌入式應(yīng)用程序中,例如本文提供的示例。恩智浦(NXP)擁有有關(guān)i.MX RT跨接MCU系列的大量信息,可幫助彌合性能與可用性之間的鴻溝。


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

    關(guān)注

    13

    文章

    329

    瀏覽量

    60633
  • TensorFlow Lite
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    648
收藏 人收藏

    評論

    相關(guān)推薦

    2.3T算力,真的強(qiáng)!1分鐘學(xué)會NPU開發(fā),基于NXP i.MX 8MP平臺!

    潛力。 ? ? i.MX 8M Plus NPU特性 i.MX 8M Plus的NPU支持INT16/INT32/FP16/FP32等多種數(shù)據(jù)類型,兼容性卓越,與TensorFlow Lite
    的頭像 發(fā)表于 01-24 10:21 ?99次閱讀
    2.3T算力,真的強(qiáng)!1分鐘學(xué)會NPU開發(fā),基于NXP <b class='flag-5'>i.MX</b> 8MP平臺!

    恩智浦i.MX 94應(yīng)用處理器如何變革工業(yè)和汽車連接

    恩智浦半導(dǎo)體發(fā)布i.MX 94系列應(yīng)用處理器,為工業(yè)和汽車連接設(shè)定了新的標(biāo)準(zhǔn)。作為i.MX 9系列應(yīng)用處理器的最新成員,i.MX 94旨在提供高性能和低延遲的實(shí)時計算能力,這是工業(yè)自動化和汽車信息服務(wù)應(yīng)用的關(guān)鍵功能。
    的頭像 發(fā)表于 01-17 10:51 ?273次閱讀

    恩智浦i.MX RT1180 EtherCAT外設(shè)中SM FMMU功能介紹及應(yīng)用

    NXP的i.MX RT1180 crossoverMCU具有Arm Cortex-M7(CM7)和Cortex-M33(CM33)雙內(nèi)核,CM7內(nèi)核的運(yùn)行速度可達(dá)800 MHz,CM33內(nèi)核的運(yùn)行
    的頭像 發(fā)表于 01-16 09:17 ?761次閱讀
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180 EtherCAT外設(shè)中SM FMMU功能介紹及應(yīng)用

    恩智浦i.MX RT700系列MCU的優(yōu)勢

    作為邊緣智能時代的嵌入式工程師,你對一款理想的MCU有何期待?高性能、高集成、低功耗、更安全,以及出眾的AI推理能力……恩智浦半導(dǎo)體新近發(fā)布的i.MX RT700跨界MCU系列,就是你
    的頭像 發(fā)表于 12-09 09:16 ?635次閱讀

    恩智浦發(fā)布i.MX 94系列應(yīng)用處理器

    恩智浦半導(dǎo)體發(fā)布i.MX 9系列應(yīng)用處理器的新成員i.MX 94系列。該系列旨在用于工業(yè)控制、可編程邏輯控制器(PLC)、遠(yuǎn)程信息處理、工業(yè)和汽車網(wǎng)關(guān)以及樓宇和能量控制。
    的頭像 發(fā)表于 11-26 17:48 ?810次閱讀

    NXP專為邊緣AI打造的i.MX RT700跨界MCU到底強(qiáng)在哪?

    500和i.MX RT600跨界MCU的成功基礎(chǔ)上,恩智浦宣布推出i.MX RT700,超低功耗、集成多核和eIQ Neutron神經(jīng)處理單
    發(fā)表于 11-08 09:40 ?1186次閱讀
    NXP專為邊緣AI打造的<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>700跨界<b class='flag-5'>MCU</b>到底強(qiáng)在哪?

    如何在i.MX RT微控制器上初始化LWIP協(xié)議棧

    i.MX RT微控制器上初始化LWIP協(xié)議棧是一個復(fù)雜但有趣的過程,它涉及多個步驟和關(guān)鍵組件的配置.
    的頭像 發(fā)表于 10-12 11:48 ?440次閱讀
    如何在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>微控制器上初始化LWIP協(xié)議棧

    恩智浦推出全新i.MX RT700跨界MCU系列

    高度集成的全新i.MX RT700跨界MCU旨在顯著節(jié)省功耗,配備eIQ Neutron神經(jīng)處理單(NPU),可在邊緣端提供高達(dá)172倍的AI加速。
    的頭像 發(fā)表于 10-12 11:41 ?864次閱讀

    i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 17:23 ?11次下載

    使用TPS65023的NXP i.MX 7電源設(shè)計

    電子發(fā)燒友網(wǎng)站提供《使用TPS65023的NXP i.MX 7電源設(shè)計.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 10:38 ?0次下載
    使用TPS65023的NXP <b class='flag-5'>i.MX</b> 7電源設(shè)計

    恩智浦半導(dǎo)體發(fā)布i.MX RT700系列MCU,賦能智能AI邊緣設(shè)備

    恩智浦半導(dǎo)體近期震撼發(fā)布了其最新力作——i.MX RT700跨界微控制器(MCU)系列,專為推動智能AI在邊緣端設(shè)備的應(yīng)用而設(shè)計。這款創(chuàng)新產(chǎn)品精準(zhǔn)定位可穿戴設(shè)備、消費(fèi)級醫(yī)療設(shè)備、智能家居系統(tǒng)以及人機(jī)交互(HMI)平臺等前沿領(lǐng)域,
    的頭像 發(fā)表于 09-26 16:06 ?822次閱讀

    恩智浦i.MX RT1170 uSDHC eMMC啟動時間

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1170 uSDHC eMMC啟動時間。
    的頭像 發(fā)表于 08-08 15:32 ?682次閱讀
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1170 uSDHC eMMC啟動時間

    基于i.MX RT117H IOT EdgeReady智能HMI解決方案

    的復(fù)雜性。SLN-TLHMI-IOT基于i.MX RT117H交叉微控制器,是一款1GHz Arm? Cortex?-M7 + 440MHz Arm Cortex-M4MCU,具有智能HMI軟件的運(yùn)行時
    的頭像 發(fā)表于 05-28 09:17 ?7334次閱讀
    基于<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>117H IOT EdgeReady智能HMI解決方案

    基于 NXP i.MX RT1060 + IW416 的 Matter Thermostat 智慧溫控器應(yīng)用方案之 Apple 生態(tài)系統(tǒng)

    NXP i.MX RT1060 是一款搭載 Arm Cortex-M7 的跨界微控制器,具有強(qiáng)大的處理能力和低功耗特性,而 IW416 則是一款高度集成的 Wi-Fi 4 和 Bluetooth 5.2 系統(tǒng)單芯片(SoC),提供了低成本的連接解決方案。
    的頭像 發(fā)表于 03-28 15:54 ?808次閱讀
    基于 NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT1060</b> + IW416 的 Matter Thermostat 智慧溫控器應(yīng)用方案之 Apple 生態(tài)系統(tǒng)

    使用基于muRata CYW4343W的LBEE5KL1DX-883模塊,會持續(xù)向藍(lán)牙UART發(fā)送 0x01 0x03 0x0c 0x00沒有收到任何響應(yīng)的原因?

    大家好,我正在使用基于 muRata CYW4343W的LBEE5KL1DX-883模塊。示意圖如下,有什么問題嗎? 我引用了 I.MX RT1060 SDK 中的示例,我已經(jīng)成功移植了
    發(fā)表于 03-01 09:18
    主站蜘蛛池模板: 黄色福利站 | 一级aaaaaa片毛片在线播放 | 国产欧美另类第一页 | 国产精品美女www爽爽爽视频 | 丁香花的视频免费观看 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片美女图片 | 69一级毛片| 中文字幕一区二区视频 | 男人扒开美女尿口无遮挡图片 | 天天操一操 | 老头天天吃我奶躁我的动图 | 成人性色生活影片 | 性欧美xxxx视频在线观看 | 四虎国产精品成人永久免费影视 | 亚洲一区二区三区四区在线 | 美女扒开尿口给男人桶动态图 | 55夜色66夜色国产精品站 | 国产视频一二 | 午夜久久久久久亚洲国产精品 | 免费国内精品久久久久影院 | 亚洲一区二区三区在线播放 | 国产美女精品久久久久中文 | 国产精品欧美一区二区三区 | 日本高清黄色 | 国产女同在线观看 | 五月婷激情 | 亚洲一区二区三区免费在线观看 | 欧美 亚洲 国产 丝袜 在线 | 狠狠躁| 多男一女一级淫片免费播放口 | 色丁香在线 | 色两性网欧美 | 高清不卡毛片免费观看 | 国产在线播放你懂的 | 种子天堂bt磁力在线资源 | 日韩福利网站 | 国产无套视频在线观看香蕉 | 中文字幕二区 | 日本一区免费在线观看 | 欧美精品一二区 | 五月婷婷六月丁香在线 |