站内搜索
发作品签到
ESP-VISION:开启低代码端侧 AI 视觉开发新体验
专业版

ESP-VISION:开启低代码端侧 AI 视觉开发新体验

简介

ESP-VISION 是乐鑫推出的低代码端侧 AI 视觉开源硬件:包含 ESP32-P4X / ESP32-S31 双板,可替换摄像头;十几行 Python 跑通采集→推理→显示。

简介:ESP-VISION 是乐鑫推出的低代码端侧 AI 视觉开源硬件:包含 ESP32-P4X / ESP32-S31 双板,可替换摄像头;十几行 Python 跑通采集→推理→显示。

开源协议

GPL 3.0

创建时间:2026-06-24 14:20:42更新时间:2026-06-30 17:40:42

描述

ESP-VISION:开启低代码端侧 AI 视觉开发新体验

ESP-VISION

项目简介

让端侧视觉,简单得只剩下想法。

ESP-VISION 开源视觉硬件是乐鑫面向 端侧 AI 视觉 的专用开发板,包含 ESP32-P4XESP32-S31 (待发布)两款主控版本,并支持替换不同型号的摄像头,让机器视觉开发回归到 几行 Python 跑通一个想法

它以 低代码 为核心:摄像头采集、图像处理、视频编解码与模型推理都被封装进统一的 MicroPython API(sensor / image / display / espdl),延续 OpenMV 风格的脚本化体验 —— 十几行代码,就是一个完整的视觉应用,采集、推理、显示、推流,一气呵成。

借助板载 ESP-DL 推理框架,人脸检测、目标检测、姿态估计等 AI 模型 在设备端实时运行,自己训练的 .espdl / .tflite 模型也能直接部署上板 —— 无需服务器,无需联网。配合浏览器一键烧录与 Web IDE,从拿到板子到看见检测框,只需几分钟;开发过程中还能通过 ESP-VISION 提供的 MCP 服务(https://mcp.vision.espressif.com)接入 Claude、Cursor 等 AI 编程工具,让 AI 读懂 ESP-VISION 帮你写脚本

版本更新记录

V1.0 · 2026-06-26

  • 发布 ESP32-P4X-VISION 板。

关于固件

烧进去的不只是固件,而是一整套 Python 视觉开发环境。

板卡运行 ESP-VISION 固件(MicroPython + ESP-DL/TFLiteMicro),提供统一的 Python 视觉 API:

  • sensor —— 摄像头采集(复位、像素格式、分辨率、抓帧)
  • image —— 图像处理(绘制、滤波、颜色追踪、帧差、边缘检测、模板匹配)
  • display —— 屏幕/输出
  • espdl / tflite —— 端侧模型推理(ESPDetYOLO11YOLO11nPosetflite.Model

模型扩展:可基于 PyTorch / TensorFlow 模型经 ESP-DL 工具链量化为 .espdl / .tflite,放入板级存储后在脚本中加载运行;框架已封装预处理、推理与后处理。

在线烧录:固件无需本地工具链,直接在 ESP-VISION 官网 用桌面版 Chrome / Edge 连板一键烧录,并跳转 Web IDE 编程。

核心亮点

一块为视觉而生的板子,把复杂留给芯片,把简单交给你。

  • 两款互补板卡,统一开发体验 —— ESP32-P4X(视觉旗舰)与 ESP32-S31(轻量端侧),同一套 ESP-VISION API,按负载选板。
  • 板载摄像头,开箱即取景 —— 上电即可采集图像,配合 Web IDE 实时预览。
  • 低代码 Python 开发 —— OpenMV 风格脚本化体验,sensor / image / display / espdl 统一 API。
  • 端侧 AI 推理 —— 支持 ESPDet Pico(猫/狗/人脸/手部)、YOLO11n、YOLO11n-Pose 等内置模型,也可部署自定义 .espdl / .tflite 模型。
  • 浏览器一键烧录 + Web IDE —— 无需本地环境,Chrome/Edge 连板即可烧录固件并跳转在线编程。
  • 完全开源 —— 原理图、PCB、BOM、结构件与示例脚本全部开放。

板卡阵容

维度ESP32-P4X-VISIONESP32-S31-VISION
定位视觉旗舰 / 视频流 + 高负载 AI轻量端侧感知 / 图像处理 + 轻量推理
图像加速ISP + PPAPPA
视频编解码硬件 H.264 + 硬件 JPEG硬件 JPEG
视频流(RTSP / H.264)
端侧 AI 推理✅ ESP-DL / TFLite✅ ESP-DL / TFLite
适用场景实时视频处理、目标检测、姿态估计、推流图像采集、颜色/标记识别、轻量检测、交互

两款板共用同一套 ESP-VISION 固件 API;ESP32-P4X 额外提供视频流与更高图像处理负载能力。


功能展示

接上摄像头,它就开始读懂眼前的世界。

人脸、颜色、二维码、AprilTag、目标、姿态 —— 这些经典视觉能力,在 ESP-VISION 上都只是几行 Python 的距离,且全部在板上 实时运行。下面每一项,都可以亲手跑一遍。

> 以下演示 demo 均基于 ESP32-P4X-EYE 硬件实现,后续将在 ESP32-P4X-VISION 上添加 LCD 子板。

目标检测

端侧实时检测并跟踪画面中的人脸,可用于取景居中、交互唤醒、签到门禁。

import espdl
import sensor
import time

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=1000)

det = espdl.ESPDet(
    "/sdcard/hand_det.espdl",
    score=0.5,
    nms=0.7,
)

while True:
    img = sensor.snapshot()
    for x, y, w, h, score, category in det.detect(img):
        img.draw_rectangle(
            x,
            y,
            w,
            h,
            color=(255, 0, 0),
            thickness=2,
        )
        img.draw_string(
            x,
            max(0, y - 12),
            "%.2f:%d" % (score, category),
        )
    img.flush()
    time.sleep_ms(20)
手部追踪

颜色追踪

基于 LAB 颜色空间实时筛选并跟踪指定颜色的目标,适合颜色分拣与目标跟随。

import sensor
import time

THRESHOLDS = [(30, 100, 15, 127, 15, 127)]

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=1000)

