最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、理論基礎(chǔ)

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

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

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

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

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

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

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

%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;

通過程序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('臉部定位');
      
      %人臉識別(測試前需要加入自己所要測試的人臉的相關(guān)庫。比如你要測試你自己的臉,那么需要加入你的臉道庫中)
       
      R0re    = imresize(R0,[220,160]);
      Ttest   = func_yuchuli(R0re);%讀入數(shù)字
      wordsss = sim(net,Ttest');
      [V,I]   = max(wordsss);
    
      %顯示識別結(jié)論
      Icheck  = imread(['facebase\',num2str(I-1),'.jpg']);
      
      subplot(224);
      imshow(Icheck);
      title('識別結(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('臉部定位');
 
%%
%人臉識別(測試前需要加入自己所要測試的人臉的相關(guān)庫。比如你要測試你自己的臉,那么需要加入你的臉道庫中)
%人臉庫的離線訓(xùn)練
R0re    = imresize(R0,[220,160]);
Ttest   = func_yuchuli(R0re);%讀入數(shù)字
 
load grnns.mat
wordsss = sim(net,Ttest');
[V,I]   = max(wordsss);
%顯示識別結(jié)論
Icheck  = imread(['facebase\',num2str(I-1),'.jpg']);
subplot(224);
imshow(Icheck);
title('識別結(jié)論');

三、仿真測試結(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控制電腦攝像實現(xiàn)實時人臉檢測和識別詳解的文章就介紹到這了,更多相關(guān)Matlab人臉檢測識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)查詢自動售貨機中的商品價格【實例分享】

    C語言實現(xiàn)查詢自動售貨機中的商品價格【實例分享】

    本文主要介紹了C語言實現(xiàn)查詢自動售貨機中的商品價格的相關(guān)資料。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • C++稀疏矩陣的各種基本運算并實現(xiàn)加法乘法

    C++稀疏矩陣的各種基本運算并實現(xiàn)加法乘法

    今天小編就為大家分享一篇關(guān)于C++稀疏矩陣的各種基本運算并實現(xiàn)加法乘法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • C++繼承中的訪問控制實例分析

    C++繼承中的訪問控制實例分析

    這篇文章主要介紹了C++繼承中的訪問控制,是面向?qū)ο蟪绦蛟O(shè)計中非常重要的知識點,需要的朋友可以參考下
    2014-08-08
  • C++?primer超詳細(xì)講解關(guān)聯(lián)容器

    C++?primer超詳細(xì)講解關(guān)聯(lián)容器

    兩個主要的關(guān)聯(lián)容器為map和set,map中元素是一些關(guān)鍵字—值對,關(guān)鍵字起索引的作用,值則表示與索引相關(guān)聯(lián)的數(shù)據(jù)。set中每個元素只包含一個關(guān)鍵字,set支持高效的關(guān)鍵字查詢操作——檢查一個給定關(guān)鍵字是否在set中
    2022-07-07
  • C語言中關(guān)于sizeof 和 strlen的區(qū)別分析

    C語言中關(guān)于sizeof 和 strlen的區(qū)別分析

    本文通過示例簡單分析了4種情況下C語言中sizeof 和 strlen的區(qū)別,算是個人經(jīng)驗的一個小小的總結(jié),如有遺漏還請大家告知。
    2015-02-02
  • C++ Virtual關(guān)鍵字的具體使用

    C++ Virtual關(guān)鍵字的具體使用

    這篇文章主要介紹了C++ Virtual關(guān)鍵字的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • C++ 實現(xiàn)一個復(fù)數(shù)類的實例代碼

    C++ 實現(xiàn)一個復(fù)數(shù)類的實例代碼

    這篇文章主要介紹了C++ 實現(xiàn)一個復(fù)數(shù)類的實例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • C語言實現(xiàn)簡單學(xué)生信息管理系統(tǒng)

    C語言實現(xiàn)簡單學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡單學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 如何利用C語言實現(xiàn)最簡單的HTTP服務(wù)器詳解

    如何利用C語言實現(xiàn)最簡單的HTTP服務(wù)器詳解

    這篇文章主要給大家介紹了關(guān)于如何利用C語言實現(xiàn)最簡單的HTTP服務(wù)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C語言具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • C++解決輸出鏈表中倒數(shù)k個結(jié)點的問題

    C++解決輸出鏈表中倒數(shù)k個結(jié)點的問題

    這篇文章主要給大家介紹了關(guān)于如何利用C++解決輸出鏈表中倒數(shù)k個結(jié)點的問題,文中通過實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-12-12

最新評論

宜城市| 安图县| 裕民县| 临桂县| 库伦旗| 蓬安县| 泉州市| 奎屯市| 大丰市| 阜阳市| 阳谷县| 商城县| 云霄县| 公安县| 永城市| 台江县| 石阡县| 左贡县| 丹凤县| 武定县| 东乡族自治县| 乳山市| 韶山市| 蒙阴县| 家居| 南开区| 汶川县| 鄄城县| 遵义市| 利辛县| 班戈县| 神池县| 体育| 兴安县| 密云县| 宁德市| 安多县| 临江市| 林周县| 拉孜县| 刚察县|