基礎介紹與硬體架構
-
-
- 1. OpenMV介紹
-
-
- 1.1 什麼是OpenMV
- 1.2 OpenMV與OpenCV
-
- 2. 硬體架構
-
-
- 2.1 OpenMV-H7
- 2.2 STM32H743
- 2.3 原理圖
-
-
1. OpenMV介紹
1.1 什麼是OpenMV
OpenMV是由美國克裡斯團隊基于MicroPython發起的開源機器視覺項目,目的是建立低成本,可擴充,使用python驅動的機器視覺子產品。OpenMV搭載了MicroPython解釋器,使其可以在嵌入式端進行python開發,關于MicroPython可以參照我之前的部落格專欄:MicroPython. OpenMV基于32位,ARM Cortex-M7核心的OpenMV-H7, 并結合各種攝像頭,可以進行多種機器視覺應用的實作,比如人臉檢測,物體分類等。
1.2 OpenMV與OpenCV
OpenMV的全稱是open machine vision, 是開源的機器視覺架構,而OpenCV是open computer vision,是一種開源計算機視覺庫,可以運作在Linux、Windows、Android和Mac OS作業系統上。二者之間的相同點在于它們都是實作視覺應用的工具,不同點在于OpenMV可以運作在MCU上,比如ARM的M系列晶片,而OpenCV可以運作在多種架構的CPU上。OpenMV的優勢在于輕量化,可以運作在MCU上,但是處理高複雜度圖像資訊與高速圖像資訊的時候,能力明顯弱于OpenCV. 二者對應這不同的應用場景,對于需要高速處理複雜圖像資訊的場合,OpenCV可以勝任,而對于産品體積,成本要求比較高并且處理圖像資訊比較簡單時,OpenMV是一個非常有優勢的參考方案。
2. 硬體架構
2.1 OpenMV-H7
OpenMV-H7是低功耗的Python3可程式設計機器視覺硬體,結合攝像頭可以支援一系列廣泛的圖像處理功能和神經網絡。OpenMV-H7使用跨平台 IDE 進行程式設計,該 IDE 允許檢視錄影機的幀緩沖器、通路傳感器控件、通過 USB 串行(或 WiFi/BLE(如果可用)将腳本上傳到錄影機。OpenMV-H7 基闆基于在 400MHz 下運作的STM32H743 MCU,具有 1MB SRAM、2MB 閃存、FPU、DSP 和硬體 JPEG 編碼器。基闆采用子產品化傳感器設計,将傳感器與錄影機分離。子產品化傳感器設計使錄影機能夠支援多個傳感器,包括 OV7725、MT9V03x 全球快門傳感器和 FLIR Lepton 1、2 和 3 熱傳感器。圖1所示就是OpenMV-H7的實物圖:
圖1. OpenMV-H7基闆
OpenMV-H7可以應用在多個領域比如:智能家居,機器人導航,物體檢測與追蹤等工業應用。
2.2 STM32H743
STM32H743是OpenMV-H7基闆的MCU,其是一款32位的,Cortex-M7核心的晶片,該核心具有雙精度浮點處理單元FPU,最高頻率達到400MHz,并且内置1M RAM, 2M Flash。圖2所示是STM32H743晶片的架構。
圖2. STM32H743架構
2.3 原理圖
OpenMV-H7基闆的原理圖如圖3所示,可以看出,原理圖還是比較簡單的,核心部分就是STM32H743的最小系統,外圍加上電源子產品以及攝像頭接口就可以做最基本的應用了。OpenMV-H7基闆除此之外增加了USB, I/O接口的引出,SD卡,RGB的LED,以及Debug接口。在具體的項目應用中,我們可以合理設計自己的OpenMV基闆,進而減少電路闆體積與成本。
圖3. OpenMV原理圖