快速入门
重要
在使用 ESP-Video-Components 前,请仔细阅读 特别声明,并遵循其中的各项条款和注意事项。
概述
ESP-Video-Components 是乐鑫官方的相机系统开发与应用框架。它主要包括以下几个组件:
esp_cam_sensor:该组件提供 MIPI、DVP、SPI 三种相机接口的相机传感器驱动程序。
esp_ipa:该组件提供图像处理算法库。通常,对于输出 RAW 数据的相机传感器,需要通过 AE、AWB 等算法进行实时控制,才能获得较为清晰的图像。
esp_sccb_intf:该组件提供相机控制总线的驱动程序。
esp_video:该组件依赖 esp_cam_sensor、esp_ipa、esp_h264 组件,实现兼容 Linux V4L2 标准的 API。你可以将该组件添加到项目中,快速实现所需的视觉功能。
根据相机传感器的数据接口,ESP-Video-Components 支持的芯片有:
芯片 |
MIPI-CSI |
DVP |
USB |
SPI |
|---|---|---|---|---|
ESP32-P4 |
支持 |
支持 |
支持 |
支持 |
ESP32-S3 |
支持 |
支持 |
支持 |
|
ESP32-C3 |
支持 |
|||
ESP32-C5 |
支持 |
|||
ESP32-C6 |
支持 |
|||
ESP32-C61 |
支持 |
系统架构
esp_video 系统框架
从组织结构来看,系统分为五层:PC 端调试分析工具、应用层、应用框架层、设备层、内核层。
PC 端调试分析工具,用于预览图像、分析图像质量、在线调试图像系统的参数、标定图像处理单元的参数。
应用层主要是调用 esp_video 提供的各种 API 进行应用开发。
esp_video 是应用框架层,它不仅管理设备层的各个设备和库,还向应用程序提供高效、便捷的 API 接口。作为整个系统的中间件,它对上实现统一的接口,对下层组件也提供统一的标准以方便各种设备的兼容控制。
设备层,包括相机传感器设备、图像处理控制算法库的底层实现,并以统一的接口向上层提供调用接口。
内核层,是 ESP-IDF 提供的操作系统以及设备驱动代码。
开发板概述
以下开发板具备相机接口,可用于测试。你也可以参考这些开发板的相机接口进行硬件设计。
构建首个项目
安装 ESP-IDF
请参考《ESP-IDF 编程指南》的 快速入门 章节配置电脑。如果你是首次使用 ESP-IDF,建议先通过 hello_world 示例熟悉基本的开发流程。
运行示例
esp-video-components 仓库包含了常用的 测试示例。通过运行 git clone --recursive https://github.com/espressif/esp-video-components.git 命令获取该仓库的源码,然后参考 capture_stream 示例中的 README 文件来编译并运行该示例。
备注
如果无法从 GitHub 获取最新的组件,可通过 jihulab 镜像获取。
添加组件到自定义项目
在项目目录的根文件夹下执行 idf.py add-dependency esp_video 命令可以添加 esp_video 组件。需要改变组件的源码时,可以参考 capture_stream 示例的 main/idf_component.yml 文件,通过 override_path 指令指定本地组件的路径。
更多关于组件管理与使用的方法,请参考 组件管理和使用。