吉游网提供最新游戏下载和手游攻略!

基于STM32开发板的人脸识别项目实战教程

发布时间:2024-10-16浏览:31

大家好,今天小编来为大家解答以下的问题,关于基于STM32开发板的人脸识别项目实战教程,这个很多人还不知道,现在让我们一起来看看吧!

电源电路:开发板采用USB 5v供电,从左至右依次是输入、接地、输出。此外C2和C3是输出滤波电容,作用是抑制自激振荡,如果不接这两个电容,通常线性稳压器的输出会是个振荡波形。

  

C4是输入电容,对于交流电压整流输入,它们的第一个作用是把单向脉动电压转换成直流电压,在本图中输入已经是+5V直流电源了,它们的作用就是防止断电后出现电压倒置,因此通常输入电容的容量应该大于输出电容。

如下图:

USB转串口电路:开发板采用CH340作串口芯片, CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。 在串口方式下,CH340 提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线

Led指示电路:开发板采用d2作Led指示,高电平点亮。

▲开发板核心:STM32F407VGT6

STM32F407VGT6参数:32位Flash MCU,USB,CAN,11个计时器,3个ADC和13个通信接口

制造商: STMicroelectronics

产品种类: ARM微控制器 - MCU

核心: ARM Cortex M4

数据总线宽度: 32 bit

最大时钟频率: 168 MHz

程序存储器大小: 1 MB

数据 RAM 大小: 192 kB

ADC分辨率: 12 bit

工作电源电压: 1.8 V to 3.6 V

最大工作温度: + 85 C

安装风格: SMD/SMT

商标: STMicroelectronics

数据 Ram 类型: SRAM

接口类型: CAN, I2C, I2S, SPI, UART

最小工作温度: - 40 C

ADC通道数量: 16

输入/输出端数量: 82 I/O

计时器/计数器数量: 10 Timer

下载接口:swd

SWD,全称是Serial Wire Debug(串行调试),它的接线方式较JTAG简单,2线式:SWDIO--串行数据线、SWDCLK--串行时钟线,一般在设计PCB时,会预留4个2.54mm的排座,这种接线方式适合引脚少的芯片,充分利用芯片资源

▲以太网通信LAN8720:

LAN8720A 是低功耗的 10/100M 以太网 PHY 层芯片, I/O 引脚电压符合 IEEE802.3-2005 标准,支持通过 RMII 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双工传输模块,支持 10Mbps 和 100Mbps。

LAN8720A 可以通过自协商的方式与目的主机最佳的连接方式(速度和双工模式),支持 HPAuto-MDIX 自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。LAN8720A 的主要特点如下:

 高性能的 10/100M 以太网传输模块

 支持 RMII 接口以减少引脚数

 支持全双工和半双工模式

 两个状态 LED 输出

 可以使用 25M 晶振以降低成本

 支持自协商模式

 支持 HP Auto-MDIX 自动翻转功能

 支持 SMI 串行管理接口

 支持 MAC 接口

LAN8720A 的引脚数是比较少的,因此,很多引脚具有多个功能。这里,我们介绍几个重要的设置。

1, PHY 芯片地址设置

LAN8720A 可以通过 PHYAD0 引脚来配置,该引脚与 RXER 引脚复用,芯片内部自带下拉电阻,当硬复位结束后, LAN8720A 会读取该引脚电平,作为器件的 SMI 地址,接下拉电阻时(浮空也可以,因为芯片内部自带了下拉电阻),设置 SMI 地址为 0,当外接上拉电阻后,可以设置为 1。

2, nINT/REFCLKO 引脚功能配置

nINT/REFCLKO 引脚可以用作中断输出,或者参考时钟输出。通过 LED2( nINTSEL)引脚设置, LED2 引脚的值在芯片复位后,被 LAN8720A 读取,当该引脚接上拉电阻(或浮空,内置上拉电阻),那么正常工作后, nINT/REFCLKO 引脚将作为中断输出引脚(选中 REF_CLKIN 模式)。当该引脚接下拉电阻时,正常工作后, nINT/REFCLKO 引脚将作为参考时钟输出(选中 REF_CLK OUT 模式)。

在 REF_CLK IN 模式,外部必须提供 50Mhz 参考时钟给 LAN8720A 的 XTAL1( CLKIN)引脚。

