吳必瑞,蒙永富,金志揚(yáng)
(寧德師范學(xué)院 信息與機(jī)電工程學(xué)院,福建 寧德 352100)
隨著人臉檢測(cè)算法的成熟,人臉識(shí)別技術(shù)在很多領(lǐng)域都得到了應(yīng)用,特別是在智能監(jiān)控領(lǐng)域,攝像頭已能實(shí)現(xiàn)對(duì)目標(biāo)的檢測(cè)、識(shí)別和追蹤,但傳統(tǒng)方法存在識(shí)別效果不佳、系統(tǒng)效率不高、準(zhǔn)確性較低等問(wèn)題[1-3]。文獻(xiàn)[4-6]采用單片機(jī)分析人臉特征點(diǎn),檢測(cè)其與頭部姿態(tài)的關(guān)系,并設(shè)計(jì)相似度算法,實(shí)現(xiàn)了攝像頭的自動(dòng)追蹤,但程序較為復(fù)雜。采用K210型芯片能避免以上算法設(shè)計(jì)復(fù)雜的問(wèn)題,簡(jiǎn)化設(shè)計(jì)過(guò)程。
本研究基于K210型芯片的人臉坐標(biāo)輸出,首先根據(jù)攝像頭反饋的圖像將其定義為一個(gè)平面內(nèi)的X、Y軸,圖像中心點(diǎn)為(0,0),然后識(shí)別出人臉在畫面中的位置, 最后通過(guò)K210型芯片輸出PWM控制舵機(jī)的角度轉(zhuǎn)向,從而實(shí)現(xiàn)人臉的自動(dòng)識(shí)別與追蹤。目前該產(chǎn)品已成功應(yīng)用于手機(jī)支架做追蹤云臺(tái)用,可通過(guò)擴(kuò)展應(yīng)用于人臉識(shí)別門禁系統(tǒng),并可根據(jù)人的身高改變攝像頭的位置來(lái)提高人臉識(shí)別速度。
系統(tǒng)以嘉楠科技公司生產(chǎn)的勘智K210型芯片為控制核心器件。該芯片在機(jī)器視覺(jué)上自帶神經(jīng)網(wǎng)絡(luò)加速器KPU,可完成基于神經(jīng)網(wǎng)絡(luò)的圖像分類任務(wù),進(jìn)行人臉識(shí)別與檢測(cè),簡(jiǎn)化系統(tǒng)程序設(shè)計(jì)。OV2640型攝像頭采集模塊將采集到的圖像信息傳輸?shù)終210型芯片,該芯片檢測(cè)到人臉數(shù)據(jù)信息后會(huì)通過(guò)系統(tǒng)自帶的函數(shù)運(yùn)算功能進(jìn)行PWM值運(yùn)算,根據(jù)人臉的不同位置給出PWM值,控制云臺(tái)進(jìn)行人臉實(shí)時(shí)追蹤,具體的硬件電路原理如圖1所示。系統(tǒng)采用OV2640型攝像頭作為 CMOS 圖像傳感器,用2個(gè)PAM3101DAB120型芯片分別為攝像頭提供工作電源和基準(zhǔn)電壓,5 V的外接輸入電壓通過(guò)EA3036型芯片轉(zhuǎn)化后為K210型芯片供電。系統(tǒng)實(shí)物見(jiàn)圖2。
圖1 硬件電路原理Fig.1 Hardware circuit schematic diagram
圖2 系統(tǒng)實(shí)物Fig.2 The real device
該系統(tǒng)的軟件開(kāi)發(fā)環(huán)境為C++語(yǔ)言,采用模塊化程序設(shè)計(jì),其主程序流程如圖3所示。軟件由攝像頭圖像采集、K210型芯片處理、PID算法、PWM調(diào)節(jié)和鍵盤設(shè)定程序等各子組成。攝像頭采集的圖像經(jīng)過(guò)K210型芯片處理后得出人臉的位置坐標(biāo),再通過(guò)PID運(yùn)算輸出相應(yīng)的PWM值來(lái)控制云臺(tái)轉(zhuǎn)向。軟件程序首先完成系統(tǒng)初始化,主要包括系統(tǒng)中斷、串口、OV2640型攝像頭、舵機(jī)等功能模塊的初始化。
本設(shè)計(jì)采用幀同步的信號(hào)接收方式,幀同步信號(hào)即VSYNC為高電平時(shí)有效、VSYNC為低電平時(shí)進(jìn)行圖像傳輸,直到讀取完一整幀圖像后VSYNC變?yōu)楦唠娖?。程序設(shè)計(jì)即當(dāng)HREF為高電平時(shí)開(kāi)始接收信號(hào),當(dāng)HREF為低電平時(shí)不進(jìn)行數(shù)據(jù)接收,檢測(cè)到HREF為高電平后,等待第1個(gè)PCLK的上升沿,在PCLK為上升沿后開(kāi)始讀取第1個(gè)像素的低字節(jié),之后進(jìn)行第2個(gè)PCLK的上升沿等待,如此循環(huán),具體如圖4所示。
圖3 軟件主程序流程Fig.3 Flow chart of software main program
圖4 攝像頭圖像讀取流程Fig.4 Flow chart of camera image reading
首先對(duì)攝像頭反饋的圖像信息進(jìn)行處理,然后將其導(dǎo)入事先訓(xùn)練好的人臉識(shí)別模型中進(jìn)行卷積神經(jīng)運(yùn)算,再根據(jù)畫面中的人臉張數(shù)進(jìn)行運(yùn)算,最后將人臉的位置以X坐標(biāo)軸和Y坐標(biāo)軸的形式輸出。
本設(shè)計(jì)利用K210型芯片自帶的強(qiáng)大運(yùn)算功能在多張人臉的情況下進(jìn)行人臉面積比較,根據(jù)人臉識(shí)別范圍的大小來(lái)判別人臉的遠(yuǎn)近。程序中將第1張識(shí)別到的人臉面積記為C1,C1=A1*B1,其中A1為人臉識(shí)別框的長(zhǎng)、B1為人臉識(shí)別框的寬。同理,第2張人臉定義為C2=A2*B2。然后,C1-C2=D,如果D為正數(shù)則輸出C1的坐標(biāo),否則輸出C2的坐標(biāo)。在現(xiàn)實(shí)中人臉大小差別不大,根據(jù)小孔成像原理,當(dāng)攝像頭與人臉的距離不同時(shí),人臉在攝像頭的圖像中所占面積也不同,距離攝像頭近的人臉?biāo)尸F(xiàn)出來(lái)的面積會(huì)更大一些。在進(jìn)行多張人臉識(shí)別時(shí),K210型芯片會(huì)優(yōu)先進(jìn)行人臉面積比較,然后對(duì)面積大的人臉進(jìn)行位置輸出,從而使智能追蹤穩(wěn)定器對(duì)面積大的人臉進(jìn)行自動(dòng)追蹤。當(dāng)芯片未檢測(cè)到人臉時(shí),智能追蹤穩(wěn)定器則保持上一秒的狀態(tài)。
陀螺儀在穩(wěn)定器中起著至關(guān)重要的作用,它能使穩(wěn)定器在一定誤差范圍內(nèi)保持動(dòng)態(tài)穩(wěn)定。本設(shè)計(jì)的智能追蹤穩(wěn)定器在Y軸上采用陀螺儀進(jìn)行控制,K210型芯片根據(jù)陀螺儀傳感器所反饋的傾斜角度進(jìn)行調(diào)整。首先對(duì)反饋的數(shù)據(jù)進(jìn)行校正,然后進(jìn)行數(shù)據(jù)融化和運(yùn)算,將得出的結(jié)果與所要求控制的目標(biāo)進(jìn)行比對(duì),最后根據(jù)偏差值進(jìn)行Y軸舵機(jī)的PWM值控制輸出,使得人臉始終在畫面正中心。角度控制流程如圖5所示。
圖5 角度控制流程Fig.5 Angle control flow chart
本設(shè)計(jì)的云臺(tái)舵機(jī)采用PID算法控制轉(zhuǎn)向。云臺(tái)能實(shí)現(xiàn)二自由度的追蹤,其轉(zhuǎn)向是由前面輸出的X、Y軸坐標(biāo)值經(jīng)過(guò)比例、積分、微分的運(yùn)算,輸出不同的PWM電脈沖進(jìn)行舵機(jī)角度轉(zhuǎn)向,然后輸出PWM占空比實(shí)現(xiàn)云臺(tái)舵機(jī)的角度控制。經(jīng)典的增量PID控制算法如下:
Δu(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)-e(n-2)],
式中:Kp為比例系數(shù);Ki為積分時(shí)間常數(shù);Kd為微分時(shí)間。
PID算法控制如圖6所示。
圖6 PID算法控制Fig.6 PID control algorithms
由于本設(shè)計(jì)采用的OV2640型攝像頭不具有自動(dòng)調(diào)焦功能,所以第一步需要進(jìn)行有效距離測(cè)試。測(cè)試開(kāi)始時(shí)首先初始化舵機(jī),測(cè)試對(duì)象(人臉)不動(dòng),然后分別對(duì)舵機(jī)轉(zhuǎn)動(dòng)30°、90°、120°進(jìn)行測(cè)試。多次測(cè)試后取平均值,結(jié)果顯示該智能追蹤穩(wěn)定器的有效追蹤距離為15~209 cm,數(shù)據(jù)如表1所示。由于人臉受到不同光照強(qiáng)度的影響,所以攝像頭能讀取到的人臉數(shù)據(jù)有不同程度的差別,導(dǎo)致自動(dòng)追蹤的有效距離也有差別。
表1 有效距離測(cè)試結(jié)果Tab.1 The test results of effective range
穩(wěn)定性考驗(yàn)智能追蹤穩(wěn)定器的數(shù)據(jù)處理能力和反應(yīng)速度。云臺(tái)穩(wěn)定性測(cè)試結(jié)果如表2所示,表2中的數(shù)據(jù)為測(cè)量10次的平均值。從測(cè)試結(jié)果可知,當(dāng)人臉以較快的速度停頓或移動(dòng)時(shí),云臺(tái)識(shí)別人臉的成功率會(huì)有所下降,當(dāng)人臉以較慢的速度移動(dòng)時(shí),云臺(tái)的追蹤成功率高達(dá)98%,即使兩張人臉同時(shí)出現(xiàn)在畫面仍能夠?qū)崿F(xiàn)穩(wěn)定追蹤。人臉以較快速度移動(dòng)時(shí)云臺(tái)自動(dòng)追蹤成功率較低的原因在于攝像頭對(duì)畫面的采集,人臉以較快速度移動(dòng)使其不能實(shí)時(shí)檢測(cè)出人臉,就會(huì)造成自動(dòng)追蹤的失敗。
表2 云臺(tái)穩(wěn)定性測(cè)試結(jié)果Tab.2 The test results of cradle stability
本設(shè)計(jì)采用K210型芯片為核心控制器件,實(shí)現(xiàn)了人臉識(shí)別、PID運(yùn)算、PWM控制等功能,同時(shí)還具有超高的運(yùn)算速率,能夠進(jìn)行人臉的實(shí)時(shí)識(shí)別和追蹤。測(cè)試結(jié)果表明,從人臉識(shí)別到PWM電脈沖輸出控制舵機(jī)轉(zhuǎn)向,整個(gè)過(guò)程可在0.5 s內(nèi)完成。目前本設(shè)計(jì)已成功應(yīng)用于手機(jī)支架做追蹤云臺(tái)用,可通過(guò)擴(kuò)展應(yīng)用于人臉識(shí)別門禁系統(tǒng),并可根據(jù)人的身高改變攝像頭位置來(lái)提高人臉識(shí)別速度。