Matlab Yüz Tanıma ve Yüz Yakalama Uygulaması Örneği

Örneğimizde yüz algılamanın ve yüz takip sisteminin nasıl yapılacağını öğreneceksiniz…

Nesne algılama ve tanıma, otomotiv güvenliği gibi birçok görme uygulamalarında çok önemlidir. Bu örnekte, üç ayrı aşamada yüz tanıma sistemini öğreneceğiz:

1-) İzlenecek bir yüz Algılama
2-) İzlenecek yüzün özelliklerini belirlemek
3-) Yüzü izlemek

Adım 1: Takip Edilecek Yüzü Algılama

Bir yüzü takip başlamadan önce, ilk olarak yüzü tespit etmek gerekir. Bir video karesi içinde bir yüzün konumunu tespit etmek için vision.CascadeObjectDetectorkullanılır.Kaskad nesne dedektörü Viola-Jones algılama algoritması ve tespiti için eğitici bir sınıflandırma modeli kullanır. Temel olarak dedektör yüz algılamak üzere yapılandırılmış, fakat diğer nesne türleri için yapılandırılabilir.
% Yeni bir kaskat nesne dedektörü oluştur...
faceDetector = vision.CascadeObjectDetector();

% Video karesini kaskat dedektörle oku…
videoFileReader = vision.VideoFileReader(‘visionface.avi’);
videoFrame = step(videoFileReader);
bbox = step(faceDetector, videoFrame);

% Dedektör için yüz sınırlayıcı kutu oluşturun…
videoOut = insertObjectAnnotation(videoFrame,’rectangle’,bbox,’Face’);
figure, imshow(videoOut), title(‘Detected face’);

% Create a cascade detector object.
faceDetector = vision.CascadeObjectDetector();

% Video karesini dedektörle oku…
videoFileReader = vision.VideoFileReader(‘visionface.avi’);
videoFrame = step(videoFileReader);
bbox = step(faceDetector, videoFrame);

%Agılanacak yüzün etrafına sınırlayıcı kutu çizin…
videoOut = insertObjectAnnotation(videoFrame,’rectangle’,bbox,’Face’);
figure, imshow(videoOut), title(‘Detected face’);


Bu arda video kareleri üzerinde bir yüz izlemek için kaskad nesne dedektörünü kullanabilirsiniz.Yüzü 90 derece yatırır ya da kişi kafasını 180 dedece çevirdiğinde tek başına bu dedektörü kullanmak çeşitli sorunlara yol açabilir. Bu tür uygulamalarda kullanım için geliştirilmiş sınıflandırma modeli kullanmak gereklidir. Bu sorunu önlemek ve her video karesi için yüz tanıma performansının hesaplanması zor bir iş olduğundan , bu örnek için basit yüz tanıma özelliğini kullanacağız.

Adım 2: Takip Edilecek Yüzün Özelliklerini Tanımlama
Videoda yer alan yüzü tanımladıktan sonra , bu yüzü izlemenize yardımcı olacak bir özellik tespit etmektir. Örneğin, şekil, doku, ya da renk kullanabilirsiniz. Seçeceğiniz bu özellik Nesneye özgü ve nesne hareketiyle bile değişmeden kalan bir özellik olmalıdır.

Bu örnekte, izlemek için özellik olarak cilt tonunu kullanıyoruz.Cilt tonu yüz ve arka plan arasındaki kontrast farkı iyi bir uyum sağlar ve yüz döndükçe değişmez…
% Video karesinden Hue ayıklanması ile cilt tonu bilgisini alalım…
% Resim Hue Renk Alanına dönüştürülür…
[hueChannel,~,~] = rgb2hsv(videoFrame);

%Veriyi Hue Kanalında görüntülerken yüz çevresini sınırlayan kutuyu çizelim…
figure, imshow(hueChannel), title(‘Hue channel data’);
rectangle(‘Position’,bbox(1,:),’LineWidth’,2,’EdgeColor’,[1 1 0])



Adım 3: Takip Edilecek Yüzün Özelliklerini Tanımlama

