<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 設計應用 > 基于人臉識別的圖書(shū)館智能門(mén)禁系統

基于人臉識別的圖書(shū)館智能門(mén)禁系統

作者:汪小藝,王珺,魏志強,鄭英(東南大學(xué)成賢學(xué)院,南京 211800) 時(shí)間:2021-05-26 來(lái)源:電子產(chǎn)品世界 收藏
編者按:人臉識別是基于人的臉部特征信息進(jìn)行身份識別的一種生物識別技術(shù)。本課題通過(guò)樹(shù)莓派、OpenCV等來(lái)完成圖書(shū)館門(mén)禁系統,通過(guò)錄入人臉信息,系統識別成功則開(kāi)通門(mén)禁,識別失敗則報警。本系統完成了門(mén)禁系統的設計要求,實(shí)現了圖書(shū)館的門(mén)禁智能化。


本文引用地址:http://dyxdggzs.com/article/202105/425907.htm

0   引言

人臉識別門(mén)禁是基于先進(jìn)的人臉識別技術(shù),結合成熟的ID 卡和指紋識別技術(shù)而推出的安全實(shí)用的門(mén)禁產(chǎn)品。產(chǎn)品采用分體式設計,人臉、指紋和ID 卡信息的采集和生物信息識別及門(mén)禁控制內外分離,實(shí)用性高、安全可靠。系統采用網(wǎng)絡(luò )信息加密傳輸,支持遠程控制和管理,可廣泛應用于銀行、軍隊、公檢法、智能樓宇等重點(diǎn)區域的門(mén)禁安全控制。

目前學(xué)校依舊采用的是刷校園卡進(jìn)入的方式, 對于同學(xué)們而言十分不便, 而且也有外來(lái)人員借用本校學(xué)生校園卡進(jìn)入圖書(shū)館的現象。使用人臉識別方式進(jìn)入可以有效杜絕這類(lèi)情況的發(fā)生, 也方便同學(xué)進(jìn)入圖書(shū)館學(xué)習以及學(xué)校對于圖書(shū)館的日常管理。

image.png

1   設計思路

根據對預期功能的分析結合我們運用的技術(shù),首先需要給出總體設計方案,本課題所實(shí)現的人臉識別系統不僅包含硬件開(kāi)發(fā)平臺,而且還有在開(kāi)發(fā)平臺上運行的各種端口函數、驅動(dòng)程序和應用程序,其中硬件部分主要有:視頻采集部件、視頻傳輸部件和視頻顯示部件;程序部分主要有:基于的操作系統、視頻采集程序、視頻編碼程序、視頻傳輸程序、PC 機上顯示程序等。系統設計方案的總體框架如圖1 所示。

本次人臉識別系統的開(kāi)發(fā)分為兩個(gè)部分實(shí)施:PC和嵌入式平臺。在PC 平臺上,對設計好的人臉識別程序進(jìn)行調試,驗證程序的整體機理和功能。程序功能沒(méi)有問(wèn)題后,再將程序環(huán)境進(jìn)行重新配置,編譯成可以在嵌入式平臺上運行的程序,然后移植到嵌入式平臺上驗證運行。這樣分兩步走的開(kāi)發(fā)方式,雖然需要對程序進(jìn)行兩次編譯,但是,在程序的調試和驗證過(guò)程中帶來(lái)了很大便利,對問(wèn)題的查找和處理更高效率。

2   硬件平臺設計

本設計使用嵌入式板卡作為其運行的硬件平臺。對于嵌入式開(kāi)發(fā)板,其運行性能的關(guān)鍵是嵌入式處理芯片,作為嵌入式系統的核心部件,其運算處理速度的快慢直接影響系統平臺的運行效率。目前市面上存在多種內核結構的嵌入式芯片,包括ARM 內核芯片、IBM 的Power PC、Intel 的x86 等,而以ARM 為內核的處理芯片在全球嵌入式芯片市場(chǎng)中占據主導地位[1]。項目所選用的Raspberry Pi 開(kāi)發(fā)平臺采用的是高性能的4B 作為主處理器,支持的操作系統為:專(zhuān)用系統Debian GNU/、Fedora、Arch 、RISC OS、Windows10 IoT,搭載1.5 GHz 的64 位四核處理器(Broadcom BCM2711,Quad core Cortex-A72(ARM v8) 64-bit SoC @ 1.5 GHz),支持Bluetooth 5.0,兩個(gè)USB 3.0 和兩個(gè)USB 2.0 接口,雙micro HDMI 輸出,支持4K 分辨率,microSD 存儲系統增加了雙倍數據速率支持,先前版本的microUSB 供電接口在樹(shù)莓派4B 中改為USB Type-C 接口[2]。

3   模塊介紹

1) 樹(shù)莓派4B 英7 寸顯示屏

樹(shù)莓派4B 英7 寸顯示屏的分辨率為1 024×600,功耗為0.84 A×5 V。通過(guò)顯示屏顯示運行程序,并觀(guān)察運行程序后的情況。

2)800 萬(wàn)像素4K 超清攝像頭

對準人臉首先檢測人臉,接著(zhù)錄入人臉信息,將待識別人臉對準攝像頭進(jìn)行識別。

3) 樹(shù)莓派4B 開(kāi)發(fā)板

樹(shù)莓派4B 開(kāi)發(fā)板包含1.5 GHz 四核64 位ARM Cortex-A72 CPU,兩個(gè)USB 3.0 和兩個(gè)USB 2.0 端口,雙頻802.11ac 無(wú)線(xiàn)網(wǎng)絡(luò )和4GB 的LPDDR4 SDRAM。

4)LY03 小型斜口電磁鎖

LY03 小型斜口電磁鎖用來(lái)模擬系統開(kāi)門(mén)。攝像頭識別人臉后,若人臉信息能與庫中信息匹配,則開(kāi)鎖;否則報警。

5)1 路5 V 繼電器模塊

此模塊高電平觸發(fā),即模塊供電后,控制端口收到高電平繼電器導通,給門(mén)鎖供電。

6) 蜂鳴器

蜂鳴器用來(lái)實(shí)現人臉識別不成功報警的功能,蜂鳴器電壓是2~3.5 V,工作電流小于25 mA,頻率為1.8~2.8 kHz。直流電源輸入經(jīng)過(guò)振蕩系統的放大取樣電路在諧振裝置作用下產(chǎn)生聲音信號。

image.png

4   軟件設計

4.1 基于OPENCV的人臉檢測

是Intel 公司支持的開(kāi)源計算機視覺(jué)庫,輕量而且高效,由一系列C 函數和少量C++ 類(lèi)構成,實(shí)現了圖像處理和計算機視覺(jué)方面的很多通用算法。作為一個(gè)基本計算機視覺(jué)、圖像處理和模式識別的開(kāi)源項目, 可以直接應用于很多領(lǐng)域,其中包括人臉識別的算法實(shí)現,是二次開(kāi)發(fā)的理想工具[2]。人臉識別功能包括以下幾個(gè)方面(如圖2)。

1) 圖像采集和預處理

可以通過(guò)下載開(kāi)源的人臉識別數據集以及自己拍照建立人臉數據庫進(jìn)行圖像采集。由于大部分臉部檢測算法對光照、臉部大小、位置表情等非常敏感,圖像預處理是將檢測到的臉部后需轉化為灰度圖像,進(jìn)行直方圖歸一化處理。

2) 人臉檢測

采用一種叫做Haar cascade classifier 的人臉檢測器,利用保存在XML 文件中的數據確定每一個(gè)局部搜索圖像的位置,并利用其內置函數進(jìn)行檢測。函數使用針對某目標物體訓練的級聯(lián)分類(lèi)器在圖像中找到包含目標物體的矩形區域,并將這些區域作為序列矩形框返回,最終檢測結果保存在變量中[3]。

4.2 基于Dlib的人臉識別

Dlib 是一個(gè)機器學(xué)習C++ 庫,包含許多機器學(xué)習常用的算法。dlib 先檢測人臉,然后通過(guò)Resnet 生成一個(gè)128 維的向量,Resnet 有幾種不同深度結構,dlib 庫采用68 點(diǎn)位置標志人臉重要部位,再采用相應模塊識別人臉。

4.3 部分設計代碼

1) 讀取數據,設置攝像頭參數

known_face_encodings ,known_face_names =getFace.getFaceArray()

todayAlreadRegister = DBUtils.getAlreadyRegisterArray()

print(todayAlreadRegister)

print(known_face_names)

signRight = “Right”

signWrong = “Wrong”

video_capture = cv2.VideoCapture(0)

