一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何構(gòu)建人臉識別器的一則指南

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-09-29 09:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編者按:如今,人臉識別已經(jīng)在我們的生活中處處可見——無論是政府布置在大街小巷的“天眼”,還是手機軟件中用于驗證用戶個人身份的確認手段,刷臉解鎖、刷臉支付……每個人與生俱來的這張“獨一無二”的臉正在取代數(shù)字密碼,成為虛擬世界中的身份證明。小編沒有iPhone XS,所以就在這里推薦一篇人臉識別入門佳作吧~

人臉識別是計算機視覺的一個子領域,它的應用范圍非常廣泛,現(xiàn)在已經(jīng)成為世界各地的企業(yè)爭相競逐的新技術(shù)之一??紤]到市場的盈利現(xiàn)狀,未來這項技術(shù)還會有更大的需求空間,所以作為機器學習的學習者,自己動手去從頭開始構(gòu)建一個人臉識別工具很有價值。

本文就是如何構(gòu)建人臉識別器的一則指南,在文章中,首先我們會介紹這項技術(shù)的基本原理,然后用一個簡單案例演示如何用Python來實現(xiàn)。

人臉識別的工作原理

在理解人臉識別的工作原理之前,我們先來看看什么是特征向量。

機器學習算法的本質(zhì)是將數(shù)據(jù)集中的所有樣本作為輸入,從數(shù)據(jù)中學習“知識”,簡而言之,算法會遍歷數(shù)據(jù)并識別數(shù)據(jù)中的模式。以人臉識別為例,如果我們希望給定一幅圖像,算法能識別出圖像中的人是誰,那么這時它識別到的模式其實有很多種:

臉部的長度/寬度

有時長度/寬度的具體數(shù)值可能是不可靠的,因為它們會隨著圖像縮放不斷變化,但即使在重新縮放之后,某些數(shù)據(jù)還是會始終保持不變——臉部的長寬比率

膚色

五官的形狀,如嘴、鼻子等

顯然,它們有一個共識——不同人臉的臉部長寬比、五官、膚色等是不同的。如果兩張人臉很相似,那它們在這些方面的差異就比較小。這就引出了最具挑戰(zhàn)性的一個步驟:把特定人的面部轉(zhuǎn)換成數(shù)字表示——機器學習算法只能理解數(shù)字。

這種“人臉”(或訓練集中特征)的數(shù)字表示就是我們所說的特征向量,它包含按特定順序排列的一系列數(shù)字。

為了方便理解,下面舉一個簡單的例子,我們可以將“人臉”映射到一個特征向量,該特征向量可以包含各種特征,例如:面長(cm)、面寬(cm)、平均膚色(RGB)、嘴唇寬度(cm)、鼻子長度(cm)。

基本上,給定一個圖像,我們可以繪制出各種特征并將其轉(zhuǎn)換為特征向量,如:

因此這張人臉可以用(23.1, 15.8, 255, 224, 189, 5.2, 4.4)這個向量表示。當然,除了以上特征,我們還可以通過觀察和測量獲得更多人臉信息,比如發(fā)色、面部毛發(fā)、是否戴眼鏡等,但為了方便介紹,我們在這篇文章里只考慮以上5個簡單特征。

一旦我們將每個圖像編碼成特征向量,問題就變得非常簡單了,因為我們可以通過計算向量之間的“距離”判斷兩張“人臉”的相似程度。而機器學習在這里發(fā)揮的作用主要有兩個:

派生特征向量:數(shù)據(jù)集中的數(shù)據(jù)量往往非常多,手動列出每個特征顯然不現(xiàn)實。機器學習算法可以智能地標記出所需特征,也可以做一些簡單計算,如鼻子長度與前額寬度的比率。

匹配算法:一旦獲得了特征向量,機器學習算法就可以把新圖像與數(shù)據(jù)集中存在的特征向量集相匹配。

現(xiàn)在我們已經(jīng)基本了解了人臉識別的工作原理,緊接著,讓我們使用一些著名的Python庫,嘗試構(gòu)建自己的人臉識別算法。

案例分析

