欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Matlab控制電腦攝像實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)和識(shí)別詳解

 更新時(shí)間:2022年10月08日 08:14:34   作者:fpga和matlab  
人臉識(shí)別過(guò)程主要由四個(gè)階段組成:人臉檢測(cè)、圖像預(yù)處理、面部特征提取和特征識(shí)別。這篇文章主要介紹了如何使用MATLAB控制筆記本電腦的攝像頭,并進(jìn)行實(shí)時(shí)人臉檢測(cè)和識(shí)別,需要的可以參考一下

一、理論基礎(chǔ)

人臉識(shí)別過(guò)程主要由四個(gè)階段組成:人臉檢測(cè)、圖像預(yù)處理、面部特征提取和特征識(shí)別。首先系統(tǒng)從視頻或者相機(jī)中捕獲圖像,檢測(cè)并分割出其中的人臉區(qū)域;接下來(lái)通過(guò)歸一化、對(duì)齊、濾波等方法改善圖像的質(zhì)量,這里的質(zhì)量主要由最終的人臉識(shí)別率決定;特征提取(降維)環(huán)節(jié)尤為重要,其初衷是減少數(shù)據(jù)量從而減輕計(jì)算負(fù)擔(dān),但良好的特征選取可以降低噪音和不相關(guān)數(shù)據(jù)在識(shí)別中的貢獻(xiàn)度,從而提高識(shí)別精度;特征識(shí)別階段需要根據(jù)提取的特征訓(xùn)練一個(gè)分類(lèi)器,對(duì)于給定的測(cè)試樣本,根據(jù)訓(xùn)練器對(duì)其進(jìn)行分類(lèi)。

當(dāng)定位好人臉的時(shí)候,我們進(jìn)行識(shí)別,識(shí)別的主要原理如下:

GRNN廣義回歸神經(jīng)網(wǎng)絡(luò)的理論基礎(chǔ)是非線(xiàn)性核回歸分析,非獨(dú)立變量y相對(duì)于獨(dú)立變量x的回歸分析實(shí)際上是計(jì)算具有最大概率值的y。設(shè)隨機(jī)變量x和y的聯(lián)合概率密度函數(shù)為f (x ,y),已知x的觀測(cè)值為X,則y相對(duì)于X的回歸,即條件均值為:

對(duì)于未知的概率密度函數(shù)f (x, y),可由x和y的觀測(cè)樣本經(jīng)非參數(shù)估計(jì)得:

GRNN通常被用來(lái)進(jìn)行函數(shù)逼近。它具有一個(gè)徑向基隱含層和一個(gè)特殊的線(xiàn)性層。第一層和第二層的神經(jīng)元數(shù)目都與輸入的樣本向量對(duì)的數(shù)目相等。GRNN結(jié)構(gòu)如圖2-3所示,整個(gè)網(wǎng)絡(luò)包括四層神經(jīng)元:輸入層、模式層、求和層與輸出層。 

GRNN廣義回歸神經(jīng)網(wǎng)絡(luò)進(jìn)行映射學(xué)習(xí)達(dá)到了很好的效果.這些流形的方法都建立在一個(gè)假設(shè)上:同一個(gè)人不同姿態(tài)的圖像是高維空間中的一個(gè)低維流形.基于這個(gè)假設(shè),不同人在姿態(tài)變化下可以獲得較好的識(shí)別效果。

在matlab中,通過(guò)如下的驅(qū)動(dòng)程序控制筆記本電腦的攝像頭:

%Set up video object. Note: to change to a different camera (or camera setup) change the following line:
vid = videoinput('winvideo',1,'YUY2_640x480');
%Set the video object to always return rgb images:
set(vid, 'ReturnedColorSpace', 'rgb');
triggerconfig(vid,'manual');
start(vid)
%Initialize frame Frm and fps variable
Frm     = 0;
fps     = 0;
%Set the total runtime in seconds 
runtime = 100;
h       = figure(1);
tic;
timeTracker = toc;

通過(guò)程序vid = videoinput('winvideo',1,'YUY2_640x480');完成攝像頭圖像的采集。

二、核心程序

