將人工智慧應用於嵌入式應用程式的吸引力是顯而易見的,例如,使用Face-id來授權訪問工廠地板上的機器控制。人臉識別,語音控制,異常檢測,人工智慧有很多可能性。
人工智慧的開發與標準嵌入式開發有很大不同。你不是在寫軟體,至少是為了核心功能。你必須訓練神經網路來識別模式(比如影象),然後,你必須最佳化該網路,以滿足嵌入式裝置有限的佔地面積,從而達到尺寸和功率目標。神經網路可能不是傳統的程式碼,但網路及其計算仍然消耗記憶體和能量。作為一名嵌入式開發人員,你知道盡可能多地壓縮這些指標是多麼重要。現在讓我們至少了解一下這些神經網路是如何工作的。
基礎
神經網路在概念上是一系列“神經元”層。每個神經元從前一層讀取兩個(或更多)輸入或輸入資料,使用訓練好的權重進行計算,並反饋結果。基於這些權重,層檢測特徵,當你在層中移動時,特徵會逐漸變得更復雜,最終在輸出端識別出複雜的影象。
第一個聰明的部分是設計網路——有多少層,層與層之間的連線等等——核心神經網路演算法。第二個聰明的部分是訓練。這是一個過程,在這個過程中,許多影象在網路中執行,並透過標籤識別應該識別的內容。這些執行建立了識別所需的權重值。
與嵌入式開發不同的是,在人工智慧的開發中,你可以從零開始構建自己的神經網路。你也可以從一個開源選項開始,比如這個face-id選項。你可以將所有這些都構建到一個可以在膝上型電腦上執行的應用程式中,這對於想要註冊新的核準面孔的客戶來說非常方便。現在,你可以開始在多個姿勢中使用一組經批准的人臉測試集來訓練你的人際網路。
為什麼不在雲端做呢?
有一些服務可以線上進行人臉識別——無需在你的裝置上使用凌亂的人工智慧。只需拍下照片,上傳到雲端,應用程式就會傳回一個OK,你的產品就會批准下一步。
但是–所有獲得批准的員工都需要在雲中儲存他們的照片和其他憑證。對於安全和隱私來說,這可能不是一個好主意。每當工作人員想要訪問機器時,將影象傳輸到雲端會消耗大量的能量。如果你的網際網路連線斷開了,在它恢復之前,任何人都不能被批准。在裝置上執行正確的身份驗證可以保護隱私和安全,保持較低的電源需求,即使在網路連線斷開時也可以繼續工作。
現在你已經完成了人工智慧的硬部分,你必須將其下載到你的裝置上。這本身就是一個有趣的步驟,你肯定需要AI平臺的幫助。在把 AI 技術部署於終端裝置的過程中,嵌入式開發技術至關重要。簡單來說,這一過程需要對晶片進行全方位考量以評估晶片的效能,然後根據神經網路演算法做特殊化處理,無縫對接嵌入式裝置的能力。既沒有浪費運算單元,又最大程度地體現演算法的精度,這是一個藝術活,也是技術活。