天天看点

OpenMV(一)--基础介绍与硬件架构

基础介绍与硬件架构

      • 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的实物图:

OpenMV(一)--基础介绍与硬件架构

图1. OpenMV-H7基板

OpenMV-H7可以应用在多个领域比如:智能家居,机器人导航,物体检测与追踪等工业应用。

2.2 STM32H743

STM32H743是OpenMV-H7基板的MCU,其是一款32位的,Cortex-M7内核的芯片,该内核具有双精度浮点处理单元FPU,最高频率达到400MHz,并且内置1M RAM, 2M Flash。图2所示是STM32H743芯片的架构。

OpenMV(一)--基础介绍与硬件架构

图2. STM32H743架构

2.3 原理图

OpenMV-H7基板的原理图如图3所示,可以看出,原理图还是比较简单的,核心部分就是STM32H743的最小系统,外围加上电源模块以及摄像头接口就可以做最基本的应用了。OpenMV-H7基板除此之外增加了USB, I/O接口的引出,SD卡,RGB的LED,以及Debug接口。在具体的项目应用中,我们可以合理设计自己的OpenMV基板,进而减少电路板体积与成本。

OpenMV(一)--基础介绍与硬件架构

图3. OpenMV原理图