返回文章列表

邊緣AI感測器技術與硬體架構

本文探討邊緣AI裝置中感測器的關鍵角色,涵蓋力學、光學、環境等不同型別感測器,以及虛擬資料的應用。同時,文章也剖析了邊緣AI的硬體架構,包含微控制器、SoC、深度學習加速器,以及異構運算的應用,並以程式碼示例說明其在電源管理和浮點數運算方面的實際應用。

物聯網 人工智慧

邊緣AI裝置仰賴多種感測器取得外界資訊,從物理環境的溫度、壓力到虛擬資料的裝置日誌和網路狀態,這些資料構成了邊緣AI決策的基礎。感測器種類別繁多,各有其特性和應用場景,例如力學感測器適用於觸覺回饋和碰撞檢測,光學感測器則應用於環境光感測和顏色識別。除了感測器,邊緣AI的硬體架構也至關重要。微控制器、SoC 和深度學習加速器各有優劣,需根據應用需求選擇合適的硬體平台。此外,異構運算的應用也日益重要,它能有效分配工作負載,提升系統效能和能源效率。

感測器技術在邊緣AI中的關鍵角色

邊緣AI裝置透過各種感測器與外界互動,感知環境變化,並根據收集到的資料做出智慧決策。這些感測器涵蓋了從物理環境到虛擬資料的多個領域,為裝置提供了豐富的資訊來源。

力學與觸覺感測器

這類別感測器能夠測量環境中的物理變化,如壓力、流速和變形等。它們在使用者互動、液體氣體流動監測以及物體機械應變測量等方面發揮著重要作用。

常見的力學與觸覺感測器型別

  1. 按鈕與開關:作為簡單的人機互動工具,提供二元訊號以檢測裝置是否與其他物體碰撞。

  2. 電容式觸控感測器:測量導電物體(如人體手指)對表面的觸控程度,現代觸控式螢幕的核心技術。

  3. 應變計與柔性感測器:檢測物體變形程度,用於損壞檢測和觸覺人機介面設計。

  4. 荷重計:精確測量施加在其上的物理負載,從微小物體重量到大型結構的應變測量。

  5. 流量感測器:設計用於測量液體和氣體的流速,如管道中的水流。

  6. 壓力感測器:測量氣體或液體的壓力,包括環境壓力和系統內部壓力。

這些感測器通常簡單、低能耗且易於使用,其測量結果易於表示為時間序列資料。在構建觸覺使用者介面或檢測移動裝置碰撞事件時尤其有用。

光學、電磁與輻射感測器

這類別涵蓋了用於測量電磁輻射、磁場和高能粒子等的感測器,以及基本的電氣屬性如電流和電壓的測量。

典型光學、電磁與輻射感測器

  1. 光感測器:檢測各種波長的光,包括可見光和不可見光,用於環境光照度測量或檢測光束中斷。

  2. 色彩感測器:利用光感測器精確測量表面顏色,有助於識別不同型別的物體。

  3. 光譜儀感測器:透過測量材料對不同波長光的吸收和反射,提供對材料成分的洞察。

  4. 磁力計:測量磁場的強度和方向,其中數字針是一種特殊的磁力計,用於指示北方。

  5. 電感式接近感測器:利用電磁場檢測附近的金屬,常用於交通監控中的車輛檢測。

  6. 電磁場(EMF)計:測量電磁場的強度,包括工業裝置發出的偶然輻射或無線電發射機故意發出的輻射。

  7. 電流感測器:監控導體中的電流變化,用於工業裝置的執行狀態監控。

  8. 電壓感測器:測量物體兩端的電壓。

  9. 半導體探測器:檢測由放射性物質衰變產生的高速粒子組成的遊離輻射。

與其他感測器一樣,這類別通常提供時間序列的測量資料。除了環境監測外,這些感測器在檢測裝置故意產生的訊號時也非常有用。

環境、生物與化學感測器

這是一個涵蓋多種型別的寬泛類別,允許邊緣AI裝置感知周圍環境的組成。

常見的環境、生物與化學感測器

  1. 溫度感測器:測量裝置本身或遠紅外輻射源的溫度。

  2. 氣體感測器:多種氣體濃度感測器,包括濕度感測器(水蒸氣)、揮發性有機化合物(VOC)感測器和二氧化碳感測器。

  3. 顆粒物感測器:監控空氣樣本中微小顆粒的濃度,用於汙染水平監控。

  4. 生物訊號感測器:涵蓋生物體內的各種訊號,如心臟(心電圖)和大腦(腦電圖)的電活動。

  5. 化學感測器:多種專門設計用於檢測特定化學物質存在或濃度的感測器。

