GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (1)   Поиск:  
 Автор Тема: Скрытые Марковские модели
varvara
Сообщений: 29
Скрытые Марковские модели
Добавлено: 05 мар 09 10:06
Помогите, пожалуйста, разобраться с применение СММ к распознаванию лиц. Кто-нибудь реализовывал это на Matlab? Помогите, пожалуйста. Заранее благодарю.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Скрытые Марковские модели
Добавлено: 05 мар 09 14:23
вообще с трудом представляю какую связь эти вещи имеют... в случае, если что-то узнаете в этом плане, буду благодарен, если поделитесь.
[Ответ][Цитата]
3d6
Сообщений: 325
На: Скрытые Марковские модели
Добавлено: 05 мар 09 16:09
э... именно к распознаванию? А к чему они там? Как ставится задача в целом?
[Ответ][Цитата]
i5kv
Сообщений: 2
На: Скрытые Марковские модели
Добавлено: 05 мар 09 18:52
Может речь идет о распознавании лиц дикторов по их голосу? Тогда это просто
[Ответ][Цитата]
varvara
Сообщений: 29
На: Скрытые Марковские модели
Добавлено: 06 мар 09 18:22
В этой статье описан метод применения СММ к распознаванию лиц http://webfile.ru/3007425, правда она на английском. Но как его реализовать на Matlab не знаю. Помогите, пожалуйста.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Скрытые Марковские модели
Добавлено: 07 мар 09 23:10
спасибо за ссылку. обязательно почитаю. с Matlab, правда, полюбому не смогу помочь.
[Ответ][Цитата]
3d6
Сообщений: 325
На: Скрытые Марковские модели
Добавлено: 08 мар 09 20:52
Довольно интересный подход. С реализацией на матлабе помочь, к сожалению, не могу - не пишу под него. Но если есть какие-то менее технические вопросы - могу попробовать ответить.
[Ответ][Цитата]
varvara
Сообщений: 29
На: Скрытые Марковские модели
Добавлено: 09 мар 09 18:23
Как можно разбить изображение? И что брать за последовательность перекрытий О(О1,О2,...), массивы пикселей или нет?
[Ответ][Цитата]
3d6
Сообщений: 325
На: Скрытые Марковские модели
Добавлено: 10 мар 09 15:14
Цитата:
Автор: varvara

Как можно разбить изображение? И что брать за последовательность перекрытий О(О1,О2,...), массивы пикселей или нет?

Ну, в данной статье бралась последовательность окон О, и все пиксели в каждом окне выстраивались в одномерную структуру (вектор с X*L строками). Выглядит не то чтобы как идеальный вариант, но что-то из этого должно получиться.
[Ответ][Цитата]
varvara
Сообщений: 29
На: Скрытые Марковские модели
Добавлено: 11 мар 09 9:38
Я нашла вот такую статью, но к ней не было примеров баз с лицами, из-за этого при выводе изображений на экран возникают ошибки, т.к. не известны точные размеры изображений

Цитата:
%% HMM detection

load XRfea.mat
TrainingFeature2 = T;
for k = 1:127
TrainingFeature2(:,k) = TrainingFeature2(:,k)/max(TrainingFeature2(:,k))*255;
end

%T = [tfeature_p1;tfeature_p2;tfeature_p3;tfeature_p4];
figure,
imshow(TrainingFeature2(:,20:127),[])
load XJFea.mat;
TrainingFeature1 = T;
for k = 1:96
TrainingFeature1(:,k) = TrainingFeature1(:,k)/max(TrainingFeature1(:,k))*255;
end
%T = [tfeature_p1;tfeature_p2;tfeature_p3;tfeature_p4];
figure,
imshow(TrainingFeature1(:,18:96),[])
figure
subplot(1,2,1)
imshow(TrainingFeature2(:,27:60),[])
subplot(1,2,2)
imshow(TrainingFeature1(:,25:53),[])
featureSequence1 = round(TrainingFeature1(13, 27:60));
featureSequence2 = round(TrainingFeature2(13, 25:53));
figure,
subplot(1,2,2)
plot(1:length(featureSequence1),featureSequence1);
subplot(1,2,1)
plot(1:length(featureSequence2),featureSequence2);
tran_guess1=[0.5 0.5; 0.5 0.5 ];
tran_guess2 = [0.5 0.5; 0.5 0.5];
emis_guess1 = ones(2,32)*1/32;
emis_guess2 = ones(2,32)*1/32;
[tran1, emis1]=hmmtrain(featureSequence1,tran_guess1, emis_guess1);
[tran2, emis2]=hmmtrain(featureSequence2, tran_guess2, emis_guess2);
testSequence1 = round(TrainingFeature1(13, 52:83));
testSequence2 = round(TrainingFeature2(13, 61:92));
[states1, likelihood1] = hmmdecode(testSequence1, tran1, emis1);
[states2, likelihood2] = hmmdecode(testSequence1, tran2, emis2);
[states3, likelihood3] = hmmdecode(testSequence2, tran1, emis1);
[states4, likelihood4] = hmmdecode(testSequence2, tran2, emis2);
% states(1:13) = 1;
% states(14:30) = 2;
% states(31:32) = 1;
% [TRANS2, EMIS2] = hmmestimate(featureSequence2, states);
% [ESTTR2, ESTEMIT2] = hmmtrain(featureSequence2,TRANS2,EMIS2);
%
%
% states1(1:13) = 1;
% states1(14:27) = 2;
% states1(27:32) = 1;
% [TRANS1, EMIS1] = hmmestimate(featureSequence1, states1);
% [ESTTR1, ESTEMIT1] = hmmtrain(featureSequence1,TRANS1,EMIS1);
testSequence1 = round(TrainingFeature1(13, 52:83));
testSequence2 = round(TrainingFeature2(13, 61:92));
%
% [estates1, likelihood1] = hmmdecode(testSequence1, TRANS1, EMIS1);
% [estates2, likelihood2] = hmmdecode(testSequence1, TRANS2, EMIS2);
% [estates3, likelihood3] = hmmdecode(testSequence2, TRANS1, EMIS1);
% [estates4, likelihood4] = hmmdecode(testSequence2, TRANS2, EMIS2);
%
% [estates1, likelihood1] = hmmdecode(testSequence1, ESTTR1, ESTEMIT1);
% [estates2, likelihood2] = hmmdecode(testSequence1, ESTTR2, ESTEMIT2);
% [estates3, likelihood3] = hmmdecode(testSequence2, ESTTR1, ESTEMIT1);
% [estates4, likelihood4] = hmmdecode(testSequence2, ESTTR2, ESTEMIT2);
L = [likelihood1 likelihood2 likelihood3 likelihood4];
bar(L+1100,'group');


Помогите, пожалуйста, разобраться с кодом.
[Ответ][Цитата]
 Стр.1 (1)