主頁 >  其他 > 計算機視覺理論筆記 (12) - 影像分類和面部識別 (Image Classification & Face Recognition)

計算機視覺理論筆記 (12) - 影像分類和面部識別 (Image Classification & Face Recognition)

2020-12-10 18:25:47 其他

影像分類和面部識別

  • 總覽
    • 在機器學習中的主要步驟
    • 機器學習的訓練和測驗
  • 面部識別 (Face Recognition)
    • 人類方法
      • 應用
      • 面部特征 (本地local和整體holistic)
      • 配置資訊 (Configure Information)
    • 計算機視覺方法
      • 面部識別系統
      • 早期設計
      • 特征臉 (Eigenfaces)
        • 主成分分析 PCA
        • 特征臉演算法
        • 特征臉演算法 - 檢測
      • 線性判別分析 (Linear Discriminated Analysis - LDA)
      • 區域二進制模式 (Local Binary Patterns)
    • 人臉歸一化 (Normalization of Faces)

總覽

給定影像或物件的影像,標識影像或物件所代表的物件的類別,
在這里插入圖片描述

在機器學習中的主要步驟

  1. 特征提取(feature extraction): 手動設計的特征(hand-crafted features),比如幾何特征(Geometry-based),形狀,
    基于外觀 (apperance-based), 全域 (即 特征臉 eigenfaces,顏色直方圖 color histogram,BOW) 和/或 區域 (即SIFT, BOF),
    基于學習(Learning-based)
  2. 分類 (Classifer): 通常涵蓋在機器學習或模式識別(pattern recognition)中,貝葉斯,K-NN,SVM,MLP等,

機器學習的訓練和測驗

資料集:

  • 有標簽的(labelled),帶有基本事實 (ground truth) 的資料樣本,
  • 無標簽的(unlabelled),不帶基本事實的資料樣本,

被分為:

  • 訓練集
  • 驗證集
  • 測驗集

不平衡資料集(unbalance dataset): 每個類別的資料樣本數量明顯不同,

性能標準:

  1. 范圍 (Scope),類別數量,
  2. 穩鍵性,對噪聲,明度變化,比例改變穩鍵,
  3. 高效 efficiency,節省計算資源(時間和空間)
  4. 有效性 effectiveness (準確性和混淆矩陣)

面部識別 (Face Recognition)

人類方法

在這里插入圖片描述
從靜止影像 (still images) 或視頻序列中檢測人臉,將檢測到的面部與存盤在資料庫中的面部進行比較,確認或拒絕所獲取的身份 (claimed identity identification),從資料庫確定身份,

應用

  • 攜帶ID (面部識別),
  • 語音識別 (通過唇讀增強 lip-reading),
  • 通過面部表情表達情感,
  • 訪問控制和安全 (access control and security),
  • 智能卡 (smart cards),
  • 執法 (law enforcement),
  • 監視 (surveillance),

面部特征 (本地local和整體holistic)

  • 個體面部成分 (individual facial components),區域特征,
  • 組件之間的關系,整體配置 (holistic configuration),

在這里插入圖片描述
與未對齊的兩半對齊后,執行此任務要困難得多, 大概是因為整體處理 (holistic processing) 與基于特征的處理 (feature-based processing) 相互作用(在這種情況下會干擾 interferes)
在這里插入圖片描述
由于整體資訊發生變化,人臉反轉(face inversion)會干擾人臉識別,

面部關鍵點:

  • 眼睛 -> 嘴巴 -> 鼻子,
  • 使用側面像 (profiles) 時,獨特的鼻子形狀可能更重要,
  • 臉的上半部分比較有用,
  • 眉毛至少和眼睛一樣重要,

配置資訊 (Configure Information)

我們是否需要精確測量屬性,例如眼間距離,嘴巴寬度和鼻子長度?
更改x和y維度上的特征距離 (interfeature distance) 和距離比率 (distance ratio) 后,仍然可以識別,
在這里插入圖片描述
同一維度內的距離比例保持不變

邊緣和線段:

  • 視覺輸入的初始表示,也是捕獲影像的最重要方面,
  • 對照明變化具有不變性,
  • 但是還不足夠,

一些研究表明物件識別是對視點變化具有不變性(viewpoint invariant)的,
一些實驗表明,面部記憶與視點高度相關(viewpoint-dependent),
從一個側面的視點到另一種視點的泛化性 (generalization) 很差,而從一個四分之三的視點到另一視點的泛化性是很好的,

計算機視覺方法

面部感知是整體分析還是區域特征分析的結果?

  • 整體方法: 使用整個面部區域作為輸入,
  • 區域方法: 使用區域特征(如 幾何/外觀)
  • 混合方法 (hybrid methods): 同時使用區域特征以及整個面部區域,

面部特征的重要性, 特征的權重不同
視點不變研究, 處理姿勢問題 (pose problem)

面部識別系統

在這里插入圖片描述

早期設計

基于幾何的方法 (geometric-based) 被廣泛使用

  • 幾何特征:兩只眼睛之間的距離,嘴唇的粗細……
  • 從參考面手動提取
  • 存盤為模板以供以后匹配
  • 提供有限的結果
  • 通常使用少至10張影像的資料集進行實驗,