這類別的感測器通常提供時間序列讀數。由於需要與環境進行化學和物理互動,它們有時難以使用,例如經常需要針對已知化學物質進行校準,並且有時在可靠讀取之前需要預熱期。環境感測器的老化和更換也是常見問題。

虛擬資料訊號

除了收集物理世界的訊號外,許多邊緣AI裝置還能取得豐富的虛擬資料。這些資料大致可分為兩類別:關於裝置本身狀態的內省資料,以及關於裝置所連線系統和網路的外省資料。

裝置內部狀態資料

根據裝置的不同,各種內部狀態資料可能可用,包括:

  • 裝置日誌

這些虛擬資料為邊緣AI裝置提供了對自身執行狀態和所處環境網路狀況的深入瞭解,對於最佳化裝置效能和做出智慧決策至關重要。

內容解密:

上述內容概述了邊緣AI裝置中使用的多種型別感測器及其應用。每種感測器都有其特定的功能和用途,能夠為裝置提供豐富的環境資訊和內部狀態資料。這些資訊對於裝置進行智慧決策和最佳化效能至關重要。

圖表翻譯:

此圖示展示了邊緣AI裝置中使用的不同型別感測器的分類別及其應用領域。可以看到,這些感測器被分為力學與觸覺、光學與電磁、環境與生物化學等類別,每一類別下又包含了多種特定的感測技術。它們共同構成了邊緣AI裝置感知外界環境和自身狀態的重要基礎。

邊緣AI的資料來源與硬體架構

邊緣AI系統能夠處理和分析來自多種來源的資料,這些資料可以分為內省資料流和外向資料流。內省資料流來自裝置內部,可以提供有關裝置生命週期、資源利用率、通訊和內部感測器等資訊。

內省資料流

內省資料流對於瞭解裝置的運作狀態至關重要。它們可以提供以下資訊:

  1. 裝置生命週期資訊:記錄裝置自啟動以來的生命週期事件,例如組態變更、工作週期、中斷、錯誤等。
  2. 內部資源利用率:包括可用記憶體、功耗、時鐘速度、作業系統資源和外設的使用情況。
  3. 通訊資訊:裝置可以跟蹤其實體連線、無線電通訊、網路組態和活動,以及由此產生的能源消耗。
  4. 內部感測器資料:一些裝置具有內部感測器,例如許多片上系統(SoC)裝置包含溫度感測器以監控其CPU。

內省資料的一個有趣應用是延長電池壽命。例如,蘋果的iPhone使用邊緣AI功能,稱為「最佳化電池充電」,透過學習使用者的充電習慣,最大限度地減少電池保持滿電的時間,同時確保在使用者需要時電池仍然充滿電。

外向資料流

外向資料流來自裝置外部,可以提供豐富的資訊。可能的來源包括:

  1. 來自連線系統的資料:邊緣AI裝置通常佈署在網路中,相鄰裝置轉發的資料可以用作AI演算法的輸入。
  2. 遠端命令:邊緣AI裝置可能會從其他系統或使用者接收控制指令,例如無人機使用者請求其移動到3D空間中的特定坐標。
  3. 來自API的資料:邊緣AI裝置可以從遠端伺服器請求資料以饋入其演算法,例如,裝備有邊緣AI的家庭供暖系統可能會請求線上天氣預報資料,以幫助決定何時開啟供暖。
  4. 網路資料:這可能包括網路結構、路由資訊、網路活動,甚至是資料包的內容。

邊緣AI硬體架構

邊緣AI硬體架構是指硬體系統中各元件之間的連線方式。圖3-5展示了邊緣裝置的典型硬體架構。

圖3-5:邊緣裝置的架構

此圖示展示了一個典型的邊緣裝置架構,包括應用處理器、整合的協處理器、揮發性記憶體和外部記憶體等元件。

圖表翻譯: 此圖表展示了邊緣裝置的核心元件,包括應用處理器,它是協調應用程式和執行演算法的主要處理器。整合的協處理器,如浮點數運算單元(FPU),能夠高效執行特定計算。揮發性記憶體(如RAM)用於程式執行期間的工作記憶體。

邊緣AI處理器

