首页 > 编程语言 >ESP32 实时人脸检测系统:ESP32 与上位机通信(microPython框架)

ESP32 实时人脸检测系统:ESP32 与上位机通信(microPython框架)

时间:2024-05-31 21:57:31浏览次数:16  
标签:microPython socket ESP32 cv2 上位 人脸 图像

实时人脸检测系统:ESP32 与上位机通信

在这篇博客中,我将介绍如何使用 ESP32 摄像头捕获图像,并通过 UDP 协议将图像传输到上位机进行实时人脸检测。我们将使用 Python 编程语言和 OpenCV 库来实现上位机端的人脸检测功能。

硬件与软件准备

  1. ESP32 开发板:我们使用 ESP32 开发板和摄像头模块来捕获图像。
  2. 上位机:需要一台装有 Python 和 OpenCV 库的计算机作为上位机。
  3. WiFi 网络:确保 ESP32 和上位机连接到同一 WiFi 网络,以便它们之间能够进行通信。

ESP32 代码解析

在 ESP32 的代码中,我们首先初始化摄像头,并设置一些参数,如分辨率、特效、白平衡等。然后,我们创建一个 UDP socket,并持续地捕获图像并通过 UDP 发送到指定的 IP 地址和端口。下面是代码的关键部分:

# 连接wifi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    print('连接到网络...')
    wlan.connect('wifi账号', 'wifi密码')
    
    while not wlan.isconnected():
        pass
print('网络配置:', wlan.ifconfig())

# 摄像头初始化
try:
    camera.init(0, format=camera.JPEG)
except Exception as e:
    camera.deinit()
    camera.init(0, format=camera.JPEG)

# 创建 UDP socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)

# 捕获图像并发送到指定地址
while True:
    buf = camera.capture()
    s.sendto(buf, ("192.168.3.5", 9090))
    time.sleep(0.1)

上位机代码解析

在上位机的代码中,我们创建一个 UDP socket,并监听指定端口。当收到来自 ESP32 的图像数据时,我们将其转换为 OpenCV 图像格式,并使用 Haar 特征级联分类器检测图像中的人脸。最后,我们在图像中绘制矩形框来标记检测到的人脸。下面是代码的关键部分:

# 加载用于人脸检测的预训练 Haar 特征级联分类器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# 创建 UDP socket 并绑定端口
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
s.bind(("0.0.0.0", 9090))

# 接收并处理来自 ESP32 的图像数据
while True:
    data, IP = s.recvfrom(100000)
    bytes_stream = io.BytesIO(data)
    image = Image.open(bytes_stream)
    img = np.asarray(image)
    img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

    # 在图像中检测人脸
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

    # 绘制矩形框标记人脸
    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)

    cv2.imshow("ESP32 捕获的图像", img)
    if cv2.waitKey(1) == ord("q"):
        break

s.close()
cv2.destroyAllWindows()

结论

一个简单的实时人脸检测系统,利用 ESP32 捕获图像并通过 WiFi 发送到上位机,然后在上位机中使用 OpenCV 对图像进行处理并实时显示人脸检测结果。项目地址 实时人脸检测系统:ESP32 与上位机通信

标签:microPython,socket,ESP32,cv2,上位,人脸,图像
From: https://blog.csdn.net/m0_60134435/article/details/139280375