while True:
    img = sensor.snapshot()
    blobs = img.find_blobs(
        THRESHOLDS,
        pixels_threshold=80,
        area_threshold=80,
        merge=True,
    )
    for blob in blobs:
        img.draw_rectangle(
            blob.rect(),
            color=(255, 0, 0),
            thickness=2,
        )
    img.flush()
    time.sleep_ms(20)
颜色追踪

二维码识别

检测并解码画面中的二维码,可用于设备配网、资产识别、物流追踪与门禁。

import sensor
import time

sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=1000)

while True:
    img = sensor.snapshot()
    for code in img.find_qrcodes():
        img.draw_rectangle(code.rect(), color=255, thickness=2)
        print(code.payload())
    img.flush()
    time.sleep_ms(20)
二维码识别

AprilTag 检测

识别并解码 AprilTag 标记,可用于机器人导航、空间定位与增强现实。

import image
import sensor
import time

sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(time=1000)

while True:
    img = sensor.snapshot()
    for tag in img.find_apriltags(
        families=image.TAG36H11,
    ):
        img.draw_rectangle(
            tag.rect,
            color=255,
            thickness=2,
        )
        img.draw_string(
            tag.x,
            max(0, tag.y - 10),
            "%s:%d" % (tag.name, tag.id),
            color=255,
        )
    img.flush()
    time.sleep_ms(20)
AprilTAG追踪

复刻教程

ESP32-P4X-VISION 由 主板SC101IOT 摄像头子板 两部分组成,复刻时建议分别下单打样和贴片;由于摄像头链路需要主板与子板插接后才能完整工作,功能验证应在整机装配完成后进行。

1. 主板打样与贴片

主板按开源工程中的 Gerber、BOM 和坐标文件下单 PCB 与 SMT。主板器件较多,包含 ESP32-P4、Flash、USB-C、TF 卡座、DCDC、电源保护、WS2812、按键和 40Pin 板对板连接器。

贴片完成后先进行外观与短路检查,确认无明显焊接问题后再装配摄像头子板:

  • 检查 USB-C、TF 卡座、40Pin 板对板连接器是否存在连锡、偏位或虚焊。
  • 使用万用表确认 USB_5VVINESP_3V3CAM_2V8 与 GND 之间无短路。
  • 检查 BOOT、RST 按键和黄铜螺母安装位置,避免后续装配时与摄像头子板干涉。

