chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

嵌入式星球 ? 2020-09-29 11:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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


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

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

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

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

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

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

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

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


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

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

將模型轉(zhuǎn)換為T(mén)ensorFlow Lite


上面討論的經(jīng)過(guò)訓(xùn)練的TensorFlow模型必須先轉(zhuǎn)換為T(mén)ensorFlow Lite,然后才能在i.MX RT1060 MCU上使用。為此,使用tflite_convert對(duì)其進(jìn)行了轉(zhuǎn)換,并且出于兼容性原因,使用TensorFlow的1.13.2版來(lái)訓(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是一個(gè)十六進(jìn)制轉(zhuǎn)儲(chǔ)實(shí)用程序,可用于將文件的二進(jìn)制形式轉(zhuǎn)換為相應(yīng)的十六進(jìn)制轉(zhuǎn)儲(chǔ)表示形式,反之亦然。在這種情況下,TensorFlow Lite二進(jìn)制文件將轉(zhuǎn)換為可添加到eIQ項(xiàng)目的C / C ++頭文件。轉(zhuǎn)換過(guò)程和tflite_convert實(shí)用程序在eIQ用戶(hù)指南中進(jìn)行了詳細(xì)說(shuō)明。該實(shí)用程序也在Google的官方文檔中進(jìn)行了描述。

嵌入式Wizard Studio快速入門(mén)

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


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

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

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

但是,由于生成的GUI項(xiàng)目在C中,而qIQ示例在C / C ++中,因此,幾個(gè)轉(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上。它包含一個(gè)用于輸入數(shù)字的輸入?yún)^(qū)域和一個(gè)顯示分類(lèi)結(jié)果的區(qū)域。運(yùn)行推斷按鈕執(zhí)行推斷,清除按鈕清除輸入和輸出字段。應(yīng)用程序?qū)㈩A(yù)測(cè)的結(jié)果和置信度輸出到標(biāo)準(zhǔn)輸出。

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

TensorFlow Lite模型精度

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

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

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

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

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

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

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

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

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

