DVP 摄像头方案介绍

[English]

常见应用场景

  1. 已有的视频 demo

  • ESP32-S3 狂飙刷毫秒【高帧率 125 fps】:ESP32-S3 加全局快门摄像头,高帧率达 125 FPS。可采集运动物体运动轨迹,如写字笔等场景的高帧率图像采集。再配合 ESP32-S3 的网络功能,物联网智能摄像头解决首选。

  • ESP32-S3 看萌猫吃播【高分辨率】:ESP32-S3-EYE 人工智能开发板,加一块 200 W 像素的摄像头。高分辨率实时观看猫主子吃播,宠物监测首选

  1. 二维码扫描的功能

  • 商品条码扫描、火车票扫描、地税发票扫描、资源扫描下载等

  • 自动聚焦 + 互联网

  1. Wi-Fi、LCD “拍立得”

  • 拍摄的照片立即刷新到网页上、刷新到 LCD 上显示

  1. 扫描仪、智能车辅助导航

  2. 人脸识别

  • 通过人脸进行身份确认或者身份查找的技术或系统

  1. 视频监控、光感氛围灯

  2. AI 应用

  • 手势识别

  • 数字识别

  • 食物识别

  • 坐姿检测

参考资料

性能测试数据附录

Camera 相关的方案主要关注下述性能指标:

  1. sensor 初始化时间(尤其是需要启动后立即抓拍的项目)

  2. 支持的分辨率与数据格式

  3. 在指定分辨率、数据格式下的帧率

  4. 和 Wi-Fi 一起使用时的传输速率

  5. 支持的图像处理功能(目前主要是通过软件执行 JPEG 编解码功能)

相关测试代码可参考 测试示例

sensor 初始化时间

Sensor init time

Sensor

Init time (ms)

OV3660, JPEG

604

OV3660, RGB565

1301

OV2640, JPEG

200

OV5640, JPEG

240

备注

进行上述测试时需要注意:

  • 测试结束时需要抓拍一张图片来验证正确性

  • 可以参考 更多优化方法 来尽可能的优化系统配置。

支持的分辨率与数据格式

支持的分辨率大小完全取决于摄像头的最大性能,但 DVP 本身以及 CPU DMA 的能力有限,过大的分辨率将对数据传输造成压力:

  • 如 DVP 摄像头 sensor 能输出 JPEG 类型的图片,对应的分辨率建议最大不超过 500 w 像素

  • 如 DVP 摄像头 sensor 不能输出 JPEG 类型的图片(此时图片的类型为 YUV422/RGB565 等),对应的分辨率建议最大不超过 100 w 像素

数据格式主要取决于摄像头支持输出的数据格式。主要有:

  1. RGB

  2. YUV

  3. JPEG

  4. RAW Data

  5. BMP

  6. Only Y/Grayscale

当摄像头本身不支持输出 JPEG 数据时,可以由 ESP32 执行 JPEG 压缩,输出 JPEG 数据。

备注

特别地,当需要的分辨率过大,超过 1024*720 时,尽量考虑使用支持 JPEG 编码的摄像头。同时需要阐明由 ESP32 执行 JPEG 编解码将对 CPU 和内存造成压力。

在指定分辨率、数据格式下的帧率

Sensor init time

输出格式

芯片型号

sensor 型号

分辨率

帧率

YUV422RGB565

ESP32-S3

SC030IOT

640*480

30 fps

JPEG

ESP32S3

OV5640

1600*1200

25 fps

Only Y/MONO

ESP32-S3/ESP32-S2

SC031GS

240*240

125 fps

不同摄像头的速率差别较大。当测试 JPEG 速率时,应指定 JPEG 压缩的参数,并尽可能拍摄色彩鲜艳的图片,拍摄单色物体会包含更多低频信息,导致 JPEG 压缩后的数据量小,生成的数据不具备代表性。

同一摄像头在指定的数据格式、分辨率、主时钟 XCLK 的大小、空闲间隔时间参数设置不同时帧率差别较大。同时为了保证帧率,初始化摄像头时 fb_count 应不小于 2。目前大部分摄像头对接的驱动参数并不是最优的,不同摄像头的配置方法也不统一,因此上述性能数据完全有更大的优化调整空间。ESP32-S3 拥有独立的 CAM DVP 接口,外设接口速率更高,是 ESP32 的 2~3 倍。

和 Wi-Fi 一起使用时的传输速率

通常,当用户需要的数据格式、分辨率、帧率等参数确定后,依据 Wi-Fi 的测试数据即可初步估计该方案是否可行。

JPEG@480* 320@20fps 为例子,通常该JPEG@480* 320 的一张图片在 30 KB ~ 50 KB,帧率要求 20 fps,则 Wi-Fi 需要的速率应该在 600 KB/s ~ 1000 KB/s。通过查看 ESP32-S3 的 Wi-Fi 吞吐量,可以发现 ESP32-S3 是符合需求的。

当前实测 ESP32-S3 上运行 esp-rtsp 示例,720p + MJPEG 视频流帧率可达 20 fps 左右。

ESP32-S3 的编解码性能

ESP32-S3 没有硬件编解码能力,其驱动代码包含了 TinyJPEG 的软件编码组件。

ESP32-S3 的编解码性能