![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто сталкивался с нейронными сетями, помогите с алгоритмом
Signal © (2012-11-01 17:19:00)Задача такая, распознать цифры с картинки (не капчта)
конкретнее, определить какой используется шрифт
скажем есть картинка, 7 на 11 пикселей с цифрой 5
есть список шрифтов,
1 вопрос сразу (как мне на канву битмапа отформатировать вывод текста по текущему шрифту, чтоб вписать его в эти 7 на 11 пикселей?) TextRect все равно на разных шрифтах выводится по разному, никак не въеду
смысл такой,
в нейронку (компонент NeuralNetHopf) заносятся по одному символу из каждого шрифта, далее по опорному нахожу максимальный вес, это и будет мой шрифт
поправьте, если это не так
уже башку всю сломал
(вариант просто распознать по пикселам мне не подходит)
Signal (2012-11-02 02:48:00) [1]или ума или входящий данных не дохват или то или то
не пойму как там
делаю так
NeuralNetHopf1.ResetPatterns;
Заполняю по шрифтам
bitmap канвас любой цифрой, допустим 5
потом
заполняется GridFont (TgridString для вида)
SetLength(xVector, 0);
for h:=0 to heR-1 do begin
for w:=0 to wiC-1 do begin
SetLength(xVector, length(xVector)+1);
IntData:=StrToInt(GridFont.cells[w, h]);
if IntData=1 then IntData:=1 else IntData:=-1;
xVector[length(xVector)-1]:=IntData;
end;
end;
NeuralNetHopf1.AddPattern(xVector);
end;//===заполнерния фонтов 1 цифры
NeuralNetHopf1.InitWeights;
//=====
Далее идет распознавание
----Заполнение картинкой которую нужно определить
NumVector:=0;
for h := 0 to heR - 1 do begin
for w := 0 to wiC - 1 do begin
IntData:=StrToIntDef(GridOpor.cells[w, h], 0);
//GridOpor.cells[w, h]:='5';
// ViewMessage(IntData);
NeuralNetHopf1.Layers[0].Neurons[NumVector].Output:=IntData;
NumVector:=NumVector+1;
end;
end;
NeuralNetHopf1.Calc;
NumVector:=0;
//=======Вывод получаецо то шо ввел, а не то, что должен распознавать
for h := 0 to heR - 1 do begin
for w := 0 to wiC - 1 do begin
if NeuralNetHopf1.Layers[0].Neurons[NumVector].Output = 1 then
GridOK.cells[w, h]:='1' else GridOK.cells[w, h]:='-1';
NumVector:=NumVector+1;
end;
end;
end; NumVector:=0;
// NeuralNetHopf1.Layers[1].Neurons[NumVector].Weights[1]
// ViewMessage(NeuralNetHopf1.Layers[1].Neurons[NumVector].Weights[7]);
ListBox1.Items.Clear;
//NeuralNetHopf1.Layers[1].Neurons[NumVector].ComputeOut();
for h := 0 to heR - 1 do begin
for w := 0 to wiC - 1 do begin
//ViewMessage(NeuralNetHopf1.Layers[1].Neurons[w*h].Output);
if NeuralNetHopf1.Layers[0].Neurons[NumVector].Output = 1 then
GridOK.cells[w, h]:='1' else GridOK.cells[w, h]:='-1';
//NeuralNetHopf1.Layers[1].Neurons[NumVector]. //StrToIntDef(GridFont.cells[w, h], 0);
// NeuralNetHopf1.Layers[1].Neurons[NumVector].Output := IntData;
// ListBox1.Items.Add(IntToSTr(NeuralNetHopf1.Layers[1].Neurons[NumVector].Weights[ NumVector]));
NumVector:=NumVector+1;
end;
end;
//ps если кто может или заинтересован хотябы помочь, могу скинуть исходники
Германн (2012-11-02 02:17:00) [2]
> Signal (02.11.12 01:31) [7]
>
> народ одзавитесь, кто юзал NeuralNetHopf
> пример, что идет с ним нихера мне не помагает!
Ты не кричи. Ты лучше скажи, что у тебя не получается с этим самым NeuralNetHopf. Может кто-то и поможет.
Signal (2012-11-02 01:31:00) [3]народ одзавитесь, кто юзал NeuralNetHopf
пример, что идет с ним нихера мне не помагает!
там демо нужно к демо
Signal (2012-11-01 23:32:00) [4]тоже приятно, что не зря написал сюда)))
Rouse_ (2012-11-01 23:01:00) [5]
> Signal (01.11.12 22:45) [4]
Жаль не могу помочь, но ты даже не представляешь какую ты идею мне подкинул своей веткой :)
За это спасибо.
А на QAZ-а не обращай внимания, мы его контролируем (периодически ;)
Signal (2012-11-01 22:45:00) [6]что за народ?
>>QAZ5
тебе своего времени не жалко?
QAZ5 (2012-11-01 22:10:00) [7]Удалено модератором
Signal (2012-11-01 22:03:00) [8]что-то я вообще запутался блин.
Чем больше добавляю данных, тем тупее происходит распознавание
Signal (2012-11-01 21:23:00) [9]Определяется гут, все работает, но как наученным данным присвоить какой-то идентиикатор? Хрен пойму, в output определяет нормально, только хрен пойму как присвоить значение этому оутпут
т.е. может не так выражаюсь
есть Нейрон возвращает, что это 2 (в пикселах рисую на выходе)
как в этом кампаненте при учении записать что это цифра 2?
Компанент NeuralNetHopf