下面是我們數(shù)據(jù)集中的一些圖像,分別是奧巴馬、比爾·蓋茨、杰夫·貝佐斯、馬克·扎克伯格、雷·達利奧和沙魯克汗。我們把這些人稱為“語料庫”,然后準備另一位名人(“新名人”)的圖像,模型的任務是確定“新名人”是否出現(xiàn)在“語料庫”中。

對人類來說,區(qū)分上述6人非常簡單,即便有讀者不認識著名男性沙魯克汗(末圖),我們也能從外形上看出他和奧巴馬的明顯區(qū)別。但這對計算機而言并不簡單。

我們選擇的“新名人”:

得益于社區(qū)成員的貢獻,現(xiàn)在我們有一個非常簡單的Python庫,它封裝了上面提到的所有內(nèi)容——從面部創(chuàng)建特征向量并知道如何檢測人臉。這個Python庫叫face_recognition,如果再深入研究一下,你會發(fā)現(xiàn)它來自dlib——沒錯,那個跨平臺的C++公共庫,它包含很多機器學習常用算法,有助于編寫復雜的基于C ++的應用程序。

Python中的face_recognition庫可以執(zhí)行大量任務:

檢測給定圖像中的所有人臉

檢測和標記圖像中的人臉特征

識別圖像中的人臉

實時人臉識別

這里我們只介紹如何用face_recognition識別圖像中的人臉,即上述第三個任務。

facerecognition源碼:github.com/ageitgey/facerecognition

如何安裝facerecognition庫:github.com/ageitgey/facerecognition#installation-options

在安裝face_recognition之前,你還需要安裝dlib:gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf

在Python中實現(xiàn)

本節(jié)包含使用face_recognition庫構(gòu)建簡單人臉識別系統(tǒng)的代碼,這是實現(xiàn)部分,代碼具體表示什么我們會下下節(jié)介紹。

# 導入庫

import os

import face_recognition

# 制作所有可用圖像的列表

images = os.listdir('images')

# 加載圖像

image_to_be_matched = face_recognition.load_image_file('my_image.jpg')

# 將加載圖像編碼為特征向量

image_to_be_matched_encoded = face_recognition.face_encodings(

image_to_be_matched)[0]

# 遍歷每張圖像

for image in images:

# 加載圖像

current_image = face_recognition.load_image_file("images/" + image)

# 將加載圖像編碼為特征向量

current_image_encoded = face_recognition.face_encodings(current_image)[0]

# 將你的圖像和圖像對比,看是否為同一人

result = face_recognition.compare_faces(

[image_to_be_matched_encoded], current_image_encoded)

# 檢查是否一致

if result[0] == True:

print"Matched: " + image

else:

print"Not matched: " + image

文件夾結(jié)構(gòu)如下:

facialrecognition:

fr.py

my_image.jpg

images/

barack_obama.jpg

bill_gates.jpg

jeff_bezos.jpg

mark_zuckerberg.jpg

ray_dalio.jpg

shahrukhkhan.jpg

warren_buffett.jpg

它們分別表示:

fr.py:人臉識別的代碼

my_image.jpg:要識別的圖像(“新名人”)

images/:“語料庫”

當你創(chuàng)建上面的文件夾結(jié)構(gòu)并運行上面的代碼時,這是你得到的輸出:

Matched: shah_rukh_khan.jpg

Not matched: warren_buffett.jpg

Not matched: barack_obama.jpg

Not matched: ray_dalio.jpg

Not matched: bill_gates.jpg

Not matched: jeff_bezos.jpg

Not matched: mark_zuckerberg.jpg

顯然,“新名人”是沙魯克汗,我們的人臉識別系統(tǒng)能夠檢測到他!

理解Python代碼

現(xiàn)在,我們來分解上述代碼,進一步了解它是如何工作的:

# 導入庫

import os

import face_recognition

這就是常規(guī)“導入”操作,我們會用face_recognition編寫算法

# 制作所有可用圖像的列表

images = os.listdir('images')

這行簡單代碼可以幫助我們識別語料庫中所有圖像的路徑。執(zhí)行此行后,我們會得到:

images = ['shah_rukh_khan.jpg', 'warren_buffett.jpg', 'barack_obama.jpg', 'ray_dalio.jpg', 'bill_gates.jpg', 'jeff_bezos.jpg', 'mark_zuckerberg.jpg']

