IdentiFace——多模態人臉識別系統,可捕捉從情緒到性別的所有信息及其潛力

1. 概述

面部識別系統的開發極大地推動了計算機視覺領域的發展。如今,人們正在積極開發多模態系統,將多種生物識別特征高效、有效地結合起來。

本文介紹了一種名為 IdentiFace 的多模態人臉識別系統。該系統利用基于 VGG-16 架構的模型,將人臉識別與性別、臉型和情緒等重要生物特征信息結合起來,但不同子系統之間略有改動。

在從 FERET 數據庫收集的數據上,性別識別準確率達到 99.2%,在作者的數據集上達到 99.4%,在公共數據集上達到 95.15%。在臉形識別方面,作者使用名人臉形數據集取得了 88.03% 的測試準確率;在情緒識別方面,作者使用 FER2013 數據集取得了 66.13% 的測試準確率。這表明性別識別任務相對容易,而面部形狀和情感識別任務則容易在相似類別之間產生混淆。

IdentiFace "多模態面部識別系統可應用于安全、監控和個人身份識別領域。通過利用面部特征,可以實現更高效、更準確的生物識別。

論文地址:https://arxiv.org/ftp/arxiv/papers/2401/2401.01227.pdf
源碼地址:https://github.com/MahmoudRabea13/IdentiFace

2. 數據集

本節將介紹每項任務所使用的數據集。首先,在人臉識別方面,使用了 NIST 的 "Colour FERET"數據集。該數據集包含 994 人的 11,338 張人臉圖像。該數據集包含 13 種不同的人臉方向,每種方向都有指定的面部旋轉度。此外,一些受試者有戴眼鏡和不戴眼鏡的圖像,另一些受試者則有不同發型的圖像。本文使用的是這些圖像的壓縮版本,圖像大小為 256 x 484 像素。之所以選擇這個數據集,是因為它的差異很大,有助于模型學習到較高的泛化性能。此外,四位作者本人也作為新對象被添加到數據庫中,并在不同場景下進行了測試。

接下來,為了進行性別分類,我們從作者的教師中收集了一個數據集。起初,該數據集由 15 名男性和 8 名女性組成,每張圖像都包含多種變化,以增加數據量。然而,后來受試者的數量不斷增加,最終將數據量增加到總圖像數(133 張男性圖像/66 張女性圖像),其中男性 31 張,女性 27 張。訓練/驗證數據沒有在收集過程中進行拆分,而是在預處理階段進行了拆分。為了便于比較,我們還使用了 Kaggle 的 “性別分類數據集”。該數據集的訓練數據每類約分為 23,000 張圖片,驗證數據每類約分為 5,500 張圖片。

由于任務的復雜性,需要人工標注,作者無法收集自己的臉型預測數據集,因此使用了臉型數據集,其中包含最受歡迎的臉型數據集–名人臉型。該數據集于 2019 年發布,只包含女性受試者,五個類別(圓形/橢圓形/方形/矩形/心形)各包含 100 張圖片。

最后,在情緒識別方面,作者軍團最初為這項任務收集了自己的數據集。其中包括 38 名受試者,分為 22 名男性和 16 名女性。每個受試者的每種特定情緒有 7 幅圖像,每類有 38 幅圖像,共計 266 幅圖像。每個類別中的圖像都是人工標注的。有些受試者在多個類別中都有相似的面部表情,這使得圖像標注和分類過程相對具有挑戰性。因此,為了收集一個合適的情感數據集。我們使用了 "FER-2013"數據集。該數據集是公開的,包含 30,000 多張圖片,包含七個類別(憤怒/厭惡/恐懼/快樂/悲傷/驚訝/中立)。所有圖像均轉換為 48x48 灰度圖像,所有類別幾乎均勻分布。

4 .算法架構