相关文章

  • 使用 Unity Sentis 和 Compute Shader,det_10g.onnx 进行高效人脸五官定位
    前言在计算机视觉领域,人脸五官定位是一个重要的任务。本文将介绍如何使用UnitySentis和ComputeShader,结合det_10g.onnx模型,实现高效的人脸五官定位。我们将详细讲解每一步骤,并提供完整的代码示例。模型分析输入值:模型的输入是我这边选择的是1x3x640x640;输出值:步......
  • 使用 Unity Sentis 和 Compute Shader,2d106det.onnx 进行高效人脸网格标记
    前言前篇:使用UnitySentis和ComputeShader,det_10g.onnx进行高效人脸五官定位-CSDN博客在计算机视觉领域,人脸网格标记是一项重要的任务,用于识别人脸关键点和特征。本文将介绍如何使用UnitySentis和ComputeShader,结合2d106det.onnx模型,实现高效的人脸网格标记。我......
  • 基于深度神经网络的人脸识别相关问题
    基于深度神经网络的人脸识别相关问题1、DNN与CNN的关系CNN可以看作是一种特殊的DNN,它们之间的关系是包含和被包含的关系。CNN的核心是卷积层,该层可以有效地识别图像中的局部模式,并使用池化层来减少特征映射的维度。此外,CNN还包括其他类型的层,例如全连接层和激活函数层,用于将卷......
  • 视频汇聚EasyCVR平台对接GA/T 1400视图库:结构化数据(人员/人脸、车辆、物品)对象XMLSche
    在信息化浪潮席卷全球的背景下,公安信息化建设日益成为提升社会治理能力和维护社会稳定的关键手段。其中,GA/T1400标准作为公安视频图像信息应用系统的核心规范,以其结构化数据处理与应用能力,为公安信息化建设注入了强大的动力。GA/T1400标准全称为《公安视频图像信息应用系统》......
  • 视频汇聚平台EasyCVR对接GA/T 1400视图库结构化数据:人员/人脸、非/机动车、物品
    在信息化浪潮席卷全球的背景下,公安信息化建设日益成为提升社会治理能力和维护社会稳定的关键手段。其中,GA/T1400标准作为公安视频图像信息应用系统的核心规范,以其结构化数据处理与应用能力,为公安信息化建设注入了强大的动力。GA/T1400标准全称为《公安视频图像信息应用系......
  • OpenCv之简单的人脸识别项目(人脸识别页面以及人脸比对页面)
    人脸识别准备三、人脸识别页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件3.定义两个全局变量4.定义选择并显示图片的函数4.1声明全局变量4.2设置文件选择对话框4.3设置条件语句4.4创建一个标签显示图像5.定义......
  • 一个python文件做图像 灰度化 反转 通道分离 噪声、滤波 高斯双边滤波 均值偏移滤波
    代码测试可以正常运行。灰度化反转通道分离噪声、滤波高斯双边滤波均值偏移滤波图像二值化Canny边缘检测直线检测圆检测轮廓发现人脸检测测试可以运行代码如下:'''file:ImageMiniLab.pydate:2019/04/1920:00author:itisyan......
  • esp32-s3-mini-1 otg board, uvc调试记录
    网上购买了一块ESP32-S3-USB-OTG开发板(非乐鑫官方开发板)。准备实现usbuvccamera+lcd显示。使用esp-idf/example/usb/host/uvc进行测试,修改了引脚,对USB供电和数据切换的引脚重新校正,出现报错:0x40056fc9:memcpyinROM0x4200b219:_uvc_process_payloadatC:/Users/yinsu......
  • 人脸识别——Webface-OCC遮挡人脸识别算法解析
    1.概述自2019年被誉为人脸识别技术的元年,各地纷纷引入这项技术。然而,自2020年起,为了抵御冠状病毒(COVID-19)的全球传播,人们普遍开始佩戴口罩。众所周知,现有人脸识别模型在面对遮挡物(如口罩)时,其识别精度会显著下降。这一现象的主要原因在于,现有数据集往往没有充分考虑遮挡因......
  • IdentiFace——多模态人脸识别系统,可捕捉从情绪到性别的所有信息及其潜力
    1.概述面部识别系统的开发极大地推动了计算机视觉领域的发展。如今,人们正在积极开发多模态系统,将多种生物识别特征高效、有效地结合起来。本文介绍了一种名为IdentiFace的多模态人脸识别系统。该系统利用基于VGG-16架构的模型,将人脸识别与性别、脸型和情绪等重要生物......