高見
(揚州市職業(yè)大學,江蘇 揚州 225000)
當前我國數(shù)字化的腳步進一步加快,加快經(jīng)濟增長的同時也對信息領域的技術更新進行了考驗。以人臉識別系統(tǒng)為例,公眾對于人臉識別領域的需求隨著時間的推移越來越變得多樣化和復雜化,對于人臉識別系統(tǒng)的技術創(chuàng)新要求也越來越高。本文基于TensorFlow框架對人臉識別技術進行相應的研究,并有針對性地設置相關的MTCNN模型,同時對其進行相應的驗證。
Python是一種跨平臺,使用于分布式計算環(huán)境的面向對象語言,Python是目前使用最廣泛的語言之一,Python具有通用性、穩(wěn)定性、跨平臺性等多個優(yōu)點,并且安全可靠。選擇Python作為基礎語言完成系統(tǒng)主要有以下幾個原因:首先是相對于C、C++和Java等語言,Python語言丟棄了此類語言中的一些人們較為難理解,難使用的功能,例如:頭文件、運算符重載等。還大大降低了出現(xiàn)錯誤的可能性,更實用,更方便;其次是Python語言的面向對象性,Python的面向對象特性,使Python比較容易與實際生活相結合,更符合人們的思維方式;最后是Python的跨平臺性,即可移植性,Python語言可以不做修改甚至是做少量的修改就可以在其它平臺上運行,比如Python在win下運行的文件拷貝到linux下也是可以運行的。正是由于Python的這些優(yōu)點,使Python在開發(fā)平臺上被越來越多的運用,使得Python也被更經(jīng)常的用于企業(yè)網(wǎng)站等的建立。所以本研究選擇Python語言作為設計的基礎語言[1]。
Python語言是構建本次系統(tǒng)的基礎,但是整個系統(tǒng)都是基于TensorFlow架構而進行的項目,所以有必要對TensorFlow項目進行相應的簡述。TensorFlow架構有別于傳統(tǒng)的處理端(CLIENT)/服務器(SERVER)架構模式的改進和優(yōu)化而形成的瀏覽器(Browser)/服務器(SERVER)架構模式,不單是處理端系統(tǒng)和服務器系統(tǒng)分別設置在兩臺計算機上,由處理端系統(tǒng)將用戶的需求進行上報,提供到相應的服務器系統(tǒng)中,再由服務器系統(tǒng)將結果反饋到處理端系統(tǒng)。TensorFlow程序在實施運行的基礎上,兼顧一定的準確性和穩(wěn)定性。TensorFlow還具備完全開源性,可在智能手機或數(shù)據(jù)服務中心集群上運行,重要的是基于數(shù)據(jù)流圖(data flow graphs),并可以廣泛的應用于語音或圖像分類的機器學習和深度學習領域。TensorFlow系統(tǒng)主要有三種應用特點:首先是其基本運作為模塊化運作,處理端機和服務器運行的場所不同、職責不同,但跟傳統(tǒng)的模塊化程序相比,TensorFlow系統(tǒng)能夠在處理端程序和服務器程序中分別安裝數(shù)據(jù)庫和管理系統(tǒng);其次是TensorFlow系統(tǒng)需要進行相應的前臺程序和后臺程序開發(fā),并配備數(shù)據(jù)庫來滿足不同的需求;最后是TensorFlow系統(tǒng)通常采用兩層結構進行服務器的架構,通過兩層結構最大化地發(fā)揮TensorFlow系統(tǒng)擁有兩部分硬件的優(yōu)勢[2]。
根據(jù)實際需求,識別系統(tǒng)在Windows XP/7操作系統(tǒng)環(huán)境下,以eclipse為開發(fā)平臺,Python為基礎開發(fā)語言,主要用swing庫完成設計,并用MySQL建立網(wǎng)絡數(shù)據(jù)庫,本系統(tǒng)采用JDBC連接數(shù)據(jù)庫,并通過TensorFlow進行操作,對人臉信息的識別,修改和對人臉信息獲取對象的處理端信息資料的添加和處理信息獲取人臉記錄的添加、修改等功能。基本實現(xiàn)了一個識別系統(tǒng)基本要有的功能[3]。
TensorFlow框架下的人臉識別系統(tǒng)十分復雜,其關鍵技術分為信息獲取、數(shù)據(jù)管理與識別管理、特征向量管理三個方面:首先是信息獲取,在進行像素識別時需要對識別端和處理端的及帶像素進行抽樣,進而得出相應的采樣指定時,在此期間如果識別端和處理端的像素處于頻率非理想狀態(tài),就會導致系統(tǒng)的IQ正交性受到嚴重影響,進而使得信息獲取嚴重受阻,所以需要信息獲取技術來對信道進行相應的估計和均衡,針對識別端和處理端進行數(shù)據(jù)的固定,保證多途徑下的區(qū)域像素連續(xù)性;其次是數(shù)據(jù)管理和識別管理,數(shù)據(jù)管理和識別管理主要是通過相關值的共軛乘積搜索相關的峰值來約定發(fā)射幀的起始位置,進而獲得相應參數(shù)完成數(shù)據(jù)管理和識別管理;最后是特征向量管理,特征向量管理主要是基于特征字的幀結構,來確定連續(xù)像素載波殘差的間隔相位差,進而算出整體的頻率偏差后完成載波捕獲和追蹤[4]??梢哉f信息獲取、數(shù)據(jù)管理與識別管理、特征向量管理三個技術幫助了人臉圖像識別像素實現(xiàn)了穩(wěn)定識別。一個項目的開發(fā)需要對系統(tǒng)的現(xiàn)狀進行分析,對它的目標,需求的功能進行分析,從而制定出一個比好符合需求的方案,并盡量做出一個優(yōu)化系統(tǒng),隨著相關技術的發(fā)展,越來越先進的信息獲取技術可以更好的記錄人臉各個方面的情況,也便于識別和管理。一個好的人臉識別系統(tǒng)需要滿足一個用戶日常情況的記錄,對進入系統(tǒng)掃描區(qū)域的人臉進行相應的識別,如果確認符合數(shù)據(jù)庫內(nèi)的相關要求,就進一步識別信息詳細記錄人臉的各項參數(shù)[5]。
信息獲取模塊的主要功能對面部的信息進行錄入、修改、識別、刪除,具體分為處理端未確認、處理端已確認和處理端已駁回三種不同的場景。當信息獲取模塊將面部錄入系統(tǒng)后,自動轉入處理端未確認狀態(tài)。而處理端可以執(zhí)行兩種操作:駁回、確認。當處理端駁回面部時,需要說明駁回原因,信息獲取模塊根據(jù)處理端駁回原因可以選擇進行修改或者作廢該面部。除此之外,在信息獲取系統(tǒng)錄入面部的同時,需要錄入處理端的基本信息,后臺將己經(jīng)提交的面部信息中關于處理端的基本信息存入數(shù)據(jù)庫中的處理端表單中,具體數(shù)據(jù)依照所應用領域的類型不同進行相應的調(diào)整[6]。
數(shù)據(jù)管理模塊是需要依據(jù)面部來制定處理任務環(huán)節(jié)和所需要的表格。處理模塊在接受到面部后依照人臉的各種參數(shù)錄入,在完成處理前、處理中和處理后工序時對面部的不同階段信息進行確認。在此界面用戶可以按不同條件匯總處理任務信息,或者選擇當前記錄,查看該后臺下所有工序的任務信息[7]。
人臉識別的步驟使用Inception模型,該模型在VGGface2數(shù)據(jù)集里進行了訓練,在這里是形成了pb文件,直接進行使用。人臉識別是檢測到人臉后的關鍵步驟,嵌入特征向量(embedding)是通過Inception網(wǎng)絡識別獲得的。獲得到人臉特征向量的代碼:
從pb文件中找到模型的入口輸入、出口輸出并加載,其工作代碼如下:
以上步驟進行完,這時獲得了兩種人臉的特征向量,分別是自己創(chuàng)建的圖片庫里的人臉特征向量和離線視頻里截取到的人臉特征向量,比較這兩者,當特征向量之間比對的余弦距離較大時,就可以識別出人臉[8]。
總而言之,在當前技術創(chuàng)新的大背景下,相關人臉識別系統(tǒng)的開發(fā)團隊需要找到自身的定位,一方面抓住新技術的機遇,另一方面針對系統(tǒng)的特點形成有效的優(yōu)化模式,保證人臉識別技術的穩(wěn)步發(fā)展。同時人臉識別行業(yè)的風向仍在不斷變化,相關系統(tǒng)的研發(fā)人員還需要加強學習,積極投入新的技術,在不斷變化的風向中保持自身的優(yōu)勢,從而不被白熱化的技術競爭所淘汰。