【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)

关键词:人脸识别、人脸比对、银行系统、软件工程、数据库

摘要:

在当今数字化时代,银行作为金融领域的核心机构,扮演着重要的角色。随着金融业务的日益复杂和规模的扩大,银行关键操作审计系统的设计变得尤为关键。这样的系统不仅需要确保银行内部的操作安全性和合规性,还需要提供高效的监控和审计能力,以应对日益增长的风险挑战。

银行关键操作审计系统的设计必须具备多个重要特征。它应该能够对银行内部的各种关键操作进行全面记录和跟踪,包括交易、授权、访问和权限管理等方面。这样可以确保任何操作都可以被准确地追溯和审计,从而防止潜在的欺诈、滥用和错误。

银行关键操作审计系统的设计是银行业务安全和合规管理的重要组成部分。通过全面记录和实时监控,这样的系统可以帮助银行有效应对风险,保护客户的资产和机构声誉,为金融体系的稳定和可持续发展做出贡献。

注意:

  • 代码中的数据库配置已经删除,需要自行创建数据库与插入数据才能执行相应代码
  • 笔者水平有限,本课程设计可能存在诸多纰漏以及不足,感谢理解
  • 该系统的报告书、测试文档、答辩ppt也在压缩包中
  • 欢迎各位点赞、评论、收藏与关注,大家的支持是我更新的动力,我会继续不断地分享更多的知识;

一、综述

1.1 编写目的

本文档的目的是为了详细描述银行关键操作审计系统的设计。该系统旨在确保银行内部操作的安全性、合规性和高效性,并提供全面的监控和审计功能,以应对风险挑战和保护银行及其客户的利益。
通过编写本文档,我们的目标是:

  • 系统设计的概述:介绍银行关键操作审计系统的设计目标、范围和基本原则,以便该系统的使用者能够全面了解系统的整体架构和目的。
  • 关键特征和功能:详细描述系统的核心特征,如全面记录和跟踪关键操作、实时监控和检测等。这些功能将有助于银行实现对操作的可追溯性、风险感知和及时响应。
  • 技术架构和组成部分:说明系统所采用的技术架构,我们将详细介绍系统的各模块及其功能。

通过本文档的编写,我们旨在为银行关键操作审计系统的设计和实施提供全面的指导和参考,以确保银行业务的安全性、合规性和高效性。

1.2 概要设计

本系统主要基于人脸识别和人脸比对技术,使用数据库储存用户信息。并包括登录界面、管理员界面和用户界面三个主要界面。

  1. 登录界面:
    登录界面是系统的初始访问点,用户需要通过有效的凭证进行身份验证才能登录系统。该界面将包括用户名和密码的输入框。用户使用用户名和密码进行登录。
  2. 管理员界面:
    管理员界面提供管理员对系统的管理。管理员将能够查和管理用户账户、注册用户和查看历史记录。
  3. 用户界面:
    用户界面是提供用户所需要的功能,用户可以在此界面查看和修改自己的账户信息、进行存取款等交易操作、查看操作历史等。在关键操作前,系统将利用人脸识别和人脸比对技术对用户进行身份验证,确保操作的安全性和合规性。

1.3 业务流程图

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第1张图片

二、系统总体结构设计

该系统的软件框架分为三层,为表现层、应用层与数据层。

  • 表现层主要功能为数据修饰及展示、发送数据访问请求以及调用人脸识别接口;
  • 应用层主要功能为相应访问请求,提供数据访问与修改接口、人脸比对接口调用以及活体检测接口;
  • 数据层主要功能为数据库设计、数据初始化、储存、增删查改。工具箱为整个创建开发过程提供相应工具,便于开发进行。

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第2张图片

2.1 前端程序

