0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【EsDA应用】5分钟快速实现图像人脸检测

AGk5_ZLG_zhiyua 来源:未知 2023-05-17 12:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

人脸识别是一种高安全性的生物识别技术,广泛应用在安防、身份验证等领域。而人脸检测是进行人脸识别的重要前提,本文主要介绍如何基于EsDA设计的人脸检测节点,快速实现人脸检测功能。 018a7746-f469-11ed-90ce-dac502259ad0.jpg  简介

人脸识别是一种高安全性的生物识别技术,在安防、身份验证等领域被广泛应用。

本文在【EsDA应用】5分钟快速实现摄像头图像采集 的基础上,使用M6G2C核心板,简单介绍如何基于EsDA设计的face_detection人脸检测功能节点,快速实现人脸检测识别。

01906dfe-f469-11ed-90ce-dac502259ad0.jpg  前期准备

若是刚开始接触EsDA,可先阅读EsDA其他系列文章,从零开始搭建环境和掌握基本开发流程,已有基础的可以跳过:
  • EsDAMPC-ZC1入门(一)——软件安装
  • EsDAMPC-ZC1入门(二)——LED控制
  • 【EsDA应用】5分钟实现一个串口通信业务
  • 【EsDA应用】5分钟快速实现摄像头图像采集

1. 硬件准备

1.1 准备一个摄像头,这里我们以OV7725摄像头为例,搭配转接板使用。

01979fc0-f469-11ed-90ce-dac502259ad0.png

1.2 准备一块LCD显示屏。1.3 准备一张SD卡,用于存放人脸模型。1.4 准备一块M6G2C核心板和EPC-6G2C-L评估板,并按照下图所示连接好硬件。其中,eth0网口用于下载流图,并连接LCD显示屏接口电源,以及将OV7725摄像头通过转接板连接到开发板背面的CSI接口上。01a2e3bc-f469-11ed-90ce-dac502259ad0.png

2. 其它准备

将人脸检测相关的模型文件存放到SD卡中。

01aac294-f469-11ed-90ce-dac502259ad0.png

01906dfe-f469-11ed-90ce-dac502259ad0.jpg  节点介绍

这里我们需要使用到摄像头、图像格式转换以及人脸检测相关的AWFlow节点,包括在【EsDA应用】5分钟快速实现摄像头图像采集 中介绍的camera_video节点、camera配置节点、lcd_display节点,以及本文介绍的用于图像数据格式转换的image_format_convert节点和人脸检测节点face_detection。

1. image_format_convert节点

图像格式转换节点,用于将摄像头输出的图像转换为人脸检测节点支持的RGB888格式。1.1属性

01b7249e-f469-11ed-90ce-dac502259ad0.png

  • 输入图像格式:待转换图像的格式,一般是摄像头输出的原始数据格式;

  • 输入图像宽度:待转换图像的宽度;

  • 输入图像高度:待转换图像的高度;

  • 输出图像格式:转换后的图像的格式,必须指定为RGB888;

  • 输出图像宽度:转换后的图像的宽度;

  • 输出图像高度:转换后的图像的高度。

1.2输入

  • image:需要进行转换的原始图像的地址,一般由camera_video节点提供输入;

1.3输出

  • image:指向转换完成后的目标格式图像数据的指针,一般由后级节点接收并处理;
  • format:转换后的图像的格式;
  • width:转换后的图像的宽度;
  • height:转换后的图像的高度。

2.face_detection节点

face_detection是人脸检测节点,该节点对输入的图像数据进行人脸检测处理,当检测到图像中存在人脸时,截取图像中的人脸数据并输出。后级节点可以使用这个图像数据进行特征值提取、比对等操作。

2.1属性

01bef728-f469-11ed-90ce-dac502259ad0.png
  • 活体检测:是否进行活体检测;

  • 模糊检测:是否进行模糊检测;

  • 人脸矫正:是否进行人脸整理矫正;

  • 模型和参数路径:检测模型和参数文件路径;

  • 人脸图像主题:需要进行人脸检测的图像的主题,此节点只对与此属性匹配的输入图像进行检测。

2.2输入

  • image:输入图像数据的缓冲区指针,必须是RGB888格式,可以由image_format_convert转换后提供输入;

  • width:输入图像的宽度;

  • height:输入图像的高度;

  • topic:输入图像的主题。

2.3输出

  • image:从输入图像中截取的人脸图像缓冲区;

  • coord_x1:人脸的左上角横坐标,与后面三个坐标共同决定坐标系上的两个点,这两个点可以确定图像中的人脸位置;

  • coord_y1:左上角纵坐标;

  • coord_x2:右下角横坐标;

  • coord_y2:右下角纵坐标。