TensorFlow Lite:可行的解決方案


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

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


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

    關(guān)注

    13

    文章

    334

    瀏覽量

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

    關(guān)注

    0

    文章

    26

    瀏覽量

    822
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于i.MX RT106V跨界MCU的智能語(yǔ)音UI邊緣就緒解決方案

    基于i.MX RT106V跨界MCU的智能語(yǔ)音UI邊緣就緒解決方案 在當(dāng)今智能化的時(shí)代,智能語(yǔ)音交互技術(shù)在工業(yè)和物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用越來(lái)越廣泛。NXP推出的基于i.MX
    的頭像 發(fā)表于 12-24 17:15 ?596次閱讀

    探索i.MX RT1180:高性能處理器的技術(shù)剖析與應(yīng)用指南

    下載: NXP Semiconductors i.MX RT1180交叉微控制器 (MCU).pdf 一、i.MX RT1180 簡(jiǎn)介
    的頭像 發(fā)表于 12-24 10:20 ?599次閱讀

    FRDM i.MX 9平臺(tái)選型指南:FRDM i.MX 9系列開(kāi)發(fā)平臺(tái)解析

    恩智浦的FRDM平臺(tái)解決方案旨在提供易于獲取的開(kāi)發(fā)工具,有效彌合原型制作與量產(chǎn)之間的鴻溝。FRDM板經(jīng)濟(jì)高效、易于使用,具備專(zhuān)業(yè)級(jí)功能,助力從概念到產(chǎn)品上市的全過(guò)程加速推進(jìn)。在FRDM i.MX
    的頭像 發(fā)表于 12-11 15:15 ?2.8w次閱讀
    FRDM <b class='flag-5'>i.MX</b> 9平臺(tái)選型指南:FRDM <b class='flag-5'>i.MX</b> 9系列開(kāi)發(fā)平臺(tái)解析

    i.MX RT1180實(shí)現(xiàn)EtherCAT+伺服控制的終極實(shí)踐

    今天繼續(xù)為大家介紹i.MX RT1180實(shí)現(xiàn)EtherCAT+伺服控制的終極實(shí)踐:雙電機(jī)控制與Ethercat資源使用。
    的頭像 發(fā)表于 11-26 08:19 ?4116次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180實(shí)現(xiàn)EtherCAT+伺服控制的終極實(shí)踐

    使用恩智浦i.MX RT700跨界MCU打造智能手表

    智能手表已經(jīng)成為我們生活中不可或缺的可穿戴設(shè)備。隨著技術(shù)和市場(chǎng)的演進(jìn),如今的智能手表功能越來(lái)越豐富,而用戶(hù)對(duì)其續(xù)航能力的期望也越來(lái)越高。應(yīng)對(duì)這一挑戰(zhàn),恩智浦專(zhuān)為可穿戴、消費(fèi)級(jí)醫(yī)療、智能家居和HMI設(shè)備而設(shè)計(jì)的i.MX RT700跨界MC
    的頭像 發(fā)表于 10-27 09:33 ?1396次閱讀

    恩智浦i.MX RT1180跨界MCU助力下一代伺服控制系統(tǒng)

    今天我們將聚焦一項(xiàng)正在重塑工業(yè)自動(dòng)化邊界的技術(shù)組合 —— 基于NXP的i.MX RT1180微控制器,實(shí)現(xiàn)EtherCAT通信與高性能伺服控制的融合方案。
    的頭像 發(fā)表于 09-28 14:16 ?4853次閱讀
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180跨界<b class='flag-5'>MCU</b>助力下一代伺服控制系統(tǒng)

    恩智浦i.MX RT1180跨界處理器如何選型

    i.MX RT1180 跨界處理器包含眾多的型號(hào),以滿足客戶(hù)對(duì)不同性能與價(jià)格的需求,今天就先給大家說(shuō)說(shuō)如何選型。
    的頭像 發(fā)表于 09-28 14:01 ?2456次閱讀
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180跨界處理器如何選型

    恩智浦MCU方案 單顆i.MX RT1180實(shí)現(xiàn)EtherCAT+伺服控制

    介紹基于單顆i.MX RT1180芯片的EtherCAT+伺服電機(jī)控制方案-伺服控制板硬件電路資源介紹,即為下圖中的Servo Motor Driver Board。
    的頭像 發(fā)表于 09-11 14:27 ?11.2w次閱讀
    恩智浦<b class='flag-5'>MCU</b>方案 單顆<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180實(shí)現(xiàn)EtherCAT+伺服控制

    基于恩智浦i.MX RT芯片內(nèi)部RAM運(yùn)行LVGL工程

    隨著越來(lái)越多用戶(hù)選擇i.MX RT系列芯片制作產(chǎn)品,產(chǎn)品的需求以及芯片的用法也越來(lái)越多。本文將介紹在i.MX RT平臺(tái)中,如何創(chuàng)建LVGL項(xiàng)目并將其運(yùn)行在內(nèi)部SRAM而非SDRAM上。
    的頭像 發(fā)表于 07-01 09:33 ?2522次閱讀
    基于恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>芯片內(nèi)部RAM運(yùn)行LVGL工程

    如何實(shí)現(xiàn)安卓與恩智浦i.MX RT1170的無(wú)線投屏與控制

    Scrcpy是一款免費(fèi)開(kāi)源的軟件,支持將安卓端屏幕投影到其他設(shè)備,并支持被投屏設(shè)備對(duì)安卓的反向控制?;贏DB工具,安卓端無(wú)需安裝任何軟件,延遲低,穩(wěn)定性好。現(xiàn)在,安卓也可投屏到恩智浦i.MX RT1170上。
    的頭像 發(fā)表于 06-26 09:53 ?2229次閱讀
    如何實(shí)現(xiàn)安卓與恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1170的無(wú)線投屏與控制

    i.MX RT系列中FlexSPI DQS信號(hào)引腳配置GPIO方法

    i.MX RT060項(xiàng)目(采用QSPI Flash)的實(shí)際應(yīng)用中,有客戶(hù)反饋,其在設(shè)計(jì)階段并未預(yù)留DQS信號(hào)引腳,而是將該引腳作為GPIO用于控制關(guān)鍵外設(shè)的開(kāi)關(guān),這導(dǎo)致程序無(wú)法正常運(yùn)行。在此背景下
    的頭像 發(fā)表于 06-16 11:30 ?1455次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>系列中FlexSPI DQS信號(hào)引腳配置GPIO方法

    NXP i.MX RT1060移植TinyUSB:快速擴(kuò)展大量USB Class示例

    前言 ? 為啥是TinyUSB?給強(qiáng)大的RT配個(gè)輕巧的USB棧! USB這個(gè)讓我們方便快捷的接口,幾乎無(wú)處不在。在嵌入式世界里,尤其是用上了像NXP i.MX RT這樣性能強(qiáng)勁的跨界MCU
    的頭像 發(fā)表于 05-15 09:25 ?2538次閱讀
    NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT1060</b>移植TinyUSB:快速擴(kuò)展大量USB Class示例

    是否可以為RT1060添加HDMI輸出?

    是否可以為 RT1060 添加 HDMI 輸出?我想支持標(biāo)準(zhǔn) 720p 分辨率并使用圖形加速。
    發(fā)表于 04-10 08:04

    如何禁用i.MX RT1170 MCU中的M4內(nèi)核?

    如何禁用 i.MX RT1170 MCU 中的 M4 內(nèi)核? 您能否提供具體的可行方法? 或者是否可以將內(nèi)核的工作時(shí)鐘頻率降低到 0 ?
    發(fā)表于 04-09 07:28

    i.MX RT 1176上正常運(yùn)行代碼時(shí)與使用IAR調(diào)試代碼時(shí)存在一些奇怪的差異,為什么?

    我在 i.MX RT 1176 上正常運(yùn)行代碼時(shí)的行為與使用 IAR 調(diào)試代碼時(shí)的行為之間存在一些奇怪的差異,并注意到這是由于堆棧指針的初始化方式造成的。 我的重置向量表將其指向 DTC 的頂部
    發(fā)表于 03-17 07:26