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

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

3天内不再提示

风火轮X86主板youyeetoo X1:部署掌纹识别能力

Rice嵌入式开发技术分享 来源:Rice嵌入式 作者:Rice嵌入式 2023-11-10 08:36 次阅读

当今世界,随着科技的不断进步,生物识别技术已经成为了安全和身份验证领域的热门话题之一。如:人脸识别,指纹识别,虹膜比对,掌纹识别等。其中,掌纹识别技术作为一种生物特征识别方法,因其高度精准和高度安全性而备受关注。在这一背景下,越来越多的应用领域开始采用掌纹识别技术,包括金融、安全、物流和智能门禁等。本文将介绍如何在X86架构的嵌入式系统上部署一个开源的掌纹识别算法

本文我们主要描述掌纹识别开源库:EDCC-Palmprint-Recognition,并且运行在风火轮科技的youyeetoo X1开发板(x86开发板)

youyeetoo X1是一款由深圳风火轮科技推出的x86架构单板电脑(SBC),可运行全功能版的windows和Linux, 具备低成本,高性能的特点(11代Intel CPU N5105),它主要面向AIOT和自动控制 市场,尺寸只有手掌大(115 * 75mm),接口却非常丰富,内置了3路串口UART,2路HDMI,6路USB口、1路I2C、1路SPI、5路GPIO等 AIOT物联网常用的接口,还能接7寸MIPI触摸屏。

32f3e1d6-7f61-11ee-b3e3-92fbcf53809c.png

EDCC-Palmprint-Recognition开源库链接:https://github.com/Leosocy/EDCC-Palmprint-Recognition

3308ce48-7f61-11ee-b3e3-92fbcf53809c.png

掌纹识别概念

掌纹识别优势

「掌纹识别技术相对于其他生物特征识别方法具有独特的优势,使其成为广泛采用的生物特征认证方式。以下是一些与指纹、人脸、虹膜、DNA、签名以及步态等其他生物特征识别技术相比的优势:」

相对于指纹的优势:

更大的识别面积:掌纹的识别面积比指纹更大,包含的信息更丰富,这可以提高准确性。

更不易受损:掌纹相对稳定,不容易受损或受外界因素的影响,具有长期稳定性。

较低的图像分辨率要求:相对较低的图像分辨率要求意味着采集设备的造价更低,相对经济。

相对于人脸的优势:

不受外部因素的影响:掌纹不受眼镜、表情、妆容等因素的影响,其稳定性更高。

用户友好:用户接受度较高,因为掌纹的采集方式通常更加友好,无需特殊的准备或配合。

相对于虹膜和DNA的优势:

较低的采集设备造价:与虹膜扫描仪或DNA采集设备相比,掌纹的采集设备成本更低,更易于部署。

相对于签名和步态等行为特征的优势:

不受习惯的影响:掌纹识别不受个体行为习惯的影响,不会因人们的签名或步态习惯而变化。

特征稳定:掌纹特征不会随着时间改变,从而提高了长期识别的准确性。

掌纹识别的基本方法:

数据库创建通过采集注册样本,进行预处理、特征提取工作,之后形成数据库

特征库检索通过采集待测试的样本,在预处理和提取特征之后与掌纹数据库中的数据进行匹配,得到该待测样本的类别。

掌纹特征提取方法:

「掌纹特征提取方法主要分为四大类,分别为基于结构的方法、基于统计的方法、基于子空间的方法以及基于编码的方法。」

基于结构的方法主要是利用掌纹中主线和褶皱的方向和位置信息实现掌纹识别的方法,此类方法最为直观。但是无论是哪一种边缘检测算子都无法提取出所有的纹线,所以此类方法实用性很差,已经被人们渐渐放弃。

基于统计的方法主要是利用统计特征,例如均值、方差等组成一组用来描述掌纹图像的特征向量,可以根据是否分块这一特性分为局部统计变量方法和全局统计量方法。基于局部统计量的方法通过将图像分成若干小块,分别统计每个小块的统计信息,然后将这些统计信息组合表示为整个掌纹的统计特征向量,如采用傅里叶变换、小波变换等方式获得掌纹图像的每个分块统计信息并进行识别。

基于子空间的方法是将原始掌纹图像看做普通的图片模式,将图片对应的高维矩阵通过投影映射运算转化为低维向量或矩阵。根据投影变换的实现方式,分为线性子空间法和非线性子空间法。常用的子空间特征提取方法有主成分分析法 (PCA),FisherPalm 方法,BDPCA (Bi-directional PCA) 等。