rcout = 12

width=1024

height=768

video_capture.set(cv2.CAP_PROP_FOURCC, cv2.

VideoWriter.fourcc(‘M’, ‘J’, ‘P’, ‘G’))

video_capture.set(cv2.CAP_PROP_FPS , 12);

video_capture.set(cv2.CAP_PROP_FRAME_

WIDTH,width)

video_capture.set(cv2.CAP_PROP_FRAME_

HEIGHT,height)

2) 錄入人臉信息

face_locations = []

face_encodings = []

face_names = []

process_this_frame = True

fcounter = 0

while True:

ret, frame = video_capture.read()

small_frame = cv2.resize(frame, (0, 0), fx=0.3,

fy=0.3)

rgb_small_frame = small_frame[:. :, ::-1]

if fcounter==rcout:

fcounter=0

face_locations = api.face_locations(rgb_small_

frame)

face_encodings = api.face_encodings(rgb_

small_frame, face_locations)

face_names = []

for face_encoding in face_encodings:

matches = api.compare_faces(known_face_

encodings, face_encoding)

name = “Unknown”

face_distances = api.face_distance(known_face_

encodings, face_encoding)

#face_distances = list(face_distances <= 0.5)

best_match_index = np.argmin(face_distances)

if matches[best_match_index] and “False” not in

str(face_distances):

name = known_face_names[best_match_

index]

face_names.append(name)

else:

fcounter = fcounter + 1

3) 識別人臉

for ( top, right, bottom, left), name in zip(face_

locations, face_names):

font = cv2.FONT_HERSHEY_DUPLEX

if name in “Unknown”:

# cv2.rectangle(small_frame, (left, top), (right,

bottom), (0, 0, 255), 2)

cv2.putText(small_frame, name, (left + 5, bottom -

5), font, 0.6, (0, 0, 255), 1)

# cv2.putText(small_frame, signWrong, (left + 5,

bottom - 15), font, 0.6, (0, 0, 255), 1)

else:

#cv2.rectangle(small_frame, (left, top), (right,

bottom), (0, 255, 0), 2)

# if name in todayAlreadRegister:

cv2.putText(small_frame, name, (left + 5, bottom -

5), font, 0.6, (0, 255, 0), 1)

cv2.putText(small_frame, signRight, (left + 5, bottom

+ 20), font, 0.6, (0, 255, 0), 1)

# else:

# DBUtils.insertRegister(name)

#todayAlreadRegister.append(name)

cv2.imshow(‘Video’, small_frame)

if cv2.waitKey(1) & 0xFF == ord(‘q’):

break

video_capture.release()

cv2.destroyAllWindows()

5   實(shí)驗過(guò)程

1) 首先將軟件安裝好,連接硬件好;

2) 將攝像頭打開(kāi),檢測人臉信息,并錄入人臉信息;

3) 錄入人臉信息后,運行識別程序,將攝像頭對準已錄入信息的人臉,識別成功,顯示錄入姓名并開(kāi)鎖;對準未錄入信息的人臉,識別失敗,顯示unknown 并報警。

6   結論

本項目以OpenCV 為核心, 樹(shù)莓派為硬件基礎設計實(shí)現了具有人臉識別功能的智能安防門(mén)禁系統。本智能門(mén)禁系統首先將授權的人臉信息進(jìn)行灰度化、降維及計算特征值等處理, 再進(jìn)行準備訓練, 得到授權人的相關(guān)信息。然后對攝像頭采集到的人臉信息進(jìn)行處理。經(jīng)過(guò)測試, 該智能門(mén)禁系統較好地完成了人臉識別功能, 識別成功開(kāi)鎖,失敗則報警,完成了門(mén)禁系統的設計要求,實(shí)現了圖書(shū)館的門(mén)禁智能化。

參考文獻:

[1] 周昕梓.樹(shù)莓派開(kāi)始,玩轉[M].北京:電子工業(yè)出版社,2018.

[2] GOLDEN R.樹(shù)莓派應用速成:網(wǎng)絡(luò )應用秘方.符鵬飛.譯.北京:科學(xué)出版社,2014.

[3] 朱偉.OpenCV圖像處理編程實(shí)例[M].北京:電子工業(yè)出版社,2016.

(本文來(lái)源于《電子產(chǎn)品世界》雜志2021年4月期)



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>