久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 學習資源 > 講師博文 > face_recognition 庫介紹(shao)

face_recognition 庫介紹 時間:2024-11-27      來源:華(hua)清遠見(jian)

face_recognition 是一個流行(xing)的 Python 庫,用于(yu)進行(xing)人(ren)臉檢測和人(ren)臉識別(bie)。它基(ji)于(yu)深(shen)度學(xue)習技(ji)術(shu),通(tong)過(guo)處理圖

  像來識別和驗證人(ren)臉(lian)(lian)。這個庫特別適用于需要(yao)人(ren)臉(lian)(lian)識別功能的應用程序(xu),比(bi)如面(mian)部(bu)身份驗證、照(zhao)片(pian)組織(zhi)、監(jian)控系統(tong)

等。

下面是它的主要功能介紹

人臉檢測

檢測圖像中(zhong)的(de)人臉,并返回(hui)每(mei)張人臉的(de)位置。

使用(yong) face_recognition.face_locations() 函數(shu)來(lai)檢測圖像中的人臉。

案例演示:

人臉識別

識(shi)別圖像中的(de)人(ren)臉,并與已(yi)知的(de)人(ren)臉進(jin)行比(bi)較。

使(shi)用 face_recognition.face_encodings() 來提取人臉的特(te)征向量(liang),這(zhe)些(xie)向量(liang)可以用于比對。

import face_recognition

image = face_recognition.load_image_file("your_image.jpg")

face_locations = face_recognition.face_locations(image)

import face_recognition

from PIL import Image

image = face_recognition.load_image_file("D:/faceImages/999.jpg")

face_locations = face_recognition.face_locations(image)

print(face_locations)

# 遍歷所有檢測到的人臉

pil_image = Image.fromarray(image)

for (top, right, bottom, left) in face_locations:

# 裁剪人臉區域

face_image = pil_image.crop((left, top, right, bottom))

face_image.save("test.jpg") # 保存裁剪后(hou)的(de)圖像

face_encodings = face_recognition.face_encodings(image)[0]計算人(ren)臉編碼之間的歐幾里得距離來(lai)判斷(duan)它(ta)們是否屬于同一(yi)個人(ren)

distance 值越小,相似度越高

案例:

歐幾里得距離

歐(ou)幾里得(de)距(ju)離(Euclidean distance)是一種測(ce)量兩(liang)個點之間直線距(ju)離的(de)方式,常用于數學、物(wu)理(li)學和計算(suan)機科學

中(zhong)的各種應用,包括機器學習中(zhong)的數據點(dian)距(ju)離計算。它是基于歐幾里(li)得幾何(he)的概念,通常用于計算空間中(zhong)兩點(dian)之間

的距離。

應用

數(shu)(shu)據分析(xi): 歐(ou)幾里得距離(li)常用于計算數(shu)(shu)據點(dian)之間的(de)距離(li),例如在聚(ju)(ju)類(lei)算法(如K均(jun)值聚(ju)(ju)類(lei))中。

計算機視覺: 在人(ren)臉識(shi)別等任務中(zhong),歐幾(ji)里得(de)距離用于(yu)計算特(te)征向量之間的相似度。

優化(hua): 在路徑規(gui)劃和(he)優化(hua)問題中,計算兩(liang)點之間(jian)的歐幾(ji)里得距離可(ke)以幫(bang)助尋找(zhao)最短路徑。

歐(ou)幾里(li)得距(ju)離(li)的意義

1. 距離越(yue)小,相似度(du)越(yue)高(gao):

特征(zheng)向量相似:當歐幾里得距離越小說明兩(liang)個特征(zheng)向量之間的(de)差異(yi)越小,即這(zhe)兩(liang)個人臉在特征(zheng)空(kong)間中很

接近。因此,這兩(liang)個圖像可能是同一(yi)個人或(huo)者相似度很高。

# 獲取已知的(de)人臉的(de)編碼

train_encode01=

# 獲取要檢測的人臉的編碼

train_encode02=

# 計算兩個人臉編碼之間的歐幾里得距離。

distance = np.linalg.norm(train_encode01 ‐ train_encode02)

import face_recognition

import numpy as np

image01 = face_recognition.load_image_file("D:/faceImages/999.jpg")

face_locations01 = face_recognition.face_locations(image01)

# 獲(huo)取已知的人(ren)臉的編碼

 train_encode01 = face_recognition.face_encodings(image01, face_locations01)[0]

image02 = face_recognition.load_image_file("D:/faceImages/888.jpg")

face_locations02 = face_recognition.face_locations(image02)

