張修世 趙路 劉坤 趙佳



關鍵詞:面部識別;登錄認證;總體架構
煙草行業一直以來高度重視信息化工作,并通過大量投入實現了高度的自動化。在實現自動化的基礎上,也實現了信息化,并向著智能化方向不斷前進。因為企業的保密特點,對于計算機終端來講,也必須符合保密管理標準[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 所示。通過現場工控機加裝的攝像頭采集的面部圖像與數據庫中的基礎數據進行比對,若一致,則跳轉到對應的程序界面;若不一致,則返回到登錄界面,進行再次認證或采取其他認證方式進行登錄。
四、結束語
總而言之,伴隨信息技術的發展,人們越來越注重信息系統登錄認證的便捷性和安全性。在確保滿足工控系統安全的基礎上,此次應用研究所提出的方案,在一定程度上提升了工作效率,促使企業信息化管理更加精細化和人性化,同時提高了一線員工的獲得感。
作者單位:張修世 趙路 劉坤 安徽中煙工業有限責任公司阜陽卷煙廠趙佳 長沙艾特科技開發有限公司