2. SC101IOT 摄像头子板打样与贴片

摄像头子板同样按对应工程文件单独打样,主要包含 24Pin 摄像头 FPC 座、40Pin 板对板连接器、摄像头电源去耦电容和补光 LED。该子板用于把 SC101IOT 摄像头模组的 DVP、I2C、时钟、复位、掉电和补光信号转接到主板。

贴片时需要特别注意 24Pin FPC 座与 40Pin 板对板连接器方向,连接器反贴或偏位会导致摄像头无法插接或信号错位。焊接完成后,先检查 CAM_2V8ESP_3V3 与 GND 是否短路,再进行装配。

3. 摄像头模组安装

打开子板上的 24Pin FPC 座锁扣,将 SC101IOT 摄像头模组排线平直插入 FPC 座,确认金手指方向与座子方向一致后压下锁扣固定。插接完成后轻拉排线,确认排线没有松脱。

摄像头模组安装完成后,将摄像头本体贴在子板正面预留位置。可使用薄双面胶、泡棉胶或 3M 胶固定,粘贴前建议先确认摄像头视场方向与外壳开孔方向一致。粘贴时不要遮挡镜头、补光 LED 或 FPC 排线活动区域。

4. 主板与摄像头子板装配

将已安装摄像头模组的 SC101IOT 摄像头子板 40Pin 板对板连接器对准主板上的 Camera Socket,垂直向下压合,确保连接器完全插入且子板与主板平行。不要斜插或左右晃动连接器,以免损坏 0.4mm 间距触点。

连接器插接到位后,使用 2 颗 M2 × 3mm 螺丝 将摄像头子板固定到主板预装的黄铜螺母上。螺丝只需拧紧到子板不松动即可,避免过度用力造成 PCB 变形或连接器受力。

5. 固件烧录与功能验证

装配完成后,通过 USB Serial/JTAG 口烧录 ESP-VISION 固件,或使用 ESP-VISION 官网的浏览器一键烧录功能完成固件下载。首次上电建议观察串口日志,确认主控启动、摄像头初始化和图像采集无异常。

验证顺序建议为:

  • 确认 ESP_3V3CAM_2V8 电压稳定。
  • 运行摄像头采集示例,检查是否可以正常取图。
  • 测试 WS2812 状态灯与 FLASH_LED 补光控制。
  • 插入 TF 卡后,验证模型、图片或日志文件读写是否正常。

硬件电路设计说明

ESP32-P4X-VISION

ESP32-P4X-VISION 以 ESP32-P4 为主控,围绕端侧视觉应用集成了摄像头接口、USB 高速通信、TF 卡、本地补光和状态指示等电路。

整体硬件框图如下:

ESP32-P4X-VISION 硬件设计框图

硬件连接关系可概括为:

USB-C 供电/通信
        │
        ├─ 5V 输入(防反灌)
        │        ├─ 3.3V 系统电源:ESP32-P4、Flash、TF 卡、WS2812
        │        └─ 2.8V 摄像头电源:摄像头模组模拟/IO 供电
        │
ESP32-P4 ├─ USB High Speed:连接 USB-C,用于高速数据传输
        ├─ USB Serial/JTAG:连接 USB-C,用于下载、调试与串口日志
        ├─ Camera Socket:支持 DVP 8-bit 与 MIPI-CSI 摄像头信号
        ├─ SPI Flash:程序与资源存储
        ├─ TF Card:外部数据 / 模型 / 图片资源存储
        ├─ Flash LED:摄像头补光
        ├─ WS2812 RGB LED:状态指示
        └─ Expansion GPIO:二次开发引脚

供电方案:板上提供两个 USB-C 接口,其中一路用于 ESP32-P4 的 USB High Speed,另一路用于 USB Serial/JTAG 下载调试,两路 USB 5V 通过二极管汇入 USB_5V,再生成系统输入电源 VIN,避免不同 USB 口之间反灌。主电源使用 TLV62569DBVR 降压生成 ESP_3V3,供主控、Flash、TF 卡和板载外设使用;摄像头电源由 ME6211C28M5G-N LDO 从 3.3V 生成 CAM_2V8。ESP32-P4 内部核心、PSRAM/Flash IO 等电压域按照芯片推荐电路由片上 LDO / DCDC 及外围电感、电容完成去耦和供电。