邊緣AI的一個令人興奮的方面是可用於應用的硬體陣列日益增長。在本文中,我們將探討高階類別的硬體,並瞭解每種類別為何適合特定的領域。

應用處理器與協處理器

應用處理器是裝置的核心,負責協調應用程式和執行演算法。許多應用處理器具有整合的協處理器,這些協處理器在執行特定計算時非常高效。例如,許多處理器具有內建的浮點數運算單元(FPU),設計用於快速執行浮點數計算。

記憶體架構

應用處理器還整合了在程式執行期間用作工作記憶體的揮發性記憶體(如RAM)。此外,通常還有額外的RAM位於單獨的晶片上,作為外部記憶體。

片上與片外元件

電腦系統通常由附著在印刷電路板(PCB)上的矽晶片製成的積體電路(IC)組成。例如,應用處理器是一個IC。當提到處理器和它整合的其他元件時,常見的術語是「片上」(on-die)和「片外」(off-die)。片上元件位於與處理器相同的矽片上,而片外元件則位於附著在相同PCB上的單獨IC中。

由於片上元件在物理上更接近主處理器,因此它們通常更快、更節能:在片上元件之間傳輸資料所需的時間和能量更少。

# 示例程式碼:使用Python進行浮點數運算
def calculate_float_operation(a, b):
    # 進行浮點數加法運算
    result = a + b
    return result

# 使用範例
a = 1.23456789
b = 9.87654321
result = calculate_float_operation(a, b)
print("浮點數運算結果:", result)

內容解密:

此Python函式calculate_float_operation演示瞭如何進行浮點數加法運算。它接受兩個浮點數ab作為輸入,將它們相加,並傳回結果。在實際應用中,這種浮點數運算在邊緣AI裝置中可能由整合的浮點數運算單元(FPU)高效執行,以加速計算過程。

微控制器與數位訊號處理器在嵌入式系統中的角色

微控制器(Microcontrollers)是現代世界的基礎,廣泛應用於從汽車引擎到智慧家電等各類別裝置中。這些微小的電腦之所以能夠無處不在,是因為它們具備低成本、高效率以及能夠針對特定任務進行最佳化的特性。

微控制器的基本特性

微控制器通常被用於單一用途的應用,例如控制某種機械裝置。這意味著它們可以比需要執行多個程式的電腦更為簡單。例如,它們通常不使用作業系統,而是直接在硬體上執行軟體(稱為韌體),並包含驅動周邊裝置所需的底層指令。這使得微控制器的軟體工程頗具挑戰性,但同時也讓開發者能夠更精確地控制程式的執行。

微控制器的組成

  • 處理器核心:執行指令的核心元件。
  • 快閃記憶體(Flash Memory):用於儲存程式和其他有用資料。
  • RAM(隨機存取記憶體):用於在程式執行期間儲存狀態。
  • 通訊技術:用於與其他裝置(如感測器)進行數位或類別比訊號的通訊。

微控制器的分類別

根據不同的需求和應用,微控制器可以大致分為三類別:低端微控制器、高階微控制器和數位訊號處理器(DSP)。

低端微控制器

低端微控制器專為低成本、小尺寸和能源效率而設計。它們的計算資源和能力相對有限,典型的規格包括:

  • 4位元至16位元架構
  • 時脈速度小於100 MHz
  • 2 KB至64 KB的快閃記憶體
  • 64位元組至2 KB的RAM
  • 數位輸入和輸出
  • 耗電量:執行時為單一位數至數十毫安培(約1.5–5伏特),待機時為微安培
  • 成本:大量購買時每單位一至兩美元

電源消耗考量

微控制器的能耗取決於多種因素,大部分都在開發者的控制之下。開發者可以透過降低處理器速度、關閉不使用的功能以及在不處理資料時將整個微控制器置於閒置模式來減少能耗。

// 範例程式碼:控制微控制器的電源模式
void enterSleepMode() {
    // 關閉不必要的周邊裝置
    disableUnusedPeripherals();
    // 設定微控制器進入睡眠模式
    setSleepMode();
    // 執行睡眠指令
    sleep();
}

#### 程式碼解析:
1. `disableUnusedPeripherals()` 函式負責關閉未使用的周邊裝置,以減少能耗。
2. `setSleepMode()` 函式設定微控制器進入睡眠模式,準備降低能耗。
3. `sleep()` 函式實際執行使微控制器進入睡眠狀態的指令。