# 獲(huo)取要檢(jian)測的人臉的編碼

train_encode02 = face_recognition.face_encodings(image02, face_locations02)[0]

# 計算兩個人臉編碼之間的歐幾里得距離。

distance = np.linalg.norm(train_encode01 ‐ train_encode02)

print(distance)相同身份的(de)概率大:在許多人臉識別系統中,如果計算(suan)出的(de)距離(li)小于某個(ge)設定的(de)閾(yu)值,則(ze)系統會認為這(zhe)

兩(liang)個(ge)面孔屬于同一(yi)個(ge)人。

2. 距(ju)離(li)閾值(zhi):

匹配判斷(duan)(duan):通常(chang),系統(tong)會設置一(yi)個閾值來判斷(duan)(duan)兩個特征向量是(shi)否屬于同(tong)一(yi)身份(fen)。如果(guo)計算出的距離小于

這個閾(yu)值(zhi),則(ze)認(ren)為兩張圖片中(zhong)的人(ren)臉是相同的;如果距離大于閾(yu)值(zhi),則(ze)認(ren)為是不同的身份。

誤識別(bie)率:設置的(de)(de)閾值(zhi)會影響系統的(de)(de)誤識別(bie)率(假(jia)陽性(xing)和假(jia)陰性(xing)率)。距離(li)閾值(zhi)的(de)(de)選擇需要根據具體應

用場景進行調整。

python中計算(suan)歐幾里得距離(li)的函數

np.linalg.norm() 是 NumPy 庫中的一(yi)個(ge)函數(shu)(shu),用于計算數(shu)(shu)組或矩陣的范數(shu)(shu)(norm)。范數(shu)(shu)是一(yi)個(ge)衡量向量或

矩陣大(da)小的指(zhi)標。常(chang)見的范(fan)(fan)數(shu)包括歐幾里得范(fan)(fan)數(shu)(2-范(fan)(fan)數(shu))、曼(man)哈(ha)頓范(fan)(fan)數(shu)(1-范(fan)(fan)數(shu))等

例如:

web頁面開啟攝像頭(tou)

這(zhe)里采用javascript封裝好的打開攝像(xiang)頭的工具庫

1 導入faceUitl.js文件(jian)到項目中(zhong)

2 在頁面創(chuang)建一個 id='video'的p,在文(wen)檔加載事件調用打開攝像頭(tou)函數

django項目中(zhong)獲取攝像頭傳來的圖片(pian)

1 前(qian)端通過faceUtile 獲取圖(tu)片的編碼,傳值到后端

import numpy as np

vector1 = np.array([3, 4,5])

vector2 = np.array([4, 4,5])

norm = np.linalg.norm(vector1‐vector2)

print(norm)

<p id="video"></p>

$(function () {

//設置調用攝像(xiang)頭的寬度和高度

faceUtile.width = 900;

faceUtile.height = 500;

//調用攝像(xiang)頭(tou)

faceUtile.openVideo('video');

})

function getFace() {

//獲取圖片的編碼

const dataURL = faceUtile.getDecode()2 在后(hou)端接受(shou)圖片(pian)編(bian)碼,把圖片(pian)轉(zhuan)換成(cheng)二(er)進制變(bian),然后(hou)寫入到指定目錄中,保存圖片(pian)

$.ajax({

url: '/faceCollect/',

type: 'POST',

data: JSON.stringify({ image: dataURL }),

success: function(rs) {

console.log(rs)

},

});

}

import json

import base64

import io

from PIL import Image

from django.http import JsonResponse

import numpy as np

#

def register(request):

if request.method == 'POST':

data = json.loads(request.body.decode('utf‐8'))

image_data = data['image']

# 解碼圖像數據

image_data = image_data.split(',')[1]

#獲取圖片的二進制編碼

image_bytes = base64.b64decode(image_data)

file_path = f'D:/faceImages/1.jpg' # 指定保存路徑

with open(file_path, 'wb') as file:

file.write(image_bytes)

data ={"code":200,&quot;data&quot;:"success"}

return JsonResponse(data)

上一篇:實時操作系統的設計與分析是確保關鍵任務及時完成的核心

下一篇:HEX與BIN

戳我查看嵌入式(shi)每(mei)月就業風云榜

點我了(le)解華清遠見高校學霸學習秘(mi)籍

猜(cai)你關心企業是(shi)如何評價華清學員的(de)

干貨分享
相關新(xin)聞(wen)
前臺專線:010-82525158 企業培訓(xun)洽談專線(xian):010-82525379 院校合作洽(qia)談(tan)專線(xian):010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部