İzlemek için özellikleri seçilen yüzü tanımladıktan sonra , artık izleme için vision.HistogramBasedTracker kullanabilirsiniz. Histogram, küçük küçük izci-piksel değerleri bir kullanarak bir nesneyi izlememizi sağlar. CAMShift algoritması kullanır. Bu örnekte, renk tonu piksel tespit yüzünün burun bölgesinden çıkarılır. Bu pikseller histogram oluşturulurken izcilerin iz sürme işlemini başlatmak için kullanılır.Bu örnek histogram kullanılarak ardışık video karelerinin üzerinde nesneyi izler.
% Yüz bölgesindeki burun algılanır…
% Bu bölgede herhangi bir arka plan pikseli
% içermediğinden emin olmak gerekir.
noseDetector = vision.CascadeObjectDetector(‘Nose’);
faceImage = imcrop(videoFrame,bbox(1,:));
noseBBox = step(noseDetector,faceImage);

%Burun sınırlayıcı kutusu is resmin kırpılan yüz .
%görüntüsüne göre tanımlanır Orjinal videoda burun sınırlama
% kutusunu ayarlamak gerekir…
noseBBox(1,1:2) = noseBBox(1,1:2) + bbox(1,1:2);

% Yakalama moduna giriş
tracker = vision.HistogramBasedTracker;

%Hue Kanalında yakalayıcı histogram başlatılıyor.. Burun
initializeObject(tracker, hueChannel, noseBBox(1,:));

% Video görüntülerini izlendiği araç…
videoInfo = info(videoFileReader);
videoPlayer = vision.VideoPlayer(‘Position’,[300 300 videoInfo.VideoSize+30]);

% Video bitene kadar döngü içerisindeki video karelerinin izlenmesi için…
while ~isDone(videoFileReader)

% Sonraki kare
videoFrame = step(videoFileReader);

% RGB -> HSV
[hueChannel,~,~] = rgb2hsv(videoFrame);

% Hue kanalındaki veriler ile izleme…
bbox = step(tracker, hueChannel);

%İzlenen nesnenin çevresine sınırlayıcı kutu çizme
videoOut = insertObjectAnnotation(videoFrame,’rectangle’,bbox,’Face’);

% Video oynatıcıda bu nesneyi görüntüleme
step(videoPlayer, videoOut);
end

% Yayınla…
release(videoFileReader);
release(videoPlayer);
Ad

Arduino Autocad Bilim-Teknoloji Biyomedikal Sistemler C-Programlama C# C# Programlama Diferansiyel Denklemler Dijital Kontrol Sistemleri Elektrik Devreleri 1 Elektrik Devreleri 2 Elektrik Makineleri 1 Elektrik Makineleri 2 Elektrik Tesislerinde Koruma Elektromantetik Alan Teorisi Elektromantetik Dalga Teorisi Elektronik 1 Elektronik 2 Elektronik-Devreler EmguCV Genel Fizik Genel Kimya Genel Matematik Gömülü Linux Güç Elektroniği Haberleşme Sistemleri İşaret ve Sistemler Lineer-Cebir Lojik Devreler Malzeme Bilimi MATLAB Mikroişlemciler Olasılık ve İstatistik Otomatik Kontrol Sistemleri PLC-Otomasyon Proje Yönetimi ve Girişimcilik Raspberry Pi Sayısal Analiz Sayısal İşaret İşleme Teknik-Kutuphane Termodinamik Yüksek Gerilim Tekniği
false
ltr
item
Çağlar GÜL: Matlab Yüz Tanıma ve Yüz Yakalama Uygulaması Örneği
Matlab Yüz Tanıma ve Yüz Yakalama Uygulaması Örneği
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM9vh27aLnNGZVzCR9djGgqkeEZbpur_13S-ygY5-0KMAQGop6rXumCSy_QS8e9JLqFw0sjrhSMqWRIuAxwAdqzSXawxjEMoRIrKLew4hGFRHGvxCaqsQcxLDR7-6rdfcNV_hbD_f-eyU/s1600/yuz1.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM9vh27aLnNGZVzCR9djGgqkeEZbpur_13S-ygY5-0KMAQGop6rXumCSy_QS8e9JLqFw0sjrhSMqWRIuAxwAdqzSXawxjEMoRIrKLew4hGFRHGvxCaqsQcxLDR7-6rdfcNV_hbD_f-eyU/s72-c/yuz1.jpg
Çağlar GÜL
https://elektronikafa.blogspot.com/2015/09/matlab-yuz-tanma-ve-yuz-yakalama.html
https://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/2015/09/matlab-yuz-tanma-ve-yuz-yakalama.html
true
871250089272898028
UTF-8
Not found any posts Not found any related posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU Tag ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Contents See also related Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy