日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

[深度应用]·实战掌握Dlib人脸识别开发教程

發布時間:2025/3/21 pytorch 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [深度应用]·实战掌握Dlib人脸识别开发教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[深度應用]·實戰掌握Dlib人臉識別開發教程

個人網站-->?http://www.yansongsong.cn/

項目GitHub地址-->?https://github.com/xiaosongshine/dlib_face_recognition

1.背景介紹

Dlib是一個深度學習開源工具,基于C++開發,也支持Python開發接口,功能類似于TensorFlow與PyTorch。但是由于Dlib對于人臉特征提取支持很好,有很多訓練好的人臉特征提取模型供開發者使用,所以Dlib人臉識別開發很適合做人臉項目開發。

上面所說的人臉識別開發,主要是指人臉驗證,就是輸入兩張人臉照片,系統會對比輸出0或者1,代表判斷是否是同一個人。一般的人臉識別開發可以簡單分為1.人臉特征建模2.使用人臉特征模型進行驗證(其實還應包括人臉對齊等,這些也可以劃分到1中)。使用Dlib進行開發時,我們直接可以使用訓練好的人臉特征提取模型,主要的工作就變成了如何進行人臉的驗證。

人臉的驗證其實就是計算相似度,同一個人的相似度就會大,不同的人就會比較小??梢圆捎糜嘞蚁嗨贫然蛘邭W式距離來計算相似度。其中余弦相似度就是計算角度,歐式距離就是指平方差。都可以用來表示兩個特征的相似度(距離)。

2.環境搭建

安裝可以參考我的這篇博客:[深度學習工具]·極簡安裝Dlib人臉識別庫,下面說一下需要注意的點::

此博文針對Windows10安裝,其他平臺可以仿照這個步驟來安裝

  • 安裝Miniconda

使用conda指令來安裝Dlib庫,使用Miniconda與Anaconda都可以,我習慣用Miniconda,簡單占用內存小。
推薦使用清華源,下載安裝,選擇合適的平臺版本。python==3.6

  • 安裝dlib
    注意一定要以管理員身份進入CMD,執行(如果是Linux Mac 就使用 sudo)
conda install -c conda-forge dlib

?

  • 需要imageio 庫,可以使用下述命令安裝
conda install imageio

?

3.開發實戰

?

1.實現人臉檢測標記

face_test.py

import dlib from imageio import imread import globdetector = dlib.get_frontal_face_detector() win = dlib.image_window()path = "f1.jpg" img = imread(path) dets = detector(img) print('檢測到了 %d 個人臉' % len(dets)) for i, d in enumerate(dets):print('- %d:Left %d Top %d Right %d Bottom %d' % (i, d.left(), d.top(), d.right(), d.bottom()))win.clear_overlay() win.set_image(img) win.add_overlay(dets) dlib.hit_enter_to_continue()

?

代碼很簡單,通過imread讀取照片,然后進行檢測,輸出結果為dets的list,有幾張人臉就會有幾個item, 每個item都有.left(), .top(), .right(), .bottom()四個元素,代表人臉框的四個邊界位置。最后通過win.add_overlay(dets)可以將標記的框顯示在原圖上。

原始照片

?
輸出照片

?

其實我們就可以使用這個功能做一個簡單的應用,用來檢測圖片或者視頻中人臉的個數。

2.人臉特征點提取

在實戰1的基礎上添加人臉特征提取功能。

import dlib from imageio import imread import globdetector = dlib.get_frontal_face_detector() win = dlib.image_window()predictor_path = 'shape_predictor_68_face_landmarks.dat' predictor = dlib.shape_predictor(predictor_path)path = "f2.jpg" img = imread(path) dets = detector(img) print('檢測到了 %d 個人臉' % len(dets))for i, d in enumerate(dets):print('- %d: Left %d Top %d Right %d Bottom %d' % (i, d.left(), d.top(), d.right(), d.bottom()))shape = predictor(img, d)# 第 0 個點和第 1 個點的坐標print('Part 0: {}, Part 1: {}'.format(shape.part(0), shape.part(1))) win.clear_overlay() win.set_image(img) win.add_overlay(dets) win.add_overlay(shape) dlib.hit_enter_to_continue()

?

這段代碼就是在test.py基礎上加入了shape_predictor功能,使之可以在檢測出人臉基礎上,找到人臉的68個特征點。反映在圖中就是藍色的線。

?

原始圖片

?

?

輸出圖片

?

?

注意運行這段代碼需要這個文件predictor_path = 'shape_predictor_68_face_landmarks.dat',我會放在我的github中,方便大家下載使用。

3.人臉識別驗證

在第二步的基礎上,我們再進一步,實現將人臉提取為特征向量,從而我們就可以對特征向量進行比對來實現人臉的驗證,這里采用的是對比歐式距離的方法。

face_recognition.py

import dlib from imageio import imread import glob import numpy as npdetector = dlib.get_frontal_face_detector() predictor_path = 'shape_predictor_68_face_landmarks.dat' predictor = dlib.shape_predictor(predictor_path) face_rec_model_path = 'dlib_face_recognition_resnet_model_v1.dat' facerec = dlib.face_recognition_model_v1(face_rec_model_path)def get_feature(path):img = imread(path)dets = detector(img)print('檢測到了 %d 個人臉' % len(dets))# 這里假設每張圖只有一個人臉shape = predictor(img, dets[0])face_vector = facerec.compute_face_descriptor(img, shape)return(face_vector)def distance(a,b):a,b = np.array(a), np.array(b)sub = np.sum((a-b)**2)add = (np.sum(a**2)+np.sum(b**2))/2.return sub/addpath_lists1 = ["f1.jpg","f2.jpg"] path_lists2 = ["趙麗穎照片.jpg","趙麗穎測試.jpg"]feature_lists1 = [get_feature(path) for path in path_lists1] feature_lists2 = [get_feature(path) for path in path_lists2]print("feature 1 shape",feature_lists1[0].shape)out1 = distance(feature_lists1[0],feature_lists1[1]) out2 = distance(feature_lists2[0],feature_lists2[1])print("diff distance is",out1) print("same distance is",out2)out1 = distance(feature_lists1[0],feature_lists1[1]) out2 = distance(feature_lists2[0],feature_lists2[1])

