人工智能 (AI) 和機器學習 (ML) 似乎每年越來越多地成為頭條新聞。但在大多數(shù)情況下,嵌入式開發(fā)人員似乎并沒有給予太多關(guān)注。當然,人工智能有一些非常酷的應(yīng)用程序。然而,對于實時微控制器開發(fā)人員來說,人工智能似乎是一種遙遠的工具,屬于云端或高端應(yīng)用處理器。事實證明,嵌入式開發(fā)人員現(xiàn)在需要開始關(guān)注 AI 和 ML 有幾個原因。
原因 #1 – CMSIS-NN 軟件庫
已經(jīng)有一個專門設(shè)計用于在嵌入式設(shè)備上實現(xiàn)神經(jīng)網(wǎng)絡(luò)的 CMSIS 庫。該庫為開發(fā)人員提供了實現(xiàn)神經(jīng)網(wǎng)絡(luò)功能的能力,例如:
神經(jīng)網(wǎng)絡(luò)卷積函數(shù)
神經(jīng)網(wǎng)絡(luò)激活函數(shù)
全連接層函數(shù)
神經(jīng)網(wǎng)絡(luò)池化函數(shù)
Softmax 函數(shù)
神經(jīng)網(wǎng)絡(luò)支持函數(shù)
庫函數(shù)可用于任何定點處理器。不過,為了真正提高執(zhí)行效率,開發(fā)人員可以在更高端的 Cortex-M4 或 Cortex-M7 設(shè)備上使用 ARM DSP 指令。
原因 #2 – STMicroelectronics NUCLEO-F746ZG
CMSIS-NN 軟件庫可以在一系列 Cortex-M 設(shè)備上運行,但值得一提的是 STMicroelectronics NUCLEO-F746ZG。它是已經(jīng)有示例和正在使用它執(zhí)行基準測試的開發(fā)板。NUCLEO-F746ZG 是一款 ARM Cortex-M7 處理器,包括 DSP 指令、一個浮點硬件處理器和高達 1 MB 的板載閃存。它擁有嵌入式開發(fā)人員在實時微控制器中快速高效地運行機器學習算法所需的一切。
原因 #3 – 提高設(shè)備智能
使用機器學習可以為嵌入式系統(tǒng)增加一定程度的智能,否則這將是耗時的或幾乎不可能以傳統(tǒng)方式實現(xiàn)。開發(fā)人員可以使用神經(jīng)網(wǎng)絡(luò)來學習傳感器和系統(tǒng)行為,并識別行為何時衰減或何時發(fā)生故障。利用機器學習可以幫助降低成本和實施工作。
原因 #4 – 提高架構(gòu)效率
在許多應(yīng)用中,在微控制器中使用機器學習會極大地影響系統(tǒng)架構(gòu)。以關(guān)鍵字識別應(yīng)用程序為例。開發(fā)人員可以使用不斷運行的應(yīng)用處理器來構(gòu)建系統(tǒng),尋找關(guān)鍵字。應(yīng)用處理器將使用更多的能量和計算能力來完成一項非常簡單的任務(wù)。相反,可以使用 Cortex-M 處理器來識別關(guān)鍵字,它比應(yīng)用程序處理器使用更少的功率,并且可以在發(fā)現(xiàn)關(guān)鍵字時喚醒應(yīng)用程序處理器。這只是一個嵌入式開發(fā)人員使用機器學習可以改變系統(tǒng)架構(gòu)方式的例子。
原因 #5 – 學習曲線
學習如何在嵌入式設(shè)備上實現(xiàn)機器學習不僅僅是開發(fā)人員已經(jīng)使用的技能的擴展。它不僅涉及新技術(shù),還涉及一種思考如何設(shè)計嵌入式系統(tǒng)的新方法。開發(fā)人員不可能在一夜之間學習這些新概念和技術(shù)。在開發(fā)周期中嘗試學習它們,當它們處于關(guān)鍵路徑時,無疑會由于復雜性增加而導致錯誤的實施和項目延遲。只需回顧原因 #1 中的函數(shù)列表即可。現(xiàn)在有多少這些術(shù)語對你有意義?現(xiàn)在開始零碎地學習機器學習將幫助開發(fā)人員在開發(fā)戰(zhàn)場上需要他們之前磨練他們的技能。
結(jié)論
AI 和 ML 不僅僅是用于高端應(yīng)用程序或云的工具。如今,嵌入式開發(fā)人員可以使用這些工具開始利用這些新技術(shù)并使他們的系統(tǒng)更智能。開始學習這些新功能的時候不是你需要在設(shè)計中實現(xiàn)它們并且已經(jīng)落后了;現(xiàn)在是時候了。