本次评测涉及的所有文档与软件我将在评论区中附上分享链接。
另外感谢@bigfanofloT 老哥对产品资料的分享,这里附上他的资料分享贴链接:https://mbb.eet-china.com/forum/topic/93857_1_1.html
一、开箱
首先是老朋友了,京东快递和京东小哥。
箱子打开后可以看到有厚厚的泡沫包裹。
这就是套件的包装盒了。
打开包装后是包含的所有东西。当然盒子里还有条TypeC数据线没有拍进去。
整个模块由一个包装袋进行包裹。
这是模块放在手掌的样子。还是很小巧的。
来一张模块正面图。可以说是麻雀虽小五脏俱全了。使用的阻容器件有0603,0402和0201的。
这是模块的背面。电路板放在一个基座上,并且放置有天线。
下面开始正式评测。
二、产品介绍
2.1套件介绍
SLN-VIZNAS-IOT人脸识别开发套件是恩智浦基于 MCU 的为 OEM 提供的硬件和集成内置软件的完整的解决方案。这包括 i.MX RT106F运行时库和预先集成的机器学习人脸识别算法,以及外围设备所需的所有驱动程序,例如相机和存储器。
这种具有成本优势、易于使用的人脸识别方案实现了基于人脸的“无接触”式控制,该界面可以嵌入到家庭、商业和工业应用的各种产品中,从而减少了开发项目时的学习困难和时耗。
应用领域:
安全/安保/警报设备:电子锁、警报面板、远程传感器和自动访问设备;
智能家电:洗衣机、烘干机、烤箱、冰箱、炉灶、洗碗机;
台面电器:微波炉、咖啡机、电饭煲、搅拌机;
智能工业设备:电动工具、人体工学站、机器访问和授权等领域。
2.2RT106F系列跨界处理器概述
i.MXRT106F 是 i.MX RT1060 跨界处理器系列的 EdgeReady 成员,面向低成本嵌入式人脸识别应用。它采用恩智浦先进的 Arm® Cortex®-M7 内核实现,其运行速度高达 600 MHz,可提供高 CPU 性能和最佳实时响应。这种基于 i.MX RT106F 的解决方案使系统设计人员能够轻松且廉价地为各种智能电器、智能家居和智能工业设备添加人脸识别功能。 i.MX RT106F 处理器被授权运行 NXPs i.MX RT 运行时库以进行人脸识别,其中可能包括:
• 相机驱动程序
• 图像捕捉
• 图像预处理
• 面部对齐
• 人脸追踪
• 人脸检测
• 人脸识别
• 活体检测
• 情绪识别
2.3套件电路板布局及器件介绍
整个套件包含许多外围设备,接下来将通过图片方式进行介绍。
首先是套件正面照片。
接下来是电路板背面。
最后是整个套件的背面。
各个标号的具体功能如下:
1:摄像头模组。分为红外摄像头和彩色摄像头。
2:红外线补光灯。
3:白色照明补光灯。
4:锂电池接口。
5:控制按键。
6:活体检测传感器。
7:TypeC USB接口。
8:扩展音响接口。
9:麦克风MEMS。
10:Flash
11:MCU
12:FRAM
13:复位按键。
14:Debug接口。
15:天线。
2.4硬件架构介绍
整个套件的硬件架构如下图所示。
硬件架构以NXP的i.MX RT106F跨界处理器为核心,以MCU工作单元和人脸识别支持器件为两个方向进行搭建。MCU工作单元部分包括除MCU外,还有Flash,外置SDRAM,WiFi和蓝牙模块,以及供电电源和晶振等最小系统设备;人脸识别器件包括LDO电源,RGB(彩色)相机和IR(红外)相机,红外灯以及白色补光灯等。除了实现完整的人脸识别功能外,还可以针对个人项目进行进一步开发。
值得一提的,本套件方案提供了完整的原理图文件,甚至还有Layout和BOM文件,这对于基于此方案进行定制化开发提供了极大的便利,这里附上部分的原理图。
三、人脸识别套件的使用
3.1套件连接
整个人脸识别模块可以作为一个USB设备在Windows或Ubuntu平台进行开发。首先,将模快通过自带的USB设备连接至电脑,他将会自动的枚举为一个USB摄像头设备。可以通过类似对摄像头的操作来看到人脸识别模块实时的图像信息。这里我们选择在Windows系统下进行开发。设备连接好后,在搜索栏搜索“相机应用”,打开就可以看到模块的检测图像。如果电脑中连接了不知一个摄像头设备,可以通过摄像头切换按钮对设备进行切换。
3.2套件基本使用
该套件正面共有四个操作按键,位置及功能如下:
按键1:切换图形用户界面,打开或关闭UI;
按键2:手动注销,注销下一个识别的人脸;
按键3:切换IR/RGB输出,即屏幕中展示给用户看到的图像;
按键4:手动注册,将下一个人脸注册在套件内。
接下来将按照使用的顺序逐个进行演示。
按键1-切换图形用户界面。可以看到,默认状态下UI是开启的。当按下此按键后,将会关闭显示图像上的UI。
按键3-切换IR/RGB输出。通常情况下,套件的IR(红外)摄像头和RGB(彩色)摄像头时同时工作的,但一次只能显示一个摄像头的输出。按键3可用于在来自 IR 和 RGB 摄像头的输出之间切换,如下图所示。
需要注意的是,这里调整的只是展示给用户的图像,对于MCU和人脸识别的处理过程来说,是不产生影响的。
对比之下可以明显感觉到RGB相机帧率更高。
按键4:注册人脸。可用于触发手动注册过程,按下后,屏幕顶部会出现一条指示正在注册的消息,用户脸部周围的边界框将从蓝色变为绿色。 要注册脸部信息,需要直视相机,同时将脸部对齐到边界框内。 进行注册时,将显示“正在注册”消息。
等待几秒钟后,如果注册成功,将会显示用户已添加的信息,同时右下角的用户数会加一。这里的user_1是默认用户名,在下一章节“串口调试”中将会如何修改进行详细介绍。
如果注册失败,窗口会显示注册失败的信息。此时只需要等待几秒,再次按下按钮重新注册即可。再次注册时注意调整角度距离等,使之处在合适的位置。还要保证光线充足,光线不足通常来讲是造成识别失败的最常见原因,该方案进行面部识别时需要用到红外图像,所以这里的光线充足指的是日光。当日光不充足时,可以开启套件的红外补光灯。这将在下一章节“串口调试”中详细介绍。
按键2-手动注销。作为人脸注册的反向操作,此按键按下后将会注销掉识别出来的下一张人脸信息。注销识别时屏幕显示正在注销的信息,注销成功后将提示用户已将注销。当注销遇到问题时,解决方法与注册时相同。
注册后,只需要将脸部放在相机前片刻即可完成面部识别,同时屏幕中将提示“欢迎回家”的消息,表明套件已检测到已识别的脸部。整个系统是在一直不停工作的,只要摄像头设别范围内出现人脸,模块就会开始执行人脸识别过程。当识别没有反应时,同样是按照注册人脸时进行调整。
同时要注意,在断电或重启后,所有的人脸信息都会被删除。关于如何保存人脸信息,将在下一章节“串口调试”中介绍。
四、串口调试
人脸识别套件可以通过串口调试来操作各个功能与调试各个参数。接下来将进行关于串口调试的详细讲解。
4.1调试工具
这里使用的调试工具时PuTTY,在分享的文件中有安装包,也可以自行下载合适的版本。
安装好后打开“PuTTY”工具,在左侧“Session”界面进行串口配置。“Connection type”选择“Serial”,“Serial line”填写COM3,“Speed”填写115200,然后点击左侧导航栏“Connection”内的“Serial”,检查接口名称和速率是否与上面填写的一致,“Data bits”填写8,“Stop bits”填写1,“Parity”选择“None”,“Flow control”选择XON/XOFF,至此软件配置完毕。连接套件,按下Open,就可以开始串口调试了。
需要注意的是,每次重新连接或重启套件,都需要重新打开调试软件进行连接。
4.2串口调试命令
接下来将对一部分常用命令进行讲解。
4.2.1help 显示命令列表。
连接到套件的串行接口后,会看到一个空白的终端屏幕,上面会显示我们输入的任何字符。使用“help”命令可以显示一个列表,所有可用串行命令及其用法都在其中。
包含的命令如下表格所示:
命令 | 参数 | 描述 |
help | 显示所有的串行命令及其功能和描述。 | |
exit | 退出调试 | |
list | 列出所有注册的用户 | |
add | USERNAME | 以此名称来注册一个用户 |
add | -s | 停止注册过程 |
del | USERNAME | 删除该用户 |
del | -a | 删除所有用户 |
rename | Old new | 重命名 |
verbose | <0|1|2|3> | 调整详细模式等级 |
camera ir_pwm | <0~100> | 调整红外补光灯亮度 |
camera white_pwm | <0~100> | 调整白色补光灯亮度 |
version | 显示版本信息 | |
save | 将人脸信息存入flash中 | |
updateotw | 开启OTW下载模式 | |
reset | 重启MCU | |
emotion | <0|2|4|7> | 开启情绪识别,选择可识别情绪种类 |
liveness | <on|off> | 打开或关闭生物识别 |
detection resolution | < qvga | vga > | 配置检测分辨率,并复位 |
display output_mode | < rgb | ir > | 配置RGB或IR摄像头图像作为屏幕显示 |
display output_device | < usb | riverdi > | 选择终端显示设备 |
display interface | < loopback | infobar > | 配置GUI是否显示 |
wifi | <on | off> | 开启或关闭WiFi功能 |
wifi reset | 重置WiFi连接 | |
wifi credentials | 显示配置的WiFi名和密码 | |
wifi credentials | [SSID] [PASSWORD] | 设置WiFi名和密码 |
wifi ip | 显示IP地址 | |
wifi erase | 完全清除WiFi设置 | |
app_type | < 0 | 1 | 2 | 3 > | 更改应用类型 |
low_power | <on | off> | 开启或关闭低电量模式 |
4.2.2list列出所有注册的用户
在窗口中输入“list”,将列出当前注册到系统中的所有用户。
4.2.3add 手动添加用户
输入此命令后将会开始注册一个人脸,并用这个名字进行命名。
4.2.4del 手动删除用户
可以使用del USERNAME来删除指定用户:
也可以使用del -a删除所有用户:
4.2.5rename oldnew 对用户进行重命名
Rename命令可以对用户进行重命名,old为旧名字,new为新名字。
可以看到,用户名已经修改好了。
4.3.6verbose 详细模式
该模式下共有0,1,2,3四个等级,对应四种不同的详细模式等级,其展示的调试信息数量也不尽相同。
verbose 0:静默模式,不显示调试信息。
verbose 1:1级详细模式,信息显示如下图:
其中,[9938.301]等信息是时间戳,Facedetected – dt 指的是识别到图像内出现人脸时所用的时间,User:abcd –rt 指的是识别出该人脸信息属于哪一个注册用户所用的时间。
verbose 2:2级详细模式,信息显示如下图:
其中 IR Fake Face!说明红外识别发生问题,后面的sim指的是识别准确度,这里我认为这应该是识别到的人脸与登记过的人脸的相似度。
verbose 3:3级详细模式,与2级模式相比,除了在调试窗口显示信息外,在图像界面也显示了四条参数。
其中sim仍然是识别相似度,blur=0是模糊检查通过,rgbLive=1是彩色图像识别通过,irLive=1是红外图像识别通过,front是人脸距离方位判断,只在注册时变化。
4.3.7 camerair_pwm 红外补光灯调节
套件的双摄像头适配器有两个IR(红外) LED补光灯,他们的亮度由PWM信号的占空比来控制,在红外光线照明不足时可以通过此命令来调整红外补光亮度。命令及调整前后对比如下所示。
4.3.8 camerawhite_pwm 白光补光灯调节
套件的双摄像头适配器有两个whiteLED补光灯,他们的亮度由PWM信号的占空比来控制,在外界光线照明不足时可以通过此命令来调整白光补光亮度。命令及调整前后对比如下所示。
4.3.9version 打印版本信息
使用version命令可以显示套件目前使用的内置固件版本信息。
4.3.10save 保存用户信息
上文提到过,当套件重启时将删除所有用户信息,如果想将信息保存下来,就要用到save命令。使用save N时,N指的是要保存的用户数,按照添加顺序保存。或者直接使用save,保存所有用户信息。
4.3.11reset 软件复位
当需要软件复位套件时,可以使用reset命令。要注意的是,串口调试工具也要同时重新连接。
4.3.12emotion 配置情绪识别
该套件除了支持人脸识别外,还支持情绪识别。 要想开启此功能,需要通过串行命令启用。
在串口调试工具的窗口内,使用命令“emotion0”、“emotion 2”、“emotion 4”或“emotion 7”,来开启不同等级的情绪识别,数字指的是情绪识别可以分辨的情绪类型。具体情绪类型见下表:
由表格可以看到,识别的情绪种类越少,准确率越高。同时无特殊表情时作为默认状态,无信息提示。
但是我在使用情绪识别功能时,发现无法设置。从下图可以看到,情绪识别功能已经开启,但是在识别过程中并没有显示情绪信息(此时我脸上是大笑表情,对应“Happy”),包括调试窗口也没有相关信息,不知道是套件配置原因还是内置固件版本问题,或者需要对工程文件进行设置。
4.3.13liveness 配置活体检测
此命令可以关闭或打开活体检测功能(默认开启)。执行此命令后套件将会重启。
4.3.14 detectionresolution 配置检测分辨率
此套件在执行人脸识别时有两种检测分辨率,分别是VGA和QVGA模式。默认情况下,套件在 VGA 模式下运行。虽然 VGA 需要更多的处理能力,这可能会轻微影响检测时间,但与使用 QVGA 相比,VGA 模式提供的更高分辨率也使得其拥有了大约两倍的检测/识别范围。两个模式的区别将在下表中展示。
更改检测分辨率不会影响视频输出的分辨率,只会影响传递给推理引擎的图像的分辨率。执行此命令后套件将会重启。另外,从表格中可以看到,两种模式所耗时间相差不大,所以通常情况下都使用VGA模式。
4.3.15 display 显示输出配置
此命令可用于在来自 IR 和 RGB 摄像头的输出之间切换,功能上与按键3相同。
同样,这里调整的只是展示给用户的图像,对于MCU和人脸识别的处理过程来说,是不产生影响的。
4.3.16 display output_device 显示输出配置
该套件除了支持将显示的图像通过USB输出到电脑外,还支持Riverdi显示器输出。这里不做过多介绍,感兴趣的朋友可以去自行了解。
4.3.17 displayinterface 配置GUI是否显示
此命令可以关闭或开启GUI,与按键1功能相同。
4.3.18 WiFi模式相关命令
a.wifi<on/off> 开启或关闭WiFi功能。当WiFi功能关闭时输入wifi on命令开启WiFi功能,将会显示如下信息:
当WiFi正在尝试连接时使用此命令,将会显示如下界面:
如果WiFi已经打开并且连接成功,那么将会显示这个界面:
最后,如果Wi-Fi已经打开并尝试连接但由于提供的账号密码错误等而失败,将收到以下消息:
当WiFi处于开启状态时使用wifioff命令,
如果输入命令前WiFi已经关闭,那么将显示:
在这里我遇到了一个问题,当我已经配置了WiFi账号密码并且成功连接后,重启套件,开启WiFi功能(当然如果重启前未关闭的话将默认开启),此时WiFi将处于不断搜索尝试连接的状态。如果没有链接成功或者WiFi路由器关闭,套件将会一直处于此状态。此时尝试使用wifi off关闭命令是无效的。
甚至wifi reset 命令也无效。这里我解决方法是直接使用wifi erase命令擦除wifi账号密码信息,再进行wifi off关闭。
b.wifi reset 重置WiFi命令
输入该命令时将会重置套件的WiFi模块,设置WiFi账号密码后也需要进行重置。
c.wifi credentialsWiFi账号密码相关命令
输入wifi credentials账号 密码 时将会对WiFi账号密码进行设置:
如果直接输入wificredentials将会显示已经设置的信息:
如果还没有设置WiFi账号密码,将会给出如下提示:
d.wifi ip获取套件WiFi地址
输入该命令将会显示套件的ip地址,未连接时显示如下:
当连接上WiFi后将显示:
这里我连接的是手机热点:
可以看到WiFi地址是相符的。
e.wifi erase清除WiFi信息
使用该命令后将会完全擦除WiFi的配置信息。
4.3.19app_type配置应用程序类型
该套件共有五种不同的应用程序类型,具体如下表:
每种功能的不同参数如下:
如上表所示,各种应用类型配置极大地影响了套件的识别速度、面部数量和安全功能。每种应用程序类型都有自己的优点和缺点。
a. Light vs. Heavy
如表上图应用配置所示,与 E-Lock(重)应用类型相比,E-Lock(轻)识别人脸的速度大约快500 毫秒。然而,重型配置能够识别大约两倍于“轻型”应用程序类型的面部数量。在门访问(轻)与门访问(重)模型中可以看到识别速度和最大面部数量之间的类似权衡。
两者之间的差异归结为用于执行推理管道识别阶段的AI模型的差异。轻模型旨在更快地识别人脸,但在可识别的面部总数方面受到更多限制,而重模型针对可识别的最大人脸数进行了优化,导致识别速度较慢轻型模型。
在重型和轻型模型配置之间进行选择归结为性能与用户数量的问题,这通常由用例决定。
b. E-Lock vs. Door Access vs.UserID
E-Lock 和 Door Access以及应用程序类型都具有活体检测和反欺骗功能,但是,两者之间的主要区别在于最大可识别面部数量和功耗之间的权衡。
与“门禁”应用程序类型相比,等效的重/轻E-Lock应用程序可以识别的面孔要少得多,但使用E-Lock应用程序类型的优势在于E-Lock使用IR摄像头进行人脸识别到RGB相机。虽然 RGB 摄像头提供了更多的特征数据,从而允许识别更多的人脸,但 RGB 在光线不足的条件下很难响应,而红外摄像头要容易得多。因此,红外摄像机对比RGB 摄像机识别过程所需的耗电照明器 LED 的依赖较少。因此,一般来说,在电池供电的用例中推荐使用 E-Lock 应用程序类型,在这些用例中,持续运行耗电 LED 可能会造成能量问题,从而消耗电池的很大一部分电量。
与电子锁和门禁应用类型不同,UserID 应用类型没有任何活体检测/反欺骗功能。 UserID应用程序类型旨在复制不再活跃的原始 SLN-VIZN-IOT 套件。然而,与最初的 SLN-VIZN-IOT 套件不同,SLN-VIZNAS-IOT 的远程注册和低功耗模式功能在此版本的 UserID 应用程序中完全可以进行应用。
4.3.20low_power低功耗模式
使用low_power命令可以开启套件的低功耗模式。该模式建立了以RT106F芯片为核心的低功耗模式,它在电池供电的应用中非常有用,例如电池供电的门锁。当启用低功耗模式时,套件将根据下图中的规则自动进入休眠状态:
如上所示,当套件启动并启用低功耗模式时,两个计时器将启动,用于确定套件何时应入睡。一个定时器仅在检测到面部但未识别时使用,另一个定时器用于根本没有检测到面部。
默认情况下,未检测到面部时使用的“No_Face_Timer”将导致超时并在未检测到面部 15 秒后断电。“Has_Face_Timer”用于检测到人脸但未被识别的情况,默认情况下,在帧中出现无法识别的人脸时,将在 25 秒后超时并断电。
触发注册或注销将重置“No_Face_Timer”并在注册/注销期间暂停它,以便这些进程都不会被试图进入睡眠状态的系统中断。
一旦系统进入“识别失败”状态,距离进入低功耗模式还有5秒,屏幕上方会突出显示如下“识别超时”信息,提示系统即将断电。
为了防止在电路板断电时删除注册的人脸,当启用低功耗模式时,注册的人脸会自动保存到闪存中,这与禁用低功耗模式时必须在重置时明确地将人脸保存到闪存中的方式不同。
进入休眠状态后,开发板只能被图 95 中提到的触发器唤醒:低功耗超时流程:PIR 传感器 *、按键3和 USB 电源(对套件进行电源循环)。触发唤醒将使电路板恢复正常操作。
五、注册用户的无线管理
该套件提供了基于安卓系统的用户管理APP,Face Manager,大家可以在提供的文件中找到。
首先保证手机蓝牙为打开状态,套件的蓝牙模式应该是默认打开的。打开软件后,我们选择蓝牙模式:
进入软件后可以通过页面右下角的加号标识搜索设备。找到套件后进行连接。第一次连接时会进行套件的账号密码设置,就相当于给这个套件进行了命名。我这里已经命名过了,所以具体命名过程不在展示。
然后可以从左上角进入菜单栏,并在ManageUsers界面看到该套件上注册的所有人脸,并且可以进行删除等操作。
更多的功能欢迎大家自行探索!
六、评测总结
这款套件是一款十分完整的产品,集成了人脸识别需要用到的各种软硬件资源。可移植性,开发性也很强。我在使用过程中遇到的一些问题已经在大大通上发帖,欢迎各位答疑解惑,讨论关注!https://www.wpgdadatong.com/cn/question/detail/20983
最后感谢社区对测评活动的大力支持,希望以后能接触到更多的优秀产品!
提取码:6s2w