在 REF_CLK OUT 模式, LAN8720A 可以外接 25Mhz 石英晶振,通过内部倍频到 50Mhz,然后通过 REFCLKO 引脚,输出 50Mhz 参考时钟给 MAC 控制器。这种方式,可以降低 BOM成本。

3, 1.2V 内部稳压器配置

LAN8720A 需要 1.2V 电压给 VDDCR 供电,不过芯片内部集成了 1.2V 稳压器,可以通过LED1(REGOFF)来配置是否使用内部稳压器,当不使用内部稳压器的时候,必须外部提供 1.2V电压给 VDDCR 引脚。这里我们使用内部稳压器,所以我们在 LED1 接下拉电阻(浮空也行,内置了下拉电阻),以控制开启内部 1.2V 稳压器。

▲Marvell 88W8782 SDIO wifi

8782是一款高性能、低功耗、体积小SDIO接口无线模组,符合IEEE802.11N标准,并向下兼容IEEE802.11B/G标准,支持IEEE 802.11i安全协议,以及IEEE 802.11e标准服务质量,其极高的兼容性,能够快速、方便的与无线设备互相联通,支持新的64/128位WEP数据加密,支持WPA-PSK/WPA2-PSK,WPA/WPA2安全机制,无线传输速率高达150M,是普通11B产品的10倍。

2.应用领域

平板电脑,笔记本电脑,机顶盒

游戏平台

消费电子设备(电视,DVD播放机,蓝光播放器等)

手机和其他移动应用

影像平台(打印机,数码相机,数码相框)

阅读器

3.主要特性

符合802.11n标准,高达150Mbps的无线传输速率;

高集成单芯片设计,体积更小,功耗更低;

持深度睡眠和待机模式的低功耗操作;

支持客户端实施IEEE省电模式;

发射波束形成支持

▲摄像头OV2640

OV2640摄像头模块,采用1/4寸的OV2640百万高清CMOS传感器制作,具有高灵敏度、高灵活性、支持JPEG输出等特点,并且可以支持曝光、白平衡、色度、饱和度、对比度等众多参数设置,支持JPEG/RGB565格式输出,可以满足不同场合需求。

▲温湿度dht11

DHT11是一款有已校准数字信号输出的温湿度传感器。其精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃。

▲红外接口

红外发光二极管是一种能发出红外线的二极管,通常应用于遥控器等场合。常用的红外发光二极管其外形和发光二极管LED相似,发出红外光。

管压降约1.4v,工作电流一般小于20mA。为了适应不同的工作电压,回路中常常串有限流电阻。

▲音频接口

使用STM32 自带ADC对MIC进行采样

▲板载继电器

继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。

▲人脸识别使用方法

开发需要具有外网访问能力,即开发板需要连接到路由器 WIFI 热点,或者通过网线将开发板连到路由。接入外部 平台的所有代码都整合在 easy-IoT.rar 中,同样的我们提供 UCOS2、 UCOS3、FreeRTOS 三个平台的代码,建议使用 UCOS2 的工程。

编译代码前需要将路由器 WIFI 热点的名字和密码修改到代码中, 具体位置为:easyiot\app\src\httpd\web_cfg.c 的 default_web_cfg 函数 中。如下所示:

通常只要填写路由器热点名称和密码就可以了,开发板将会通过 DHCP 自动获得 IP 地址。特殊情况下,如果想 WIFI 网卡或者以太网卡 使用静态的 IP 地址,可以将上面对应的 auto_get 值改为 0。

开发板支持基于百度人工智能 AI 平台的图像以及语音类 AI 应用, 同时也支持接入 OneNet 物联网平台,阿里云物联网平台。由于开发版 资源限制(主要是内存限制),接入不同平台的应用不能同时运行, 我们通过一些宏开关对将运行的某个应用进行使能。

这个配置在源代码 easyiot\config\app_cfg.h 中,用户需要根据自己想运 行的程序把对应的宏设置为 1。

百度 AI 人工智能平台提供语音识别,语音合成,人脸识别,物体识别等 AI 能力,我们只 要以 HTTPS 的方式向平台请求服务,就可以得到 AI 分析结果。在使用人脸识别功能之 前,也需要在百度平台注册,创建应用,并管理人脸库。

注册并登陆百度云平台,在控制台上选择人脸识别,进入如下界面,可以创建应用。