基于编码的方法是将掌纹图像看作纹理图像,根据某些规则对纹理图像进行编码。Zhang 等提出了一种名为 PalmCode 的编码方法,该方法首先采用 2DGabor 对图像进行滤波处理,然后根据滤波结果的实部和虚部的正负来进行编码。Kong 等提出使用六个方向的 Gabor 滤波器对掌纹图像滤波,并对幅值最小的方向编码,称为竞争编码 (Competitive code)。由于竞争编码考察了掌纹图像的方向信息,对光照不敏感,因此识别精度很高。

EDCC算法

「EDCC算法:它是一个高效、准确的掌纹识别算法。」

掌纹充满了线条和纹理特征,具备丰富的方向信息。因此,基于方向编码被认为是最有效的掌纹特征提取方法。而竞争编码是辨识度极高的编码方法之一,它使用不同方向的滤波器与掌纹图像进行卷积,之后根据一定的编码规则对掌纹图像进行编码。

EDCC算法有以下关键点:

通过图像增强算子处理原始掌纹图像,使得纹线更加突出,提取的方向更加准确。

使用一组方向不同的 2DGabor 小波滤波器对图像进行滤波。

选择滤波响应值最大和次大的方向作为该点所在纹线的主要方向和次要方向,进而进行编码。

EDCC部署

准备工作

youyeetoo X1开发板需要安装ubuntu系统,ubuntu安装过程可以参考文章:<风火轮X86主板youyeetoo X1:部署MQTT Broker>

OpenCV安装

EDCC算法依赖OpenCV,支持版本为OpenCV 3.4或者OpenCV 4.5两个版本。

安装OpenCV依赖库:

rice@rice:~/edcc$sudoapt-getupdate
rice@rice:~/edcc$sudoapt-getinstallbuild-essential
rice@rice:~/edcc$sudoapt-getinstallcmakegitlibgtk2.0-devpkg-configlibavcodec-devlibavformat-devlibswscale-dev
rice@rice:~/edcc$sudoapt-getinstallpython-devpython-numpylibtbb2libtbb-devlibjpeg-devlibpng-devlibtiff-devlibjasper-devlibdc1394-22-dev

下载安装OpenCV,下载链接:https://github.com/opencv/opencv/archive/4.5.0.zip

331074cc-7f61-11ee-b3e3-92fbcf53809c.jpg

编译OpenCV

执行cmake指令,生成makefile:

rice@rice:~/edcc$cdopencv-4.5.0/
rice@rice:~/edcc/opencv-4.5.0$mkdir-pbuild&&cdbuild
rice@rice:~/edcc/opencv-4.5.0/build$cmake-DCMAKE_INSTALL_PREFIX=/usr/local-DCMAKE_BUILD_TYPE=Release-DOPENCV_GENERATE_PKGCONFIG=ON-DOPENCV_ENABLE_NONFREE=True..

3316c28c-7f61-11ee-b3e3-92fbcf53809c.png

指定make构建工程:

rice@rice:~/edcc/opencv-4.5.0/build$sudomake-j6

3320428a-7f61-11ee-b3e3-92fbcf53809c.png

安装OpenCV

rice@rice:~/edcc/opencv-4.5.0/build$sudomakeinstall

环境配置

修改etc/bash.bashrc

rice@rice:~/edcc/opencv-4.5.0/build$sudogedit/etc/bash.bashrc

在文件末尾添加一下内容并保存

rice@rice:~/edcc/opencv-4.5.0/build$PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
rice@rice:~/edcc/opencv-4.5.0/build$exportPKG_CONFIG_PATH

更新环境配置

sudoupdatedb
source/etc/bash.bashrc

检查OpenCV安装情况

rice@rice:~/edcc/opencv-4.5.0/build$pkg-config--modversionopencv4#查看版本号
rice@rice:~/edcc/opencv-4.5.0/build$pkg-config--libsopencv4#查看libs库
33b700a8-7f61-11ee-b3e3-92fbcf53809c.jpg

环境搭建

下载源码,EDCC算法的代码托管在github上,链接:https://github.com/Leosocy/EDCC-Palmprint-Recognition.git,我们通过git克隆下来:

