安信可ESP32-CAM摄像头开发demo--局域网拍照、实时视频、人脸识别

news/2024/10/31 5:28:15/

ESP32-CAM内嵌网页局域网通信

  • 目录
    • 一、前言
    • 二、环境搭建及编译
        • 2.1 Linux环境安装
        • 2.2 代码获取
        • 2.3 编译工程
    • 三、建立局域网
        • 3.1 station 模式
        • 3.2 AP模式
    • 四、拍照,视频流,人脸识别
        • 4.1 拍照,视频流
        • 4.2 人脸检测、人脸识别

目录

一、前言

    ESP32-CAM是安信可发布小尺寸的摄像头模组。该模块可以作为最小系统独立工作,尺寸仅为2740.54.5mm。 ESP32-CAM可广泛应用于各种物联网场合,适用于家庭智能设备、工业无线控制、无线监控、人脸识别以及其它物联网应用,是物联网应用的理想解决方案。 ESP32-CAM采用DIP封装,直接插上底板即可使用,实现产品的快速生产,为客户提供高可靠性的连接方式,方便应用于各种物联网硬件终端场合

准备工作

  1. ESP_CAM模块开发板 链接
  2. 串口模块(USB-TTL)
  3. 杜邦线
  4. PC串口调试助手
  5. 硬件接线
  6. 请保证模块输入电源至少5V 2A,否则图片会有几率出现水纹。

二、环境搭建及编译

2.1 Linux环境安装

本文开发环境基于Linux,环境搭建步骤如下:

  1. 下载安装 VM 虚拟机,点我下载
    和谐码:FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6(仅学习使用)
  2. 下载镜像,这里选择ubuntu桌面版18.04.4版本,点我下载。
  3. 安装Ubuntu ,安装教程参考

我们还需要安装几个常用的软件 :

sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git

然后安装一堆依赖环境

sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev

2.2 代码获取

git clone --recurse-submodules https://github.com/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_LAN.git

网络没翻墙的情况下克隆失败,用以下命令克隆:

git clone --recurse-submodules https://github.com.cnpmjs.org/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_LAN.git

子模块拉取完后我们可以看见Ai-Thinker-Open_ESP32-CAMERA_LAN里面有个esp-idf,此版本为v4.0。

设置 IDF_PATH 路径
以我的环境为例:

export IDF_PATH=/mnt/hgfs/share/Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf

之后按下 i 表示嵌入代码: vim ~/.bashrc
任意一处添加 表示嵌入上面代码!
按下esc 再 :wq 表示写入保存: source ~/.bashrc
IDF_PATH 路径测试是否设置成功: echo $IDF_PATH
除了 ESP-IDF 本身,您还需要安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等!

cd /mnt/hgfs/share/Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf    //以我的路径为例
./install.sh

出现这个 , 表示 安装成功
在这里插入图片描述
此时,您刚刚安装的工具尚未添加至 PATH 环境变量,无法通过“命令窗口”使用这些工具。因此,必须设置一些环境变量,这可以通过 ESP-IDF 提供的另一个脚本完成。
在esp-idf目录下运行下面命令,注意下面命令2个小数点中间有一个空格!

. ./export.sh

注意:每次打开终端进入sdk都要执行一次此命令
成功后,便这样提示:
在这里插入图片描述

2.3 编译工程

  1. 进入示例工程 esp_cam\examples\single_chip\camera_web_server
cd esp_cam\examples\single_chip\camera_web_server
  1. 设置menuconfig
make menuconfig

进入Serial flasher config设置如下
在这里插入图片描述

进入Camera Web Server —>Camera Pins —> Select Camera Pinout —> 选择ESP32-CAM by AI-Thinker

在这里插入图片描述
设置WIFI模式(station/ AP模式二选一即可)

  1. station模式
    进入camera_web> Camera Web Server > WiFi Settings,设置WIFI名字和密码
    在这里插入图片描述
    或者使用Smartconfig 配网 ,进入board config > smart config ,输入Y使能

在这里插入图片描述
2. AP模式
进入Camera Web Server > WiFi Settings,输入AP SSID、AP password、AP Channel、AP IP Address等
在这里插入图片描述
如果需要人脸识别功能,进入 Camera Web Server,选择ESP-WHO Face Detection,输入Y ,进入Detection Model,选择MTMN
在这里插入图片描述
如果需要LED灯补光,进入 Camera Web Server > LED Illuminator,选择LED Illuminator Enabled 输入Y使能
在这里插入图片描述

保存退出,编译下载