本文構建了一個單一網絡,通過在每個任務之間對網絡進行微調,該網絡可適應多個與人臉相關的任務。VGGNet 架構被用作多模態系統的主網絡。本文對基本的 VGG-16 進行了試驗,最終將其簡化為只有三個主要區塊,去掉了最后兩個卷積區塊。這樣做主要是為了減少參數數量和模型的整體復雜性,因為該模型在各種任務中的表現已經很好。下表列出了該模型在層數、輸出幾何圖形和參數數量方面的信息。

在最終編譯模型時,采用了以稀疏分類交叉熵為損失函數的亞當優化器。此外,還引入了早期停止功能,以防止模型的過度訓練。

此外,人臉識別任務的預處理如下

  • 使用 Dlib 基于 CNN 的人臉檢測。
  • 對識別出的人臉進行裁剪并轉換成灰度圖像。
  • 調整為 128x128 像素。
  • 班級數改為 5 個(Hanya、Mahmoud、Nourhan、Sohaila 和其他人)。

除人臉識別外,所有任務都要進行以下預處理

  • 使用 Dlib 中的 68 個面部地標進行人臉檢測
  • 所有檢測到的人臉都會被裁剪,沒有人臉的圖像會被過濾。
  • 臉部尺寸調整為 128 x128,并轉換為灰度

在調整大小后,每個數據集都會按以下方式進行擴展,以確保所有任務的平衡。為確保所有類別的公平分布,僅對不平衡和較小的數據集進行了擴展。

數據擴展后的數據集如下所示。在人臉識別方面,數據集最初包含了來自彩色 FERET 數據集的 11,338 張 "其他 "類圖像,但為了避免過度訓練,數據集減少到了 500 張。有些數據集,如情感識別和性別識別數據集,不需要進行數據擴展,因為每個類別都有很多圖像,而且分布均衡。

5. 試驗

對于人臉識別,數據集的訓練與測試比例為 80:20,并使用以下參數訓練模型

  • 學習率 (lr) = 0.0001
  • 批量大小 = 32
  • 測試規模 = 0.2
  • 歷時次數 = 100

結果如下

在性別分類中,任務被視為多類分類,將女性受試者標記為 0,男性受試者標記為 1。以下參數用于訓練作者數據集的模型和公共數據集的模型。

  • 學習率 (lr) = 0.0001
  • 批次大小 = 128
  • 測試規模 = 0.2

結果如下

下圖是作者繪制的數據集混淆矩陣圖。

下圖顯示了數據集與公共數據集的混淆矩陣。

在臉型預測中,我們嘗試了兩種不同的模型來完成這項任務:一種是針對所有類別的模型,另一種是只針對三個類別(長方形/正方形/圓形)的模型。這樣做的目的是為了觀察模型在類別重疊最少的情況下是如何工作的,并與其他包含所有類別的模型進行比較。

  • 學習率 (lr) = 0.0001
  • 批次大小 = 128
  • 測試規模 = 0.2

標簽如下

結果如下

支持向量機(SVM)和卷積神經網絡(CNN)已被用于情緒識別。支持向量機(SVM)的結果如下。

卷積神經網絡(CNN)的結果如下。

為了實現結果的可視化,正在開發一種名為 "IdentiFace "的多模式面部生物識別系統,作為基于 Pyside 的桌面應用程序。它可以同時在線和離線進行面部生物識別。

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

6.總結

我們嘗試了不同的方法,并在每項任務中使用了我們自己的數據集以及其他公開可用的數據集,包括人臉識別、性別分類、人臉形狀確定和情感識別。我們還選擇了 VGGNet 模型,因為它在使用這些數據集的所有任務中表現最佳。此外,我們還將所有表現最佳的模型結合起來,開發了一個名為 IdentiFace 的多模態面部生物識別系統。該系統集成了人臉識別、性別分類、面部形狀確定和情感識別于一體。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18667.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18667.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18667.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【NumPy】NumPy線性代數模塊詳解:掌握numpy.linalg的核心功能

