2022-05-13 16:37:00 索煒達(dá)電子 856
文件編號:A292
文件大小:9M
開發(fā)環(huán)境:Python3.8、OpenCV4.5、PyCharm2020
猿創(chuàng)承諾:該項(xiàng)目親測正常運(yùn)行,需遠(yuǎn)程調(diào)試部署需另外收費(fèi),確保正常使用,不能正常使用全額退款。
簡要概述:init_window部分是程序的UI設(shè)計(jì)部分,然后就是實(shí)現(xiàn)圖中三個(gè)按鈕的點(diǎn)擊事件,其中“請選擇圖片”的兩個(gè)按鈕功能一樣,都是點(diǎn)擊選擇文件,并加載到頁面上,替換掉首頁的圖片。
提交按鈕實(shí)現(xiàn)的就是兩張人臉圖片比對的邏輯了:
有一個(gè)需要注意的地方是:opencv不能加載帶中文圖片路徑,所以程序中用PIL的Image.open()加載圖片,并使用Image.save()重新保存一份到自己定義的文件夾,然后還定義了一個(gè)resize_img()函數(shù),對過大的圖片進(jìn)行等比例縮放,并保存下來,提高運(yùn)算的效率。
人臉比對使用了最簡單的人臉識(shí)別庫:face_recogniton,首先通過face_recognition.load_image_file()加載圖片,畢竟用了別人的庫,就得按照人家的方式進(jìn)行加載。
然后通過face_recognition.face_encodings()提取人臉的特征,提取出來的是一個(gè)128維的向量,最后使用face_recognition.face_distance()計(jì)算兩個(gè)128向量的歐式距離,計(jì)算方式如下
當(dāng)然這里就不用自己計(jì)算了,face_distance()已經(jīng)幫你實(shí)現(xiàn)好了。
人臉比對還有很多其他的方法,比如facenet,arcface。這里框架已經(jīng)搭好了,剩下的你們可以根據(jù)需要去替換自己的算法。
好了,我們來運(yùn)行一下吧。
python main.py
按需寫作:
演示視頻:
點(diǎn)擊查看:系統(tǒng)演示視頻
運(yùn)行界面:
遠(yuǎn)程協(xié)助:
溫馨提示:索煒達(dá).猿創(chuàng)官方提供收費(fèi)遠(yuǎn)程協(xié)助,確保您項(xiàng)目運(yùn)行成功。
點(diǎn)擊查看:遠(yuǎn)程協(xié)助相關(guān)事項(xiàng)
我們提供完整項(xiàng)目文件清單如下:
文件目錄
├ 1.項(xiàng)目源碼
├ 2.運(yùn)行截圖
└ 3.演示視頻