esp-video: 相机应用开发框架

概述

近年来,物联网与 AI 技术发展迅速,物联网设备的感知与融合能力持续提升,机器视觉技术在社交、娱乐、教育和医疗等领域也取得了显著进展。

esp-video 作为一款全新的 Camera 相机应用框架,致力于为开发者提供更好、更高效、更具性价比的视觉应用开发体验。

设计目标

esp-video 的设计目标是:简单易用、性能优先、效果统一、扩展灵活。

在这里插入图片描述

  • 简单易用:相机框架的应用接口按照 V4L2 (Video for Linux two) 标准实现,用户像操作普通文件一样,使用 open() 函数即可快速打开设备。
  • 性能优先:通过对内部软硬件协同的设计,优化图像处理算法 (IPA),提升拍照启动、预览和拍照过程中的性能体验。
  • 效果统一:该框架支持的芯片包括 ESP32-S3、ESP32-P 系列和 ESP32-C 系列的芯片。此外,该框架通过对底层接口实现统一的抽象层代码,实现了控制方法的统一。比如不同型号的相机传感器,以及相机系统中的 ISP、codec、VCM 等设备,开发者都可以通过 ioctl()控制这些设备的属性。如下图所示,常见的四种相机接口:MIPI-CSI、DVP、SPI、USB,均可以通过 open() 函数打开设备,并通过 ioctl() 函数控制其工作属性。

在这里插入图片描述

  • 扩展灵活:相机框架不仅允许用户对已经支持的相机增加新的配置,也允许用户添加新的相机外设驱动并且扩展新的控制命令。

框架简介

esp-video 框架采用分层设计:

在这里插入图片描述

  • 驱动层:提供 MIPI-CSI、DVP、SPI、I2C、I3C、ISP、JPEG、H.264 等外设的底层驱动。
  • 设备层:对相机系统使用的各种设备适配抽象接口,确保开发者接入系统时花费最低的成本,同时保证系统的兼容性。
  • 中间件管理层:当需要对相机系统发送命令时,该层接口查找对应的设备,对该设备发送控制命令,并将处理结果回传给应用。
  • 应用层:向用户提供统一的 API 来简化编程。

如何使用

  • 查看支持的 Video 设备
  • 在代码中通过 open() 接口打开设备。
  • 然后通过 ioctl(fd, VIDIOC_DQBUF, ...) 获取图像数据。
  • 使用图像数据后,通过调用 ioctl(fd, VIDIOC_QBUF, ...) 将存储图像的内存返回到内存池。

在这里插入图片描述

一个简单的从图像传感器获取数据的示例可以参考 capture_stream. 更多示例请参考 esp-video/examples

esp_cam_sensor 组件中查询支持的相机传感器列表。

应用示例:

  • ESP32 系列的芯片拥有丰富的网络连接功能,包括 Wi-Fi、BLE、Zigbee、Ethernet
    等,通过设备的网络传输能力,用户可以将采集的图像、视频发送到千里之外。
  • 分段式拍照:可以与 ESP32 系列芯片的 Mesh 网络功能相结合,通过分段式拍照,实现低功耗设备执行探测,高功耗设备执行视频采集的功能。
  • AI 应用:ESP32-S 和 ESP32-P 系列的芯片具备端侧 AI 能力,通过使用 esp-dlesp-who
    等方案,用户可以实现人脸识别、锚脸识别、运动探测、颜色识别、条码识别等功能;也可以为云端 AI 提供边缘检测、人形检测等预处理功能。目前,ESP32 系列的芯片已经实现的应用包括远程宠物投喂器、远程抄表、远程作业批改、医疗检测、人形检测应用等。

在这里插入图片描述

  • 多摄像头协同工作:

典型的拥有多摄像头的产品是手机,以 iPhone 11 Pro 系列为例,其搭载主摄 + 长焦 + 短焦(超广角)共三个摄像头,每个摄像头各有所长。

在物联网产中,使用多个摄像头的常见场景是:

1)近焦相机 + 远焦相机,前者负责拍摄近距离的物体,后者负责拍摄远距离的物体。

2)彩色相机 + 黑白相机,彩色相机负责采集彩色图像,黑白相机负责采集黑白图像。通常,黑白相机在夜视方面拥有更高的灵敏度。

3)扩展视场角、实现类似环视拍摄的效果。如下图所示的远程会议相机,通过两个允许控制方向的相机模组,分别拍摄会议桌两侧的参会人员。

在这里插入图片描述

esp-video 支持同时连接多个相机传感器,你可以在 simple_video_server 示例中测试该功能。下图为同时在 P4-EV-Board 开发板上同时应用多个摄像头模组的演示:
在这里插入图片描述

Multiple Cameras on P4-EV-Board

esp-video 与 esp32-camera

支持的 SOC高帧率实时性支持 ISP支持高速视频编码
esp-videoESP32-S3、ESP32-P 系列、ESP32-C 系列
esp32-cameraESP32、ESP32-S2、ESP32-S3一般

结语

如果你正在寻找能够快速搭建相机应用的解决方案,esp-video 值得深入了解。其简洁友好的开发接口,以及活跃的开源社区支持,将为你的项目提供坚实的技术保障与更多扩展可能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值