rice@rice:~/edcc$gitclonehttps://github.com/Leosocy/EDCC-Palmprint-Recognition.git
Cloninginto'EDCC-Palmprint-Recognition'...
remote:Enumeratingobjects:1188,done.
remote:Countingobjects:100%(44/44),done.
remote:Compressingobjects:100%(39/39),done.
remote:Total1188(delta6),reused23(delta4),pack-reused1144
Receivingobjects:100%(1188/1188),193.15KiB|78.00KiB/s,done.
Resolvingdeltas:100%(556/556),done.
rice@rice:~/edcc$

创建构建目录,好处:构建过程的文件放在统一的目录下:

rice@rice:~/edcc$cdEDCC-Palmprint-Recognition
rice@rice:~/edcc/EDCC-Palmprint-Recognition$mkdir-pbuild&&cdbuild
rice@rice:~/edcc/EDCC-Palmprint-Recognition/build$

构建EDCC算法代码

rice@rice:~/edcc/EDCC-Palmprint-Recognition/build$cmake..
rice@rice:~/edcc/EDCC-Palmprint-Recognition/build$sudomakeinstall

33cc63a8-7f61-11ee-b3e3-92fbcf53809c.png

安装EDCC python 的包

rice@rice:~/edcc/EDCC-Palmprint-Recognition$cdpypackage
rice@rice:~/edcc/EDCC-Palmprint-Recognition/pypackage$sudopython3setup.pyinstall

33e40c92-7f61-11ee-b3e3-92fbcf53809c.png

以上步骤就把EDCC的算法环境搭建完成

EDCC算法验证

下载测试用的掌纹图片,EDCC算法开源库提供下载脚本,用于我们验证功能。

rice@rice:~/edcc/EDCC-Palmprint-Recognition/$cdpalmprint_data
rice@rice:~/edcc/EDCC-Palmprint-Recognition/palmprint_data$./download.sh

33e896c2-7f61-11ee-b3e3-92fbcf53809c.png

EDCC提供了三种实例:C代码实例,C++代码实例,python代码实例。我们验证功能,采用EDCC的python代码实例。

python代码实例中比对的图片是a_01.bmp和b_01.bmp

33f3928e-7f61-11ee-b3e3-92fbcf53809c.png

比对的两张图片如下:

33feae76-7f61-11ee-b3e3-92fbcf53809c.jpg

执行命令验证,两张掌纹图片的比对得分为:0.08799048751486326

rice@rice:~/edcc/EDCC-Palmprint-Recognition/$cd./examples/py_example
rice@rice:~/edcc/EDCC-Palmprint-Recognition/examples/py_example$python3example.py
340eb65e-7f61-11ee-b3e3-92fbcf53809c.jpg

总结

EDCC这个开源库的开源协议为:MIT,所以使用起来不用当心。

EDCC的原理,其作者也提供了详细的说明:https://blog.leosocy.top/posts/4354/

在youyeetoo部署AI能力,无疑是一个不错的选择。

341987a0-7f61-11ee-b3e3-92fbcf53809c.png

审核编辑 黄宇

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

    关注

    53

    文章

    1815

    浏览量

    70323
  • 开源
    +关注

    关注

    3

    文章

    3210

    浏览量

    42288
  • X86
    X86
    +关注

    关注

    5

    文章

    293

    浏览量

    43361
  • 掌纹识别
    +关注

    关注

    0

    文章

    16

    浏览量

    10868