微控制器電源管理流程圖

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title 邊緣AI感測器技術與硬體架構

package "邊緣 AI 感測器與硬體" {
    package "感測器類型" {
        component [力學/觸覺] as mech
        component [光學/電磁] as optical
        component [環境/生物] as env
    }

    package "硬體平台" {
        component [微控制器] as mcu
        component [SoC] as soc
        component [DL 加速器] as accel
    }

    package "系統設計" {
        component [異構運算] as hetero
        component [電源管理] as power
        component [DSP 處理] as dsp
    }
}

mech --> mcu : 時序資料
soc --> accel : 深度學習
hetero --> power : 效能/功耗平衡

note bottom of mcu
  資源受限但
  低功耗適合邊緣
end note

collect --> clean : 原始資料
clean --> feature : 乾淨資料
feature --> select : 特徵向量
select --> tune : 基礎模型
tune --> cv : 最佳參數
cv --> eval : 訓練模型
eval --> deploy : 驗證模型
deploy --> monitor : 生產模型

note right of feature
  特徵工程包含:
  - 特徵選擇
  - 特徵轉換
  - 降維處理
end note

note right of eval
  評估指標:
  - 準確率/召回率
  - F1 Score
  - AUC-ROC
end note

@enduml

圖表翻譯: 此圖示展示了微控制器的電源管理流程。當微控制器閒置時,它會關閉未使用的周邊裝置並進入睡眠模式,以節省能源。當接收到中斷訊號時,它會被喚醒並繼續執行任務。

微控制器在邊緣AI中的角色

許多現今使用的低階微控制器(MCU)是根據1980年代以來就已存在的設計。儘管技術不斷進步,對於簡單、低成本和低功耗硬體的需求始終存在,因此這些晶片得以持續應用。它們在多個產業中極為常見。

低階微控制器

低階微控制器在邊緣AI方面存在明顯的劣勢。由於它們缺乏記憶體和計算能力,因此不適合處理大量資料或複雜的訊號處理。通常情況下,它們不具備硬體實作的浮點數運算,這意味著涉及有理數的計算可能極為緩慢。這些特性限制了它們能夠執行的邊緣AI演算法型別。

低階微控制器的典型應用場景發揮了它們的優勢:高可靠性的汽車和醫療裝置,以及低成本的家電、裝置和小工具。其中一個流行的低階微控制器是Atmel的8位元AVR平台。儘管它們是微控制器世界的重要組成部分,但其計算限制意味著對於邊緣AI應用來說,它們可能不是首選目標。

值得注意的是,正如本文第一部分所提到的,邊緣AI程式並不總是需要複雜的計算。低階微控制器完全能夠執行複雜的條件邏輯,這可能足以滿足需求。它們還可以組成連線裝置網路的一部分,利用邊緣AI——例如,低階微控制器可以捕捉感測器資料並將其轉發給更先進的裝置進行決策。

高階微控制器

在微控制器的高階領域,當今最強大的微控制器具備足夠的計算能力,甚至可以媲美90年代的個人電腦。在許多情況下,它們仍然能夠保持高能效。以下是一些典型的規格:

  • 32位元架構
  • 小於1000 MHz的時脈速度
  • 16 KB到2 MB的快閃記憶體
  • 2 KB到1 MB的RAM
  • 可選的硬體支援以加速數學運算
  • 浮點數運算單元(FPU)
  • 單指令多資料(SIMD)指令
  • 可選的多處理器核心
  • 數位和類別比輸入輸出
  • 電流消耗:低個位數到高十位毫安培(~1.5–5伏特);睡眠模式下為微安培
  • 成本:從低個位數到低十位美元每單位

高階微控制器提供了效能上的巨大飛躍,這得益於更快的時脈速度和32位元架構。此外,許多型號的微控制器具備硬體支援,可以實作一些提高計算速度的技巧。其中之一是SIMD,允許處理器平行執行多個計算——這對於執行訊號處理和機器學習應用程式非常有幫助,因為這些應用涉及大量計算。

越來越多的高階微控制器在設計時考慮到了邊緣AI應用。供應商通常提供軟體和函式庫,以幫助最佳化邊緣AI程式碼,使其在裝置上高效執行。另一個大優勢是提供更大容量的快閃記憶體和RAM——這對於處理資料和儲存大型機器學習模型非常有幫助。