特點

  • 不受光照變化的影響
  • 不需要多個訓練樣本
  • 幾何特征不可靠(由于運動和視圖)
  • 測量和位置需要手動計算(最大的缺點)

特征臉 (Eigenfaces)

Sirovich和Kirby在1987年開發了使用特征臉進行識別的方法,1991年由Turk和Alex Pentland在人臉識別中使用,自動面部識別技術 (automated facial recognition) 的第一個成功例子,
這是一個基于主成分分析(Principle Components Analysis, PCA)的整體方法,快速且相對簡單,

主成分分析 PCA

是一種識別資料模式并以突出其相似性和差異性 (similarities and differences) 的方式表示資料的方法,可以尋找可以有效表示資料的方向,其能夠減少資料的維度 (reduce the dimension of the data) 并用于加快計算時間,

例子:
這是一個二維的資料集
在這里插入圖片描述
將所有資料與其均值相減
在這里插入圖片描述
接著,求協方差矩陣(covariance matrix)
在這里插入圖片描述
接著求協方差矩陣的特征向量 (eigenvectors) 和特征值 (eigenvalues)
在這里插入圖片描述
特征向量之一穿過點的中間,就像畫一條最擬合的線,接著該特征向量向我們展示了這些資料如何沿著這條線關聯,第二個特征向量為我們提供了資料中另一個不那么重要的模式,即所有的點都遵循主線,但會偏離主線的一定量,
在這里插入圖片描述
接著,我們可以使用兩個特征向量來轉換資料,將原始資料以特征向量為軸進行旋轉,現在,我們將資料點歸類為每條線的貢獻的組合,
在此分解中,不會有任何資訊丟失,
在這里插入圖片描述
或者我們可以采用特征值最大的特征向量,此時較小特征向量的貢獻被去除,
基本上,我們已經對資料進行了轉換,以便根據它們之間的模式來表達,模式 (pattern) 是最緊密地描述資料之間關系的線,
在這里插入圖片描述

特征臉演算法

假設: 影像是N x N = N2,M是資料庫中影像的數量,P是資料庫中人物的數量,

現在我們的訓練集有八張圖
在這里插入圖片描述
計算“平均臉”(average face)
在這里插入圖片描述

在這里插入圖片描述
讓訓練集中的所有臉減去"平均臉"
在這里插入圖片描述
接著建立A矩陣,該矩陣存放了所有資料庫中所有臉部資訊,
在這里插入圖片描述
接著,計算A的協方差矩陣 (covariance matrix)
在這里插入圖片描述
接著查找協方差矩陣的特征值 eigenvalue (矩陣很大, 計算量很大),我們最多對M個特征值感興趣,(減小矩陣的尺寸, 線性代數的技巧)

計算另一個矩陣
在這里插入圖片描述
查找M個特征值和特征向量,其中,Cov和L的特征向量是等效的,每個特征向量都稱為訓練資料的特征臉 (AAT)

特征臉 (eigenface):
在這里插入圖片描述
根據 L 的特征向量構建矩陣V,
協方差矩陣(Cov)的特征向量是影像空間與L的特征向量的線性組合,
在這里插入圖片描述
特征向量表示臉部的變化(variation in the faces),
計算每張臉在臉部空間上的投影 (projection onto the face space),
在這里插入圖片描述
計算出閾值
在這里插入圖片描述

特征臉演算法 - 檢測

輸入值,測驗臉部圖片(稱為測驗臉)
在這里插入圖片描述
讓測驗臉減去"平均臉"
在這里插入圖片描述
計算測驗臉在臉部空間的投射
在這里插入圖片描述
計算測驗臉與所有已知臉之間的臉部空間距離,臉部將會識別為臉部空間中最接近的臉部,
在這里插入圖片描述
為了驗證,會將該距離與之前計算的閾值相對比,若小于該閾值,則確認這是一張已知臉,
在這里插入圖片描述

線性判別分析 (Linear Discriminated Analysis - LDA)

這個方法是特征臉的擴展,其通過最大化類間方差(maximising the between-class variance)和最小化類內方差 (minimising the within-class variance) 來尋找線性變化,當每個類別有多個樣本時,分類性能會提高,
在這里插入圖片描述

區域二進制模式 (Local Binary Patterns)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

人臉歸一化 (Normalization of Faces)

有時我們會遇到臉部并不正對鏡頭,而是面對著其他方向的情況,為了使系統能夠正確識別非正臉面部,我們需要做人臉歸一化,
如何做到:使用臉部地標(face landmarks),
在這里插入圖片描述
結合仿射變換 Affine Transformation (平移,旋轉,縮放和剪切),使外眼角 (outer eye corners) 和鼻子對齊,將識別到的臉部地標轉化為正對著鏡頭的版本,
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232631.html

標籤:AI

上一篇:前端的自動化重構

下一篇:【飛槳PaddlePaddle】四天搞懂生成對抗網路(四)——CycleGAN的絕妙設計:雙向回圈生成的結構

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more