🧑 博主簡介:阿里巴巴嵌入式技術專家,深耕嵌入式人工智能領域,具備多年的嵌入式硬件產品研發管理經驗。 📒 博客介紹:分享嵌入式開發領域的相關知識、經驗、思考和感悟,歡迎關注。提供嵌入式方向…

多年期貨盈利的秘訣就是虧了就跑

不怎么看消息面,尤其期貨,外匯。 正大招主賬戶:歐美4恒指26小恒12 歡迎咨詢代理 詳YJCFPL 堅持學習,吸收別人的經驗,為我所用。 獨立思考,培養良好的生活習慣。 我能活到現在的秘訣就是:虧了就趕…

Hexo最新實戰:(一)Hexo7.0+GitHub Pages博客搭建

前言 很多平臺都能寫博客還有創作激勵,為什么我又要搭一個?為什么這次要選擇用Hexo框架? 對應的原因是流量自由和省錢,第一個,很多平臺能寫但不是都有收益,而且平臺有自身的規則,比如會屏蔽一…

【區塊鏈】外部應用程序與區塊鏈進行交互

一,外部應用程序與區塊鏈進行交互案例目標與流程 1.1案例目標 掌握FISCO BCOS應用環境的搭建 與使用(FISCO BCOSWeBASE)掌握基于Java SpringBoot的應 用程序后端項目搭建與開發。掌握應用程序后端與FISCO BCOS 鏈的交互。掌握應用程序前端…

『大模型筆記』量化 vs 剪枝 vs 蒸餾:為推理優化神經網絡!

量化 vs 剪枝 vs 蒸餾:為推理優化神經網絡! 文章目錄 一. 量化 vs 剪枝 vs 蒸餾:為推理優化神經網絡!1.1. 量化(Quantization)1.2. 剪枝(purning)1.3. 知識蒸餾(Knowledge Distillation,也稱為模型蒸餾)1.4. 工程優化(Engineering Optimizations)1.5. 總結二. 參考…

【旅行商問題的優化】

#include<bits/stdc.h> // 包含標準庫的頭文件using namespace std; // 使用標準命名空間template <class Type> // 模板聲明&#xff0c;Type為類型參數 class Traveling{ // 定義Traveling類friend Type Tsp(int **, int[],int, Type); // 聲明友元函數Tsp publi…

WPF hc:PropertyGrid 嵌套顯示

重點&#xff1a; 編寫Edit特性即可&#xff1a; public class ParameterEditor : PropertyEditorBase{public override FrameworkElement CreateElement(PropertyItem propertyItem){var pg new PropertyGrid();return pg;}public override DependencyProperty GetDependen…

2024/5/22 ARMday7

按鍵控制LED燈亮和滅 do_irq.c #include "key_it.h" //#include "led.h" extern void printf(const char *fmt, ...); unsigned int i 0; void do_irq(void) {//獲取中斷號unsigned int irqno(GICC->IAR & (0x3FF));switch (irqno){case 99://處…

Playwright 元素定位

一、get_by_XXXXX 1. get_by_role&#xff1a;根據元素角色進行定位, 常用的參數有兩個&#xff0c;第一個是角色名稱 role&#xff0c;第二個是元素的文本 name。其他參數的解釋大家可以參考源碼注釋。 # 獲取頁面名稱為確定的按鈕 page.get_bt_role(button, name確定) pl…

cfa三級大神復習經驗分享系列(一)

教材還是Notes? 對于愚鈍如我之流&#xff0c;建議大家三級一定要看教材。Note很精華很濃縮&#xff0c;我覺得看過教材再看note感覺總結的很精辟&#xff0c;但是Note是以考點列的&#xff0c;而教材像小說一樣娓娓道來&#xff0c;有邏輯有情節&#xff0c;如果不follow很難…

Android MIPI屏配置