创建的应用默认只能访问人脸识别相关的 API,这里我们手动选上百度语音和图像识别相 关的 API 接口。这样设置的好处是我们后面的其他 AI 功能测试可以复用这个应用,而不用 再去创建新的应用。

创建好应用后,百度 AI 平台会给应用分配好 API Key 和 Secret Key,如下图所示,这两个 信息非常重要,后面我们将填写到代码中。

接下来,需要进行人脸库管理,我们需要将用户的人脸信息录入到应用中,作为后续人脸 认证的参考。如下图所示。

在应用的人脸库中新建组,并将组名填写为 test_group_1(非常重要)。

之后在这个组中创建用户,并上传用户人脸照片,注意这里的人脸照片清晰,后续识别的 准确度越高。创建用户名填写为 test_user_1(非常重要)。

到这里应用和人脸库管理就结束了。

我们把应用的 API Key 和 Secret Key 填写到代码 baidu-ai\baidu_ai_face.c 对应的宏中,如下 图所示。

同时,将人脸识别应用对应的宏打开,如下,重新编译并下载代码到开发板。

人脸识别应用主要实现为一个人脸识别控制继电器开关的功能,测试时,将开发板摄像头 对准人脸(人脸相隔 40~60cm),如果开发板检查到当前人脸和人脸库中的匹配,则会使 继电器闭合,否则断开继电器。用户可以在继电器上接入小台灯来实现台灯的实时人脸控 制。

用户评论

鹿叹

在使用STM32人工智能开发板进行人脸识别项目的初体验中,我被它强大的处理能力和便捷的编程环境所震撼!

    有20位网友表示赞同!

一生荒唐

该项目让我真正理解了什么是AI与硬件融合的魅力。

    有10位网友表示赞同!

温柔腔

STM32对我的机器学习算法提供了极好的支持,让识别速度有了显著提升。

    有16位网友表示赞同!

放肆丶小侽人

作为新手,我很欣赏开发板的易用性,它帮助我在短时间内搭建起人脸识别系统。

    有9位网友表示赞同!

古巷青灯

对于想在游戏领域尝试嵌入AI元素的人来说,这是一个不错的选择。

    有6位网友表示赞同!

一生只盼一人

通过该项目,我认识到STM32在游戏人工智能应用上的无限可能。

    有12位网友表示赞同!

墨城烟柳

虽然挑战不小,但成功实现人脸识别功能极大地增强了我对学习新知识的热情。

    有16位网友表示赞同!

予之欢颜

这款游戏开发板适合对人工智能和游戏设计感兴趣的玩家探索。

    有6位网友表示赞同!

熏染

体验过后觉得,将AI技术深入到游戏中能为玩家带来全新的互动体验。

    有10位网友表示赞同!

苍白的笑〃

在完成项目后,我对自己能在现实世界中运用AI感到非常自豪!

    有5位网友表示赞同!

她的风骚姿势我学不来

尝试用STM32来开发人脸检测功能对于游戏开发者而言是一次极具价值的旅程。

    有11位网友表示赞同!

窒息

感觉像是打开了游戏设计的新世界大门,特别是对追求创新技术的游戏制作人来说。

    有14位网友表示赞同!

夏日倾情

项目教会我如何融合传统硬件设备与现代AI科技,提升游戏性能和用户体验。

    有11位网友表示赞同!

玻璃渣子

在实际操作中我发现,STM32非常适合开发需要复杂人脸辨识功能的沉浸式游戏体验。

    有10位网友表示赞同!

迷路的男人

这个过程让我对ST公司的技术有了更深的理解,并对其后续推出的产品充满期待。

    有12位网友表示赞同!

若他只爱我。

虽然项目初期遇到了一些挑战,但克服这些困难后的成就感非常满足。

    有19位网友表示赞同!

軨倾词

我相信,通过将更多像STM32这样的科技融入游戏中,我们可以创造出更加震撼和互动的玩家体验。

    有20位网友表示赞同!

寻鱼水之欢

这个开发板为我提供了一个清晰、实用的学习AI应用在游戏开发中的路标。

    有9位网友表示赞同!

爱到伤肺i

整个项目的完成对我而言是突破自我和技术界限的一次重要步骤。

    有7位网友表示赞同!

厌归人

我很欣喜地看到,STM32为我的创意游戏添加了强大的技术支持和功能支持。

    有7位网友表示赞同!

热点资讯