clc;
clear;
close all;
warning off;
addpath 'func\'
addpath 'facebase\'
 
 
delete(imaqfind);
%Set up video object. Note: to change to a different camera (or camera setup) change the following line:
vid = videoinput('winvideo',1,'YUY2_640x480');
%Set the video object to always return rgb images:
set(vid, 'ReturnedColorSpace', 'rgb');
triggerconfig(vid,'manual');
start(vid)
%Initialize frame Frm and fps variable
Frm     = 0;
fps     = 0;
%Set the total runtime in seconds 
runtime = 100;
h       = figure(1);
tic;
timeTracker = toc;
 
 
load grnns.mat
while toc < runtime 
      toc
      Frm = Frm + 1;
      %獲得攝像頭圖像
      I   = getsnapshot(vid);
 
 
      %人臉跟蹤
      [segment,f,R0,R1] = func_face_track(I);
      %獲得人臉區(qū)域
      figure(1);
      subplot(221);
      imshow(uint8(I));
      title('攝像頭視頻獲取');
      subplot(222);
      imshow(f);
      subplot(223);
      imshow(R1);
      title('臉部定位');
      
      %人臉識(shí)別(測(cè)試前需要加入自己所要測(cè)試的人臉的相關(guān)庫(kù)。比如你要測(cè)試你自己的臉,那么需要加入你的臉道庫(kù)中)
       
      R0re    = imresize(R0,[220,160]);
      Ttest   = func_yuchuli(R0re);%讀入數(shù)字
      wordsss = sim(net,Ttest');
      [V,I]   = max(wordsss);
    
      %顯示識(shí)別結(jié)論
      Icheck  = imread(['facebase\',num2str(I-1),'.jpg']);
      
      subplot(224);
      imshow(Icheck);
      title('識(shí)別結(jié)論');
      pause(0.5);
end
stop(vid)
 
 
 
clc;
clear;
close all;
warning off;
addpath 'func\'
addpath 'facebase\'
I = imread('1.jpg');
 
%%
%人臉跟蹤
[segment,f,R0,R1] = func_face_track(I);
%獲得人臉區(qū)域
figure
subplot(221);
imshow(I);
subplot(222);
imshow(f);
subplot(223);
imshow(R1);
title('臉部定位');
 
%%
%人臉識(shí)別(測(cè)試前需要加入自己所要測(cè)試的人臉的相關(guān)庫(kù)。比如你要測(cè)試你自己的臉,那么需要加入你的臉道庫(kù)中)
%人臉庫(kù)的離線(xiàn)訓(xùn)練
R0re    = imresize(R0,[220,160]);
Ttest   = func_yuchuli(R0re);%讀入數(shù)字
 
load grnns.mat
wordsss = sim(net,Ttest');
[V,I]   = max(wordsss);
%顯示識(shí)別結(jié)論
Icheck  = imread(['facebase\',num2str(I-1),'.jpg']);
subplot(224);
imshow(Icheck);
title('識(shí)別結(jié)論');

三、仿真測(cè)試結(jié)果

由此可以看出,當(dāng)選擇出學(xué)習(xí)樣本之后,GRNN網(wǎng)絡(luò)的結(jié)構(gòu)與權(quán)值都是完全確定的,因而訓(xùn)練GRNN網(wǎng)絡(luò)要比訓(xùn)練BP網(wǎng)絡(luò)和RBF網(wǎng)絡(luò)便捷得多。

到此這篇關(guān)于Matlab控制電腦攝像實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)和識(shí)別詳解的文章就介紹到這了,更多相關(guān)Matlab人臉檢測(cè)識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言?struct結(jié)構(gòu)體超詳細(xì)講解

    C語(yǔ)言?struct結(jié)構(gòu)體超詳細(xì)講解

    C語(yǔ)言中,結(jié)構(gòu)體類(lèi)型屬于一種構(gòu)造類(lèi)型(其他的構(gòu)造類(lèi)型還有:數(shù)組類(lèi)型,聯(lián)合類(lèi)型),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言結(jié)構(gòu)體(struct)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • C++ 函數(shù)指針詳細(xì)總結(jié)

    C++ 函數(shù)指針詳細(xì)總結(jié)

    這篇文章主要介紹了C++ 函數(shù)指針內(nèi)容,下面文章圍繞C++ 函數(shù)指針的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,包括函數(shù)指針的進(jìn)階內(nèi)容,需要的朋友可以參考一下,希望對(duì)大家有所幫助
    2021-11-11
  • 利用c++和easyx圖形庫(kù)做一個(gè)低配版掃雷游戲

    利用c++和easyx圖形庫(kù)做一個(gè)低配版掃雷游戲

    這篇文章主要介紹了用c++和easyx圖形庫(kù)做一個(gè)低配版掃雷游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • C++實(shí)現(xiàn)快速排序(Quicksort)算法

    C++實(shí)現(xiàn)快速排序(Quicksort)算法

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)快速排序(Quicksort)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c++ chrono 獲取當(dāng)前時(shí)間的實(shí)現(xiàn)代碼

    c++ chrono 獲取當(dāng)前時(shí)間的實(shí)現(xiàn)代碼

    這篇文章主要介紹了c++ chrono 獲取當(dāng)前時(shí)間的實(shí)現(xiàn)代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • C++11中的default函數(shù)使用

    C++11中的default函數(shù)使用

    這篇文章主要介紹了C++11中的default函數(shù)使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 解析C++中的虛擬函數(shù)及其靜態(tài)類(lèi)型和動(dòng)態(tài)類(lèi)型

    解析C++中的虛擬函數(shù)及其靜態(tài)類(lèi)型和動(dòng)態(tài)類(lèi)型

    虛擬函數(shù)(Visual Function)亦常被成為虛函數(shù),是C++中的一個(gè)重要特性,本文我們就來(lái)解析C++中的虛擬函數(shù)及其靜態(tài)類(lèi)型和動(dòng)態(tài)類(lèi)型
    2016-06-06
  • C語(yǔ)言中字符串的兩種定義方式詳解

    C語(yǔ)言中字符串的兩種定義方式詳解

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言中字符串的兩種定義方式,小編覺(jué)得這篇文章寫(xiě)的還不錯(cuò),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之雙向循環(huán)鏈表的實(shí)例

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之雙向循環(huán)鏈表的實(shí)例

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之雙向循環(huán)鏈表的實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++ Vector用法詳解

    C++ Vector用法詳解

    這篇文章主要介紹了C++ Vector用法詳解,vector是C++標(biāo)準(zhǔn)模版庫(kù)(STL,Standard Template Library)中的部分內(nèi)容,本文詳細(xì)介紹了它的方方面面,需要的朋友可以參考下
    2015-07-07

最新評(píng)論