現(xiàn)在,下面加載新名人圖像:

# 加載圖像

image_to_be_matched = face_recognition.load_image_file('my_image.jpg')

為了確保算法能夠解釋圖像,我們將圖像轉(zhuǎn)換為特征向量:

# 將加載圖像編碼為特征向量

image_to_be_matched_encoded = face_recognition.face_encodings(

image_to_be_matched)[0]

剩下的代碼不難理解:

# 遍歷每張圖像

for image in images:

# 加載圖像

current_image = face_recognition.load_image_file("images/" + image)

# 將加載圖像編碼為特征向量

current_image_encoded = face_recognition.face_encodings(current_image)[0]

# 將你的圖像和圖像對比,看是否為同一人

result = face_recognition.compare_faces(

[image_to_be_matched_encoded], current_image_encoded)

# 檢查是否一致

if result[0] == True:

print"Matched: " + image

else:

print"Not matched: " + image

綜合來看,我們用這些代碼做到了:

在每個圖像上循環(huán)

將圖像編碼為特征向量

將加載的圖像與要識別的圖像進行比較

如果人物一致,我們輸出結(jié)果。如果人物不一致,我們也會輸出結(jié)果

上面的輸出清楚地表明這個簡單人臉識別算法的效果非常好,讓我們嘗試用另一個圖像替換my_image :

再次運行算法時,輸出變成了這樣:

Not matched: shah_rukh_khan.jpg

Not matched: warren_buffett.jpg

Not matched: barack_obama.jpg

Not matched: ray_dalio.jpg

Not matched: bill_gates.jpg

Not matched: jeff_bezos.jpg

Not matched: mark_zuckerberg.jpg

顯然,馬云不在我們的“語料庫”中。

人臉識別應用

人臉識別是一個有趣的問題,關(guān)于它的研究比較成熟,這項技術(shù)也被廣泛應用于工業(yè)界和學術(shù)界?!案枭瘛睆垖W友之所以能成為“逃犯克星”,演唱會現(xiàn)場布置的先進人臉識別攝像頭功不可沒,這也是人臉識別用于減輕犯罪的一個典例。此外,這項技術(shù)還有許多應用:

身份驗證:蘋果已經(jīng)為iPhone中的人臉身份驗證引入高級面部識別碼,一些常用的APP,如支付寶,也在用戶要求進行個人社保信息操作時要求進行人臉認證。

客戶服務:馬來西亞的一些銀行已經(jīng)安裝了使用人臉識別系統(tǒng)來檢測高價值客戶的系統(tǒng),以便客服人員提供個性化服務。通過這種方式,銀行可以通過留住這些客戶創(chuàng)造更多收入。

保險承保:許多保險公司正在使用人臉識別系統(tǒng),將客戶真人面部與照片身份證上的人臉相匹配。這樣,客戶的承保過程會變得更快。

總而言之,人臉識別已經(jīng)開始從各個方面服務社會,雖然某些商業(yè)化應用會存在道德風險,但這些都不應成為阻礙技術(shù)發(fā)展的絆腳石。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人臉識別
    +關(guān)注

    關(guān)注

    77

    文章

    4089

    瀏覽量

    84311
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8503

    瀏覽量

    134639

