董佳慧 陈蕾 杨凯 张兵奇 高廷磊

摘要:基于目前科技发展飞速现状,人脸识别系统以将普遍应用于人们的生产生活当中,供不应需的现状肉眼可见,简化人脸识别系统的制作程序以达到更为快捷方便的生产流程迫在眉睫,本项目立足于OpenCV的图像识别模块设计了一种人脸识别班级学生签到应用。该设计采用OpenCV作为主要控制识别模块,通过图像识别对目标人脸进识别、追寻,同时采用投频技术以及安卓App应用设计学生人脸识别签到设备,主要从图像识别模块、机械模块,无线连接安卓应用开发四个模块进行设计。

关键词:图像;舵机;安卓应用;人脸识别;目标锁定

中图分类号:TP311        文献标识码: A

文章编号:1009-3044(2021)04-0179-02

1意义与背景

科技发达的当代,人脸识别系统已广泛用于学校,社区,车站,网上支付等方面。根据大数据统计,我国人脸识别在很大程度上占据了地球村市场,这体现了我国人脸识别系统的市场竞争优势。2016,我国人脸识别行业市场规模已经到达了16亿元,同年增长三分之一,增速比前一年增加了将近4.71个百分点。大数据分析统计得到预测到2021年,全球人脸识别市场将达到67亿美元,按预计期间的增长率高达18%。根据科技发展现状,人脸识别系统将普遍用于人们的生产生活当中,商业需求也更为巨大,简化人脸识别系统的制作程序以达到更为快捷安全的生产流程迫在眉睫。当下大学生受家长及同学的影响一旦进入大学便放飞自我在上课时间旷课睡觉或请他人代课,本设计基于此普遍现象,采用OpenCV作为控制系统进行人脸识别和统计,利用无线连接授课教师及班主任相应的安卓应用系统实现人脸识别签到功能。

本设计主要从该项目的意义和背景入手,叙述基于OpenCV人脸识别签到系统的设计和实现。

2软件设计

软件设计主要包括目标物体的追寻即步进电机的控制和摄像头人脸最终捕捉识别。软件设计的主体语言为MicroPython。通过编程OpenCV分别于PCA9684舵机驱动板和TB6613电机驱动板进行通信。用import来导入该设计所用的库函数,分别是sensor, image, pyb, time,首先需要初始化感光元件,使用sensor.reset()函数。切记使用sensor.set_auto_whitebal(False)关闭白平衡。

sensor.reset()初始化感光元件

2.1 MicroPython语言

ANSIC是MicroPython语言的基础,它的语法基本上和Python3用到的一样。除此之外它还具有单独的私人解析系统、编译系统、虚拟机和Class等。它可以利用32ARM处理器(32比特率类型),如STM32F401等单片机。相较于C语言而言,它的优势在于其具有丰富的库函数,同时更便于解读有更好的易读性,用户在进行编程时可直接利用库函数来进行编程设计软件代码。

2.2物体的坐标系与位姿

为来描述物体的空间位置和姿态,我们采用笛卡尔坐标系的建立和空间物体位姿的表示。在编程中通过函数调用实现物体空间位置的确定和姿态描述。

2.2.1笛卡尔坐标系

在空间中有两条或三条数轴相较于原点,两条数轴构成了一个平面,三条数轴构成了一个立体的空间。如果数轴上的刻度一致,形成的这个坐标系就是我们要用的笛卡尔坐标系。笛卡尔坐标系可区分为笛卡尔直角坐标系和斜角坐标系两种形式,主要区别及区分的关键在于它们的数轴之间是否具备垂直关系;在本次研究中我所使用的坐标系为直角坐标系,笛卡尔直角坐标系在空间上又被区分为二维直角坐标系和三维直角坐标系。在笛卡尔直角坐标系中,我们把坐标轴的正方向进行自主设定,坐标系中相应点的位置就会是一个完全相反的值。根据轴与轴之间正方向的关系,又可以把笛卡尔直角坐标系如电磁感应一样利用左手右手把它分为左手和右手直角坐标系。

2.2.2位姿

位姿(Pose)有两个属性,分别是位置和旋转。在二维直角坐标系下,平面中某点的位置可以用x轴和y轴的刻度表示为(x,y),同理在三维直角坐标系中,空间中的点可以用(x,y,z)来表示。但是在对物体运动的研究中,它不能被看作成一个没有体积的点,在同一个点上可以有不同的倾角,而旋转就是用于刻画物体在当前坐标系下在各个轴上的倾角。在二维坐标系中,以乌龟为例,将乌龟头所指的方向作为乌龟的朝向,建立如图坐标系,用x,y来表示乌龟的位置,用θ来表示乌龟的旋转。本次实验中确定图像中目标物体的边界的方法是:第一步是对每个像素和它的领域的状态进行检测,通过检测来确定每个像素中那个像素是处于某物体的边缘之上的。将处于物体边缘上的像素称为图像的边缘点。我们用图像中每个点像素的灰度级来反映每个像素能够符合边缘像素要求的程度的话,这些图像点我们把它称作为边缘图像[7]。

2.2.3高斯滤波

我们利用高斯滤波的来减少图片中的噪声,在图像的处理当中它得到了广泛的应用。我们提到的高斯滤波就是对整个图像进行加权平均来减少噪声的一个过程,在进行高斯滤波处理过后我们得到的图像的各个像素点的数据,都是在该点和周围各个像素点进行加权平均得到的结果。高斯滤波可以让图像中的噪声点大大降低,我们利用对图像进行高斯滤波来而降低了图像信息的误差传递过程中的失真现象。

