摘要
本設計計劃一個人臉識別鎖,利用攝像頭進行面部識別,再將面部掃描信息傳給單片機,單片機將面部信息與系統錄入的面部信息進行對比,若成功,則開鎖,否則報警。報警模塊采用蜂鳴器。設置獨立按鍵應用于系統的開啟與面部信息的錄入。并且采用顯示模塊實現當前人臉檢測顯示。
本次設計硬件采用的是搭載OV7725攝像頭芯片,以STM32H750CPU為核心的開源硬件OpenMV為設計基礎,通過對人臉圖像的采集,再以LBP特征算法識別出當前人臉和已采集到人臉的特征值差別,來進行對繼電器的控制,從而對門鎖進行開關。本設計采用3.7V鋰電池作為系統電源,同時也可用USB直接供電。
本次設計預期實現的效果為能夠實現面部信息識別并開鎖,并且能夠實現面部信息的錄入,在人臉識別結果偏差值大的情況下能夠通過蜂鳴器實現報警,再通過外接LCD顯示屏能夠實現目前人臉信息的顯示。
關鍵詞:人臉識別;單片;LBP特征算法;報警;攝像頭
第1章緒論
1.1課題的研究背景
安全方面一直是人民關心的重要方面,尤其是現在經濟發展迅速,人民生活水平提高,人們更加重視安全方面。相對于傳統的門禁方式,生物特征識別技術是利用人體生物特征進行身份認證的技術。生物的特征是個人特有的特殊屬性,這種特殊屬性有特別強的個人差異。所以,生物特征是身份證明的可靠依據。在應用生物特征進行進行識別的個人認證的情況下,識別系統可以在采集提取生物特征之后,與所存的數據庫中的特征模板相比較,判斷其相似程度的大小,并確定此人是否能通過生物特征的驗證。
對于現在已經被廣泛應用的指紋識別、虹膜識別、聲音識別等識別方法,基于人臉面部特征的識別與其他生物特征的識別相比較,具有較強的獨特性,是一種更直接、更容易讓人們所接受的生物特征識別方法。但是,人臉識別自身存在著容易受外部影響的特點,諸如表情、光照、陰影變化以等外部條件影響,這些外部條件都會影響到人臉識別的穩定性。如今,研究者們將主要的研究方向為通過算法的角度來提高人臉識別的精度。到了現在,人臉識別技術具有了很高的識別精度。它屬于個人本身攜帶,且具有唯一性。相比指紋和虹膜信息的采集需要特定的專業設備來說,在簡單、通用的情況下,也更為節省成本。而人臉識別技術如今也被應用于重點區域的監控,公安追蹤和邊檢等情況之中,有一定的技術基礎。將適用于大型場所的人臉識別系統應用于家庭安全方面,無疑是一種正確的嘗試,以后這種系統也將會成為家庭安全的重要組成部分。
1.2國內外研究現狀
人臉識別系統自二十世紀初,從國外雜志《Nature》發表的利用人臉識別身份;兩篇文章開始,其標志著人臉識別逐漸被世人開始認識,也為后來人臉識別系統的研究奠定了大方向。在二十世紀六十年代,國外對人臉識別已經進行了大量研究,也就是在這個時期對于人臉識別的研究發生了第一次飛躍式的發展。在人臉識別的研究領域大概分成三個主要的階段。第一階段是從1964年到1990年,這個階段是對于人的面部信息識別的研究的初步階段,這個階段的大概研究方向是把人臉面部信息的識別作為普通的生物特征識別問題進行研究。在這個階段階段使用的是feature based的方法,這個階段的主要貢獻后來奠定了面部識別研究的基礎,積累了很多理論和實踐的經驗。第二階段是1991年到1997年,與這個時期相關的理論活動取得了很大的成果,出現了很多面部識別的算法,在實際生活中被應用。
在國內關于人的面部識別的研究比對外國人的面部識別的研究慢得多。但是,最近國內有很多研究團體和重點大學。認識人臉識別的研究漸漸開始了。周志華等人提出了利用神經網絡集成法進行面部識別,通過分析臉部特征的多視角特征而得到的方法。該方法可以顯著地提高和保證可視精度。這種方法的實現是基于奇異值的分解和數據的融合?,F在,我國如今在理論研究的范圍內逐漸追趕上國際上的先進水平,而且在將研究結果的實體化上也取得了非常顯著的跨越。比如,銀晨智能識別科技有限公司是國內第一家專業從事于生物特征識別技術的研究室,是現在國內生物識別范圍內唯一的“863”成果產業化基地。該公司研發的天目系列人臉識別的產品在各個方面和領域得到了非常多的實用的應用。但是,這一系列產品是經過中科院的二次研發在國外公司核心庫上形成的,所以這項技術并沒有自主知識產權。中科院計算所和銀晨公司已經設立了人臉識別研究開發工作室。主要研究方便是研發全新的人臉信息識別的算法,該研究的產品和人臉信息識別系統已經擁有了完全的自主所有權。并在第16屆人民代表大會上發揮了身份認證的作用。
1.3主要研究內容
該系統以STM32H750VTB6 CPU為中心,采用內置OV7725相機芯片的OpenMV4作為控制模塊,該模塊可直接插入SD卡進行內存擴展,最大支持32GB。然后,使用匹配的OPMV IDE軟件進行程序,使用LBP特征算法利用STM32宏處理器進行面部識別。LBP特征算法的定義是以3×3方框中的中心方框的像素為閾值,并且將相鄰的8個矩形方框中的像素的灰度值和中心矩形方框的灰度值相比較,并且如果周圍方框的像素值大于中心方框像素值,則將該矩形方框標記為1如果周圍方框的像素值小于中心方框的像素值,則標記為0。這樣,比較3×3附近的8個矩形方框的定義值,從左上角方框順時針一次計數,就會生成8位的二進制數,再換算成10進制的LBP碼,就會得到中心矩形方框的中心像素點的LBP值,再使用該LBP值,就可以反映該圖像的該區域的紋理信息。
電源部分,該系統采用配套的鋰離子電池進行供電,也可利用USB接口進行直接供電。
另設按鍵以分別實現人臉信息的采集和識別。同時設置有蜂鳴器,若人臉識別不匹配則蜂鳴器會報警。同時為了方便使用者觀察攝像頭采集情況,設置有LCD液晶顯示屏擴展板,同步顯示攝像頭當前采集圖像。
第2章系統方案設計
2.1方案設計要求
2.1.1系統設計的技術要求
(1)允許使用模塊集成的單片機作為核心控制器,自行選自合適單片機控制器;
(2)實現人臉的錄入,最少不得少于兩個;
(3)實現自動人臉識別開鎖功能;
(4)利用攝像頭實現人臉圖像的采集;
(5)顯示模塊實現當前人臉檢測顯示,自行設計驅動電路;
(6)采用電池供電,規格不限,需預留充電口;
(7)設置必要按鍵,對基本功能進行定義;
(8)設計蜂鳴器報警電路,實現非錄入信息識別錯誤報警功能;
(9)合理設計各部分電源電路,為系統供電。
2.1.2系統設計的技術指標
(1)系統供電電源采用5V直流電源,規格不限。
(2)結合市場現有相關產品,對人臉識別門禁系統進行合理性預制,符合實際應用場景。
2.2系統方案設計
1.單片機的選擇
方案一:STC89C52是處理器。這個核心有最經典的51內核,3個定時器,32位I/O口。該單片機有8K大小的可編程內存、4個外部中斷、全雙工串行端口等。有低消費性能和低成本的特征。
方案二:STM32H750VTB6單片機。具有DSP和DP-PFPU的高性能ARM Cortex-M7MCU具有128KB Flash、1MB RAM、480MHz CPU、一級緩存、外部存儲器接口、JPEG編解碼器、硬件加密以及大量的外設接口,但成本高。
綜上所述及任務書要求,因STC8G系列單片機運算機能較弱和儲存空間較小題,不適用于需要快速反應的人臉識別的場景,而且本設計需要大量接入外設,大多采用各種協議通信,方案二的STM32系列的STM32H750VTB6單片機作為主控芯片,雖然成本略高,但其強大的圖片運算能力和較多的功能引腳更加適合人臉識別的課題。
2.攝像頭模塊
方案一:CF0K82C攝像頭模塊,模塊自帶LDO,單寬電源2.9–5V,VCC工作2.54毫米間距2X8接口,可方便杜幫線連接試驗模塊自帶27MHZ有源晶振,無須外部提供時鐘信號。成本較高
方案二:OV7725攝像模塊,該芯片已經將有源晶振集成在芯片內,所以不需外部芯片提供時鐘信號,該芯片也同時把FIFO芯片一體化,使圖像容易讀取,該芯片支持VGA、QVGA、從CIF到40*30的各種尺寸的圖像信息的輸出。工作電壓3.3V,成本相對低。
綜上所述,由于本設計對攝像頭性能要求不高,OV7725攝像頭模塊足以勝任本設計要求,而且OV7725攝像頭模塊成本不足CF0K82C攝像頭模塊一半,所以選擇方案二,采用OV7725攝像頭模塊。
3.顯示部分
方案一:LED顯示屏,高強度發光,再陽光的折射下,可將高清的內容屏幕顯示在屏幕的表面。對于灰度控制的級別較高。能夠是用1024到4096級灰度的控制,使屏幕清晰的顯示出16.7M以上的顏色區域,從而保證畫面超強立體感。但是驅動功率大,掃描方式主要為靜態鎖存,從而保障了屏幕高強度亮光。
方案二:LCD顯示器,機體薄,不占空間。功耗低、省電、不產生較高溫度。與LED顯示器相比,不發燙,無輻射。
綜上所述,由于該單片機系統驅動電壓小,不適合高功率消耗的LED顯示屏,且LED顯示屏成本高,而且OpenMV硬件擁有其相配合的LCD顯示屏,相對于LED顯示屏方便許多,所以選擇LCD顯示屏。
4.電源模塊
本設計由于體積小,功率低,所以選擇使用3.7V鋰電池進行直接供電,也可連接USB直接進行供電。以上兩種供電方式均能滿足該硬件的用電需求。
5.報警模塊
根據設計任務要求,該設計的報警模塊采用蜂鳴器進行報警。通過主控芯片經過I2C協議輸出DAC來控制電平的變化來使無源蜂鳴器發出聲響,而且通過DAC控制輸出的方波不同可以驅動無源蜂鳴器發出不同聲音。
6.儲存擴展
根據以上所選內容可確定使用OpenMV開源硬件符合設計要求,該模塊可直接插入SD卡進行儲存擴展,最大支持32GB。擴展的儲存空間用于存儲人臉信息保存后的后綴為.pgm格式的圖片。圖片分辨率設置為128*128大小。
7.繼電器模塊
由于電磁繼電器與LED燈都是通過電平的改變來控制其現象的改變,處于考慮節省引腳和便于程序設計考慮,所以此設計以LED燈代替作為繼電器使用。
2.3系統的結構組成及結構框圖
本設計主要由以下幾部分組成:攝像頭模塊OV7725和控制模塊STM32H750集成在一起的開源硬件OpenMV,顯示模塊168×128分辨率的TFT LCD顯示屏,電源模塊為3.7V鋰電池。信息采集和識別按鍵。系統的結構見圖2-1系統結構框圖。
圖2-1系統結構框圖
該設計以STM32H750為主控制器,OV7725攝像頭用于采集和識別人臉信息,LCD顯示屏用于顯示實時采集信息,報警模塊根據任務選用蜂鳴器,繼電器模塊采用與繼電器原理相同的LED燈代替。再根據所選硬件確定使用OpenMV開源硬件,該硬件可直接采用SD卡進行儲存擴展,再另設圖像采集和識別按鍵,系統用3.7V鋰電池直接供電。
第3章系統硬件電路設計
3.1 STM32H750VBT6單片機
本次設計應用的是OpenMV開源硬件,其以STM32H750VBT6為控制核心,然后由開發板上集成的OV7725攝像頭模塊進行圖像的采集,再通過LBP特征算法進行圖片的特征值比較來達到識別人臉的目的。再通過外接LCD顯示屏實時顯示目前攝像頭所采集到的人臉信息。
3.1.1單片機主要特性說明
單片機STM32H750VBT6最小系統如圖3-1所示。
圖3-1 STM32H750最小系統
STM32H750單片機的特性:正常工作電壓為3.6V到2.4V。CPU型號為ARM?Cortex?-M7,為32位CPU。主頻率為480MHz/400MHz。單片機中也集成了高性能快速的嵌入式內存,其閃存為128 KB,擁有1 MB RAM(包括192 KB容量的TCM RAM與864 KB大小的用戶SRAM與4 KB大小用于備份SRAM),龐大的內存能夠容納MicroPython固件資源信息。片內帶有全速USB(12MBs),當芯片連接電腦的IDE開發平臺時,彈出虛擬U盤,可通過拖拽的方式進行程序的燒錄,免去了傳統仿真器的繁瑣配置過程。STM32H750VTB6處理器同時包括APB總線、AHB總線、2x32bit的多個AHB總線矩陣、并且能夠支持內部與外部存儲器訪問多層AXI互連的廣泛擴展類型I/O和外部設置。
STM32H750VTB6提供三個ADC接口、兩個DAC接口、兩個極低功率比較器、一個低功耗實時時鐘、一個高分辨率定時器和12個通用16bit定時器、兩個用做控制電機的PWM定時器、5個低功率定時器、一個隨機數生成器和一個加密加速單元。它們還具有標準和先進的通信接口。
3.2 OV7725攝像頭模塊
本設計采用OpenMV4作為主體,而OpenMV4上嵌入有OV7725攝像頭模塊。
3.2.1 OV7725攝像頭模塊介紹
OV7725采集信息,經過硬件二值化處理后,再通過單片機讀取圖像信息。OV7725是CMOS傳感器,自帶硬件二值化功能,閾值硬件自動進行動態控制,減少了軟件運算效率,適合MicroPython使用方便但速度較慢的開發語言。
OV7725傳感器是1/4英寸高性能的處理器,該芯片將單芯片VGA和圖像處理器集成在小封裝里。擁有低功耗的OV7725芯片在低光的條件下尤其出色。同時OV7725的芯片能在20°C~70°C的范圍內正常工作,能適應多種場景環境下的應用。OV7725芯片同時也集成了一個640*480圖像陣列。OV7725有著150Hz的幀頻率,30萬有效像素,在80 FPS下可以處理640*480 8位的灰度圖。該芯片是通過SCCB總線來進行控制。OV7725照相機模塊具有包括全部照相機處理功能。有平衡白度、彩色系數、控制色調編號等多種功能。OV7725芯片可以使用SCC協議來對以上功能進行設置。OV7725芯片原理圖如圖3-2所示。
圖3-2 OV7725芯片原理圖
圖片的傳輸是由OV7725和AL422B儲存器與SN74LVC1G00與非門芯片共同配合完成,AL422B芯片是一個FIFO類型的儲存器。AL422B芯片原理圖如圖3-3所示。SN74LVC1G00與非門芯片原理圖如圖3-4所示。
3.2.2 OV7725攝像頭芯片引腳功能介紹
OV7725攝像頭芯片引腳功能如表3-1所示
3.2.3 OV7725攝像頭采集圖像原理
外部圖像通過照相機的攝像頭,經過感光矩陣,也就是感光單元陣列,感光元件同時也對應于圖像傳感器的各像點。這些單元的核心是是一種感光二極管。由于單元電流微弱所以要經過信號放大器放大。CMOS傳感器的各感光單元中都有A/D轉換器,之后感光單元輸出數字信號,然后,DSP芯片接收各個感光單元的數字信號。
濾色器是CMOS圖像傳感器是區分顏色的主要部件,通過將RGB的3原色的濾色器分別覆蓋在三個感光元件之上,三個感光元件生成一個彩色像素數據的感光單元,其中每個元件都是由RGB濾波器構成。
攝像頭上的所有的數字信號就能構成一幀圖像的數據,完成一幀圖像數據的收集。
3.2.4圖像信息數據傳輸的原理
首先,OV7725芯片與主芯片的通信采用SCCB的通信模式,STM32H750VTB6對OV7725芯片的控制指令由SCCB總線傳輸,而SCCB通信需要SCL讀取和SDL來控制數據的數據傳輸,開始信號:當SCL是高電平的時候,這時,SDA會生成一個下降沿,然后SCCB總線開始傳輸數據。停止信號:SCL為高電平,SDA生成一個上升沿,然后SCCB總線停止傳輸數據。對于數據的有效性數據的有效性,除開開始狀態和停止狀態,當SCL處于高電平是,保證SDA上的數據的穩定,所以SDA的變化僅僅在當SCL處于低電平時下才會開始,SDA傳輸的信號僅在SCL處于高電平的情況下收集。
面部信息的拍攝由OV7725攝像頭芯片和FIFO類型的AL442B存儲器共同進行。在數據傳輸時,一開始SDL引腳、SDC引腳開始對OV7725芯片進行初始化,初始化完成,OV7725芯片輸出數據,數據以VGA的時序輸出,VSYNC輸出有效信號,當STM32H750VTB6檢測到該有效信號時會將WEN設成高電平,并且重置WEST。存儲器的寫入指針將數據輸出到0地址,傳送有效數據后,HREF會持續輸出高電平,而非柵極芯片會得到WE和HREF將以輸入高電平信號,連接到儲存器芯片的WE的輸出變為低電平之后,可以在儲存器上寫入數據。在OV7725輸出數據之后,VSYNC會輸出有效信號,表示數據已經輸出完畢,STM32H750VTB6得到VSYNC讀取的信號后,表示數據已經保存在儲存器芯片中,然后禁止向儲存器芯片寫入數據,防止OV7725芯片的之后輸出的數據覆蓋當前已經保存好的數據。STM 32H 750VTB6使用RST復位,將讀取與FIFO芯片的0地址對準,并通過FIFO芯片的RCLK銷和D[0-7]讀取從0地址讀取存儲在FIFO芯片中的幀數據。這時,OV7725芯片繼續輸出收集的數據到儲存器芯片中,但是禁止向儲存器芯片寫入,但是這些數據無法保存,屬于無效數據。STM32H750VTB6使用WRST復位儲存器芯片的0地址,等待新的有效信號,檢測到有效信號后,再將WEN設為高電平。OV7725芯片可以寫入儲存器芯片,OV7725芯片輸出的幀數據又會被寫入儲存器芯片的0地址。SCCB協議起始信號時序圖如圖3-5所示,SCCB協議停止信號時序圖如圖3-6所示。
AL422B讀寫時序圖如圖3-7、3-8所示。
圖3-8 AL422B寫時序圖
3.3顯示模塊
本設計中需要外接LCD顯示屏,由STM32H750VTB6驅動,顯示實時的圖像信息采集情況。
3.3.1 LCD屏介紹
LCD顯示屏,也就是液晶顯示屏,顯像原理是在液晶材料兩側加上兩個垂直偏光板,液晶就會向細溝槽方向按順序旋轉排列,加入沒有形成電磁場,光線從偏光板入射在原則上是沿著液晶旋轉的,然后從對面的偏光板射出。具有低耗電、小型或零輻射等優點。其內部內置內置DC-DC轉換電路,無需外加負壓。
本次設計采用的是168*128尺寸的TFT類型的LCD顯示屏。TFT-LCD液晶顯示屏的特點是不會發生閃爍現象,基本沒有輻射,不會產生對人體危害;TFT LCD顯示器的生產技術較為成熟,大規模生產的完成率很高。TFT-LCD顯示屏是半導體集成電路技術和光源技術的優秀的結合,現在有許多類型的TFT LCD顯示屏,比如非晶硅、多晶硅和單晶硅的TFT-LCD顯示屏;特性好:能夠在低壓環境下運行,提高了安全性和可靠性。平板化不僅節約了使用材料的成本,而且輕量薄型的外形也便于硬件設計。低耗電也是其優點之一。用CRT屏幕的十分之一的耗電,反射型TFT-LD顯示器只有CRT屏幕的1%左右,適用范圍寬:從-20℃到+50℃的溫度范圍內都可以正常使用。是性能優良的全尺寸視頻顯示終端。采用SPI協議的方式與STM32單片機進行通信。原理圖如圖3-9所示,實物圖如圖3-10所示。
3.3.2 LCD屏部分引腳功能介紹
LCD屏部分引腳功能如表3-2所示
3.3.3 LCD屏驅動原理
液晶顯示器是通過控制電壓從而產生不同灰度。TFT LCD顯示屏產生電壓是薄膜晶體管的作用,然后使液晶旋轉。從構造分析,上下兩層偏光板之間有液晶分子。這樣就形成了是平行板電容器,。其電容大小大約為為0.1pF,但在實際應用中,如此小的電容是沒有辦法將電壓維持到下一次更新畫面。所以在TFT LCD顯示屏在0.1pF電容充滿電時,需要設法將電壓維持住到相應等級,否則到下一次TFT LCD顯示屏再這個充電時,顯示是以60Hz的頻率更新畫面,所以需要顯示時間16ms。電壓就會產生變化,之后就不能以正常顯示畫面。所以在設計上會加儲存電容。用于讓充滿電的電壓能夠維持到下一次畫面更新。
3.3.4 LCD屏顯示原理
液晶的通過改變電壓來控制透光率。當光通過上面的偏光板時,光偏振的方向和偏光板振動方向相同,而且這時上下玻璃板上液晶的排列順序一樣。這時,當光通過液晶層時,光受液晶的作用產生折射現象,并通過偏振被分解成兩個光。由于這兩個光的速度不一樣,但是相位一樣,因此兩個光被合成的時候,偏振的振蕩方向就會發生變化。通過液晶的光會發生扭曲現象。當光到達下面偏振片時,光軸振動方向就會扭曲接近90度。這樣,當光通過下偏振片時,形成光場。在施加電壓后,電磁場會將液晶定向,扭轉就會消失。當液晶層不會旋轉之后,偏振通過偏光板時,就無法通過下偏振片,緊接著形成暗場。所以在外光源的作用之下,液晶就可以完成發光顯示。在顯示過程中,起到光閥作用的是液晶分子??偨Y來說,當施加的電壓比柵極順電壓小,漏極導通;柵極順電壓等于0或負電壓,漏極就會切斷。
3.4電源模塊
考慮到本設計的實用性,且結合OpenMV開發板的實際情況。而且本設計屬于靜置設備,不常移動,所以可用3.7V鋰電池直接進行供電,也可連接USB進行直接供電。鋰電池比其他種類的電池能量密度高,達到了460-600Wh/kg,能量密度是鉛酸電池的的7倍;而且使用壽命長,能夠使用6年以上。鋰電池的額定電壓高,工作電壓為3.7V或3.2V,所以能驅動許多小型電路,而其他類型的電池的串聯三個,才會達到這個水平。鋰電池有一種特有的調壓技術,可以將電壓調到3.0V,更能適合多種場景的應用。鋰電池的優勢在于自放電率低,一般可達到百分之一一個月以下;而且鋰電池重量輕,其他電池在相同體積下,重量會為鋰電池的幾倍以上,鋰電池的適用溫度范圍也很廣,在-20℃-+60℃的環境下都能夠正常運行。在生產過程中和時候拋棄后,都不會產生任何有毒有物質,綠色環保。
該電源經過降壓穩壓電路輸送給OpenMV各傳感器的電壓為3.3V。
電源模塊實物圖如圖3-11所示,原理圖如圖3-12所示。
圖3-11電源模塊實物圖
圖3-12電源模塊原理圖
降壓電路采用芯片PAM2305AABADJ,降價穩定器采用TPS731XX芯片。降壓電路原理圖如圖3-13所示。
圖3-13降壓電路原理圖原理圖
3.5儲存擴展
由于該設計需要大量空間來儲存采集到的人臉信息,所以需要儲存擴展,OpenMV開發板自帶SD卡儲存擴展,最大支持32GB。擴展的儲存空間用于存儲人臉信息保存后的后綴為.pgm格式的圖片。圖片分辨率設置為128*128大小。OpenMV通過基于SPI協議的通信方式與SD卡通信。SD卡的SPI通信接口允許主芯片經由SPI接口讀取和寫入數據。采用SPI接口的好處是,現在很多宏處理器內部都有SPI控制器,在降低成本的同時,開發難度也大幅下降。儲存擴展模塊原理圖如圖3-14所示。
圖3-14儲存擴展模塊原理圖
3.5.1儲存擴展SD卡讀寫原理
SD卡的初始化之后,能夠對芯片讀寫進行操作可發送命令進行讀寫操作。SPI總線模式支持多種寫入操作,從指令指定的地址開始寫入時,將執行多個塊操作。當SD卡在接收到停止命令后,將停止寫入。數據長度只能為512KB。SD卡需要對發送給每個數據塊使用響應命令進行確認,才能進行執行寫程序,響應命令為1KB長度,低5位為分別為00101時,會控制數據正確寫入。SD卡讀寫時序圖原理圖如圖3-15、3-16所示所示。
3.6繼電器模塊
由于繼電器和LED燈都是通過改變電平來控制開合或亮滅,其控制原理基本相同,所以本設計考慮到成本、硬件復雜度的角度,決定以LED燈來代替繼電器模塊,以LED燈的亮滅代表繼電器模塊給以高電平和低電平的狀態。繼電器模塊原理圖如圖3-16所示。
圖3-16繼電器模塊原理圖
3.7報警模塊
根據任務要求,本設計報警模塊采用的是9×4.2,3.3V額定電壓,直插式無源蜂鳴器,采用PWM與主控制器相連。當識別不匹配時蜂鳴器會產生報警。
3.7.1報警模塊介紹
無源蜂鳴器,是由永久磁鐵,線圈,振蕩片構成。無源蜂鳴器的發聲過程為:主芯片以一定的頻率提供振蕩信號(一定的占空比的方波),振蕩信號對線圈起作用,產生的磁場與永久磁鐵一起起作用,,使振蕩片發生振動而發出聲音。所以需要給予頻率的變化,才能發聲,同時可以通過改變頻率來改變蜂鳴器的發聲音色,通過DAC輸出來使無源蜂鳴器發聲。無源蜂鳴器制作成本低;聲音頻率范圍寬,能夠根據頻率的不同發出各種聲音。
因為無源蜂鳴器的工作電流大,主芯片的I/O口不能直接驅動。一般使用三極管放大電流,從而順利使無源蜂鳴器運行。無源蜂鳴器原理圖如圖3-17所示。
如圖3-17無源蜂鳴器原理圖
第4章軟件系統設計
4.1軟件設計思路
程序是硬件功能實現的基礎,而核心功能的實現需要算法。不同的編程語言會有不同的結構特點和適應性。這次針對OpenMV開源硬件,編程語言采用了MicroPython進行開發。整體程序簡介明了,可讀性高。
編程時使用相應的是OpenMV IDE軟件進行操作??芍苯釉趹脤舆M行開發,高效便捷。也可以通過該程序觀察采集到的圖片,各原色占比和串口終端的信息顯示。本設計通過對STM32H750VBT6主控芯片編程,來控制攝像頭模塊、顯示模塊、繼電器模塊和儲存擴展模塊。
4.2主程序設計
因為現象的實現是通過主程序調用多個子程序來實現的,所以要求主程序邏輯明確且合理的架構。本設計的主程序包括下面幾部分:初始化、人臉拍攝子程序、人臉識別子程序、蜂鳴器子程序、LCD屏顯示子程序。
主程序初始化部分是對各個模塊的初始化設置、對芯片的寄存器初始狀態的設置的和對串口通訊波特率的設置等基礎工作。人臉拍攝子程序的任務主要是拍攝采集當前人臉信息,然后通過SCCB協議發出讀寫信號到STM32H750VBT6芯片。再經過SPI的通信方式將信息儲存到儲存擴展的SD卡中。人臉識別子程序主要任務是拍攝當前攝像頭的人臉信息,然后通過LBP特征算法與已采集好的人臉信息作出對比,得出特征值來比較最為相似的人臉。蜂鳴器子程序是通過特定頻率的方波來驅動,當識別的特征值大于程序中設定的界限時,蜂鳴器響產生報警。調用LCD屏顯示子程序是通過SPI協議通信,將當前采集到的人臉信息一幀一幀的不斷拍攝,然后實時顯示在LCD顯示屏上產生連貫畫面,以方便用戶查看人臉拍攝的情況。主程序流程圖如圖4-1所示。
圖4-1主程序流程圖
4.3人臉拍攝子程序
對于人臉的拍攝時OpenMV的一個基礎功能,進行人臉識別的前提是需要有一個庫,用于將采集到的人臉信息與庫中的人臉信息進行對比,然后得出結論。人臉拍攝子程序首先需要導入sensor,image,pyb庫,然后對攝像頭傳感器、攝像頭灰度和圖面分辨率大小進行初始化,再根據建立好的圖片庫的路徑對程序進行設置,運行程序后就通過控制OV7725攝像頭拍攝當前畫面,再將拍攝到的信息儲存到提前建立好的圖片庫中。該程序是一個簡單的線性程序,通過主控芯片控制攝像頭進行拍攝。人臉拍攝子程序如圖4-2所示,拍攝提示示意圖如圖4-3所示。
圖4-2人臉拍攝子程序流程圖圖4-3拍攝提示示意圖
4.4人臉識別子程序
人臉識別子程序是本設計的重點,首先要導入sensor,time,image,pyb,之后對攝像頭傳感器、攝像頭灰度和圖面分辨率大小進行初始化,之后OV7725攝像頭會拍攝當前圖像與圖片庫中的圖像通過LBP算法進行比對,人臉識別最重要的就是算法,本設計采用LBP特征算法,將當前攝像頭采集到的人臉信息通過LBP特征算法轉化為LBP特征值,再與庫中圖片的LBP特征值相比對,從而得出特征差異度,再由差異度的結果與程序設定的結果相對比,從而決定下一步的結果。人臉識別子程序流程圖如圖4-4所示。
圖4-4人臉識別子程序流程圖
4.4.1 LBP特征算法
LBP特征算法的定義是以3×3方框中的中心方框的像素為閾值,并且將相鄰的8個矩形方框中的像素的灰度值和中心矩形方框的灰度值相比較,并且如果周圍方框的像素值大于中心方框像素值,則將該矩形方框標記為1如果周圍方框的像素值小于中心方框的像素值,則標記為0。這樣,比較3×3附近的8個矩形方框的定義值,從左上角方框順時針一次計數,就會生成8位的二進制數,再換算成10進制的LBP碼,就會得到中心矩形方框的中心像素點的LBP值,再使用該LBP值,就可以反映該圖像的該區域的紋理信息。如圖4-5所示:
圖4-5 LBP特征算法示意圖
在LBP特征算法的應用中,在人臉識別的的方式中不將LBP特征作為特征向量進行分類識別,而是使用LBP特征的直方圖的進行分類識別。
這個特征和所識別圖像的圖像點的位置有關系。直接對兩幅圖片數據獲取這種“特征”,并分析,并且根據定點位置產生偏差。然后,將一張圖像數據分割成許多個子區域,在對各子區域的各像素點取得LBP特征后,在各子區域制作LBP特征的直方圖。這樣,在每個子區域,都可以用一個直方圖來進行表示這個子區域的特征,最后整個圖片數據也就成為了許多個直方圖組成的。
比如:一幅150×250像素的圖片數據,可以劃分成12×15=375個子區域,將各個子區域像素大小設定成10×10像素。這樣,對各子區域內的多個像素點進行LBP特征提取,然后,建立起直方圖;利用直方圖,就能表示這個圖片數據。然后,我們再用比較函數,就可以基于計算結果,以直觀地看到兩個圖像數據的類似度的差異。
4.5蜂鳴器子程序
本設計采用的是無源蜂鳴器。使用I2C總線連接主控制器,通過DAC驅動,AC模塊是電壓輸出數字模擬轉換器。在DAC雙通道的模式下,各通道可以單獨轉換,當兩個通道組合在一起執行操作時,也可以同時進行轉換。DAC模塊也可以通過一個輸入電壓引腳來調整分辨率。蜂鳴器子程序流程圖如圖4-6所示。
圖4-6蜂鳴器子程序流程圖
用特定頻率的方波來驅動,方波是一定頻率的高低電平轉換,使用DAC.write(0)和DAC.write(255)交替輸出,可以通過延時函數來控制輸出變換的次數。DAC輸出方波圖如圖4-7所示。
圖4-7 DAC輸出方波圖
4.6調用LCD屏顯示子程序
調用LCD屏顯示子程序是通過將當前采集到的人臉信息按幀的不斷拍攝,然后實時顯示在LCD顯示屏上產生連貫畫面。由于LCD屏通訊應用的的SPI協議通信,SPI接口不需要進行尋址操作,且為全雙工通信,顯得簡單高效。另外SPI采用單向方式,也就是只用到三個引腳,即主出/從入,時鐘,片選。在程序初始化時首先導入LCD庫,之后需要設置LCD屏分辨率為QQVGA2代表128×160的分辨率。初始化后在程序需要不斷讓攝像頭執行拍攝,之后將圖片通過SPI協議傳輸到LCD屏,就能實時顯示攝像頭的拍攝畫面了。調用LCD屏顯示子程序如4-8所示。
圖4-8 LCD屏顯示子程序
第5章系統測試與結果分析
5.1測試儀器
萬用表、拍攝物品
5.2硬件測試
5.2.1硬件測試方案
本設計由于采用開發板組合,組合處排針較多,所以主要檢查各部分排針完好情況,檢查是否有彎曲、斷裂情況。開發底板實物圖如圖5-1所示。
圖5-1開發底板實物圖
需要蜂鳴器工作時,需要將開發板上的X5和X6短接,為防止開發板內有斷線情況,導致短路時電流過大,以至于蜂鳴器燒壞。需要在運行情況下用萬用表檢測兩引腳之間短路電流是否正常。
由于本系統可用電池進行供電,為防止鋰電池損壞出現漏電導致硬件不能正常運行,所以需要用萬用表測量鋰電池兩極間電壓,確保鋰電池工作正常。
設計用到的LCD顯示屏屬于易損壞硬件,所以手持四角將其安裝在開發板上,防止引腳彎折,再接上電源,觀察LCD屏是否由于屏幕擠壓、排線損壞等導致不能正常顯示。
檢測攝像頭是否能正常運行時,將OpenMV通過USB連接導入簡單的拍攝程序,可在所用程序OpenMV IDE左上角觀測窗口,觀察到攝像頭采集情況。
5.2.2硬件測試結果
本次硬件設計相對較好,排針完好,開發板后無虛焊少焊情況,經過萬用表測量,開發版所用模塊未出現斷線情況,LCD顯示屏由于擠壓,部分屏幕顯示不完整,攝像頭模塊表現正常,電源模塊的鋰電池無損壞、漏電等現象。另外開關按鍵靈敏可靠,蜂鳴器聲音正常,可發出多種頻率聲音。檢測實物圖如圖5-2所示。
圖5-2硬件實物圖
5.3軟件系統測試
本設計的人臉識別由于需要建立本地庫,所以運行程序檢測是否能將采集到的人臉信息儲存到提前建立的庫中。所以運行程序后,重置單片機,通過USB連接PC可觀察到采集信已正確存入提前建立的庫中。庫s1、s2如圖5-3所示。
圖5-3庫示意圖
當運行人臉識別程序時,需調用庫中文件,并經過算法計算得出差異值,經過運行識別程序,可在OpenMV IDE下方串行終端中觀察到,當前拍攝人臉信息與提前采集到庫中的兩個人臉信息的差異值計算結果,檢測后程序正常運行,能正確得出拍攝和庫中人臉的差異值。串行終端差異值示意圖如5-4所示
圖5-4串行終端差異值示意圖
5.4測試結果分析與改進
通過測試和分析可以看出,本設計較為完善,設計要求基本可以達到。各模塊也能正常工作,電路運行完善,開發板沒有無斷線、短路的情況。軟件程序方面也基本能夠滿足要求。
但是本系統利用LBP特征算法進行人臉識別,算法采用灰度圖進行判斷,識別效果受外界環境等影響大。所以在實際應用時應安置在受光照光照、陰影影響小的地方。
第6章結論與展望
本設計采用STM32H750VTB6主控芯片,OV7725攝像頭模塊,LCD顯示屏模塊,蜂鳴器報警模塊等。通過閱讀芯片數據手冊以及應用手冊,和官方提供的入門手冊,學習人臉識別和Python語言的基礎知識,觀察大量運用OpenMV開源硬件的基礎實驗,學會了如何正確操作OpenMV和簡單運用Python語言。通過查找大量OpenMV運用和人臉識別方面的資料,逐步修改設計思路?;緦崿F任務目標。
本次設計過程出現了很多問題。在一開始確定單片機選型時,首先選用的是兩片ST89C52單片機分別作為上下位機來實現題目設計,但通過查找資料,發現ST89C52單片機運行速度不能滿足需要高速計算速度的人臉識別方面,之后又通過指導老師,了解了一開始思路的大方向出現偏差,逐漸偏離單片機的方向。之后又通過指導老師,逐漸了解到了OpenMV開源硬件,從此逐漸建立起明確的思路。由于本次設計用到了之前一直沒有接觸過的Python語言,所以在程序的編寫方面顯得有些吃力,但經過自己的不斷嘗試和稍許研究,能基本實現任務設計的目標。
人臉識別現在已經普及到許多地方,比如手機人臉解鎖、上班人臉簽到等。由于STM32單片機機能限制和這次運用的LBP特征算法是最為基礎的版本,導致精度不高,受環境影響大。但經過設計過程中大量查閱資料,運用更為先進的單片機和算法后,人臉識別技術一定會在當今生活中運用的更加廣泛,更加精確。
參考文獻
[1]姜志海.原理及單片機應用[M].電子工業出版社,2009:12-52.
[2]李勛,劉源,李靜東.單片機實用教程.北京航空航天大學出版社,2006.
[3]王映輝。人臉識別[M].北京:科學出版社,2010:89-132
[4]李全利.單片機原理及接口技術[M].高等教育出版社,2004:27-35.
[5]張俊謨.單片機中級教程:原理與應用[M].北京:北京航空航天大學出版設,2006:20-
[6]蔡曉曦陳定方,特征臉及其改進方法在人臉識別中的比較研究U].計算機與數字工程,2007,35(4):117-119.
[7]曾現峰.單片機原理與應用[M].背景理工大學出版社,2009:63-64.
[10]韓家新.基于人臉整體特征的證人判別方法研究[D]:[碩士學位論文].西安:西北工業大學,2002.39.
[11]MingHlsuan Yang.David Kriegman,and Narendra Ahuja,DetectingFaces in Images:A Survey.IEEE Transactlons on Pattern Analysisand Machine Intelligence,2002,Vol.24,34-58
致謝
大學生活已經進入尾聲,學生生涯即將結束,回顧四年時光,發現自己有了很多的成長。四年時間,學會了很多課本上沒有的專業縱深技能,完成了很多設計和項目。
感謝指導老師對我的幫助。對我的開題報告、硬件設備和課題任務提出的建議,如果沒有老師的建議,我的畢業設計一定會經歷更多坎坷。
感謝電氣系各專業課教師。具有普遍性,應用性的課堂講解,使我專業基礎更加扎實,在面對項目設計時更加得心應手。嚴謹、有序、高效的實驗指導,使我們的理論知識有了更充分的了解,而不是僅有書面設計的“虛高”技能水平。每次在探討科目相關的一些問題時,總是能夠給我及時的指明研究方向。每年的課程設計和創新創業項目,都是和老師們進行深入學術交流機會。和老師們相處,獲得知識的過程是融洽、歡樂的。
感謝在我完成畢業設計和四年學習中,給我指點迷津的學長學姐;感謝在我無助發問時,幫我一起攻克難題的素不相識的網友;感謝比賽期間一起熬夜研究的學弟學妹,以及當時比賽現場見到的各個學校的參賽選手,在思路上給了我很大的啟發。
雖然學生時代已經結束,但是學習的精神是永遠不能停止的,在以后的工作上,我降努力學習崗位技能,認真工作,用心工作,創新工作,通過自己的專業知識,為建設科技強國貢獻出自己的一份力量。
1、如文檔侵犯商業秘密、侵犯著作權、侵犯人身權等,請點擊“文章版權申述”(推薦),也可以打舉報電話:18735597641(電話支持時間:9:00-18:30)。
2、網站文檔一經付費(服務費),不意味著購買了該文檔的版權,僅供個人/單位學習、研究之用,不得用于商業用途,未經授權,嚴禁復制、發行、匯編、翻譯或者網絡傳播等,侵權必究。
3、本站所有內容均由合作方或網友投稿,本站不對文檔的完整性、權威性及其觀點立場正確性做任何保證或承諾!文檔內容僅供研究參考,付費前請自行鑒別。如您付費,意味著您自己接受本站規則且自行承擔風險,本站不退款、不進行額外附加服務。
原創文章,作者:1158,如若轉載,請注明出處:http://www.tj-jlwy.com/chachong/174654.html,