make    //编译
make flash  //下载
make monitor  //串口打印

三、建立局域网

station模式和AP模式建立局域网的步骤有所不同,根据自己配置的WIFI模式选择

3.1 station 模式

  1. 如果没有使能smartconfig,并且写入了WiFi的名字和密码,那么上电之后能自动连接WiFi
  2. 如果使能了smartconfig,则可以使用EspTouch进行smartconfig配网 ,EspTouch配网APP点我下载
    在这里插入图片描述
  3. 配好网后,可以在串口打印中看到模组分配到的IP地址,如上图,电脑或手机连接到同一个WiFi,在浏览器中输入模组的IP地址

3.2 AP模式

电脑或手机连接模组的热点,在浏览器中输设置好的IP地址即可
在这里插入图片描述

四、拍照,视频流,人脸识别

4.1 拍照,视频流

电脑与模组建立局域网后,点击Get Still拍照,点击Start Stream拍视频,效果如下图:
在这里插入图片描述
点击右上角save可保存当前照片,点击Resolution设置分辨率,LED Intensity设置LED灯亮度

4.2 人脸检测、人脸识别

人脸检测和人脸识别会占用大量内存,不能使用大分辨率,需把分辨率设置为320x240
在这里插入图片描述
在这里插入图片描述

打开Face Detection即可实现人脸检测,打开Face Recognition实现人脸识别,点击Enroll Face采集人脸,采集成功显示如下图
在这里插入图片描述
当识别出采集过的人脸时,显示如下图
在这里插入图片描述


http://www.ppmy.cn/news/359589.html

相关文章

WebTransport 开播的应用实践之路

动手点关注 干货不迷路 Web开播的业务挑战 无论是本地软件推流还是Web推流,都需要解决推流抖动、画面高糊、音频卡顿等问题。在现有的Web技术环境下,如何稳定地把高质量的音视频流呈现给更多用户,是我们技术团队攻克的重点。从技术角度来解读…

d2l_第四章学习_Classification/Softmax Regression

x.1 Classification 分类问题理论 x.1.1 Classification和Regression的区别 注意,广义上来讲,Classification/Softmax Regression 和 Linear Regression 都属于线性模型。但人们口语上更习惯用Classification表示Softmax Regression,而用Re…

【Rust日报】2023-06-11 Rust 中的 Telegram Bot 框架

MOBOT 的第一个版本,这是一个 Rust 中的 Telegram Bot 框架 这是我一直在研究的 Rust 中的 Telegram Bot 框架。我尝试了其他 Rust 库,但我发现它们对于我正在构建的机器人类型来说过于原始或过于具体。 它带有 Telegram Bot API 的完全原生实现&#xf…

【企业业务架构】LEANIX : 业务能力

业务能力是组织执行核心功能所需的能力、材料和专业知识的表达或发声。企业架构师使用业务能力来说明业务的总体需求,以便更好地制定满足这些业务需求的 IT 解决方案。 目录 介绍业务能力建模您可以通过业务能力映射实现什么?并购管理IT风险管理创新管理…

还原卡

使用还原卡,可以将计算机的系统分区或其他需要保护的分区保护起来,可以将还原卡设定为下次启动或过一定的时间后对系统进行自动还原,这样,在此期间内对系统所作的修改将不复存在,免去了系统每使用一段时间后就由于种种…

小哨兵硬件还原卡安装方法

1安装前的准备工作确认您的计算机在安装还原卡前系统运作正常并符合系统需求。如果硬盘上已经安装了旧版本或是其它公司的恢复产品,请先将其移除,并最好移除其提供的VxD驱动程建议安装前请先扫瞄计算机确认计算机没有病毒,然后关闭…

Redis主从模式的搭建,哨兵模式搭建以及集群的搭建,及Redis缓存可能出现的问题及解决方案

目录 一、引言 二、Redis介绍 四、Redis常用命令【重点】 五、Java连接Redis【重点】 六、Redis其他配置及集群【重点】 七、Redis常见问题【重点】 一、引言 为啥需要redis?没有reids有啥问题?↓ 1.1 数据库压力过大 由于用户量增大,请求数量也随之增大&am…

Redis深入理解五 :Redis主从架构、哨兵架构、高可用集群模式

redis主从架构 redis主从架构搭建,配置从节点步骤: 复制一份redis.conf文件将相关配置修改为如下值: port 6380 pidfile /var/run/redis_6380.pid # 把pid进程号写入pidfile配置的文件 logfile "6380.log" dir /usr/local/redis‐5.0.3/data/6380 # 指定…