水表是常見的家用設(shè)備。模擬式水表(如下圖中所示)數(shù)量龐大,需要技術(shù)人員每月現(xiàn)場抄表并手工記錄數(shù)據(jù),以計(jì)算當(dāng)月的用水量。整個(gè)過程枯燥且費(fèi)力。當(dāng)前,雖然聯(lián)網(wǎng)儀表正在取代模擬式水表,但成本也會(huì)隨之上漲;更何況,一些國家并不具備接入全球網(wǎng)絡(luò)的能力,而有的家庭和公司也無計(jì)劃支付更換儀表的費(fèi)用。
本文,意法半導(dǎo)體為你演示如何使用低功耗、低成本的系統(tǒng)(由采用MCU嵌入式連接的低分辨率攝像機(jī)組成)高效地將模擬式儀表數(shù)字化。
該方法以STM32WL55為基礎(chǔ),通過攝像頭捕捉水表讀數(shù)區(qū)域,然后通過MCU上運(yùn)行的人工智能算法識(shí)別水表讀數(shù)。之后,AI分類器算法的運(yùn)行結(jié)果(即儀表讀數(shù))通過STM32WL支持的遠(yuǎn)程sub-GHz無線網(wǎng)絡(luò)(如LoRaWAN)進(jìn)行傳輸。傳統(tǒng)的聯(lián)網(wǎng)設(shè)備會(huì)將圖像傳送到云端,而我們的解決方案傳送的是讀數(shù)。
該解決方案的優(yōu)點(diǎn)是:通過本地AI模型,可以快速準(zhǔn)確地識(shí)別讀數(shù),只需將結(jié)果發(fā)送回?cái)?shù)據(jù)中心即可。此舉不僅能有效保護(hù)用戶數(shù)據(jù)隱私(僅傳輸推理結(jié)果),而且效率更高,還節(jié)省帶寬。這樣,我們就能以低成本、低功耗、高效率的方式解決問題。
STM32WL系列是世界上第一款支持遠(yuǎn)程無線通信的MCU。
作為市場上首款可以連接LoRa低功耗廣域網(wǎng)的系統(tǒng)級(jí)芯片,STM32WL集成了STM32L4超低功耗微控制器和支持多種調(diào)制方案的Sub-GHz射頻子系統(tǒng)。
STM32取得成功的一個(gè)重要因素是其強(qiáng)大的生態(tài)系統(tǒng)。基于STM32WL產(chǎn)品的開發(fā)人員可以借用已經(jīng)被市場證明成熟可靠的STM32生態(tài)系統(tǒng)。該生態(tài)系統(tǒng)包含已經(jīng)熟練掌握的開發(fā)工具(支持基于STM32進(jìn)行通用開發(fā))、專門用于sub-GHz無線電開發(fā)的軟件包,以及AI設(shè)計(jì)工具,由此大大降低了開發(fā)難度,并縮短了產(chǎn)品上市時(shí)間。
生態(tài)系統(tǒng)中的資源包括STM32CubeMX項(xiàng)目配置和代碼生成工具、STM32CubeMonitor運(yùn)行時(shí)監(jiān)測和可視化工具,以及STM32CubeProgrammer代碼燒錄工具。
STM32Cube.AI可以幫助用戶快速將經(jīng)過訓(xùn)練的AI模型部署到STM32并進(jìn)行驗(yàn)證測試。
STM32CubeWL MCU軟件包的組件包含STM32WL系列運(yùn)行所需的所有嵌入式軟件模塊,包括外設(shè)驅(qū)動(dòng)程序、意法半導(dǎo)體的LoRaWAN協(xié)議棧、Sigfox協(xié)議棧,以及利用意法半導(dǎo)體安全啟動(dòng)和安全固件更新技術(shù)實(shí)現(xiàn)LoRaWAN固件無線更新的示例代碼。
此外,還有兩種基于STM32WL的nucleo板件可用于快速原型制作:NUCLEO-WL55JC1(868pm 915amp 923 MHz)和NUCLEO-WL55JC2(433Accord470 MHz)。與此同時(shí),有兩種基于Nucleo的Nucleo板可用于快速原型開發(fā)。該項(xiàng)目基于NUCLEO-WL55JC2開發(fā)板。
除了NUCLEO-WL55JC2,該項(xiàng)目的另一個(gè)關(guān)鍵組成部分是攝像頭。
攝像頭模塊(基于低成本的OV2640傳感器)通過標(biāo)準(zhǔn)GPIO直接連接到NUCLEO-WL55JC2開發(fā)板,因?yàn)镾TM32WL系列產(chǎn)品不提供DCMI接口。為方便進(jìn)行演示,我們使用了一款常見的電磁計(jì)數(shù)器,這樣更容易進(jìn)行模型演示。
實(shí)驗(yàn)系統(tǒng)如下圖所示。我們將直流電源轉(zhuǎn)化成方波,用于驅(qū)動(dòng)電磁計(jì)數(shù)器,然后攝像頭就可以采集計(jì)數(shù)器的讀數(shù)畫面,通過GPIO傳輸?shù)絅UCLEO-WL55JC2,由MCU上運(yùn)行的AI模型進(jìn)行識(shí)別。
所有硬件準(zhǔn)備就緒后,我們就可以自己制作一個(gè)數(shù)據(jù)集,用于模型訓(xùn)練。
在計(jì)算機(jī)視覺應(yīng)用中,有一個(gè)經(jīng)典的入門級(jí)項(xiàng)目 - 識(shí)別MNIST數(shù)據(jù)集。MNIST數(shù)據(jù)集收集0-9這10個(gè)阿拉伯?dāng)?shù)字的手寫字體,包括訓(xùn)練集中的60000個(gè)樣本和測試集中的1000個(gè)樣本。有的用戶想要通過真實(shí)數(shù)據(jù)來嘗試學(xué)習(xí)技巧和模式識(shí)別方法,同時(shí)盡可能地節(jié)省在預(yù)處理和格式化方面花費(fèi)的精力,對于此類用戶, MNIST是一個(gè)很好的練手項(xiàng)目。
但是我們不使用該數(shù)據(jù)集,因?yàn)樗砩系臄?shù)字的字體和顏色與該數(shù)據(jù)集差別很大。為了使模型獲得更好的表現(xiàn),我們將使用上面提到的設(shè)備制作一個(gè)類似于MNIST的數(shù)據(jù)集。
該數(shù)據(jù)集大約有4000個(gè)樣本。每個(gè)樣本包含5位數(shù)字。數(shù)據(jù)集的部分樣本如下所示:
擁有數(shù)據(jù)集之后,我們可以構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò),并用自己的數(shù)據(jù)集來訓(xùn)練模型。在該模型中,我們輸入一幅40 X32(單個(gè)字符)的灰度圖像來識(shí)別從0到19(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19)的20個(gè)類。下圖顯示了訓(xùn)練中的損失和準(zhǔn)確率的變化。該數(shù)據(jù)集的特點(diǎn)是背景簡單和字體規(guī)則,看起來訓(xùn)練效果非常好。實(shí)際上,我們可以收集不同的水表讀數(shù)(不同的字體和顏色)進(jìn)行訓(xùn)練,這樣一個(gè)模型就可以識(shí)別多個(gè)不同水表讀數(shù)。
訓(xùn)練結(jié)束后,我們將得到一個(gè)模型文件。此時(shí),我們可以使用前面文章中提到的STM32cube.AI工具將模型轉(zhuǎn)換為優(yōu)化的代碼,并快速將其部署到NUCLEO-WL55JC2板。
STM32Cube集成使STM32Cube.AI用戶能夠有效地在廣泛的STM32微控制器系列產(chǎn)品之間移植模型,并且(在相似型號(hào)適用于不同產(chǎn)品的情況下)在STM32產(chǎn)品之間輕松遷移。該項(xiàng)目使用STM32cube.AI將模型部署到STM32WL。關(guān)于計(jì)算機(jī)視覺應(yīng)用,我們在前面文章中介紹的FP-AI-VISION1軟件包中有許多開放代碼,可幫助開發(fā)人員理解和快速開發(fā)。用戶可以瀏覽前面的文章:AI技術(shù)專題之六:STM32計(jì)算機(jī)視覺包FP-AI-VISION1簡介,以了解詳細(xì)信息。
該插件擴(kuò)展了STM32CubeMX功能,可自動(dòng)轉(zhuǎn)換預(yù)訓(xùn)練人工智能模型和將生成的優(yōu)化庫集成到用戶項(xiàng)目中,而不是人工構(gòu)建代碼,并支持將深度學(xué)習(xí)解決方案嵌入到廣泛的STM32微控制器產(chǎn)品組合中,從而為每個(gè)產(chǎn)品添加新的智能化功能。
STM32Cube.AI原生支持各種深度學(xué)習(xí)框架,如Keras、TensorFlow? Lite、ConvNetJs,并支持可導(dǎo)出為ONNX標(biāo)準(zhǔn)格式的所有框架,如PyTorch?、Microsoft?Cognitive Toolkit、MATLAB?等。
此外,STM32Cube.AI支持來自廣泛ML開源庫Scikit-Learn的標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)算法,如孤立森林、支持向量機(jī)(SVM)、K-Means。
在該項(xiàng)目中,我們使用的是TensorFlow框架。
最后,讓我們看看實(shí)際表現(xiàn)如何。為了便于演示,我們將攝像頭捕捉到的圖像和MCU上的識(shí)別結(jié)果傳輸?shù)接?jì)算機(jī)屏幕上。視頻中黑色背景上的數(shù)字(白色字體)是攝像頭捕捉到的圖像,第一行是AI模型的識(shí)別結(jié)果。我們將水表設(shè)置為每五秒鐘驅(qū)動(dòng)一次,這樣數(shù)字每隔五秒就會(huì)更新一次。該視頻顯示的是未經(jīng)編輯的錄屏。在演示過程中,我們采用了遮擋的光線的方式,去模擬不同的光照條件,證明模型的魯棒性很好。
來源:意法半導(dǎo)體中國
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理
審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
146文章
17149瀏覽量
351213 -
STM32
+關(guān)注
關(guān)注
2270文章
10900瀏覽量
356046 -
低功耗
+關(guān)注
關(guān)注
10文章
2404瀏覽量
103709 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1698瀏覽量
45993
發(fā)布評論請先 登錄
相關(guān)推薦
評論