高階微控制器被廣泛應用於各種場景,從感測和物聯網到數位小工具、智慧家電和可穿戴裝置。在撰寫本文時,它們代表了嵌入式機器學習在成本、能耗和計算能力方面的最佳平衡點。它們擁有足夠的能力來執行強大的深度學習模型——包括能夠處理視覺資訊的深度學習模型——同時保持足夠簡單,能夠廉價地嵌入到廣泛的應用中。

數位訊號處理器(DSP)

DSP是一個有趣的子類別,它們是專門設計用於高效轉換數位訊號的特殊微控制器。它們的架構針對執行特定的演算法和數學運算進行了最佳化,而不是通用計算——包括乘法累加和傅立葉變換等運算,我們將在第4章中詳細介紹。

幸運的是,其中許多數學運算在邊緣AI中非常有用,無論是處理資料還是執行機器學習模型。這使得DSP成為一個有價值的工具。然而,DSP的缺點是它們不適合通用計算,這意味著它們可能不適合執行非邊緣AI部分的應用程式。

如今的高階微控制器通常具備一些DSP的功能,例如SIMD指令,可以幫助提高訊號處理任務的吞吐量——事實上,有些甚至被描述為DSP。

效能特點

平均而言,高階微控制器可以近乎實時地使用深度學習處理音訊,並以大約一秒一幀的速度處理低解析度視訊。

邊緣AI運算的硬體選擇

在邊緣AI的領域中,硬體的選擇對於系統的效能、能耗和成本有著至關重要的影響。隨著技術的發展,各種不同的硬體架構和元件被開發出來,以滿足不同的應用需求。在本章節中,我們將探討幾種主要的邊緣AI運算硬體,包括微控制器(Microcontrollers)、系統單晶片(System-on-Chip, SoC)、以及深度學習加速器(Deep Learning Accelerators)。

微控制器(Microcontrollers)

微控制器是一種高度整合的晶片,它包含了處理器核心、記憶體和輸入/輸出介面等元件。微控制器通常被設計為低功耗、低成本,適合用於各種嵌入式系統中。

效能特點

  • 低功耗,通常以毫安(mA)或微安(μA)為單位。
  • 成本低廉,適合大規模生產和應用。
  • 高度整合,減少了外部元件的需求。

微控制器在邊緣AI中的應用越來越廣泛,尤其是在那些對能耗和成本敏感的領域。然而,由於其處理能力和記憶體限制,微控制器通常需要與其他硬體元件(如深度學習加速器)結合使用,以實作更複雜的AI功能。

系統單晶片(System-on-Chip, SoC)

SoC是一種將整個電腦系統整合到單一晶片上的技術。它不僅包含了處理器核心,還整合了記憶體、輸入/輸出介面、甚至是圖形處理單元(GPU)等。

效能特點

  • 高效能,通常採用64位元架構和GHz級別的時脈。
  • 具備多個處理器核心,能夠支援平行運算。
  • 支援外部記憶體和快閃記憶體,具有較大的儲存空間。
  • 具備2D或3D圖形處理能力。
  • 支援無線網路連線和高效能的數位輸入/輸出。

SoC由於其高效能和靈活性,在邊緣AI中被廣泛應用。它們能夠執行複雜的演算法,如深度學習模型,並且開發者可以使用熟悉的工具和環境進行開發。

深度學習加速器(Deep Learning Accelerators)

深度學習加速器是一種專門為加速深度學習運算而設計的硬體。它們透過最佳化線性代數運算,能夠比通用處理器更快、更有效地執行深度學習模型。

效能特點

  • 高效能,能夠實時處理音訊和視訊資料。
  • 能耗最佳化,不同的設計在能耗和靈活性之間進行了不同的權衡。
  • 多樣化的設計,從固定功能的硬體實作到根據GPU的可程式設計方案。

深度學習加速器通常與微控制器或SoC結合使用,前者負責應用邏輯,而後者則負責執行深度學習工作負載。這種組合能夠在保持高效能的同時,降低能耗和成本。

異構運算(Heterogeneous Compute)

異構運算是指在一個系統中使用多個不同的處理器或核心,以實作更好的效能和能效。在邊緣AI中,異構運算是非常重要的,因為它允許系統根據不同的任務需求,動態地分配工作負載到最合適的處理器上。

挑戰與機遇

異構運算的一個主要挑戰是如何有效地分配工作負載,以最大化系統的效率。然而,如果能夠正確地實作異構運算,將能夠顯著提升系統的效能和能效。