AI新時代-大神教你使用python+Opencv完成人臉解鎖(附原始碼)
好吧,夥計們,我回來了。說我拖更不寫文章的可以過來用你的小拳拳狠命地捶我胸口….
那麼今天我們來講關於使用python+opencv+face++來實現人臉驗證及人臉解鎖。程式碼量同樣不多,你可以將這些程式碼運用在其它一些智慧領域,如智慧家居,進門的時候判斷你是誰,也可以加入機器學習判斷來的人是客人還是熟人。在講之前我們會先適當的拓撲一下關於人臉識別的知識點。OK廢話少說下面開始正是話題。
解鎖原理:
原理呢,其實很簡單,沒有那麼複雜難懂(當然除了官方語言之外)。我們先來通俗的說一下利用Face++實現人臉匹配的原理。給大家推薦一個學習交流的地方:719+139+688,現在你開啟了攝像頭,然後恰好你按下了抓取。抓取之後,你的臉部圖片會上傳到遠端伺服器,然後服務端會提取你的面部情況生成一個唯一的指紋(標識碼),這個指紋在Face++裡面叫做face_token這個我們後面會繼續講到,這個指紋就代表你目前的身份。
上傳完經過服務端分析收錄之後,服務端會通過json傳送給你一個資料包,這個資料包裡面有你面部全部特徵。
當你拿到服務端返回過來的json之後,將face_token提取出來(這很重要,face_token相當於一把鑰匙)然後你把拿到的face_token放到python的if裡面去判斷如果face_token相符就驗證成功,如果不相符那麼解鎖失敗。
環境拓撲:
作業系統:windows7
Python版本:python2.7
OpenCV版本:2.x
Face++介面
實現方案:
1.上傳面孔(這個上篇文章我們已經實現攝像頭抓取,這篇文章我們不做囉嗦,直接用一張面部圖片代替)上傳後json會返回面部指紋(face_token)
2.建立人臉集合,並將步驟1返回的face_token加入到集合中去
3.通過python的if判斷是否收錄當前面孔
程式碼部分:
1.獲取面孔face_token:
這裡重點說一下request裡面的內容:
api規定是要post提交,所以這裡用了request.post()
傳輸的內容為請求的URL,圖片路徑(必填!可以是本地絕對路徑,也可以是網路圖片分別為image_file、image_url)data資料也就是payload裡面的引數:
apikey/apisecret必填 沒有的自行申請
return_attributes選填 裡面有返回的資料 有年齡性別等等
return_landmark選填 是否檢測返回人臉關鍵點0為不返回1為檢測83個關鍵點2為檢測106個關鍵點
執行效果:
我們隨便找一張照片(對畫素有要求的 切記 不然有的可能報錯)
我們可以看到這個返回的json包裡有很多的值,我們這裡最重要的就是拿到這張臉的face_toen,然後儲存起來,收錄到服務端的時候需要。
注:這裡可能有些朋友在網上隨便找的照片可能報錯,這很可能是圖片畫素的問題,儘量找高清的,執行後,人臉部分會被綠框標識。
2.建立人臉集合,並加入face_token
face_tokens裡面填的就是剛才奧巴馬圖片返回的face_token,不要填錯哦~
面部集合的名字也要記住,待會查詢的時候也會用到的。
將上一部分獲取到的face_token加入到一個新建的人臉集合中。
下次人臉對比將直接跟服務端收錄的做指紋對比。這裡再簡單的點一下payload裡面的幾個引數:
display_name:人臉集合的名字
outer_id:FaceSet全域性自定義標識
force_merge:
0:不將 face_tokens 加入已存在的 FaceSet 中,直接返回 FACESET_EXIST 錯誤
1:將 face_tokens 加入已存在的 FaceSet 中
face_tokens:傳入的人臉標識
執行效果:
執行完畢後,會返回一個faceset_token,這個地方我們要記錄下來,因為我們已經把我們的奧巴馬的facetoken上傳到服務端的我們建立的集合裡了,這個faceset token就是我們的面部集合id 或者說是一個相簿都可以。
3.判斷是否為管理員:
我們將奧巴馬的面部值(face token)放入python的if裡面,將要去查詢的面部集合(相簿)設定為我們前面獲取的faceset tokens,然後我們隨便照一張照片匹配一下。
筆記本攝像頭太low,很難識別,湊合看下效果吧,直接識別人臉還行。
完成~
當然,按理說到現在應該開始有噴子來噴,用圖片解鎖不安全了吧,沒關係,如果你想做的更高階,完全可以加上一些搖頭 眨眼等等亂七八糟的驗證,安全性是可以做到的。
相關文章
- DDPM生成人臉程式碼
- VAE生成人臉程式碼
- Python+OpenCV人臉識別技術詳解PythonOpenCV
- 手把手教你使用easyexcel匯出資料【附帶原始碼】Excel原始碼
- 使用 OpenCV 與 Face++ 實現人臉解鎖OpenCV
- VC++電腦鎖屏(附原始碼)C++原始碼
- 200 行 Python 程式碼做個換臉程式(附原始碼)Python原始碼
- AI 人工智慧合成人臉——你能分辨出哪個小姐姐是真的嗎?AI人工智慧
- 探索ChatGPT和新的AI時代ChatGPTAI
- 聊聊 AI 時代的新崗位AI
- Golang 讀寫鎖RWMutex 互斥鎖Mutex 原始碼詳解GolangMutex原始碼
- 新火種AI | 誰是AI時代的“抖音”?AI
- ReentrantLock可重入鎖——原始碼詳解ReentrantLock原始碼
- 使用tensorflow實現人臉融合轉移原始碼原始碼
- 《React原始碼解析》系列完結!React原始碼
- “5G+雲+AI”: 數字經濟新時代的引擎(附下載)AI
- 一個新殼,附主程式和原始碼原始碼
- 教你一行程式碼使用 KVO(Facebook 出品 FBKVOController 原始碼使用及解讀)行程Controller原始碼
- 位元組釦子AI:開啟全民AI Bot開發新時代AI
- AI換臉:FaceFusion 3.5.0更新,解決老版本無法使用問題!AI
- 生成假人臉、假新聞...AI虛擬世界正形成AI虛擬世界
- iPhone 8 Home 鍵消失,解鎖或靠刷臉iPhone
- RPA+AI:解鎖未來企業制勝的新操作AI
- 教你用100多行寫一個資料庫(附原始碼)資料庫原始碼
- 【數字影像處理6】python+opencv使用LBP、HOG提取特徵來分類人臉【更新中】PythonOpenCVHOG特徵
- 超詳細的 Bert 文字分類原始碼解讀 | 附原始碼文字分類原始碼
- Brain:一個新AI時代的踐行者AI
- 魅族Note8支援人臉識別解鎖嗎?魅族Note8人臉解鎖設定教程
- 紅米6正式發售:支援AI人臉解鎖與小愛同學 售價799元起AI
- 紅米6A正式釋出:AI人臉解鎖/小屏高效能,售價599元AI
- 華西證券:AI領強算力時代,GPU啟新場景落地(附下載)AIGPU
- 全網最全Python專案練習500例(附原始碼),練完可就業Python原始碼就業
- 可重入鎖原始碼分析原始碼
- 教你怎麼使用Apple Watch手錶解鎖蘋果Mac電腦APP蘋果Mac
- 基於Redisson實現分散式鎖原始碼解讀Redis分散式原始碼
- Redisson 分散式鎖原始碼 01:可重入鎖加鎖Redis分散式原始碼
- 用Python實現簡單的人臉識別,10分鐘搞定!(附原始碼)Python原始碼
- JWT身份認證(附帶原始碼講解)JWT原始碼