參考資料&#xff1a;RockChip發布的DRM Display Driver Development Guide手冊&#xff0c;以及網上大量相關博客資料 首先要拿到《屏幕硬件規格書》和《DataSheet》&#xff0c;軟件配置主要依靠DataSheet提供數據支持。 查閱DataSheet里面on sequence和off sequence說明&a…

機器學習之爬山算法(Hill Climbing Algorithm)

爬山算法(Hill Climbing Algorithm)是一種簡單而常見的啟發式搜索算法,通常用于解決優化問題。它的基本思想類似于登山過程中爬升到山頂的過程,即從一個起始點開始,不斷嘗試向鄰近的點移動,直到找到一個局部最優解。 下面是爬山算法的基本工作流程: 初始化:選擇一個初…

關于同一個地址用作兩個不同頁面時,列表操作欄按鈕混淆狀態

同一個地址用作兩個不同頁面時&#xff0c;列表頁的操作欄中有好多個按鈕&#xff0c;如果用了v-if&#xff0c;可能會導致按鈕混淆狀態如disabled等屬性混亂 解決方法1&#xff1a; 將v-if換成v-show&#xff0c;用了v-show之后意味著所有按鈕都在只是在頁面上隱藏了 解決方…

【python深度學習】——torch.min()

【python深度學習】——torch.min 1. torch.min()1.1 計算整個張量的最小值1.2 沿特定維度計算最小值1.3 比較兩個張量 1. torch.min() torch.min()接受的參數如下: input: 輸入的張量。dim: 沿指定維度尋找最小值。如果指定了該參數&#xff0c;返回一個元組&#xff0c;其中…

基于Vue+SpirngBoot的博客管理平臺的設計與實現(論文+源碼)_kaic

摘 要 隨著當下社會的發展&#xff0c;互聯網已經成為時代的主流&#xff0c;從此進入了互聯網時代&#xff0c;對大部分人來說&#xff0c;互聯網在日常生活中的應用是越來越頻繁&#xff0c;大家都在互聯網當中互相交流、學習、娛樂。博客正是扮演這樣一個角色。博客已成為當…

[Nodejs]使用adm-zip和fs-extra壓縮打包后的文件

在此之前&#xff0c;操作目錄、壓縮文件是通過scripts來實現的&#xff0c;在windows機器上多有不便&#xff0c;需要通過linux命令行來實現cp、rm命令&#xff1a; "cpdist": "cp -r ./dist/* ../../qw-portal/assetAllocation/", "rmdist": …

實驗八 單區域OSPF路由協議配置

一、實驗目的 掌握 OSPF 動態路由協議的配置、診斷方法。 二、實驗步驟 1、 運行Cisco Packet Tracer軟件&#xff0c;在邏輯工作區放入三臺路由器、兩臺工作站PC及一臺筆記本&#xff0c;分別點擊各路由器&#xff0c;打開其配置窗口&#xff0c;關閉電源&#xff0c;分別加…

如何選擇云服務器

云服務器選擇概述 在選擇合適的云服務器時&#xff0c;需要綜合考慮多個方面的因素&#xff0c;包括但不限于云服務器的類型、配置、價格、性能、安全性、可靠性、擴展性以及服務商的品牌信譽等。以下是根據搜索結果得出的詳細分析和建議。 云服務器選擇詳解 云服務器類型選…

Python裝飾器的應用

Python 中的裝飾器是一種語法糖&#xff0c;可以在運行時&#xff0c;動態的給函數或類添加功能。裝飾器本質上是一個函數&#xff0c;使用 函數名就是可實現綁定給函數的第二個功能 。它的作用就是在不修改被裝飾對象源代碼和調用方式的前提下為被裝飾對象添加額外的功能。 …

策略模式代碼

import java.util.*; enum TYPE { NORMAL,CASH_DISCOUNT,CASH_RETURN}; interface Cashsuper { public double acceptCash(double money); } class CashNormal implements CashSuper{// 正常收費子類 public double accptCash(double money){ return money; …