ورود

View Full Version : استخراج ویزگی و طبقه بندی



nina222
سه شنبه 11 فروردین 1394, 17:44 عصر
سلام

من در مورد استخرج ویژگی این مقاله به مشکل برخوردم اگه می شه راهنمایی بفرمایید.
اینجا 2سری patch داریم می خوایم تشابه این ها رو با normalised cross-correlation محاسبه کنه طبق تصویری که گذاشتم. اون بخش کانولوشن با فیلتر رو متوجه شدم.
اما الان مشکلم این هست که خروجیnormalised cross-correlation یه ماتریس هست و در ادامه تاید کرده که بردار ویژگی رو میده به کلاسیفایر. من متوجه نمی شم چطور باید بردار ویژگی ساخت و یا شاید اصلا من بد متوجه شدم.

mohamamd 123
سه شنبه 11 فروردین 1394, 17:54 عصر
Error: Could not find or load main class گربه.فضايي.cats
Java Result: 1
این ارور یعنی چی

nina222
سه شنبه 11 فروردین 1394, 18:03 عصر
Error: Could not find or load main class گربه.فضايي.cats
Java Result: 1
این ارور یعنی چی

ترجمه ی این خطا؟
نمی تونه کلاس اصلی رو لود کنه یا پیدا کنه.
من اطلاعات بشتری ندارم.

rahnema1
چهارشنبه 12 فروردین 1394, 00:09 صبح
سلام
مطابق ویکی پدیا
http://en.wikipedia.org/wiki/Cross-correlation
این normalized cross correlation این جور برای دو تصویر a و b بدست میاد

a= rand(5);
b= rand(5);
ncrosscorr = sum((a(:) - mean(a(:))) .* (b(:) - mean(b(:)))) /(std(a(:)) * std(b(:))) / numel(a);

nina222
چهارشنبه 12 فروردین 1394, 11:31 صبح
سلام
مطابق ویکی پدیا
http://en.wikipedia.org/wiki/Cross-correlation
این normalized cross correlation این جور برای دو تصویر a و b بدست میاد

a= rand(5);
b= rand(5);
ncrosscorr = sum((a(:) - mean(a(:))) .* (b(:) - mean(b(:)))) /(std(a(:)) * std(b(:))) / numel(a);


ممنونم
شاید من سئوالم رو بد مطرح کردم من پیاده سازی normalized cross correlation رو با تابع متلب بلدم اما خروجی یه ماتریس هست باید نتایج به یه طبقه بندی کننده که Gentleboost هست داده بشه من نمی دونم از ماتریسی که با normalized cross correlation بدست میارم چه طور (بردار ویژگی) بسازم و بدم به طبقه بندی کننده.

rahnema1
پنج شنبه 13 فروردین 1394, 17:14 عصر
این برنامه داده های trainind ایجاد می کنه که یک آرایه سه بعدی هست
فرض کرئم سایز هر پچ برابر 40 در 40 هست
تعداد تصاویر دیکشنری 50 تا هست
وقتی که تصاویر دیکشنری با 9 تا فیلتر ،فیلتر بشه داده های دیکشنری برابر با 9 * 50 میشه
پچ های training فرض کردم 20 تا باشه که وقتی بخواهیم داده ها را تولید کنیم یه آرایه 50 * 9 * 20 ایجاد میشه

function ncrosscorr = crossCorr(a , b)
ncrosscorr = sum((a(:) - mean(a(:))) .* (b(:) - mean(b(:)))) /(std(a(:)) * std(b(:))) / numel(a);
end

numDictionaryPatches = 50;
numFilters = 9;
numTrainingPatches = 20;
%tolide filter ha
filters = {};
for i = 1 : numFilters
filters{i} = rand(3);
end
% tolide tasavire dictionary
for i = 1 : numDictionaryPatches
DictionaryPatches{i} = rand(40);
end
% filter kardane tasavire dictionary
dictionary ={};
for i = 1 : numDictionaryPatches
for j = 1: numFilters
dictionary{i,j} = conv2(dictionaryPatches{i} , filters{j});
end
end
% tolide tasavire training
for i = 1 : numTrainingPatches
TrainingPatches{i} = rand(40);
end
% tolide dadehaye training X
TrainingData=[];
for t = 1 : numTrainingPatches
for i = 1 : numDictionaryPatches
for j = 1: numFilters
TrainingData(t,i,j) = crossCorr( conv2(TrainingPatches{t} , filters{j}) , dictionary{i, j});
end
end
end