人臉編程
Ⅰ 人臉識別,人臉顏值預測在編程方面都要研究哪些技術,或參考什麼參考書 多謝
開源的人臉識別是源碼,不是軟體,目前開源的人臉識別就只有OPENCV,你有編程經驗的話
Ⅱ 有沒有C++語言編程的人臉識別好用的二次開發SDK
有,雲脈人臉識別sdk一次二次定製開發,支持多種開發語言,如API開發支持Java、C++、C、object pascal及objective-C等多種語言
Ⅲ 人臉識別中,如何用MATLAB編程將許多人臉圖像一次讀入,並且每一列代表一幅圖像,謝謝
假設圖像名為:Face001.tif, Face002.tif, Face003.tif ...
N 為總圖像數
你是指將二維圖像壓縮成一列來表示?圖像是灰度圖還是彩色圖?
大致如下:
Temp = [];
for i = 1:N
fileName = sprintf('Face00%d.tif', i);
I = imread(fileName);
Temp = [Temp; I(:)];
end
Ⅳ 編程 人臉檢測以及表情識別 像matlab以及OpenGL等語言進行編程。
matlab也很簡單啊。而且網上有不少相關的代碼。
入門快,再看看幾個例子,估計就差不多了
Ⅳ 人臉識別與指紋開瑣需要哪語言編程
你說的這幾個裡面,模式識別的概念最大,而後面兩個都是模式識別中的兩個案例(或者應用方向),實質上都屬於圖像識別,圖像識別是模式識別的一種。 要學這個難度蠻大的,因為圖像識別直到現在都屬於比較新的方向,有大量問題沒有解決,學這個方面不需要你懂繪畫,但必須懂程序設計特別是高級語言設計(比如C,C++等等),另外對數字信號處理,高等數學以及物理等方面也要有相當了解,基本上要達到學術型碩士研究生的水平才行。
Ⅵ 急求一段用matlab編程的BP神經網路的人臉識別程序 可以運行的 急用啊 謝謝各位大哥了
function []=TwoDPCA
%%%%%%%%%%%%%特徵臉顯示已正確,訓練與測試沒有分開。
% Face recognition
clear all
close all
clc
M=200;%%%%
train=5;%%%表示同一個人有幾張相片。
eignum=3;%%%選取的特徵個數。
cel=cell(1,M);
cellafter=cell(1,M);
tt=clock;
S=[];
ii=1;
str=strcat('E:\三維人臉\2dfacedatabase\ORL\s1\1.pgm');
img=imread(str);
[ia ib]=size(img);
sum=zeros(ia,ib);
B=zeros(ia,ib);
for i=1:40
for j=1:5
str=strcat('E:\三維人臉\2dfacedatabase\ORL\s',int2str(i),'\',int2str(j),'.pgm');
eval('img=imread(str);');
sum=double(sum)+double(img);
cel{1,ii}=img;
ii=ii+1;
end
end
meanA=sum/M;
cov=zeros(ib);
for i=1:M
img=cel{1,i};
B=double(img)-double(meanA);
temp=B'*B;
cov=double(cov)+double(temp);
end
[vv dd]=eig(cov);
num2=size(vv);
% Sort and eliminate those whose eigenvalue is zero
v=[];
d=[];
for i=1:size(vv,2)
if(dd(i,i)>1e-4)
v=[v vv(:,i)];
d=[d dd(i,i)];
end
end
num1=size(v,2);
%sort, will return an ascending sequence
[B index]=sort(d);
ind=zeros(size(index));
dtemp=zeros(size(index));
vtemp=zeros(size(v));
len=length(index);
for i=1:len
dtemp(i)=B(len+1-i);
ind(i)=len+1-index(i);
vtemp(:,ind(i))=v(:,i);
end
d=dtemp;
v=vtemp;
imgafter=[];
for i=1:M
for j=1:eignum
img=cel{1,i};
temp1=double(img)*double(v(:,j));
imgafter=[imgafter temp1];
end
cellafter{1,i}=imgafter;
imgafter=[];
end
timeconsume=etime(clock,tt);
testimg=M/train;
findimgnum=train;
suc=0;
% figure(5);
for k=1:testimg
InputImage =imread(strcat('E:\三維人臉\2dfacedatabase\ORL\s',int2str(k),'\10.pgm'));
testafter=[];
for j=1:eignum
temp=double(InputImage)*double(v(:,j));
testafter=[testafter temp];
end
% Find Euclidean distance
e=[];
for i=1:M
tempA=double(testafter)-double(cellafter{1,i});
total=0;
for j=1:eignum
aa=norm(tempA(:,j));
total=total+aa;
end
e=[e total];
end
[C index]=sort(e);
min=index(1);
%%%%%%%計算正確率
testingroup=floor((min-1)/train)+1; %%計算要測試的圖像所在的組
if testingroup==k
suc=suc+1;
else
fprintf('%d.jpg fails to match!\n',k);
end
% %%%%%%%%%%%%%%%%%%%顯示所有找到的與測試圖像為同一個人的圖片(可)。(顯示所有與測試圖片最小距離的那組,而不是比較出來的最小的5個)
% subplot(testimg,findimgnum+1,(k-1)*(findimgnum+1)+1);% subplot(行數,列數,放圖像位置的序數)
% imshow(InputImage);
%
% for i=1:findimgnum
% temppos=(testingroup-1)*train+i;
% str=strcat('E:\三維人臉\testpic\orl\',int2str(temppos),'.pgm'); %concatenates two strings that form the name of the image
% eval('img1=imread(str);');
% subplot(testimg,findimgnum+1,(k-1)*(findimgnum+1)+i+1)
% imshow(img1)
% drawnow;
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
sucrate=suc/M*train*100;
fprintf('%2.1f%% matched successfully!\n',sucrate)
fprintf('it takes %3.2f S\n',timeconsume)
Ⅶ 手機編程貓怎麼弄人臉識別
方法/步驟
1
打開編程貓手機客戶端編程貓nemo,出現如圖所示界面,界面上會顯示系統帶的示常式序以及我們近期製作的一些程序,點擊屏幕下方的創作進行編程設計。
Ⅷ 彩色人臉圖像識別MATLAB編程
1.識別靜態的整個人體較難;即使識別出來結果也不可靠,所以現在主要以手勢/人臉識別為主;這是因為手和臉上面有比較獨特的特徵點。你說的濾波歸根結底還是要找出具有灰度跳變的高頻部分作為人體;這除非背景中除了人以外沒有其他突出的物體;否則光憑濾波二值法檢測人體是不太現實。
2 兩張圖片中人要是產生相對運動,檢測起來就容易多了;利用幀間差分找到圖像中灰度相差大的部分(你用的濾波也是一種手段);然後二值化區域連通;要是圖像中沒有其他移動物體計算連通區域的變動方向就是人的運動方向。
你可以去PUDN上搜搜相關的目標檢測的代碼;完全和你這個對應是不可能的。照你說的情況可以先建立起靜態背景的模型(或者直接在沒人的時候拍張);然後不斷的與這個背景做差,原理和幀間差分一樣。建議你先從典型的幀間差分常式開始下手(比如移動車輛的檢測,這個比較多)。
你在二值化之後加上一個區域連通的步驟;即使用膨脹或者閉運算;這樣你的輪廓就是連續的了;用matlab的話bwlabel可以統計連通區域裡面像素的個數也就是人體面積大小。質心就是橫豎坐標的平均值;取所有人體點的橫豎坐標分別累加;除以坐標總數得到的x和y平均值;這個就是質心了