收藏 人收藏

    评论

    相关推荐

    如何在X86架构的嵌入式系统上部署掌纹识别算法

    安全性而备受关注。在这一背景下,越来越多的应用领域开始采用掌纹识别技术,包括金融、安全、物流和智能门禁等。本文将介绍如何在X86架构的嵌入式系统上部署一个开源的
    的头像 发表于 11-10 16:53 1474次阅读
    如何在<b class='flag-5'>X86</b>架构的嵌入式系统上<b class='flag-5'>部署</b><b class='flag-5'>掌纹</b><b class='flag-5'>识别</b>算法

    youyeetoo X1 windows 开发板体验】支持语音控制的AIoT智能终端设计

    感谢电子发烧友和深圳风火轮科技的信任,本次参加youyeetoo X1 Windows 开发板的评测。 开发板特点 youyeetoo X1
    发表于 01-26 16:32

    youyeetoo X1 windows 开发板体验】基于ROS开发的LIO系统——项目计划+前言开箱

    前言 很荣幸有机会参与到我们电子发烧友论坛平台的试用活动,也感谢深圳风火轮科技提供了这一次宝贵的机会!提供了youyeetoo X1 windows这么一款优秀开发板。闲话少说,我们快入正文; 官网
    发表于 01-26 17:58

    youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台

    这次非常有幸,能够得到深圳风火轮youyeetoo X1的体验机会,感谢电子发烧友和风火轮。 在申请youyeetoo
    发表于 02-01 00:20

    youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植

    youyeetoo X1 开发板是一款由深圳风火轮科技推出的x86架构单板电脑(SBC),可运行全功能版的windows和Linux, 具备低成本,高性能的特点(11代Intel C
    发表于 03-23 17:47

    【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台

    这次非常有幸,能够得到深圳风火轮youyeetoo X1的体验机会,感谢电子发烧友和风火轮。 详细的WiKi网址:youyeetoo
    发表于 04-10 14:38

    ARM主板X86主板的优缺点

    `相对于X86主板的优点: (1)、功耗:这是ARM主板最大的优点之一,一般的VIA的X86主板
    发表于 06-15 15:56

    风火轮

    谁有TI的基于MSP430launchpadG2553的Capacitive Touch BoosterPack(就是电容触摸板)俗称风火轮红色的转盘 谁有可不可以转让给我活着给我学习一下 我是一名西安电大的学生看了视频很想操作一下这块板子跪求了在此献上C代码 求风火轮
    发表于 08-12 11:22

    什么是x86嵌入式工控主板x86嵌入式主板该如何选择

    什么是x86嵌入式工控主板?x86嵌入式主板就是嵌入式工控机内常用到的主板,它跟嵌入式工控机一样,体积比较小,
    发表于 12-09 12:50 3225次阅读

    什么是X86主板X86嵌入式主板该如何挑选

    X86嵌入式主板是嵌入式主板的一类,主要特点取决于容积精巧、主要参数平稳,其还能够分成多个类别,这些各自相匹配不一样的场景以及功能需求,因而在具体挑选的时候需要大家多方面鉴别。那么下面不妨就随我们
    发表于 04-12 15:49 5392次阅读

    风火轮汽车光电门开源硬件

    电子发烧友网站提供《风火轮汽车光电门开源硬件.zip》资料免费下载
    发表于 02-08 15:21 0次下载
    <b class='flag-5'>风火轮</b>汽车光电门开源硬件

    风火轮X86主板youyeetoo X1部署MQTT Broker

    号外,号外。。。深圳风火轮科技又推出新品啦--youyeetoo X1youyeetoo X1 是一款由深圳
    的头像 发表于 10-12 18:01 2154次阅读
    <b class='flag-5'>风火轮</b><b class='flag-5'>X86</b><b class='flag-5'>主板</b><b class='flag-5'>youyeetoo</b> <b class='flag-5'>X1</b>:<b class='flag-5'>部署</b>MQTT Broker

    深圳风火轮科技又发新品啦--youyeetoo X1(X86开发板)

    号外,号外。。。 深圳风火轮科技又推出新品啦--youyeetoo X1youyeetoo X1 是一款由深圳
    的头像 发表于 10-10 10:22 955次阅读
    深圳<b class='flag-5'>风火轮</b>科技又发新品啦--<b class='flag-5'>youyeetoo</b> <b class='flag-5'>X1</b>(<b class='flag-5'>X86</b>开发板)

    youyeetoo X1部署成mqtt Broker实战开发

    风火轮X86主板youyeetoo X1这个小巧的板子,正合我意,可以部署一个MQTT Brok
    的头像 发表于 10-15 10:15 832次阅读
    将<b class='flag-5'>youyeetoo</b> <b class='flag-5'>X1</b><b class='flag-5'>部署</b>成mqtt Broker实战开发

    风火轮科技第三款开发板youyeetoo R1简介

    在2023年的尾声之际,风火轮科技如约而至,再次为我们带来惊喜。继前两款备受赞誉的开发板之后,他们再次推出了全新的第三款开发板--youyeetoo R1,为科技领域注入一股清新的活力。
    的头像 发表于 01-02 14:08 1300次阅读
    <b class='flag-5'>风火轮</b>科技第三款开发板<b class='flag-5'>youyeetoo</b> R<b class='flag-5'>1</b>简介