APP下载

面部识别技术在卷接包车间在线系统登录认证的应用研究

2023-09-17张修世赵路刘坤赵佳

中国新通信 2023年13期

张修世 赵路 刘坤 赵佳

关键词:面部识别;登录认证;总体架构

烟草行业一直以来高度重视信息化工作,并通过大量投入实现了高度的自动化。在实现自动化的基础上,也实现了信息化,并向着智能化方向不断前进。因为企业的保密特点,对于计算机终端来讲,也必须符合保密管理标准[1]。在卷接包车间,大量高速自动化设备被投入使用,相配套的信息系统也上线并运行。但目前大多数系统的登录认证方式采用密码或刷卡方式。由于卷接包车间人员众多,存在一些员工记不住复杂密码、随身携带的卡易丢失等问题。因此,迫切需要采用一种合适的认证方式实现系统登录,在满足网络安全标准的同时增强员工的便利性,提高一线员工对信息化建设成果的获得感。

一、面部识别技术及优势

面部识别是一种基于人的脸部特征信息进行身份识别的生物识别技术。它使用摄像机或摄像头来采集包含人脸的图像或视频流,然后自动在图像中检测和跟踪人脸,并进行一系列面部特征处理相关的技术,通常也被称为人像识别或人脸识别[2]。

从生物特征识别的角度来看,面部识别使用的概率较高,并具有诸多的优势。一是操作较为隐蔽。面部识别技术可使用普通摄像头作为识别信息获取设备,以非接触的方式在识别对象未察觉的情况下完成识别过程。二是识别精确度高。与其他生物识别技术相比,面部识别技术的识别精确度处于较高的水平,误识率和拒认率较低,对于身份证照片的准确率甚至超过了99.9%。三是安全性高。在安全性要求较高的场所,面部识别技术要求识别对象必须亲临现场,他人难以冒充。面部识别技术所独具的活性判别能力,可确保他人无法通过照片或其他方式欺骗认证系统[3]。四是使用成本低。采集人脸的摄像头可以是普通摄像头或笔记本内置摄像头;因技术成熟,面部识别技术已广泛应用于门禁、员工考勤等场景,学习和使用成本较低[4]。

二、系统总体架构

如图1 所示,在卷接机或包装机旁,设置工控机,该工控机采用触摸屏方式便于员工操作。在触屏的基础上配置数字小键盘、读卡器和摄像头等输入设备。上位服务器采用虚拟机的形式安装Windows Server,存储子系统采用Oracle 数据库。用户登录子系统可以选择账号密码方式登陆、刷卡登录、扫二维码登录或面部识别登录。

系统总体架构面部识别技术在卷包在线系统登录认证系统中的应用,使登录认证证更加安全、可靠,方便了一线员工操作,登录系统统的效率得到有力的提升(见图1)。

三、应用实施

(一) 登录认证原理图

面部识别登录原理如图2 所示。

(二)软件实现

面部识别主要功能见图3。

其主要代码实现如下:

// 初始化程序

pEngine=IntPtr.Zero;int retCode=-1;

i f ( detect FaceMa x Num<1||detect FaceMax Num>50 )

{detectFaceMaxNum = 10;}

retCode = ASFFunctions.ASFInitEngine(detectMode,detectFac

eOrientPriority,detectFaceMaxNum, combinedMask, ref pEngine);

return retCode;

// 面部圖片抓取

DateTime detectStartTime=DateTime.Now;

Image srcImage=rgbVideoSource.GetCurrentVideoFrame();

CheckImageWidthAndHeight(ref srcImage);

if (srcImage.Width % 4 != 0)

{rcImage=ImageUtil.ScaleImage(srcImage, srcImage.Width -

(srcImage.Width % 4), srcImage.Height);}

// 面部检测

MultiFaceInfo multiFaceInfo=new MultiFaceInfo();

int retCode=imageEngine.ASFDetectFacesEx(srcImage, out

multiFaceInfo);

if (retCode!=0)

{return;}

if (multiFaceInfo.faceNum<1)

{srcImage=ImageUtil.ScaleImage(srcImage,picImageCompare.

Width,picImageCompare.Height);

return;}

MRECT temp=new MRECT();

int rectTemp=0;

int maxFaceIndex=0;

for (int i=0; i < multiFaceInfo.faceNum; i++)

{ MRECT rect=multiFaceInfo.faceRects[i];

int orient=multiFaceInfo.faceOrients[i];

int age=0;int retCode_3DAngle=-1;int face3DStatus=-1;

float roll = 0f;float pitch = 0f;float yaw = 0f;

int rectWidth=rect.right-rect.left;int rectHeight=rect.bottomrect.

top;

if (rectWidth*rectHeight>rectTemp)

{maxFaceIndex=i;

rectTemp=rectWidth*rectHeight;}}

image1Feature=FaceUtil.ExtractFeature(image

Engine,srcImage,multiFaceInfo, ref retCode);

if (image1Feature==null||image1Feature.

featureSize<=0)

{return;}

float compareSimilarity=0f;

foreach (string temp in Fuser_List.Keys)

{FaceFeature feature = Fuser_List[temp];

float similarity=0f;

// 面部图像比对

imageEngine.ASFFaceFeatureCompare(image1

Feature,feature,out similarity);

if (compareSimilarity>0.8)

{ s t r i n g u r l = C o n f i g u r a t i o n M a n a g e r .

AppSettings[“SystemAddress”];

// 界面跳轉

s t r i n g c h r o m e P a t h = C o n f i g u r a t i o n M a n a g e r .

AppSettings[“ChromePath”];

string urlss=string.Format(“{0}?CardNumber={1}”,url,usr.

CardNumber);

chromePath = chromePath.Replace(“/”,”//”);

System.Diagnostics.Process.Start(chromePath,urlss);

break;}

面部识别控制程序跳转的算法流程如图4 所示。通过现场工控机加装的摄像头采集的面部图像与数据库中的基础数据进行比对,若一致,则跳转到对应的程序界面;若不一致,则返回到登录界面,进行再次认证或采取其他认证方式进行登录。

四、结束语

总而言之,伴随信息技术的发展,人们越来越注重信息系统登录认证的便捷性和安全性。在确保满足工控系统安全的基础上,此次应用研究所提出的方案,在一定程度上提升了工作效率,促使企业信息化管理更加精细化和人性化,同时提高了一线员工的获得感。

作者单位:张修世 赵路 刘坤 安徽中烟工业有限责任公司阜阳卷烟厂赵佳 长沙艾特科技开发有限公司