張修世 趙路 劉坤 趙佳
關(guān)鍵詞:面部識別;登錄認證;總體架構(gòu)
煙草行業(yè)一直以來高度重視信息化工作,并通過大量投入實現(xiàn)了高度的自動化。在實現(xiàn)自動化的基礎(chǔ)上,也實現(xiàn)了信息化,并向著智能化方向不斷前進。因為企業(yè)的保密特點,對于計算機終端來講,也必須符合保密管理標準[1]。在卷接包車間,大量高速自動化設(shè)備被投入使用,相配套的信息系統(tǒng)也上線并運行。但目前大多數(shù)系統(tǒng)的登錄認證方式采用密碼或刷卡方式。由于卷接包車間人員眾多,存在一些員工記不住復(fù)雜密碼、隨身攜帶的卡易丟失等問題。因此,迫切需要采用一種合適的認證方式實現(xiàn)系統(tǒng)登錄,在滿足網(wǎng)絡(luò)安全標準的同時增強員工的便利性,提高一線員工對信息化建設(shè)成果的獲得感。
一、面部識別技術(shù)及優(yōu)勢
面部識別是一種基于人的臉部特征信息進行身份識別的生物識別技術(shù)。它使用攝像機或攝像頭來采集包含人臉的圖像或視頻流,然后自動在圖像中檢測和跟蹤人臉,并進行一系列面部特征處理相關(guān)的技術(shù),通常也被稱為人像識別或人臉識別[2]。
從生物特征識別的角度來看,面部識別使用的概率較高,并具有諸多的優(yōu)勢。一是操作較為隱蔽。面部識別技術(shù)可使用普通攝像頭作為識別信息獲取設(shè)備,以非接觸的方式在識別對象未察覺的情況下完成識別過程。二是識別精確度高。與其他生物識別技術(shù)相比,面部識別技術(shù)的識別精確度處于較高的水平,誤識率和拒認率較低,對于身份證照片的準確率甚至超過了99.9%。三是安全性高。在安全性要求較高的場所,面部識別技術(shù)要求識別對象必須親臨現(xiàn)場,他人難以冒充。面部識別技術(shù)所獨具的活性判別能力,可確保他人無法通過照片或其他方式欺騙認證系統(tǒng)[3]。四是使用成本低。采集人臉的攝像頭可以是普通攝像頭或筆記本內(nèi)置攝像頭;因技術(shù)成熟,面部識別技術(shù)已廣泛應(yīng)用于門禁、員工考勤等場景,學(xué)習(xí)和使用成本較低[4]。
二、系統(tǒng)總體架構(gòu)
如圖1 所示,在卷接機或包裝機旁,設(shè)置工控機,該工控機采用觸摸屏方式便于員工操作。在觸屏的基礎(chǔ)上配置數(shù)字小鍵盤、讀卡器和攝像頭等輸入設(shè)備。上位服務(wù)器采用虛擬機的形式安裝Windows Server,存儲子系統(tǒng)采用Oracle 數(shù)據(jù)庫。用戶登錄子系統(tǒng)可以選擇賬號密碼方式登陸、刷卡登錄、掃二維碼登錄或面部識別登錄。
系統(tǒng)總體架構(gòu)面部識別技術(shù)在卷包在線系統(tǒng)登錄認證系統(tǒng)中的應(yīng)用,使登錄認證證更加安全、可靠,方便了一線員工操作,登錄系統(tǒng)統(tǒng)的效率得到有力的提升(見圖1)。
三、應(yīng)用實施
(一) 登錄認證原理圖
面部識別登錄原理如圖2 所示。
(二)軟件實現(xiàn)
面部識別主要功能見圖3。
其主要代碼實現(xiàn)如下:
// 初始化程序
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”];
// 界面跳轉(zhuǎn)
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;}
面部識別控制程序跳轉(zhuǎn)的算法流程如圖4 所示。通過現(xiàn)場工控機加裝的攝像頭采集的面部圖像與數(shù)據(jù)庫中的基礎(chǔ)數(shù)據(jù)進行比對,若一致,則跳轉(zhuǎn)到對應(yīng)的程序界面;若不一致,則返回到登錄界面,進行再次認證或采取其他認證方式進行登錄。
四、結(jié)束語
總而言之,伴隨信息技術(shù)的發(fā)展,人們越來越注重信息系統(tǒng)登錄認證的便捷性和安全性。在確保滿足工控系統(tǒng)安全的基礎(chǔ)上,此次應(yīng)用研究所提出的方案,在一定程度上提升了工作效率,促使企業(yè)信息化管理更加精細化和人性化,同時提高了一線員工的獲得感。
作者單位:張修世 趙路 劉坤 安徽中煙工業(yè)有限責(zé)任公司阜陽卷煙廠趙佳 長沙艾特科技開發(fā)有限公司