流程设置为从登陆界面进入,可以从登陆界面中选择打开注册界面完成注册,还可以选择身份,完成登陆操作,进入用户界面或管理员界面。其中管理员界面可以进行对于每个用户和管理员进行,可以完成对于所有历史记录的查看,为此存在大量数据的查看,提供了分页器和搜索器的查找,其中还存在注册功能,对信息和人脸信息的录入。对于用户界面以获取数据并完成数据整理展示到前端。对于用户和管理端可以打开相应的活体检测和人脸比对界面。

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第3张图片

2.2 后端程序

主要包括两部分:分别为应用层和数据层。应用层包括人脸比对模块和数据服务模块,人脸比对由活体检测和人脸比对构成,数据服务模块封装了各个界面需要对数据库的操作。程序模块图如下:

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第4张图片

三、类图及接口设计

3.1 类图设计

根据系统的总体架构设计以及概要设计,设计以下类图:
其中,有关前端的类图设计如下,具体可以概括为三个大类(包括登陆类、管理员类以及用户类):

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第5张图片

有关后端的类图设计如下(包括数据库操作类、人脸比对类、活体检测类以及工具类):

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第6张图片

3.2 接口设计

关于前端的三个大类,其中的ui生成函数以及槽函数过于简单冗多,这里不作多余的展示,主要展示前端所需要用到后端的四大重要操作接口设计(包括数据库操作部分、人脸比对部分、活体检测部分以及必要工具部分):

(1)数据库操作部分

  • close()
    该函数用于关闭数据库,释放与数据库的连接,通常在执行完数据库的相关操作后调用。
  • insert(table_name, df)
    该函数执行插入操作,用于往数据库中的数据表中插入数据。
  • delete(table_name, key_name, key)
    该函数执行删除操作,用于删除数据表中的特定数据。
  • select(table_name, key_name, key)
    该函数执行查找操作,用于查找数据表中的特定数据。
  • selectAll(table_name)
    该函数执行查找操作,用于查找数据表中的所有数据。
  • selectPage(table_name, key_name, key, orderByList, limitNum, offsetNum)
    该函数执行分页查找操作,用于通过页数和偏移量查找数据表中的特定数据,该函数在分页器Ui中被调用。
  • selectAllPage(table_name, orderByList, limitNum, offsetNum)
    该函数执行分页查找操作,用于通过页数和偏移量查找数据表中的所有符合数据,该函数在分页器Ui中被调用。
  • update(table_name, key_name, key, data)
    该函数执行修改操作,用于修改数据表中的相关数据。
  • select2Page(table_name, table_name_2, orderByList, limitNum, offsetNum)
    该函数执行分页查找操作,用于通过页数和偏移量查找两张数据表中的特定数据,这两张表通过’UNION’关键字拼接,该函数在分页器Ui中被调用。
  • select2(table_name, table_name_2, key_name, key)
    该函数执行查找操作,用于查找两张数据表中的特定数据,这两张表通过’UNION’关键字拼接。

(2)人脸比对部分

  • makefacemodel(imagepath)
    该函数读取imagepath(图片路径)中的照片,通过加载人脸识别模型、标记人脸中的68个关键点、提取特征等人脸检测操作将.jpg格式的人脸信息转换为.json格式的人脸信息,该操作有利于将用户的人脸信息存入数据库中。
  • checkfacemodel(id, imagepath)
    该函数从数据库中读取特定id的人脸信息,与当前摄像头拍照获得的人脸信息进行对比,判断二者的欧氏距离,当二者的欧式距离小于某个阈值时,判定人脸识别成功,该函数在用户进行关键操作审计时调用,用于进行人脸识别。