ESP32-P4X-VISION USB 输入与电源防反灌电路 ESP32-P4X-VISION 5V 转 3.3V DCDC 电路

主控与存储:ESP32-P4 外接 40MHz 晶振,ESP_ENGPIO0 配合按键完成复位和下载模式选择。外部 SPI Flash 接到 FLASH_CSFLASH_CKFLASH_DFLASH_QFLASH_WPFLASH_HD,用于固件和资源存储。TF 卡座使用 4-bit SDIO 信号 SD1_D0SD1_D1SD1_D2SD1_D3SD1_CMDSD1_CLK,并提供 SD_DET 卡检测信号,适合存放模型、图片、日志或用户数据。

摄像头接口设计:使用 40Pin 板对板连接器作为主板于摄像头子板的连接器,其同时引出 DVP 与 MIPI-CSI 信号,便于适配不同摄像头模组。DVP 侧包含 DVP_D0 ~ DVP_D7DVP_PCLKDVP_VSYNCDVP_HREFCAM_XCLKCAM_RESETCAM_PWDN;配置通道为 CAM_I2C_SDA / CAM_I2C_SCL,并通过 2.2k 上拉到 ESP_3V3。MIPI-CSI 侧引出 2-lane 差分信号 CSI_DATA0P/NCSI_DATA1P/NCSI_CLKP/N。摄像头座同时提供 ESP_3V3CAM_2V8 与多组 GND,原理图中还预留 DVP_IR_CUTDVP_GM_FKFLASH_LED 等相机模组扩展信号。

ESP32-P4X-VISION 摄像头座原理图

板载外设与调试:闪光灯由 FLASH_LED_CTRL 控制,硬件测试工程对应 GPIO12,高电平点亮;WS2812 RGB LED 由 RGB_CTRL 控制,硬件测试工程对应 GPIO9。USB Serial/JTAG 口连接 U0TXDU0RXD 及 USB Serial/JTAG 差分信号,便于固件下载和日志输出;USB High Speed 口连接 ESP32-P4 原生 USB PHY,用于高速图像数据输出,例如将开发板枚举为 USB 摄像头。

二次开发引脚:原理图提供 Expansion GPIO 扩展区域,引出了多路 ESP32-P4 GPIO 与电源、地信号,可用于外接按键、传感器、舵机、补光控制或其他低速外设。这些引脚不与摄像头、SD 卡等外设复用,可放心使用。

ESP32-S31-VISION

当前暂未发布 ESP32-S31 版本的 ESP-VISION 开发板,敬请期待!

摄像头子板

  • SC101IOT

SC101IOT 摄像头子板用于将 SC101IOT DVP 摄像头模组接入 ESP32-P4X-VISION 主板。子板一侧提供 24Pin 摄像头 FPC 座,另一侧通过 40Pin 板对板连接器与主板的 Camera Socket 对接,将摄像头的 DVP 并口、SCCB/I2C 配置总线、电源、复位、掉电控制和补光灯控制信号统一转接到主板。

SC101IOT 摄像头子板原理图

接口与信号:24Pin FPC 侧引出 DVP_D0 ~ DVP_D7DVP_PCLKDVP_VSYNCDVP_HREFCAM_XCLKCAM_RESETCAM_PWDNCAM_I2C_SCLCAM_I2C_SDA,对应 SC101IOT 模组的图像数据、像素时钟、帧同步、行同步、外部时钟、复位/掉电控制以及寄存器配置通道。40Pin 板对板连接器侧与主板摄像头座保持同名网络连接。

供电与补光:子板使用主板提供的 CAM_2V8 作为摄像头 AVDDDOVDD 供电。FLASH_LED 信号控制两颗补光 LED,LED 由 ESP_3V3 供电并串联 3.9Ω 限流电阻,适合在低照度场景下配合主板 GPIO 实现补光控制。


主要物料清单


设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航