






摘" 要:為了滿足在校大學生多樣化服務的需求,該文設計并開發“易趣閣”智能服務微信小程序,主要功能包括校園導航服務、生活資訊服務、二手交易服務和代取物品服務。采用基于OpenCV的人臉識別算法進行身份認證,保證系統的安全性和可靠性。該小程序可以幫助師生更便捷地熟悉校園環境,接收校園信息,處理日常生活中的各種問題,為在校教職工和學生提供更為便捷、高效、可靠的校園服務。
關鍵詞:微信小程序;智慧校園;OpenCV;人臉檢測;人臉識別
中圖分類號:TP311.5" " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2023)31-0059-04
Abstract: In order to meet the diversified service needs of college students, this paper designs and develops the \"eBay\" intelligent service WeChat Mini Programs, whose main functions include campus navigation service, life information service, second-hand transaction service and goods collection service. The face recognition algorithm based on OpenCV is used for identity authentication to ensure the security and reliability of the system. The Mini Program can help teachers and students to familiarize themselves with the campus environment, receive campus information, and deal with various problems in daily life to provide more convenient, efficient and reliable campus services for staff and students.
Keywords: WeChat Mini Programs; Smart Campus; OpenCV; face detection; face recognition
隨著互聯網的高速發展,基于微信宿主的微信小程序也應運而生,其服務輕量快捷的特點,已經成為手機使用的產品主流之一。高校校園內的信息更新迭代快,常有信息被重疊遮蔽,學生獲取信息的渠道單一導致可能會錯過某些重要信息等問題發生。并且大學生需求眾多,為了更好地為在校教職工和學生提供便利,“易趣閣”小程序設計了多個模塊,為高校校園人員提供代取快遞、校園導航、二手閑置交易及論壇信息咨詢等功能。其聚集多個功能于一體,分類集中處理,給廣大學生和在校教職工提供便利[1]。
1" 相關技術
1.1" 微信小程序
微信小程序是一種無需下載安裝即可使用的應用,在2017年由騰訊計算機系統有限公司推出。這種新型應用形式大大減輕了用戶的應用管理負擔。小程序有線下掃碼、對話分享、小程序切換和搜索查找等功能,用戶能夠獲得良好的使用體驗。小程序采用JavaScript開發語言,其開發過程與普通網頁開發非常相似,并只需要面向IOS和Android平臺上的微信客戶端以及專門的小程序開發工具進行開發,具有便攜、輕量、安全及成本低廉等特點。
1.2" OpenCV
OpenCV是一個開源計算機視覺庫,提供了許多用于圖像和視頻處理的函數和工具。其最初由英特爾公司開發,并以BSD授權方式發布,支持各種操作系統(如Windows,Linux和macOS),可以使用多種編程語言(如C++,Python等)來訪問其功能。
OpenCV廣泛應用于計算機視覺領域。例如,通過OpenCV我們可以實現目標檢測、人臉識別、圖像分割、運動跟蹤和三維重建等任務。其還提供了與深度學習相關的功能,例如神經網絡、卷積神經網絡等,使得開發者能夠輕松地將深度學習技術應用于計算機視覺任務中。
1.3" 高德地圖API
高德地圖API是一套由高德公司推出的互聯網地圖服務開發接口,使用多種編程語言,幫助開發者提供基于地圖技術的應用程序接口。高德地圖API是免費的,可以讓開發者輕松地集成地圖相關的功能(如地理編碼、路徑規劃等)到自己的應用程序中。高德地圖API提供了多種地圖展示方式和控件,支持多種交通方式路徑規劃(步行、駕車、騎行和公共交通等),以及關鍵詞搜索和周邊POI搜索功能,幫助用戶找到附近的商家和門店。同時,高德地圖API還支持定位和導航功能,適用于各類需要位置服務的應用場景,如出行、社交、物流等領域。此外,高德地圖API還提供了微信小程序接口。通過微信小程序插件,開發者可以在地圖中添加路線規劃、地鐵圖加載等功能,使小程序地圖功能更加全面。
2" 系統設計
2.1" 功能結構圖
“易趣閣”小程序旨在為師生提供一個便捷的信息交流和獲取平臺。該小程序用戶端包括4個模塊,分別是代取物品、校園導航、二手閑置交易和論壇信息咨詢。在論壇模塊中,用戶可以提問和回答問題,查看活動信息等。在二手閑置交易模塊中[2],用戶可以上傳和刪除閑置物品,進行交易。在代取物品模塊中,用戶可以發布代取訂單,并完成配送。此外,該小程序還提供了一個管理端,管理員可以登錄管理中心,對云端數據庫進行增刪查改操作,并管理實名認證用戶(經過實名認證的用戶才可以使用二手物品交易和代取物品模塊)。該“易趣閣”小程序的功能結構如圖1所示。
2.2" 人臉識別認證模塊
人臉識別確認身份是二手交易模塊和代取物品模塊的支撐[3],也是支持小程序安全的關鍵技術。本文重點介紹人臉識別功能的采用技術和實現。以下為人臉識別具體采用技術、框架。
2.2.1" 人臉識別技術
該系統的人臉識別基于Python+OpenCV庫。OpenCV是計算機視覺中的一個常用的庫[4],包含了強大的功能和性能,并且支持其他多種語言,能夠跨平臺,是一個高性能的計算機視覺庫。OpenCV-Python是專門提供Python接口來使用OpenCV庫,使得使用者在Python中能夠使用OpenCV,在保證可靠性和便利性的條件下保證運行效率,實現所需的功能。
2.2.2" OpenCV實現人臉識別算法介紹
OpenCV庫具有多種人臉識別的算法[5],如LBPH(局部二值模式直方圖)方法、EigenFishfaces方法、Fisherfaces方法。本文采用LBPH方法。在OpenCV中,可以使用函數cv.face.LBPHFaceRecognizer_create()生成LBPH識別器,對于數據的訓練可以調用cv2.face_FaceRecognizerTrain()函數完成,訓練完成后運用cv.Face_FaceRecognizerPredict()函數完成人臉識別檢測。本系統使用LBPH的優勢為LBPH將檢測到的人臉分為小單元, 并將其與模型中的對應單元進行比較, 對每個區域的匹配值產生一個直方圖。正因為這種方法的靈活性,LBPH是唯一允許模型樣本人臉和檢測到的人臉可以對不同形狀和大小進行識別的算法,且LBPH 算法的計算速度較快,對光照有不錯的魯棒性[6]。
2.2.3" 基本框架程序設計
人臉識別的整體框架為錄入人臉、訓練數據、人臉識別。人臉識別模塊整體框架如圖2所示。
2.3" 導航模塊
在校園導航模塊中,微信小程序提供了地圖組件map,在常規情況下,需要設置地圖中的經緯度才能夠合理地顯示定位(顯示的地圖是平面二維的),如果傳入的是起點經緯度SrcLat和SrcLng,終點經緯度DstLat和DstLng,尋找確定中心坐標,可以通過計算獲得,如下
采用了高德API接口,基于高德地圖SDK可以實現路線規劃、地址轉換等功能。隨后設置request合法域名。給定起點和終點經緯度,即可計算出起點和終點之間的路線。
2.4" 二手交易模塊
二手交易模塊旨在為校園內的師生提供一個方便的二手物品交易平臺。該模塊允許用戶上傳自己的閑置物品,并在平臺上進行交易。通過這種方式,用戶可以更加方便地處理自己不需要的物品,同時也可以以更優惠的價格購買其他用戶上傳的二手物品。這不僅有助于節約資源,還可以幫助用戶獲得一些額外的收入。
在校園二手交易模塊中,用戶可以瀏覽所有已上傳的閑置物品,并篩選出自己感興趣的物品。用戶還可以通過與其他用戶的私信溝通,了解物品的詳細情況,并商量交易方式。在交易完成后,用戶可以在平臺上進行評價和反饋,以幫助其他用戶更好地了解交易雙方的情況。同時,為了保證交易的安全性,該模塊還提供了一些安全性提示和建議,以幫助用戶避免一些交易中可能出現的問題。
3" 關鍵技術與系統實現
3.1" 人臉識別技術實現過程
在錄入人臉過程中,首先啟動攝像頭來采集照片進行抓拍保存,保存的數量越多,越有利于訓練,同樣也更加耗時。獲取到數據圖片后再使用CV庫中的cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)將數據圖片保存為灰度圖片減少計算量,提高模型性能。再加載人臉分類器,將每一幀從攝像頭中錄入的數據導入OpenCV,讓Classifier分類對人臉進行判別。多次訓練后將訓練的結果存入新標簽,更改配置文件內容,標識新的樣本。人臉面容錄入及訓練過程如圖3所示。
3.2" 人臉識別功能展示
首先是獲取人臉信息和保存人臉信息,點擊“錄入面容”,調用攝像頭,并進行保存截取人臉信息,并且在終端上打印進度條來獲知采集信息的進度。如圖4所示,錄入面容,利用cv2.rectangle識別人臉并框上矩形。保存含有人臉的區域的數據,并顯示保存的進度。
錄入人臉的數據訓練完成后進行人臉檢測,點擊人臉檢測按鈕,檢測步驟為先加載一個識別器,從攝像頭采集的照片進行對比識別,大于設定相似度的值則為檢測成功,反之鑒定為不能識別,如圖5所示。識別時將攝影中的每一幀的內容實時顯示出來,在臉部周圍用框將人臉面容框出。
3.3" 系統頁面展示
小程序界面設計遵循用戶需求原則。小程序注冊登錄頁面、主頁面、導航頁面如圖6所示。
4" 結束語
本系統是基于Python+OpenCV庫的人臉識別技術應用多功能的智慧校園微信小程序[7],采用人臉識別技術相比較其他的系統增加了使用的安全性,降低了在交易等任務過程中的風險,實現了多功能一體化的代取物品、生活資訊、二手交易和校園導航等實用功能,真正地做到了為校園師生提供便利。但在技術層面,由于調用攝像頭的環境不同,且攝像頭本身存在差異,因此提取的某一幀像素會出現模糊等問題,加之采集人臉時大多采集的是正面照片,如果人臉檢測時錄入側臉照片則可能驗證失敗,如何解決以上問題成為人臉識別安全性的重點。
參考文獻:
[1] 鎖冠俠,熊政力,王鈺忠.“青客校園”服務平臺建設與應用研究[J].中國多媒體與網絡教學學報(中旬刊),2022(6):34-37.
[2] 宇海萍,張渤洋.基于微信小程序的校園二手交易平臺開發[J].計算機時代,2020(4):29-32.
[3] 李穎聰,陳貝文,廖曉芳,等.基于OpenCV的人臉識別系統設計與實現[J].電腦知識與技術,2022,18(18):5355.
[4] 肖陽.基于OpenCV的人臉識別的算法研究與實現[D].武漢:湖北工業大學,2018.
[5] 胡北辰.基于OpenCV的人臉圖像識別系統設計與實現[J].佳木斯大學學報(自然科學版),2022,40(2):123-126.
[6] 梁永霖.基于OpenCV的人臉圖像預處理技術研究[J].韶關學院學報,2012,33(8):34-37.
[7] 張綠云,韋肖雨,李琳.基于Python與OpenCV的人臉識別系統設計與實現[J].電腦知識與技術,2022,18(10):87-88.