01906dfe-f469-11ed-90ce-dac502259ad0.jpg  业务处理

本应用主要实现M6G2C开发板采集摄像头图像,并在LCD显示屏上进行显示。同时,将摄像头输出的原始数据进行格式转换后,输入到face_detection节点中进行人脸检测。具体实现如下:1. 添加节点并连线首先我们需要添加一个camera_video节点用于采集图像,并输出到lcd_display节点中显示。然后,将camera_video节点输出的RGB565原始图像在image_format_convert节点中转换为RGB888格式,接下来将转换后的图像输入到face_detection中进行人脸检测,并将检测的结果输入到lcd_display节点中。另外,增加两个fscript节点,用于指定图像主题和打印坐标点信息。01c8f700-f469-11ed-90ce-dac502259ad0.png2. 配置节点2.1配置camera_video节点双击camera_video节点,并在配置项中选择添加一个新的camera节点。

01d0a43c-f469-11ed-90ce-dac502259ad0.png

在camera配置节点中,根据所使用的摄像头,分别设置设备名、输出图像的数据格式和图像宽度、高度。

01d89ab6-f469-11ed-90ce-dac502259ad0.png

然后更新配置,在camera_video节点的配置项中,选择上一步新增的camera配置节点即可。

01e05ee0-f469-11ed-90ce-dac502259ad0.png

2.2配置image_format_convert使用image_format_convert节点目的是将图像格式转换为RGB888,因此,根据图像的信息进行设置即可。如果摄像头输出的原始数据即为RGB888,那么这一步可以省略。01e5c862-f469-11ed-90ce-dac502259ad0.png

2.3face_detection节点

使用人脸检测节点需要将相关的模型文件存放到文件系统中,并在face_detection节点中指定模型存放的路径,这里我们存放到SD卡中,并指定路径。人脸图像主题属性用于对输入的图像进行过滤,这里我们设置为摄像头输出的图像的主题即可。01eaaa9e-f469-11ed-90ce-dac502259ad0.png

2.4fscript

流图中标识为“1”的fscript节点主要是为图像指定一个主题,我们将其设置为face,和face_detection节点中的主题一致。

msg.topic = "face"

另一个节点用于打印人脸检测结果的坐标点信息,方便我们对结果进行验证。其内容如下:

print("(x1, y1)#: (" + msg.coord_x1 + ", " + msg.coord_y1 + ")")

print("(x2, y2)#: (" + msg.coord_x2 + ", " + msg.coord_y2 + ")")

2.5lcd_display节点

lcd_display节点用于显示图像,不需要我们进行配置。它会实时显示camera_video节点输出的图像,并且在检测到图像中存在人脸后,根据face_detection节点输入的坐标,在图像中将人脸框选显示出来。3. 下载验证因为M6G2C开发板是通过网口去下载流图,所以打开AWFlow Designer后需要配置目标板IP和端口号。然后点击下载运行即可。

01ef6ca0-f469-11ed-90ce-dac502259ad0.png

流图下载完成后,通过LCD可以看到,我们已经成功从摄像头获取图像,并且成功在显示屏上显示。

当摄像头采集的图像中含有人脸时,face_detection节点可以正常检测到人脸并且输出准确的坐标点。

0201247c-f469-11ed-90ce-dac502259ad0.png

02073b5a-f469-11ed-90ce-dac502259ad0.jpg

01906dfe-f469-11ed-90ce-dac502259ad0.jpg技术交流长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。

02178546-f469-11ed-90ce-dac502259ad0.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 致远电子
    +关注

    关注

    13

    文章

    423

    浏览量

    32649