原文標題:面部識別簡介(使用Python代碼)

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    人臉識別

    的方法,那就是用百度人臉識別工具來配合樹莓派,這樣的話,你會很容易做出個智能人臉識別系統(tǒng),用在你自己的各種產(chǎn)品上。 廢話不多說,來正文。
    發(fā)表于 02-22 12:09

    人臉識別技術(shù)原理解析

    `  人臉識別到底是什么?  人臉識別,是視覺模式識別個細分問題,也大概是最難解決的
    發(fā)表于 12-23 23:17

    人臉識別技術(shù)的60年發(fā)展史

    ,通過設定個閾值,當相似度超過這閾值,把匹配得到的結(jié)果輸出。將待識別的人臉特征與已得到的人臉特征模板進行比較,根據(jù)相似程度對
    發(fā)表于 06-20 13:29

    國家市場監(jiān)管總局發(fā)布智能門鎖提示:應停用人臉識別功能

      近日,國家市場監(jiān)管總局發(fā)布了一則關(guān)于智能門鎖的消費提示,稱相關(guān)部門及機構(gòu)對智能門鎖進行風險監(jiān)測后發(fā)現(xiàn)智能門鎖所搭載的人臉識別功能及遠程開鎖功能存在極高的安全隱患,為了保證財務和人身安全,國家
    發(fā)表于 11-18 09:27

    LabVIEW人臉識別設計

    學完《龍哥手把手教你學LabVIEW人臉識別》課程活動,并在截止時間內(nèi)完成挑戰(zhàn)任務,即可全額退回學費?!咎魬?zhàn)任務】第步:4月28-29日24:00前購買《龍哥教你學會LabVIEW人臉
    發(fā)表于 04-28 10:00

    充電器小知識一則

    充電器小知識一則 充電器的分類:用有、無工頻(50赫茲)變壓區(qū)分,可分為兩大類。貨運三輪充電器般使用帶工頻變壓
    發(fā)表于 11-23 11:02 ?791次閱讀

    減少Q(mào)Q內(nèi)存占用的一則方法

    減少Q(mào)Q內(nèi)存占用的一則方法 隨著QQ的功能越來越多,QQ占用的資源也是越來越多,為了減小它的資源占用量,大家想出了多種方法其中有把
    發(fā)表于 01-14 11:23 ?744次閱讀

    光驅(qū)讀盤能力差的解決方法一則

    光驅(qū)讀盤能力差的解決方法一則 光驅(qū)使用久了就會出現(xiàn)有的光盤能讀,有的光盤不能讀,或是有的光盤讀到半就出現(xiàn)卡死的現(xiàn)象,
    發(fā)表于 02-24 13:38 ?841次閱讀

    人臉識別的原理說明

    人臉識別是基于人的臉部信息,進行身份識別種生物識別技術(shù),人臉
    發(fā)表于 06-17 14:36 ?3960次閱讀

    人臉識別工作原理_人臉識別的應用范圍

    人臉識別是數(shù)字信息發(fā)展中的種生物特征識別技術(shù),通過攝像機采集含有人臉的圖像或者視頻流,并自動
    發(fā)表于 08-27 13:53 ?2781次閱讀

    人臉識別作為種生物識別技術(shù),它的作用有哪些

    實際包括構(gòu)建人臉識別系統(tǒng)的系列相關(guān)技術(shù),包括人臉識別圖集、
    發(fā)表于 01-20 09:31 ?2441次閱讀

    如何使用ESP32-CAM構(gòu)建一個人臉識別系統(tǒng)

    在這個項目中,我們將使用 ESP32-CAM 構(gòu)建一個人臉識別系統(tǒng),該系統(tǒng)還可以通過識別未經(jīng)授權(quán)的人的面部來作為 ESP32-CAM 安全系統(tǒng)。ESP32-CAM 是
    發(fā)表于 08-22 16:35 ?1.8w次閱讀
    如何使用ESP32-CAM<b class='flag-5'>構(gòu)建</b><b class='flag-5'>一個人臉</b><b class='flag-5'>識別</b>系統(tǒng)

    Xilinx KV 260構(gòu)建一個人臉識別車庫門鎖

    電子發(fā)燒友網(wǎng)站提供《Xilinx KV 260構(gòu)建一個人臉識別車庫門鎖.zip》資料免費下載
    發(fā)表于 10-26 11:24 ?7次下載
    Xilinx KV 260<b class='flag-5'>構(gòu)建</b><b class='flag-5'>一個人臉</b><b class='flag-5'>識別</b>車庫門鎖

    文看懂人臉識別技術(shù)

    廣義的人臉識別實際包括構(gòu)建人臉識別系統(tǒng)的系列相關(guān)技術(shù) , 包括
    的頭像 發(fā)表于 05-22 09:26 ?3883次閱讀

    使用Jetson Nano構(gòu)建人臉識別系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《使用Jetson Nano構(gòu)建人臉識別系統(tǒng).zip》資料免費下載
    發(fā)表于 07-06 11:37 ?0次下載
    使用Jetson Nano<b class='flag-5'>構(gòu)建</b><b class='flag-5'>人臉</b><b class='flag-5'>識別</b>系統(tǒng)