?

輸出結果

檢測到了 1 個人臉 檢測到了 1 個人臉 檢測到了 1 個人臉 檢測到了 1 個人臉feature 1 shape (128, 1)diff distance is 0.254767715912 same distance is 0.0620976363391

?

我們可以看出,每張人臉都被提取為了128維的向量,我們可以理解為128維的坐標(xyz是三維,128維就是有128個軸組成),我們下面需要做的就是計算兩個特征的距離,設定好合適的閾值,小于這個閾值則識別為同一個人。代碼正確運行需要這個文件face_rec_model_path = 'dlib_face_recognition_resnet_model_v1.dat',我已經放在自己的github中,方便大家使用。

我們從上面測試的結果可以看出,不同的距離為0.25,同一個人為0.06,閾值就可以先設置為其間的一個值。我這里先設置為0.09,這個閾值也是需要大量數據來計算的,選擇的準則為使錯誤識別為最低。

下面我們把閾值設置為0.09,來測試系統能否區分出不同的人:在face_recognition.py加入下面代碼

def classifier(a,b,t = 0.09):if(distance(a,b)<=t):ret = Trueelse :ret = Falsereturn(ret)print("f1 is 趙麗穎",classifier(feature_lists1[0],feature_lists2[1])) print("f2 is 趙麗穎",classifier(feature_lists1[1],feature_lists2[1])) print("趙麗穎照片.jpg is 趙麗穎測試.jpg",classifier(feature_lists2[0],feature_lists2[1]))

?

輸出結果

f1 is 趙麗穎 False f2 is 趙麗穎 False 趙麗穎照片.jpg is 趙麗穎測試.jpg True

?

從上面可以看出,已基本滿足對人臉區分的功能,如果如要實用化則需要繼續調優閾值與代碼,調優的準則就是選擇合適的閾值使錯誤識別為最低。

Hope this helps

個人網站-->?http://www.yansongsong.cn/

總結

以上是生活随笔為你收集整理的[深度应用]·实战掌握Dlib人脸识别开发教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚州a级片| 色久网| 884aa四虎影成人精品一区 | 日夜夜操| 久久黄视频| 快播色图 | xxxxx在线视频 | 少妇精品无码一区二区 | 人妖天堂狠狠ts人妖天堂狠狠 | 无码少妇一区二区三区芒果 | 欧美亚洲一二三区 | 亚洲欧美日本国产 | 天天操天天操天天操天天操 | av大全免费| 国产一区二区a | 久草福利在线视频 | 免费黄网站在线看 | 黄色一级播放 | 无套内谢老熟女 | 亚洲精品av中文字幕在线在线 | 女人高潮娇喘1分47秒 | a猛片免费播放 | 成人国产免费观看 | 中文字幕18页 | 国产精品久久久影院 | 久久久a级片 | 91播放在线 | 污视频免费在线观看网站 | 国产主播自拍av | 激情视频91 | 亚洲GV成人无码久久精品 | 在线看片你懂得 | 欧美日韩一区二区视频观看 | 91在线精品一区二区三区 | 最新中文字幕在线播放 | 麻豆蜜臀 | 国产探花精品一区二区 | 国产激情视频一区 | 自拍偷拍麻豆 | 少妇高潮淫片免费观看 | 国产专区欧美专区 | 男人的天堂在线视频 | 青青草视频免费看 | 亚洲成人第一网站 | 黄色资源在线 | 草碰在线视频 | 蜜桃精品久久久久久久免费影院 | 一级小毛片 | 欧美少妇一级片 | 久草视频首页 | 午夜18视频在线观看 | 青青啪啪 | 一本一道久久a久久精品蜜桃 | 欧美日韩在线综合 | 91视频入口 | 伦理久久 | 国语一区 | 日本a级片在线播放 | 亚洲爱爱片 | 观看av | china国模大尺度pics | www.色播| 高清视频在线免费观看 | 新版红楼梦在线高清免费观看 | 日韩在线免费看 | 插插影视 | 三级小视频在线观看 | 黄网在线播放 | 亚洲综合网在线观看 | 日韩人妻无码精品久久久不卡 | 大肉大捧一进一出好爽视频 | 五月婷婷爱爱 | 成人久久久精品国产乱码一区二区 | 前任攻略在线观看免费完整版 | 美女131爽爽爽 | 黄色网页在线播放 | 天天色天天操天天 | 涩漫天堂| 欧美日韩免费高清 | 羽月希奶水一区二区三区 | 777奇米四色 | av免费久久 | 冲田杏梨 在线 | 啪啪av网站| 久久久久久免费观看 | 国产欧美一区二区精品忘忧草 | 催眠调教艳妇成肉便小说 | 日日干天天干 | 日本免费黄视频 | 色姑娘综合 | 日韩欧美成人一区二区三区 | 后进极品美女白嫩翘臀 | 亚洲一区 在线播放 | 日本特黄一级大片 | 白嫩初高中害羞小美女 | 调教亲女小嫩苞h文小说 | 蜜臀av性久久久久蜜臀aⅴ麻豆 | 黄色美女毛片 | 欧美午夜在线视频 |