原文标题:【EsDA应用】5分钟快速实现图像人脸检测

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EsDA 科普 | 一文读懂嵌入式开发的“全家桶”方案

    在工业4.0与AI浪潮交汇的今天,嵌入式软件开发正面临前所未有的复杂度挑战。如何降低门槛、提升效率、实现一站式交付?EsDA给出了系统化的答案。本文将带您快速了解这一嵌入式与工业自动化领域的核心工具
    的头像 发表于 03-18 11:37 314次阅读
    <b class='flag-5'>EsDA</b> 科普 | 一文读懂嵌入式开发的“全家桶”方案

    瑞芯微(EASY EAI)RV1126B 人脸识别使用

    1.人脸识别简介人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸图像或视频流,并自动在图像
    的头像 发表于 01-10 10:00 3315次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>人脸</b>识别使用

    瑞芯微(EASY EAI)RV1126B 人脸检测使用

    野外准确高效的人脸检测仍然是一个公开的挑战。这是由于姿势的变化、面部表情、比例、光照、图像失真、面部遮挡等因素造成的。与一般的目标检测不同,人脸
    的头像 发表于 01-09 09:52 8222次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>人脸</b><b class='flag-5'>检测</b>使用

    极简XXTEA加密解密:5分钟代码速学!

    XXTEA加密解密的极简实现方法来了!只需5分钟,跟着本文的代码示例学习,你就能快速掌握加密与解密的核心技巧,轻松应用到项目中。 XXTEA (eXtended eXtended Ti
    的头像 发表于 11-12 14:49 471次阅读
    极简XXTEA加密解密:<b class='flag-5'>5</b><b class='flag-5'>分钟</b>代码速学!

    基于级联分类器的人脸检测基本原理

    检测人脸这一结果。 注:该算法在github上有开源实现:https://github.com/nenadmarkus/pico 3) 算法流程 我们在图像上设置一定的搜索范围,初始
    发表于 10-30 06:14

    基于FPGA的肤色检测方案简介

    ,绝大多数人的肤色分量位于这个区间中。基于此,可以通过判断图像中像素点的Cb和Cr分量,从而判断是否存在人脸以及人脸位置。当然,这种检测方法十
    发表于 10-28 07:07

    无线充电25w:30分钟满血复活

    25W无线充电提升充电速度,实现30分钟补电,提升用户体验,推动无线充电技术发展。
    的头像 发表于 10-21 08:31 1425次阅读
    无线充电25w:30<b class='flag-5'>分钟</b>满血复活

    ESDA5WY车规级单向ESD保护器件技术解析与应用指南

    STMicroelectronics ESDA5WY车用双路单向ESD保护是一款车用单向瞬态电压抑制器 (TVS),设计用于恶劣环境。TVS可保护敏感电子产品免受因电气过应力 (EOS)、雷电浪涌和ESD造成的损坏或闩锁,而不会
    的头像 发表于 10-17 18:27 1506次阅读
    <b class='flag-5'>ESDA5</b>WY车规级单向<b class='flag-5'>ESD</b>保护器件技术解析与应用指南

    【VisionFive 2单板计算机试用体验】人脸及物体识别、图像边缘检测

    ,然后调好焦距,使其图像采集清晰。 (2)代码实现 与上期的二维码检测实验一样,基于OpenCV模型去实现人脸
    发表于 08-07 00:49

    新一代PLC控制软件平台EsDA-AWStudio

    在工业自动化和智能制造领域,高效的软件平台是提升开发效率和系统性能的关键。ZLG致远电子推出的EsDA-AWStudio平台,凭借其强大的功能和灵活的设计,为工业控制和物联网应用提供了全新的解决方案
    的头像 发表于 07-28 11:33 609次阅读
    新一代PLC控制软件平台<b class='flag-5'>EsDA</b>-AWStudio

    【Milk-V Duo S 开发板免费体验】人脸检测

    【Milk-V Duo S 开发板免费体验】人脸检测 本文介绍了 Milk-V Duo S 开发板结合 OV5647 摄像头模块,实现人脸检测
    发表于 07-27 16:53

    【Milk-V Duo S 开发板免费体验】人脸检测测试(视频)

    https://bbs.elecfans.com/jishu_2494616_1_1.html我们编译了人脸检测的应用,现在摄像头到了, 我们就进行实际测试。 视频见https
    发表于 07-11 22:33

    基于LockAI视觉识别模块:C++人脸识别

    保存裁剪后的人脸图像,目录结构和BaseDataset相同。 6. 总结 通过上述内容,我们成功实现了一个高效的人脸识别系统,包括: 获取并加载包含
    发表于 07-01 12:01

    【HarmonyOS 5】VisionKit人脸活体检测详解

    【HarmonyOS 5】VisionKit人脸活体检测详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、VisionKit人脸活体
    的头像 发表于 06-21 11:52 1079次阅读
    【HarmonyOS <b class='flag-5'>5</b>】VisionKit<b class='flag-5'>人脸</b>活体<b class='flag-5'>检测</b>详解

    【正点原子STM32MP257开发板试用】4.人脸识别体验

    = cap.read() if not ret: break # 转换为灰度图像人脸检测在灰度图像上进行) gray = cv2.cvtColor(frame, cv2.C
    发表于 06-18 18:11