<li id="wkceg"></li>
<rt id="wkceg"><delect id="wkceg"></delect></rt>
<bdo id="wkceg"></bdo>
<strike id="wkceg"><acronym id="wkceg"></acronym></strike>

  • 帳號:
    密碼:
    智動化 / 文章 /

    STM32低功耗電腦視覺:類比儀表展示
    [作者 意法半導體]   2022年06月08日 星期三 瀏覽人次: [5379]

    水表是常見的家庭設備,不過類似圖一的類比水表多達數千種,需要技術人員每個月到現場人工記錄資料,才能計算當月的使用量,這是十分費時且費力的工作。現在,電表逐漸被智慧電表所取代,不過成本仍然很高,對於缺乏連線能力的使用者,或尚未規畫更換經費的國家來說,這更加是艱鉅的任務。


    本文敘述如何透過使用具MCU嵌入式連線能力的低解析度攝影機所組成的低功耗、低成本系統,有效地將類比儀表數位化。.



    圖一
    圖一

    經由採用意法半導體(STMicroelectronics;ST)的STM32WL55,透過攝影機擷取水表讀錶區域,接著利用MCU上執行的 AI 演算法識別讀表。AI分類器演算法的結果(也就是讀錶)以STM32WL(如 LoRaWAN)支援的遠端 sub-GHz 無線網路傳輸。傳統的連線裝置會將影像傳送到雲端,而ST的解決方案則是傳輸讀數。這個方案的優勢,在於透過本地 AI 模型可以快速準確地識別讀數,然後只需要將讀數傳送回資料中心即可。


    這種方法不僅可以有效保護使用者資料的隱私(僅傳輸推論結果),而且效率更高,並且節省頻寬。如此,使用者就能以低成本、低功耗、高效率的方式解決這個問題。



    圖二
    圖二

    WL 系列是全世界第一款支援長距離無線通訊的 MCU。


    STM32WL系列為一款可以連接LoRa低功耗廣域網路的系統晶片,其整合STM32L4超低功耗系列和支援多種調變方案的Sub-GHz射頻子系統。



    圖三
    圖三

    STM32 成功的重要因素為其強大的生態系統。從事STM32WL工作的開發人員可以運用已在市場上獲得驗證之成熟的STM32生態系統,使用STM32通用開發所熟悉開發的工具,以及 subGHz 無線電開發和 AI 設計工具專用的套裝軟體組成。如此即可大幅降低開發門檻,加速產品上市時間。


    生態系統中的資源,包括STM32CubeMX專案配置和程式碼產生工具、STM32CubeMonitor執行階段監控、視覺化工具,以及 STM32CubeProgrammer 程式碼燒錄工具。


    STM32Cube.AI有助於使用者將經過訓練的AI模型快速部署到STM32上並進行驗證測試。STM32CubeWL MCU套裝軟體元件,包含STM32WL系列執行所需的所有嵌入式軟體模組,包括周邊裝置驅動程式、ST LoRaWAN 通訊協定堆疊、Sigfox通訊協定堆疊,以及使用ST 安全啟動和安全韌體更新技術實現LoRaWAN韌體無線更新的範例程式碼。


    另外,還有兩個採用STM32WL的核板,用於快速原型設計:NUCLEO-WL55JC1(868pm 915amp 923 MHz)和NUCLEO-WL55JC2(433Accord470 MHz),以及兩個Nucleo開發板板,用於快速原型研發。而本文的使用範例即採用了NUCLEO-WL55JC2開發板。



    圖四
    圖四

    除了NUCLEO-WL55JC2之外,這個專案的另一個關鍵元件是攝影機。


    攝影機模組(採用低成本OV2640 感測器)透過標準GPIO直接連接到NUCLEO-WL55JC2 開發板中的STM32 MCU。由於STM32WL系列中沒有可用的DCMI 介面,在示範中使用了電磁計數器,這個計數器在多數常見的線上商店容易取得,因此容易複製重現。


    實驗系統如圖五所示。



    圖五
    圖五

    當所有硬體準備就緒之後,使用者就可以製作資料集進行模型訓練。


    在電腦視覺中有典型的入門專案,就是識別 MNIST 資料集。MNIST資料集收集0-9共十個 阿拉伯數字的手寫字型,包括訓練集中6萬個樣本和測試集中的1千個樣本。對於想要使用現實世界資料,嘗試學習技術和模式識別方法,同時在預處理和格式化方面動用最少的人力來說,這是很好用的資料庫。



    圖六
    圖六

    不過,我們無法直接使用這個資料集,因為水表上的數字字型和色彩與此資料集有極大的不同,為了達到更好的效能,我們會使用上述所提到的設備,讓資料集與MNIST類似。


    以下討論這個專案,開啟 STM32 電腦視覺的大門。


    這個資料集大約有 4千個樣本,每個樣本包含五個數字。資料集的部分樣本,如圖七所示。



    圖七
    圖七

    當有資料集之後,就可以建立神經網路,並使用自己的資料集訓練模型。在這個模型中,輸入40X32(數字)的灰階影像來識別從0到19的20個類別,分別為:0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19。圖八則是訓練中失誤和準確度的變化。這個資料集背景很簡單,由於數字字型很規則,因此訓練效果很好。其實可以收集不同的水表讀數(不同的字型和色彩)一起訓練,如此一來,模型就可以識別多個水表讀數。



    圖八
    圖八

    訓練結束後會取得模型檔案。迄今我們可以使用STM32cube.AI 工具,將模型轉化為最佳化程式碼,快速部署到 NUCLEO-WL55JC2開發板上。


    由於整合STM32Cube,讓STM32Cube.AI使用者能夠有效地將模型移植到多樣化的STM32 微控制器系列中。而且對於類似模型也適用於不同產品的情況,能夠在STM32產品組合中輕鬆移轉,而此專案亦是利用STM32Cube.AI將模型部署到STM32WL。


    此外,可以透過外掛程式擴充STM32CubeMX的功能,自動轉換預訓練的人工智慧演算法,並將產生的最佳化資料庫整合到使用者專案中,而不是建構手動輸入的程式碼。而且還能將深度學習解決方案嵌入各種STM32 微控制器產品組合中,藉以對每個產品新增智慧功能。


    STM32Cube.AI 提供對各種深度學習框架的原生支援,例如 Keras、TensorFlow Lite、ConvNetJs,並支援所有可以匯出為ONNX標準格式的架構,例如PyTorch、Microsoft Cognitive Toolkit、MATLAB等。


    此外,STM32Cube.AI支援來自大量機器學習開放原始碼程式庫Scikit-Learn的標準機器學習演算法,例如Isolation Forest、支援向量機器(SVM)、K-Means。


    在這個專案中,使用了TensorFlow 架構。



    圖九
    圖九

    最後,我們來看看實際效能。為了方便展示,我們將攝影機拍攝的影像和MCU上的識別結果傳送到電腦螢幕。影片中黑底白字的數字為攝影機所拍攝的圖片,第一行是AI模型的結果。我們將儀表設定為每五秒驅動一次,因此數字每五秒更新一次。以下是未經編輯的實際螢幕擷取畫面。



    圖十
    圖十
    相關文章
    ? SiC MOSFET:意法半導體克服產業挑戰的顛覆性技術
    ? 意法半導體的邊緣AI永續發展策略:超越MEMS迎接真正挑戰
    ? Crank Storyboard:跨越微控制器與微處理器的橋樑
    ? 嵌入式系統的創新:RTOS與MCU的協同運作
    ? STM32MP25系列MPU加速邊緣AI應用發展 開啟嵌入式智慧新時代
    comments powered by Disqus
      相關新聞
    » 臺達攜手珍古德協會與海科館 三方合作推動珊瑚復育教育
    » IPAC'25國際粒子加速器會議首度在臺灣登場
    » 杜邦公佈其計畫分拆的電子業務獨立公司Qnity品牌識別
    » 意法半導體推出高整合低位電流感測放大器,簡化高精度量測設計
    » 意法半導體推出創新記憶體技術,加速新世代車用微控制器開發與演進
      相關產品
    » 意法半導體推出適用於數位鑰匙應用的新一代車用 NFC 讀寫器 擴展 ST25R 高效能產品系列
    » 適用于高頻功率應用的 IXD2012NTR 高壓側和低壓側柵極驅動器
    » KSC XA輕觸開關提供聲音柔和的輕觸回饋,增強用戶體驗
    » 首款採用 DO-214AB 緊湊型封裝的 2kA 保護晶閘管
    » 意法半導體推出新款智慧型功率開關,具備小巧外型、高效率與高度可靠性

    ?
    刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

    Copyright ©1999-2025 遠播資訊股份有限公司版權所有 Powered by O3
    地址:臺北數位產業園區(digiBlock Taipei) 103臺北市大同區承德路三段287-2號A棟204室
    電話 (02)2585-5526 #0 轉接至總機 / E-Mail: webmaster@hope.com.tw
    主站蜘蛛池模板: 天台县| 霞浦县| 咸宁市| 长葛市| 仁化县| 抚顺县| 姜堰市| 永嘉县| 延长县| 金乡县| 榕江县| 德兴市| 文水县| 陆良县| 吴旗县| 肥西县| 嘉峪关市| 广水市| 吴旗县| 海淀区| 文水县| 潜山县| 嫩江县| 绍兴市| 沿河| 永济市| 边坝县| 昌平区| 屯昌县| 密山市| 东兰县| 庆元县| 淮安市| 民勤县| 鄱阳县| 井研县| 昭觉县| 张家川| 文安县| 集安市| 饶平县|