(3)活体检测部分

  • eye_aspect_ratio(eye)
    该函数用于计算眼睛纵横比,在活体检测函数中被调用。
  • mouth_aspect_ratio(mouth)
    该函数用于计算嘴巴纵横比,在活体检测函数中被调用。
  • nose_jaw_distance(nose, jaw)
    该函数用于算鼻子到左右脸的比率,在活体检测函数中被调用。
  • eyebrow_jaw_distance(eftEyebrow, jaw)
    该函数用于计算左眉毛上一点到左右脸边界的欧式距离,在活体检测函数中被调用。
  • livingDetecting(vs, tips, total_eye = 0, total_shake = 0, total_nod = 0, total_mouth = 0)
    该函数用于进行活体检测,其中参数 vs为摄像头,total_eye为眨眼次数,total_shake为摇头次数, total_nod为点头次数, total_mouth为张嘴次数。
  • takePhoto(vs,path)
    该函数用于对用户进行人脸识别时进行拍照。
  • detecting(vs,N)
    活体检测调用这个函数,N表示检测的次数 ,最后返回布尔值表示检测完成。

(4)必要工具部分

  • generate_id()
    该函数利用随机数生成和时间戳生成一个特有的不重复的id,在往数据表中插入数据时会被调用生成某条数据的id。
  • generate_random_name()
    该函数利用百家姓数据随机生成中文名或者英文名,在往用户表和管理员表中插入数据时会被调用生成某条数据的姓名。
  • get_common_mysql_error(error)
    该函数利用字典对应关系将特定的错误代码转换为易于理解的字符串。
  • insert_history(tablename, history)
    该函数用于往历史数据表中插入数据,当用户和管理员执行相关操作时会调用此函数。
  • get_project_rootpath()
    该函数用于获取当前脚本文件的绝对路径。
  • regular_restricted_input(lineEdit_name, target)
    该函数利用正则表达式对输入框中的输入内容进行限制,防止用户或者管理员通过非法字符访问到数据库内容对数据库中的内容造成破坏,该函数在登录界面、用户界面以及管理员界面的输入框中均被调用。
  • error_display(widget, error)
    该函数通过信息提示框显示错误信息,用于提醒用户或者管理员进行了某些错误操作,错误操作包括插入的数据中主键的值以及存在、前后两次输入的密码不一致等,这些错误信息有必要提醒用户。
  • encrypt_json(json_text, key)
    该函数对用户的人脸信息进行加密,存入数据库中的用户的人脸信息为加密过后的内容,这样有利于提高系统的安全性,密钥为用户的身份证号。
  • decrypt_json(encrypted_text, key):该函数对数据库中读取的用户的人脸信息进行解密,在人脸识别操作中被调用。

四、数据库设计

4.1 需求分析

由于本系统需要以银行系统作为关键审计的载体,因此建立了两种角色,对于管理员,数据内容包括数据id、姓名密码及权限,对于用户而言,包括用户id、姓名、生日、密码、余额、生日、电话号码、地址和人量信息。最后还有历史订单信息,管理员和用户都有相应的订单表,其中订单信息包括订单id、操作人id、操作内容、日期、操作详细和是否成功。

4.2概要设计

(1)account用户实体

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第7张图片

(2)administrator管理员实体

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第8张图片

(3)history历史记录实体

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第9张图片

4.3 总体ER图

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第10张图片

4.4 逻辑设计

(1)实体转化为关系模式
用户信息(用户id,真实姓名,身份证号,密码,余额,生日日期,电话号码,地址,人脸信息)
管理员信息(管理员id,真实姓名,密码,权限)
历史订单(订单id,操作类型,操作者id,日期,操作明细,是否成功)

(2)联系转化为关系模式
用户拥有历史订单(用户ID,历史订单编号)
管理员拥有历史订单(管理员ID,历史订单编号)

(3)实体与联系进行合并
account表设计:

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第11张图片

administrator表设计:

account_history表设计:

【课程设计】软件工程:银行关键操作审计系统(人脸识别、人脸比对)_第12张图片

五、效果展示

代码压缩包:
链接:https://pan.baidu.com/s/1rq45NPAjxKujwK5D9X3I-Q
提取码:fq5w
请查看代码压缩包中的视频

你可能感兴趣的:(课程设计,软件工程,数据库,人工智能)