DVP 摄像头方案介绍
常见应用场景
已有的视频 demo
ESP32-S3 狂飙刷毫秒【高帧率 125 fps】:ESP32-S3 加全局快门摄像头,高帧率达 125 FPS。可采集运动物体运动轨迹,如写字笔等场景的高帧率图像采集。再配合 ESP32-S3 的网络功能,物联网智能摄像头解决首选。
ESP32-S3 看萌猫吃播【高分辨率】:ESP32-S3-EYE 人工智能开发板,加一块 200 W 像素的摄像头。高分辨率实时观看猫主子吃播,宠物监测首选
商品条码扫描、火车票扫描、地税发票扫描、资源扫描下载等
自动聚焦 + 互联网
拍摄的照片立即刷新到网页上、刷新到 LCD 上显示
扫描仪、智能车辅助导航
人脸识别
通过人脸进行身份确认或者身份查找的技术或系统
视频监控、光感氛围灯
AI 应用
手势识别
数字识别
食物识别
坐姿检测
参考资料
软件参考
摄像头驱动库 esp32-camera, esp32-camera 是乐鑫的一个 camera 驱动库,提供了针对 ESP32/ESP32-S2/ESP32-S3 的 camera 外设驱动,包括底层 8 bit DVP 接口驱动、传感器驱动、图像编解码三部分
相关模组/开发板购买
模组/开发板资料及选型参考
性能测试数据附录
Camera 相关的方案主要关注下述性能指标:
sensor 初始化时间(尤其是需要启动后立即抓拍的项目)
支持的分辨率与数据格式
在指定分辨率、数据格式下的帧率
和 Wi-Fi 一起使用时的传输速率
支持的图像处理功能(目前主要是通过软件执行 JPEG 编解码功能)
相关测试代码可参考 测试示例。
sensor 初始化时间
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 像素
数据格式主要取决于摄像头支持输出的数据格式。主要有:
RGB
YUV
JPEG
RAW Data
BMP
Only Y/Grayscale
当摄像头本身不支持输出 JPEG 数据时,可以由 ESP32 执行 JPEG 压缩,输出 JPEG 数据。
备注
特别地,当需要的分辨率过大,超过 1024*720 时,尽量考虑使用支持 JPEG 编码的摄像头。同时需要阐明由 ESP32 执行 JPEG 编解码将对 CPU 和内存造成压力。
在指定分辨率、数据格式下的帧率
输出格式 |
芯片型号 |
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 的软件编码组件。