APP下载

基于人脸识别的连连看游戏开发

2021-01-25扈乐华顾思思

湖南科技学院学报 2020年5期
关键词:折线人脸识别人脸

扈乐华 顾思思 李 文

(1.湖南科技学院 电子与信息工程学院,湖南永州 425199;2.湖南科技学院 教务处,湖南永州 425199)

1 系统要解决的关键问题

开发小游戏程序关键在于解决两个问题,第一个是连接判断算法,另一个是人脸识别算法。

1.1 连接判断算法

连接判断的方法有很多,常用的有分类判断算法、A-Star 算法和广度优先算法[1]。其中分类判断算法是根据具体连线的次数来进行分类判断 的,存在三种情况:有0 个折线,1 个折线,2 个折线,不能超过三个折线;A-Star 算法是在静态条件下求最短路径使用的最有效的一种直接搜寻方法,也是一种非常有效的解决搜索问题的算法,算法的效率与所采用的预估值差值相关联,预估值越接近真实值,算法的速度越快;广度优先算法将所有满足条件的块存放在同一个集合里,只需要简单判断另一个点是否也在此集合当中即可。

1.2 人脸识别算法

判断人脸识别是图像处理中一个非常重要的课题,可以包括四个步骤:人脸图像数据采集、人脸图像数据预处理、人脸特征提取和人脸的识别[2]。本系统对算法要求不高,需要在静态图片下识别特征比较明显的人脸图片,采用常用的 AdaBoost 算法检测出人脸[3],并将人脸范围标注出来。然后按照一定比例进行裁剪缩放形成所需要的图像资源。

2 系统设计

系统主要包括四个大的模块实现,图像块模块、图像获取模块、界面设置模块、参数配置模块。如图2 所示:

图1 系统模块图

图像块模块:主要包括图像块类、图像块编号类、图像块列表类。

图像获取模块:主要包括图像获取、人脸识别、缩放、剪切处理类。

界面设置模块:主要包括游戏首界面、文件浏览界面、游戏主界面。

参数配置模块:主要包括游戏时间、游戏连线、游戏音乐、游戏总体设置。

3 关键算法的实现

3.1 连接判断算法

系统采用分类判断算法,具体划分为如下3 种情况来分析。

⑴0 折线(一条直线连接)

将连接的方式分为水平和垂直两个方向,如图2 所示,只需要简单判断两个点之间有没有其他障碍物。

图2 0 折线

⑵1 个折线(两条直线)

此连接方式也具有两种方式,水平方向检测以及垂直方向检测,如图3 所示只要做两个方向的检测,检测一条路径上是否存在障碍物,最终来判断是否可连接。

图3 1 折线

⑶2 个折线

2 个折线可以分解为1 个折线再加上一个水平方向检测或垂直方向检测,如图4 所示。垂直和水平方向分别穿过红点的直线由四条,遍历四条直线上两个红点之间的所有点,只要存在点满足存在一个点至一个红点通过水平或垂直检测,同时到另一个红点可通过一个拐角连接检测。

图4 2 折线

3.2 人脸识别算法

系统主要采用 AdaBoost 算法实现,AdaBoost算法重点在于弱分类器和强分类器。重点介绍弱分类器选取和训练。

首先选取弱分类器,基本的算法公式如下。

期中参数f 是特征,θ 是阈值,p 指的是不等号方向,x 表示检测子窗口。针对每一个特征f,训练对应的弱分类器 h(x,f,p,θ)。

最后训练弱分类器主要可以分文以下四个步骤:

⑴针对每一个特征f,计算所有对应的特征值;

⑵排序特征值;

⑶对排序好的特征值的计算;

⑷阈值分类误差值的计算,公式如下:

4 系统实现

系统实现主要采用 Java 开发语言,Android Studio 集成开发工具进行程序开发,PC 端的模拟器采用开源的夜神模拟器。按照模块划分依次实现,并经过多种方式的测试,游戏运行流畅。本游戏主要可以在Android 智能终端以及PC 端Android 模拟器运行。最终游戏实现的主界面效果如图5 所示。

图5 游戏主界面

结 语

基于人脸识别的连连看游戏软件,实现了四大功能模块,即图像块模块、图像获取模块、界面模块、参数配置模块。其中要解决的关键问题是实现人脸识别算法以及连接判断算法。游戏程序界面美观,趣味性强,也具备较强的可玩性。该款游戏与同类游戏相比,客户可以根据需求上传自己的个性照片。但是,采用的人脸识别算法也存在完善空间,对像素差或者人脸模糊图片识别并没有达到理想效果,在后期工作中,需要更加进一步对人脸识别算法进行研究,达到更加高的识别效率。

猜你喜欢

折线人脸识别人脸
人脸识别 等
有特点的人脸
揭开人脸识别的神秘面纱
三国漫——人脸解锁
折线的舞台——谈含绝对值的一次函数的图象
折线
折线图案
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人
长得象人脸的十种动物