2.2.4真彩色增强

真彩色图像的定义就是如果彩色图像即将到了人眼能够分辨的最大颜色数目的程度[8]。我们想达到真彩色增强的效果,就需要对R、G、B各分量直接使用,要是我们灰度图像进行增强方法就可以增加图像中那些肉眼可见的细节像素点的亮度,但是经过增强处理后得到的图像中的色素点可能会变得没有意义。这种情况的发生是因为在增强中处理的那个像素点的R、G、B这三个分量都发生了大幅度的改变,以至于它们的相对数值和原图相比较发生了改变,就是这种原因导致了原图像的颜色比原来的颜色数据发生了很大改变[9],而且发生的这种改变很难被我们人工或者数据控制。因此要进行真彩色灰度图像点色彩增强就需要要在不同颜色的空间中来操作,特别是在和人的视觉向吻合的H、S、I空间中。也就是说要进行增彩色灰度色素增强就要把RGB图像进行转化变为HIS图像,这样亮度的部分和灰度的部分就分开了,这样我们就不会使得相对数值发生变化。采用真彩色增强方法的基本步骤如下:

① 将原始的RGB分量图像转化成HIS分量图像。

② 利用对灰度图增强的方法增强其中的某个分量图[10]。

③ 将得到的结果再转化成RGB分量图,这样是为了将其显示在彩色器显示[10]。

2.2.5彩图光线去除

彩图光线去除是指在原图像中删掉图像中明亮的光线。可以使用带有"zero ="参数的binary()方法执行此操作。

3调试

3.1硬件调试

进行硬件焊接和基本部件组装之后,就可以进行程序烧录了,在实验过程中,我们发现会出现摄像头转动角度误差,经检测发现该误差是由舵机误差引起,所以对舵机误差来源进行分析并解决。供电时使用3.7V的锂电池和充电宝8V供电口供电。

3.1.1舵机的误差来源

SG90舵机是数字比例舵机,属于模拟舵机的大类,精度弱于数码舵机,价格低廉。在实际应用过程中每个SG90舵机旋转角度与脉宽之间的映射都不同,也就是说角度分布不均匀。它的角度范围不一定就是严格的180o,而是在190o到170o之间。

舵机角度误差来源主要有以下几个方面:

① PWM信号的分辨率。这个PWM的分辨率取决于主控或者舵机驱动板。例如,Arduino UNO的PWM分辨率是8位,占空比的取值范围是0-255。PCA9685的PWM分辨率是12位,占空比的取值范围是0-4095。一般来讲,舵机控制精度的高低在于其信号的分辨率,分辨率越高的同时意味着其控制精度也更高。

② 电位计分辨率。电位计用于检测舵机旋转角度,给舵机的控制信号提供角度反馈。如果电位计自身的分辨率不高的话,也就不能给控制电路提供准确的角度反馈,电位计的分辨率取决于电位器线圈的总匝数。

③ 减少齿轮组的材料和提高其精度。

3.2软件调试

在OpenCV IDE中完成程序的编写,连接OpenCV与电脑,将源代码拷贝至OpenCV内部存储器中脱机运行,此时该人脸识别目标物体的准确率不高。经分析发现,误差产生的原因在于当相机进行移动时其相对位置发生了改变,而在机器停止运动时其摄像头还在进行轻微的抖动。从而造成所在采集的图像不准确。

为了使识别精度提高,在摄像头位置发生改变时会跳过一些帧数使摄像头稳定下来,在调试前数值为20即跳过30帧,现将其改为40,所用函数为sensor.skip_frames(40)。改变该参数后准确率明显提高。

4测试方案

硬件搭建及误差分析修改和软件调试完成以后,开始整体测试。测试主要包括目标物体的识别和定位测试和安卓应用连接统计测试。本文主要章节叙述了目标的定位和识别测试。

测试方案:

将人脸识别签到系统放置在距离目标物体较远的位置,并在该段距离放置障碍物,在目标物体周围放置较多与目标物体类似的物体,在目标物体上贴上AprilTag。待代码烧录完成后,打开电池组电源进行测试。硬件调试结束后将硬件与手机连接同一个WIFI信号同时打开手机App测试是否能够传送数据和实时更新测试结果:

该机器人可以准确地确定目标物体的位置,在目标移动过程中可以绕过障碍物识别目标物体。与手机连接同一个WIFI的机器能实时传送数据,实现签到系统的目的。

参考文献:

[1] 李世尧,李辉,周奇,等.用于环境检测的智能窗户装置的设计与实现[J].仪表技术,2018(10):36-38.

[2] 王邦洲,赵凯文,胡彬,等.实验室消防机器人[J].电脑知识与技术,2019,15(29):201-203.

[3] 陈天元.焊接机器人视觉焊缝跟踪系统研究[D].南京:东南大学,2018.

[4] 潘丽静,张虹波,周婷婷.全自动模拟目标搜救系统的设计与实现[J].电脑知识与技术,2016,12(28):178-180.

[5] 黄贞华.基于32位嵌入式单片机系统的图像采集与处理技术的研究[D].汕头:汕头大学,2005.

[6] 李瑾泽.车辆识别中的边缘检测方法研究[D].太原:太原理工大学,2012.

[7] 张国政.频谱脸与FLD结合的彩色分量特征融合人脸识别算法研究[D].济南:山东大学,2011.

[8] 李一.浅析彩色图像增强原理及算法[J].河南科技,2006(4):32-33.

[9] 牛姣蕾,万里青,高宏昌.机载CCD数字图像的增强[J].电光与控制,2007,14(6):139-143.

【通联编辑:梁书】